aboutsummaryrefslogtreecommitdiff
path: root/tests/nvidia-preflight
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-16 15:56:54 -0500
committerCraig Jennings <c@cjennings.net>2026-07-16 15:56:54 -0500
commit10964001cf3b391011b7b48bd0d41f2e73ee261b (patch)
tree3ae8af93094faf4dad6716662f34da604fde6cdd /tests/nvidia-preflight
parentf235097b745bfee74c91973fd9739b4bab06962b (diff)
downloadarchsetup-10964001cf3b391011b7b48bd0d41f2e73ee261b.tar.gz
archsetup-10964001cf3b391011b7b48bd0d41f2e73ee261b.zip
docs(gallery): record the keyboard contract for the widget kit
The kit already held both halves of the answer without stating it. GW.slideRule takes arrow keys bound to its own focusable element, which is why it never fights the gallery's global Escape handler: the browser arbitrates focus. But Emacs can't work that way. The SVG region is an image and never sees a keypress, so there the mode's keymap owns delivery. That's the same split as the tick contract, so I put it beside it. The target owns focus and delivery, the builder declares what it accepts through a KEYS table. Deliberately a table rather than a function over a DOM event: the Emacs port installs it into a keymap and never sees a keydown, so a function would force it to re-derive the widget's intent and the two bindings would drift. The five rules are each a bug someone ships otherwise. Never listen on document. Spend preventDefault only where there's a default worth killing. Let Tab and Escape bubble. press filters rather than trusts. Click and key both route through press.
Diffstat (limited to 'tests/nvidia-preflight')
0 files changed, 0 insertions, 0 deletions