Accessibility

A chart is accessible when every reader gets its point and its values, by sight, by screen reader or by keyboard.

Name and describe

Every chart needs a name, and most need a sentence that says what it shows.

  • A visible headline that states the takeaway, in page text above the chart. See Title and subtitle.
  • A short text alternative on the chart itself: the chart type and the subject, such as "Line chart of weekly sign-ups, January to June".
  • A longer description for anything that is not obvious from the headline: the trend, the extremes, the outliers. Put it in page text near the chart, where everyone can read it.

Keep the accessible name short. Instructions, conclusions and every data point in one label make it hard to listen to.

<figure>
<figcaption>
<h3>Sign-ups doubled after the March launch</h3>
<p>Weekly sign-ups, January to June 2026.</p>
</figcaption>
<Chart definition={definition} ariaLabel="Line chart of weekly sign-ups" />
<details>
<summary>Show the data</summary>
<table>...</table>
</details>
</figure>

Exact values

Give the numbers another way, outside the chart.

Put a data table near the chart, behind a "Show the data" toggle if space is short, or offer a CSV download. A table is easier to navigate with a screen reader than any chart, and it serves sighted readers who want exact figures too.

Not color alone

Every color in a chart needs a second cue.

  • Direct labels on lines, bars and slices.
  • Dash patterns on lines.
  • Different marker shapes on points.
  • Textures or patterns on areas and bars.

Status colors need words as well: "+12%" with an arrow, not green alone. See Color.

Contrast

Measured against the surface the chart sits on, in light and dark mode.

Marks need a contrast ratio of at least 3:1, and text at least 4.5:1. Gridlines can be lighter, since the data does not depend on them. Use your browser's contrast checker on the actual series colors, not only the palette swatches.

Keyboard

One tab stop into the chart, arrow keys inside it.

  • The chart takes a single tab stop. Tab moves past it, not through every point.
  • Inside, arrow keys move between data points, and the focused point shows its values the way hover does.
  • Focus is always visible, with a ring in the theme's focus color.
  • Escape closes a pinned tooltip or cancels a drag.
  • Every pointer-only control needs a keyboard path: a brush, zoom, legend toggle or drill-down. Use real buttons and range inputs.

Hover and motion

Nothing essential lives only on hover, and nothing moves for readers who asked it not to.

A tooltip that holds the only copy of a value excludes touch, keyboard and screen reader users. Respect prefers-reduced-motion: draw the final state at once. See Interaction.

Testing

Check the finished page, not only the chart.

  1. Use the page with the keyboard only.
  2. Listen to the chart and its description with a screen reader.
  3. Zoom the browser to 400%. Nothing should be cut off or overlap.
  4. Turn on forced colors (Windows High Contrast). Marks should stay visible.
  5. Simulate color vision deficiencies in the browser's developer tools.
  6. Turn on reduced motion and reload.

For a full audit, work through Chartability. The WAI tutorial on complex images and the UK Analysis Function chart guidance cover text alternatives in more depth.

By library
What each chart library does for accessibility out of the box, and what is left for you.