Access is part of the merge gate, not an extra.
What every piece does
- Reduced motion: a complete still frame, not a broken one.
- Keyboard: every action is a native element in reading order with a visible focus ring; composite widgets (tabs, trees, docks) document their keys on their page.
- Screen readers: semantic elements with accessible names; decorative layers are hidden; state is exposed through ARIA.
- Touch: targets are at least 36 px (44 px for primary actions), and nothing important depends on hover.
- Contrast: text meets AA in both themes with the shipped looks.
What you must do
- Check contrast when you recolour. A scene's palette changes the text colour it needs.
- Write real alt text for pictures you pass in.
- Keep headings in order and use one
h1per page. - Do not hide content behind a hover.
Testing
Run axe in light and dark, tab through the page once, and turn on reduced motion. The library's own pieces pass all three before they merge.