Data visualization / Guide
Accessible chart design
Make chart labels, exact values, keyboard interaction, and themes readable for everyone.
Readable beyond the plot.
Every comparison has a name.
Responses per 100 invited · June → July 2026
Design increased from 62 to 88 responses per 100 invited. Support decreased from 81 to 74.
CategoryJune → July
- Design62 88
- Support81 74
View chart data
| Category | June | July |
|---|---|---|
| Design | 62 | 88 |
| Support | 81 | 74 |
Try the data alternative. Focus View chart data above and press Enter or Space. The table repeats both months with row and column headings; the visible labels also keep the comparison readable when colors are difficult to distinguish.
View the labels, summary, and exact-data options
<DumbbellChart
aria-label="Survey response coverage by team in June and July 2026"
heading="Every comparison has a name."
description="Responses per 100 invited · June → July 2026"
summary="Design increased from 62 to 88 responses per 100 invited. Support decreased from 81 to 74."
data={[
{ id: 'design', label: 'Design', reference: 62, value: 88 },
{ id: 'support', label: 'Support', reference: 81, value: 74 }
]}
domain={{ min: 0, max: 100 }}
referenceLabel="June"
valueLabel="July"
showTable
/><DumbbellChart
aria-label="Survey response coverage by team in June and July 2026"
heading="Every comparison has a name."
description="Responses per 100 invited · June → July 2026"
summary="Design increased from 62 to 88 responses per 100 invited. Support decreased from 81 to 74."
data={[
{ id: 'design', label: 'Design', reference: 62, value: 88 },
{ id: 'support', label: 'Support', reference: 81, value: 74 }
]}
domain={{ min: 0, max: 100 }}
referenceLabel="June"
valueLabel="July"
showTable
/>- Name the comparison. Supply an
aria-label, a visibleheading, and adescriptionwith the unit and period. Add a factualsummarywhen readers need a written takeaway. - Keep exact values reachable. Leave
showTableenabled. The data disclosure opens with Enter or Space. Only hide it when an equivalent accessible data view is already provided nearby. - Localize the whole experience. Use
labelsfor messages and data-table headings, andvalueLabel,referenceLabel, ortargetLabelfor the measure names. Elements uses label attributes such asnot-available-labelandview-data-label. - Use color deliberately. Categorical tones such as
series-1work across themes. Reservesuccess,warning, anddangerfor meaningful status. Pair color with labels or mark shape. - Match interaction to the chart. Interactive LineChart supports pointer, touch, arrow keys, Home, End, and Escape. Lollipop, dumbbell, and bullet charts expose values directly and through the disclosure; they do not use the line-chart cursor.
- Test the context. Check narrow cards, long labels, dark mode, keyboard navigation, enlarged text, missing measurements, and your largest realistic dataset. Split dense comparisons into focused groups instead of shrinking labels.
Use presentation="bare" when a surrounding Lumen Card already owns the surface. Keep the chart’s name and context available, and let the parent layout own spacing.