Accessibility in React
Build React apps everyone can use: semantic HTML, focus after re-renders and route changes, ARIA with useId, live regions, keyboard widgets and a11y testing.
Accessibility (often shortened to a11y: an a, 11 letters, a y) means people can use your app however they use a computer: with a mouse, a keyboard only, a screen reader that reads the page aloud, a switch, voice control or a zoomed-in screen. The HTML course (/html, Phase 7) teaches the foundations: semantic elements, alt text, labels, keyboard focus and ARIA basics. This phase is about what React changes: components that render div soup, focus that gets lost when React replaces a part of the page or when a route changes, modals rendered through portals, async updates nobody hears about, ids that must be unique when a component is used many times, and interactive widgets you build yourself.
You'll start from the rule that solves most problems, use the right HTML element, then learn to manage focus with refs, connect labels, hints and errors with useId, announce changes with live regions, and build the WAI-ARIA Authoring Practices patterns (dialog, disclosure, tabs, menu button, combobox) with exact keyboard behaviour. The last topic shows how to test all of it: role queries, axe, keyboard-only and screen reader checks, reduced motion and contrast.
Every example runs real React 19 in your browser. Many of them log document.activeElement (the element that has keyboard focus) so you can see focus move, and the exercises check roles, aria-* attributes, focus and arrow-key handling just like an accessibility test would.
Practise this phase
Hands-on exercises: write the code, see your page live, and press Check to have it tested automatically.