Add keyboard shortcuts for the review workflow #45

Open
opened 2026-07-28 04:59:55 +00:00 by claude-bot · 1 comment

Context

Reviewing a large collection means the same handful of actions repeated thousands of
times. Every mouse trip between the decision form and the next photo is multiplied by the
size of the collection, and at that scale keyboard operation is the difference between a
tool that gets used and one that gets abandoned.

Scope

Keyboard shortcuts across the review workflow.

Implementation notes

  • Cover the actions that repeat: approve, dispute, needs-review, skip, next and previous
    photo, toggle front/back, focus the notes field, focus the comment field, and submit.
  • Advancing to the next photo after a decision keeps the reviewer in flow — make that
    behaviour explicit and configurable rather than assumed.
  • Shortcuts must not fire while a text input has focus, and a discoverable escape from
    any field back to shortcut context is required.
  • A shortcut overlay (conventionally ?) listing every binding.
  • Destructive or hard-to-reverse actions should not sit on a single unmodified key.
  • Preserve accessibility: shortcuts supplement keyboard navigation, they do not replace
    proper focus management and ARIA semantics.
  • Rebinding is a nice-to-have; sensible defaults matter more.
  • Verify against the near-duplicate resolution queue too, which is similarly repetitive.

Done when

  • All primary review actions have keyboard shortcuts
  • Shortcuts never fire from within text inputs
  • A discoverable overlay documents every binding
  • Post-decision advance behaviour is explicit and configurable
  • Accessible focus management is unaffected

References

  • frontend/src/pages/ReviewWorkspace
  • docs/circa-ui-spec.md, docs/circa-spec.md Phase 4
## Context Reviewing a large collection means the same handful of actions repeated thousands of times. Every mouse trip between the decision form and the next photo is multiplied by the size of the collection, and at that scale keyboard operation is the difference between a tool that gets used and one that gets abandoned. ## Scope Keyboard shortcuts across the review workflow. ## Implementation notes - Cover the actions that repeat: approve, dispute, needs-review, skip, next and previous photo, toggle front/back, focus the notes field, focus the comment field, and submit. - Advancing to the next photo after a decision keeps the reviewer in flow — make that behaviour explicit and configurable rather than assumed. - Shortcuts must not fire while a text input has focus, and a discoverable escape from any field back to shortcut context is required. - A shortcut overlay (conventionally `?`) listing every binding. - Destructive or hard-to-reverse actions should not sit on a single unmodified key. - Preserve accessibility: shortcuts supplement keyboard navigation, they do not replace proper focus management and ARIA semantics. - Rebinding is a nice-to-have; sensible defaults matter more. - Verify against the near-duplicate resolution queue too, which is similarly repetitive. ## Done when - [ ] All primary review actions have keyboard shortcuts - [ ] Shortcuts never fire from within text inputs - [ ] A discoverable overlay documents every binding - [ ] Post-decision advance behaviour is explicit and configurable - [ ] Accessible focus management is unaffected ## References - `frontend/src/pages/ReviewWorkspace` - `docs/circa-ui-spec.md`, `docs/circa-spec.md` Phase 4
claude-bot added this to the v0.6.0 milestone 2026-07-28 04:59:55 +00:00
Author

Amended by the audit of 2026-07-28.

This issue binds keyboard shortcuts to navigation targets that nothing currently builds. The
review workspace has no next/previous control, no queue position, and no advance-after-decision.

That substrate is now #95 (v0.3.0), which defines a queue as (filter, sort, cursor) that the
workspace consumes — also the foundation the filmstrip (#115), disputes queue (#23), and
duplicates queue (#17) all need.

This issue should stay in v0.6.0 but depends on #95. Note also #102 (accessibility baseline): the
keyboard work here will land on whatever focus semantics exist at the time, so the semantics pass
is worth doing first.

**Amended by the audit of 2026-07-28.** This issue binds keyboard shortcuts to navigation targets that **nothing currently builds**. The review workspace has no next/previous control, no queue position, and no advance-after-decision. That substrate is now #95 (v0.3.0), which defines a queue as `(filter, sort, cursor)` that the workspace consumes — also the foundation the filmstrip (#115), disputes queue (#23), and duplicates queue (#17) all need. This issue should stay in v0.6.0 but depends on #95. Note also #102 (accessibility baseline): the keyboard work here will land on whatever focus semantics exist at the time, so the semantics pass is worth doing first.
Sign in to join this conversation.
No description provided.