A Tableau Accessibility Journey - Part I

Recently, I came to the realization that 0 of my 58 published data visualizations on my Tableau Public profile provide equal access of their data and storylines for all users, mostly excluding those with disabilities. I have read and studied a lot about developing visuals with care for color blindness, but not so much for blindness itself, or low vision, or users who cannot use a mouse, or many other disabled users. A recent Twitter thread by our colleague Frank Elavsky hits on this topic. It is through these realizations that I decided to join and contribute to the dataviza11y group. A quick plug that we have a great group of people, looking to do some exciting things in this space, so do check out and follow that group and it’s member’s activities if you are interested. A wonderful and recent example is the talk Frank, Sarah Fossheim and Larene Le Gassick presented at Outlier.

What is this about?

My hope with this series is to share my trials and tribulations of attempting to take just one of my inaccessible Tableau Public visualizations, and make the experience of consuming it as equal as I possibly can, for all users. I am pretty certain that I will fail, in some aspects, but will do my best and transparently share where I can and cannot get to along the journey. While I am very well versed in developing in Tableau, I consider myself quite novice when it comes to making an accessible data visualization experience. I will be following guidance provided by others, who have much more experience in this space. I also do not know very much about screen readers, for example, I have never used JAWS. For my work in this series I will be using the built-in accessibility tools provided on my MacBook Pro and iPhone, “VoiceOver”.

Why

Why is this important? The simple fact is that it is the right thing to do. We should enable all users the ability to consume what can be critical information at times. Here is an example video of using a screen reader on a pretty important piece of information here in California:

In addition to the above example, according to the World Health Organization’s Global Data on Visual Impairments 2010 report, the WHO noted in 2010, “The estimated number of people visually impaired in the world is 285 million, 39 million blind and 246 million having low vision; 65% of people visually impaired and 82% of all blind are 50 years and older.” Also a more recent report by the WHO in 2019 notes, “Globally, at least 2.2 billion people have a vision impairment or blindness, of whom at least 1 billion have a vision impairment that could have been prevented or has yet to be addressed”.

Now that have a bit more context as to why this is so critically important, here is what you can expect this series to cover going forward...

The Inaccessible Visualization

Here is the original data visualization that we will be working with throughout this series. It is a view I built in 2017 after playing a coin flip board game with my oldest daughter. The idea behind it was to try and show the result of each of our coin flips, heads vs tails and also show how we progressed along the board in each of the 20 games we played that day. Ultimately I am trying to answer two questions with this visualization. First, did our coin flips result in a near 50/50 split of head and tails, and, secondly, did my daughter or I win more games? Click the image below to interact with the original viz, directly on Tableau Public.

An image of the coin flip board game dashboard, click the image to interact with the view directly on Tableau Public.

An image of the coin flip board game dashboard, click the image to interact with the view directly on Tableau Public.

And here is a video of me trying to navigate the visualization, as is, in order to answer the two questions posed above, apologies for how much I trip through using the screen reader as I am pretty new to working with it. 

This is not a good experience at all! I limited myself to 5 minutes of screen reader use (only a snippet of that is embedded in the video above) and was unable to answer either of my two key questions. How can I improve this? I didn’t honestly know, but was able to ask for some help.

The Journey Ahead

To get this process started, Frank was nice enough to do a high level accessibility audit of this visualization. He leveraged his recently open sourced, inclusive auditing system for data visualization, Chartability, and presented these results in one of his workshops as well as sharing back results with me. These results were not good, out of the 10 critical items to achieve in his review, this visualization is only successful in 3 of the 10. Here is a more detailed list of this result. 

  • Low contrast on chart elements and text - Fail (I have text with less than 4.5:1 and geometry with less than 3:1 contrast)

  • Text size to small - Fail (I have text which renders less than 12px on Tableau Public)

  • Information only available visually - Fail (There are many chart elements that cannot be understood if you are not using your sight)

  • Charts are interactive only through one means - Fail (If a user cannot use a mouse, they cannot interact with my charts)

  • No instructions provided for interaction - Fail (I do not provide any guidance to the user on how to interact with my chart, but left Tableau default interactivity in play)

  • Chart is unconventional and needs explanation - Barely Pass (I provide a brief description of the whisker plot for coin flips, so achieve bare minimum, but could do much better)

  • Title, Summary, Context, Caption provided to explain the view - Pass (I have a detailed write up on the context of the visual at the top, but could still probably do better here in my charts below, also I think this is actually a fail because my focus order is a mess and the user jumps all over the place when keyboard navigating)

  • A table is also provided for each chart - Fail and Pass (Tableau does provide the ability to expose the data table through keyboard nav out of the box, but, 1. I don’t think these tables are helpful as they are structured and 2. The table level of detail does not really match the experience of the visualization level of detail)

  • To much data at once - Pass (My small multiple implementation of the game by game results is a good solve for not putting 20 games of data on the same graph)

  • Styling cannot be changed by the user - Fail (If you switch your system to high contrast mode, or use custom style sheet, the visualization objects do not adjust accordingly)

  • We need to address the above before we think about diving further in WCAG standards

My next steps for the series will be to address the findings above as best I can. Each post will focus on at least one, but hopefully a few of the issues noted and how we can (hopefully) address these (or not) in Tableau. I will first try to solve as many of them as I can within the “Tableau box”, but then, I will also take a look at how things like the extensions api could play a vital role to actually enabling more accessible experience for end users consuming Tableau visualizations.

If there is anything you specifically want to see addressed that is not covered above, don’t hesitate to ask in the comments below. But I definitely have my work cut out for me at this point!

References

As part of this work I will be leveraging the following resources to try and do better:

Here are the additional posts created as part of this series: