Design System Glossary

Screen Reader Support

Screen reader support means a Design System works with assistive technology — NVDA (Windows), JAWS (Windows/Mac), VoiceOver (Mac/iOS), TalkBack (Android) — that reads the page aloud and lets visually impaired users navigate and interact.

Screen readers don't see CSS or layout. They read semantic HTML and ARIA attributes. A component is "screen reader ready" when it announces:

Its name: A button says "Submit", a checkbox says "Remember me".
Its role: "Button", "checkbox", "menu item", "modal dialog".
Its state: "Checked", "disabled", "expanded", "error".
How to interact: Implicitly, if the role is correct. A button announces that pressing Enter activates it.

In practice, this means:

Use semantic HTML. <button> not <div onclick>. <a href> not <div> with click handler. <label> with <input> not a label div nearby.
Add ARIA when needed. If you can't use semantic HTML (maybe your design breaks out of form conventions), use role="button" and aria-label to fill the gaps. But semantic HTML is always better.
Label everything. Inputs need <label>. Buttons need visible text or aria-label. Icons need aria-label or a label.
Announce dynamic changes. If content appears or disappears, use aria-live to tell screen readers.

The Design System documents this in component documentation — showing developers which ARIA attributes to add and what semantic HTML looks like. Most components should work out of the box if built with semantic HTML; complex components (Menu, Dialog, Tabs) need JavaScript to manage focus and ARIA state.

Testing: actually use a screen reader. NVDA is free; VoiceOver is built into Mac. Listen to how the component announces itself. Does it make sense? Can you navigate with arrow keys? Can you activate it?

Related: WAI-ARIA · WCAG · Keyboard navigation · Focus management · Accessible design