ARIA labels and auto-generated insights for screen reader users
Charts automatically generate ARIA labels and descriptions with meaningful insights about the data. Screen readers announce the chart type, data summary, and analysis of trends or distributions.
<dc-chart width="500" height="350">
<dc-title>Quarterly Sales</dc-title>
<dc-bar value="45" label="Q1"></dc-bar>
<dc-bar value="72" label="Q2"></dc-bar>
<dc-bar value="38" label="Q3"></dc-bar>
<dc-bar value="95" label="Q4"></dc-bar>
</dc-chart>
<dc-chart width="500" height="350">
<dc-title>Stock Price</dc-title>
<dc-line label="ACME Corp" stroke="#2196F3">
<dc-point value="100" label="Jan"></dc-point>
<dc-point value="115" label="Feb"></dc-point>
<dc-point value="108" label="Mar"></dc-point>
<dc-point value="142" label="Apr"></dc-point>
<dc-point value="165" label="May"></dc-point>
</dc-line>
</dc-chart>
<dc-pie-chart width="500" height="350">
<dc-title>Market Share</dc-title>
<dc-pie-slice value="55" label="Leader"></dc-pie-slice>
<dc-pie-slice value="25" label="Challenger"></dc-pie-slice>
<dc-pie-slice value="12" label="Follower"></dc-pie-slice>
<dc-pie-slice value="8" label="Niche"></dc-pie-slice>
</dc-pie-chart>
<dc-funnel-chart width="500" height="350">
<dc-title>Sales Funnel</dc-title>
<dc-funnel-stage value="1000" label="Visitors"></dc-funnel-stage>
<dc-funnel-stage value="400" label="Leads"></dc-funnel-stage>
<dc-funnel-stage value="150" label="Opportunities"></dc-funnel-stage>
<dc-funnel-stage value="50" label="Customers"></dc-funnel-stage>
</dc-funnel-chart>
You can override the auto-generated accessibility text with custom content using aria-label and aria-description attributes.
<dc-chart width="500" height="350"
aria-label="Revenue growth chart showing 65% increase">
<dc-title>Revenue Growth</dc-title>
<dc-bar value="100" label="2022"></dc-bar>
<dc-bar value="165" label="2023"></dc-bar>
</dc-chart>
<dc-chart width="500" height="350"
aria-description="This chart shows our company exceeded
the industry average growth rate of 12% by achieving
65% year-over-year revenue increase.">
<dc-title>Revenue Growth</dc-title>
<dc-bar value="100" label="2022"></dc-bar>
<dc-bar value="165" label="2023"></dc-bar>
</dc-chart>
Use aria-insights="none" to disable auto-generated insights, or aria-insights="basic" for minimal descriptions without trend analysis.
<dc-chart width="500" height="350" aria-insights="none">
<dc-title>Simple Chart</dc-title>
<dc-bar value="30" label="A"></dc-bar>
<dc-bar value="50" label="B"></dc-bar>
<dc-bar value="40" label="C"></dc-bar>
</dc-chart>
<dc-chart width="500" height="350" aria-insights="basic">
<dc-title>Basic Chart</dc-title>
<dc-bar value="30" label="A"></dc-bar>
<dc-bar value="50" label="B"></dc-bar>
<dc-bar value="40" label="C"></dc-bar>
</dc-chart>
Insert + Q to start NVDATab or arrow keysInsert + Q twice quickly to exit NVDACmd + F5 to enable VoiceOverCtrl + Option + Right Arrow to navigate through elementsCtrl + Option + Shift + Down Arrow to interact with the chart groupCmd + F5 again to disable VoiceOverCharts appear as "graphics" in the VoiceOver Rotor. Press Ctrl + Option + U to open the Rotor, then use arrow keys to find "Graphics" and navigate to charts.
<svg> element's attributes:
role="img" - identifies as an imagearia-label="..." - the accessible namearia-describedby="dc-desc-N" - references the description<desc id="dc-desc-N"> element inside the SVG - this contains the full descriptionIn Chrome DevTools, select the Elements tab, then open the Accessibility pane (in the right sidebar). This shows the computed accessible name and description for the selected element.
role="img". Without it, screen readers may skip the element.aria-describedby references a valid <desc> element ID.aria-insights="basic" or aria-insights="none" to reduce verbosity.aria-label and aria-description attributes to override auto-generated content.