-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Accessibility #126
Comments
This is a huge question, and there are likely to be different ideas for what a11y even means with a lot of these. For example: a11y in the sense that a chart is an image and here is the data? Or should the chart be totally keyboard accessible? Starting with the simplest type of chart seems like it'd be the place to start. I dunno how @plouc is able to do all this work, so this'll perhaps get kicked to the curb. What we're doing short-term is making the chart |
@rpearce Would it be possible to append that aria label with a short summary of the data in the chart? One of the core utilities of charting seems to be glanceable data. Reading out the raw data in an AX use case seems analogous to digging into a table view which I think puts AX compliance in question. Would it be possible to have some sort of conditional logic that checks if the data matches a prepreprogrammed pattern? For example, in a line chart we could search for trends, peaks and nadirs and then update the alt text with some details on page load or whenever the graph is changed. Happy to prototype something if there is any interest. |
@shipleydaniel (not sure if you think I work on nivo or something...I don't!) Unfortunately, at work we're not using nivo for our charts anymore, but we are still using To address your ideas: you could totally do something like that if it were worth your time, and I would first think about how valuable it would be to those who would consume it. Only you can answer that! |
Added ability to pass |
@wyze Unless a lot of a11y changes have come down in the past year or so with this project, you may want to check out https://www.highcharts.com/docs/accessibility/accessibility-module-feature-overview and a simple example, https://www.highcharts.com/demo/accessible-line, for some ideas about a11y with charts. Charts that are not interactive with assistive devices (like a keyboard, screen reader, etc), end up having to be ignored entirely, and separate, "visually hidden" descriptions usually need be provided to summarize the charts. Ideally, assistive devices would have at least the same access to the charts that sighted users get. |
Thank you for the references @rpearce! Going to keep this as an umbrella issue and as we start to tackle accessibility, open separate issues for those. |
Hello all, Problem statement:I am a developer. Charts are described as Possible solutions:Allow the passage of an Commentary:This is the lowest common denominator for A11y. You've presented an image to the user, and should be able to describe it for those who are blind/low vision. Now, it would be wonderful for the graph to procedurally create the description text based on the data in the graph, but that's not expected. The developer could very well do that themselves if offered the option to pass the data they need to the component. |
@cbleslie Unless I am mistaken, If you use This is easily doable outside of |
So let's assume @rpearce is correct. In this case it is still expected that the element with |
I haven't used When I did use it, I wrapped it in an |
@rpearce as of the version I am using; this is how it renders. As for your workaround, I would say it's less than ideal, and does not accurately reflect the document's structure and purpose. This is a "Retrofit" for something that should be a11y friendly in the first place. The web is a11y friendly, until we make it otherwise. |
I checked nivo's website, and it is indeed adding As for my suggestions above, the result is the same, regardless: you have to use |
I am not sure I understand, are you suggesting create a PR for the fix? I can if need be. |
Making a charting library fully accessible is incredibly hard to do when it isn't baked into the library from the start, and that can help explain why this issue we're having this exchange on exists. In lieu of not having fully accessible charts, the best one can do is try to get But there are also <div aria-label="(Info here...)" role="img">
<TheCanvasChartGoesHere />
</div> |
A small update about this issue, which is obviously really important, but unfortunately equally hard to implement. I've started to look at how to improve the bar chart (
It's far from perfect and I admit I'm no expert regarding a11y, but I hope it'll help. |
Hi! I recently stumbled on this charting library and issue, but just wanted to add something. I work on an open source tool, Chart2Music, which turns charts into music so the blind can hear data. It provides hooks for interactivity (like keyboard navigation), so that you can make your charts accessible to keyboard-only users and screen reader users (blind + low vision users). If you want to play with it, see this canvas-based line chart made with Chart.js or this svg-based heatmap made with Plotly. |
Is it possible to pass
|
Nivo is great. Fantastic. Only disappointment is an apparent disregard for accessibility? Any plans to fix that?
The text was updated successfully, but these errors were encountered: