React accessibility guide
Components compile to HTML. Tests in CI help, but the shipped DOM is what assistive tech receives.
Run a free scan
Scan a staging or production URL after each meaningful UI change.
Names and roles
Prefer native elements. When you must use divs, wire aria-* carefully and validate in the accessibility tree.
Focus and modals
Move focus into dialogs, trap it while open, and restore on close. Announce async updates with live regions when needed.
Common issues
Empty icon buttons, custom selects without keyboard support, and route changes that do not move focus.
Fixes
Extract accessible primitives, add Storybook a11y checks, and keep a short keyboard script for releases.
Questions people ask
- jsx-a11y?
- Keep it; scans still add a real-page safety net.
- RSC?
- Server output is still scanned as HTML.