~/talk

Design System Carnival! One accessible component, many pretty masks

Talkat reactjsday 2022 · on Friday, 2022-10-21· [react, accessibility]
slides:none on file

Builds a single reusable, accessible disclosure widget that can masquerade as tooltip, popover, dropdown menu or embedded search and demonstrates real code: React hooks (useState/useRef/useEffect), ARIA attributes (aria-expanded / aria-haspopup / aria-label), focus management (Escape returns focus, click‑outside closes, optional roving focus), and icon handling via Font Awesome SVG with aria-hidden. Demos mostly work; one ref‑forwarding bug breaks a menu demo, showing how quickly masks tangle when extra behaviors get grafted on.

AI-written summary · about

  1. 0:00Welcome
  2. 2:08Design System Carnival
  3. 7:12Design Systems metaphor
  4. 11:46Disclosure widget foundation
  5. 17:33Focus states for accessibility
  6. 21:06Click and escape management
  7. 23:12Toggle tips with icons
  8. 26:45Search forms with disclosure
  9. 31:02Disclosure widget pitfalls
  10. 32:49Live demo
  11. 42:55Avoiding mask anti-patterns
  12. 43:36Conclusion and key takeaways
~/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.