~/talk

Building Accessible Reusable Components

Talkat JSHeroes 2024 · 2024-05-23..05-24· [react, accessibility]
slides:none on file

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

  1. 0:00Accessible components intro
  2. 2:29WCAG ARIA and APG guidelines
  3. 4:14Semantic HTML limitations
  4. 7:42Screen reader tab demo
  5. 13:05ARIA tabs and keyboard nav
  6. 18:00Fixing tab with ARIA focus
  7. 19:25Testing notifications screen reader
  8. 22:36Hidden form options accessibility
  9. 26:55Checkbox labels with ARIA status
  10. 29:44Checkboxes fail keyboard users
  11. 30:48List box replaces checkboxes
  12. 33:33List box filter and results
  13. 37:02Empty states and status
  14. 38:24Final takeaways resources
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.