Skip to content
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

Canvas accessibility options like aria-label #614

Open
danman01 opened this issue Nov 14, 2023 · 1 comment
Open

Canvas accessibility options like aria-label #614

danman01 opened this issue Nov 14, 2023 · 1 comment

Comments

@danman01
Copy link

danman01 commented Nov 14, 2023

Hello all, I am looking at chart.js accessibility, and they say it is up the user to provide a canvas element with appropriate aria- attributes. I took a look at the various chartkick options and code and don't readily see anything related to generating the actual canvas element with something like passed-in html options:

So if I could do this, it would be ideal -- but perhaps there is a way and I am not seeing it?

<%= column_chart '...',
   canvas_html_options: { aria: { label: 'my chart title' } }
%>

Which would generate the added aria-label:

<canvas aria-label='my chart title' height='...' width='...'></canvas>

I do see we can customize the surrounding <div> with our own attributes by passing the html option ( which overrides original div, so we need to be sure to construct it carefully ), and perhaps just adding aria-* there is fine. But is it possible to access the canvas element, or will this need to be implemented?

Thanks for reading and for working on this great library!

@ankane
Copy link
Owner

ankane commented Nov 21, 2023

Hi @danman01, one way to currently do this is:

<div role="img" aria-label="my chart title"><%= column_chart data %></div>

https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Img_role

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants