~/talk

Let's build a Spatial Navigation library

Talkat Armada JS 2023 · 2023-10-05..10-06· [accessibility, frontend-architecture]
slides:none on file

Builds a small Spatial Navigation library for TV UIs using React and react-router, registering interactive nodes, listening to document keydown events and using element.getBoundingClientRect to pick the nearest target. Implements a navigation engine class with register/unregister and subscriber callbacks, a hook returning a ref and focus boolean, and a circular navigation feature via navigational containers and ancestor IDs. Demo works end to end, notes performance overhead about ~9 ms to optimize.

AI-written summary · about

  1. 0:00Introduction
  2. 2:26Why build a library
  3. 6:20First approach limitations
  4. 8:30Registering navigational nodes
  5. 11:57Handling TV control events
  6. 13:23Selecting next focus node
  7. 15:52Making focus visible
  8. 17:37Circular navigation concept
  9. 19:45Implementing circular navigation
  10. 24:38Handling complex layouts
  11. 25:21Performance considerations
  12. 25:43Closing and 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.