Design Principle
Data visualization is non-text and often interactive content. It must give equivalent conclusions and data paths to people who cannot see the chart, distinguish colors, use a mouse, or read it at default size.
Large Theory
Chart accessibility does not end with adding an aria-label to a canvas. Complex charts usually need a takeaway title, prose explanation, structured data table, visible labels, keyboard-reachable interaction, non-color encodings, and layouts that remain readable on small screens and high zoom.
Small Points
- Titles state conclusions, not just data names; "Churn dropped after March" is more useful than "Churn chart".
- Simple charts can use short alt or aria-label; complex charts need nearby text descriptions or data tables.
- Canvas charts are not screen-reader accessible by default, so provide role/aria/fallback content or external alternatives.
- Do not encode series, states, or anomalies only through color; add labels, shapes, line styles, textures, or direct annotations.
- Tooltips cannot rely only on hover; keyboard and touch users also need data-point access.
- A data table is not satisfied by only offering a CSV download; prefer in-page structured alternatives or summaries.
Design Judgment
Chart alternatives are healthy when users can get the core conclusion and trace key numbers without seeing the chart. If a screen reader only announces chart or canvas, the chart is unusable.
Implementation Notes
For each chart, output caption/title, takeaway summary, source/updated time, accessible description, data table, series labels, unit/axis labels, color+shape encoding, keyboard tooltip path, and responsive fallback. Canvas libraries such as Chart.js and ECharts especially need fallback text or nearby tables.
Counterexamples/Risks
Legend-only labeling, red/green lines with no shape difference, hover-only tooltip, overlapping mobile axis labels, alt text that says dashboard chart, and missing data source or update time.
Case Study
W3C WAI treats graphs and flow charts as complex images that require more than a short phrase. Chart.js documentation says canvas content is not accessible to screen readers unless ARIA or fallback content is added. USWDS data-visualization guidance frames usability and accessibility as complementary goals. The reusable lesson is that chart components must deliver both the visual graphic and an accessible data path.
Source Links
W3C WAI Complex Images: https://www.w3.org/WAI/tutorials/images/complex/ Chart.js Accessibility: https://www.chartjs.org/docs/latest/general/accessibility.html USWDS Data Visualizations: https://designsystem.digital.gov/components/data-visualizations/ WCAG Non-text Content: https://www.w3.org/WAI/WCAG22/Understanding/non-text-content.html
Agent Directive
When generating charts, output the visual chart, takeaway title, text summary, data-table alternative, and keyboard/screen-reader path; do not deliver inaccessible canvas alone.