Building Accessible Reusable Components
summary
Semantic tags alone prove insufficient; the team builds a tab widget, a listbox with filtering, and a notification dialog inside the open‑source Primer design system using React bindings and a useFocusZone hook. VoiceOver on macOS highlights problems (three tabs initially read as many buttons, a 44‑item list was hard to traverse) so ARIA fixes — aria-selected, aria-describedby, live status regions and aria‑disabled plus keyboard arrow handling — get added and make the components announce counts (13 results, 0 results) and navigate reliably.
AI-written summary · about
chapters (14)
- 0:00Accessible components intro
- 2:29WCAG ARIA and APG guidelines
- 4:14Semantic HTML limitations
- 7:42Screen reader tab demo
- 13:05ARIA tabs and keyboard nav
- 18:00Fixing tab with ARIA focus
- 19:25Testing notifications screen reader
- 22:36Hidden form options accessibility
- 26:55Checkbox labels with ARIA status
- 29:44Checkboxes fail keyboard users
- 30:48List box replaces checkboxes
- 33:33List box filter and results
- 37:02Empty states and status
- 38:24Final takeaways resources
related talks
34mBuilding Accessible Components in React
52mA11y with React Components
28mBuilding Accessible React Components
23mBuilding Accessible Components: Best Practices and Business Buy-In
34mBuilding Accessible Web Apps in React
50mAccessibility-flavored React components...
40mAccessibility-flavored React components make your design system delicious
42mReusable Widgets That Work!
