Challenge
It’s Day 2 of Dashboard week! Today we had a session with Louisa on accessibility. Following that we were each given challenges. Mine was as below:
TIL has hired a business consultant to provide tip top advice about expanding our business. They need access to our company profit and revenue information, which we currently keep on tableau server, but they’re a keyboard only computer user. How would you provide something to ensure they can access our information in the most efficient way?
Scope & testing
I decided to scope to one of the dashboards on the server - showing revenue trends. Once that was downloaded I went through the slides again and read up on Keyboard Accessibility for Tableau Views. There is a very helpful page with all the keyboard shortcuts - https://help.tableau.com/current/pro/desktop/en-us/access_keyboard_navigation.htm.
Following this I tested keyboard navigation on the current version of Dashboard on the Server and it was jumping from filter to visual to filter and back again.
On my sketch I outlined the key points to consider for keyboard only users. These included focus Order, use of view underlying data (as tooltips or mark selection are not compatible with keyboard use, and also thinking about adding a download data button.
Steps taken
First I needed to tackle the Focus Order. We had spoken about using the XML file and setting focus order earlier so I found helpful guide re XML and focus order from Tableau community - https://community.tableau.com/s/question/0D54T00000C6USYSA3/how-can-i-set-the-focus-order-of-the-views-and-objects-in-a-dashboard
You need a Tableau Workbook (rather than packaged workbook) in order to use the XML
Therefore I saved a copy of the current Dashboard as a workbook. First I republished it to the server to see if it would correct the order just in case, as new dashboards created in Tableau 2021.3 and later now have a default top-to-bottom, left-to-right focus order. This did not work however.
So I set to reviewing the layout, marked the areas - containers/charts with borders and on my Excalidraw labelled the order they should go in as image below (charts and data are blocked out as it is internal data)
I opened the Tableau workbook in Notepad and changed the order as instructed in the guide I had found. You need to find the Zones (so it helps if you have called your Dashboard items names to prompt you e.g. Top KPI container for example) and then you change the ID - this is what it is ordered by. As long as the IDs are in subsequent order for how you want them, you can use whatever numbers you wish - in the guide the instructor goes from 10, 20, 30 etc.
Then save the notepad file, reopen it in the Tableau workbook and publish to the server and the focus order will be as you have set!
After this I turned off all tooltips. The tooltips for the area charts were just showing figures already in charts so that was fine, and the tooltips for the Line and Bar charts were just showing the values for month or client which would be in underlying data.
I added instructions for how to view underlying data (shift & enter) (alt & f4 to exit) and added a download to crosstab button below the filters as keyboard only users may find it easier to view the data in Excel.
Finally I added instructions to the filter panel on how to check/clear boxes (spacebar) and apply changes (enter).
With all changes I republished to the server and set about planning my walk through for the presentation.
Some caveats for today were I assumed the user is a keyboard user due to mobility and not visual impairment, so if the latter was the case I would need to add a screen reader also. And I redesigned the Dashboard for Desktop only in our allotted time.
Feedback
After presenting I had the following feedback:
- When using View Underlying Data - make sure your fields and measures are all titled neatly and correctly (I had not checked this fully enough)
- And a note to be aware when editing the XML - if something happens to the workbook, i.e. it is corrupt, you can’t try to rectify this as you have altered the XML code. So always try this on a copy.