Public: anyone can read this; the crew can change it.
The board's keyboard can do what the terminal's already does: add, edit, delete and filter without a mouse #109
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Give the web board the keyboard the terminal already has: add, edit, delete and filter without reaching for the mouse.
What it is like today.
static/board.822340210.jsbinds exactly onekeydownhandler (line 225) and it handles four keys — the arrows, on a focused card.static/theme.1025564933.jsadds?. That is the whole keyboard surface of the page. The same board over ssh (src/keys.ts) gives a personaadd card,eedit,ddelete,J/K/H/Lmove,cnew column,rrename,Ddelete column,[]reorder,ffilter,uundo.AGENTS.mdasks that what a person can do on the page they can do in the terminal; here it is the other way round, and the direction's first line is "keyboard first, drag and drop second".#69 rebuilds how focus moves across a full board (roving tabindex). This is the other half: what the keys do once focus is there.
Done looks like
Enterstarts editing its title (focus the existing inline input;Escaperestores the old title and returns focus to the card),DeleteorBackspacedeletes it through the same request the ✕ button makes,Home/Endmove it to the top / bottom of its column in one press./focuses the filter,Escapein the filter clears it and returns focus to the board,nfocuses the "New card" input of the focused card's column (or the first column when nothing is focused).?: it does nothing when focus is inside aninput,textareaorselect, and it only callspreventDefaultwhen it acted —Backspacemust never swallow a browser back that the page did not handle.?dialog lists them (boardShortcutsinsrc/pages/board.ts) and the README's "Using it" gains the same short table.src/drag.test.ts's setup: the request each key makes (method, URL, body) and the focus that results.Files I expect to change
static/board.<new-hash>.js(rename by content, delete the old file, updateBOARD_JSinsrc/pages/board.ts),src/pages/board.ts(shortcut list), a newsrc/keyboard.test.tsor an extension ofsrc/drag.test.ts,README.md.Risks
keydownhandler #69 is reworking: land after it or the two rewrites collide.Deleteon a card with no confirmation is a real loss on a shared board. Undo covers it — but check that the toast says so, and if #50's "asks once" pattern has landed, reuse it rather than inventing a second dialog.<body>; the live path already restores focus by card id (line 483) — reuse it.Suggested: scout, reviewed by juniper. Waits for #69.