Problem
Power users have no keyboard access beyond the global search (Cmd/Ctrl+K). Creating and editing tasks requires mouse/touch for everything.
Definition
A minimal, discoverable keyboard layer for the board, active only when the user is not typing:
- n: new task (opens the create modal with the current board/project context)
- ?: cheat sheet overlay listing all shortcuts
- Arrow keys: move focus across cards (roving tabindex, respecting current filters and column order)
- Enter: open the focused task; e: open it on the Details tab; Esc: close modal/overlay
- Cmd/Ctrl+K stays as is (global search)
Scope
In scope:
- Board page only (project board and general board).
- Roving focus: exactly one card is focusable at a time; focus ring visible.
- The overlay shows the actual shortcuts per platform (Cmd vs Ctrl, mobile hint: not available).
- All shortcuts ignored while focus is in an input, textarea, contenteditable or any modal (except Esc).
Out of scope:
- Reordering cards by keyboard (drag stays mouse/touch).
- Shortcuts in other pages (Today, Summary, Routines) beyond Esc.
- Custom/remappable keys.
Technical notes
- Cards already expose data-task and role=button; add a roving tabindex managed by a small hook in BoardPage.
- NewTaskModal is already opened via modal-context openNewTask(defaults), reuse it.
- The ? overlay: new component, dismissible with Esc or ?, no route change.
- Mind existing listeners: SearchModal (Cmd/Ctrl+K) captures at window level with input guards; follow the same pattern (input/textarea/contenteditable guard before handling single-key shortcuts).
- i18n es/en required; shortcuts themselves stay non-localized.
Acceptance criteria
- n opens the create modal with the current project prefilled.
- Arrow keys cycle cards in visual order and skip filtered-out/archived cards.
- ? opens the overlay; Esc closes it; no shortcut fires while typing in any field.
- Existing E2E/Playwright board flows keep passing.
Problem
Power users have no keyboard access beyond the global search (Cmd/Ctrl+K). Creating and editing tasks requires mouse/touch for everything.
Definition
A minimal, discoverable keyboard layer for the board, active only when the user is not typing:
Scope
In scope:
Out of scope:
Technical notes
Acceptance criteria