Context
The canvas's core review loop is already fully keyboard-drivable (verified in source, 2026-07-25): every block is tabindex="0" (stamped at render, renderer.ts:82), Enter/Space on a focused block opens the inline composer, Cmd/Ctrl+Enter submits, Esc cancels, and the "+" affordance and marker-card edit/delete actions are real <button>s with aria-labels. A complete spec/plan review pass works without a mouse today.
Gap: possible-by-keyboard ≠ pleasant-by-keyboard
- Linear-only traversal. Tab-walking is the only navigation — a 300-block spec is 300 tab stops. No jump keys for: next/previous heading, next/previous block carrying a marker, first/last marker, top/bottom of document.
- Focus management unaudited. Where focus lands after Esc-cancel, after submit, and after deleting a card is unverified — a keyboard flow that drops focus to the document root after every action forfeits its position and undoes the win.
- Minimap focusability unverified. Dots have click handlers and
cursor: pointer; whether they're reachable and activatable by keyboard (and whether activating one moves focus to the target block) needs checking.
- No shortcut discoverability. Nothing surfaces the existing keys (Enter-to-comment, Cmd+Enter, Esc) — a small keys legend or aria-described hint would make the existing support findable.
Proposed
- Jump navigation (suggested, bikeshed at plan time):
n/p next/previous annotated block, ]/[ next/previous heading, with focus + scroll-into-view.
- Focus-management pass: Esc returns focus to the originating block; submit returns focus to the block (or its new card); delete moves focus to the neighboring card or block.
- Minimap dots: ensure real-button semantics; activation focuses the target block.
- A discoverable keys hint (e.g.
? overlay or footer legend).
Enhancement; separate from the affordance hover/sizing bug (filed independently) because this is a feature while that is a defect.
Context
The canvas's core review loop is already fully keyboard-drivable (verified in source, 2026-07-25): every block is
tabindex="0"(stamped at render,renderer.ts:82), Enter/Space on a focused block opens the inline composer, Cmd/Ctrl+Enter submits, Esc cancels, and the "+" affordance and marker-card edit/delete actions are real<button>s with aria-labels. A complete spec/plan review pass works without a mouse today.Gap: possible-by-keyboard ≠ pleasant-by-keyboard
cursor: pointer; whether they're reachable and activatable by keyboard (and whether activating one moves focus to the target block) needs checking.Proposed
n/pnext/previous annotated block,]/[next/previous heading, with focus + scroll-into-view.?overlay or footer legend).Enhancement; separate from the affordance hover/sizing bug (filed independently) because this is a feature while that is a defect.