Skip to content

Add keyboard shortcuts for common board actions #256

Description

@gnacho

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.

Activity

  1. added a commit that references this issue on Oct 3, 2026
    59abd4e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions