Skip to content

[Frontend] Implement comprehensive keyboard navigation and shortcuts system #173

Description

@Penielka

Description

Build on existing ARIA improvements by adding a keyboard shortcuts system. All interactive elements should be reachable via Tab, major actions should have shortcut keys (e.g., Ctrl+K for search, Esc to close modals), and a keyboard shortcut help dialog should be available (? key).

Definition of Done

  • All interactive elements have visible focus indicators
  • Tab order follows logical reading order
  • Skip-to-content link on all pages
  • Global shortcuts: Ctrl+K (search), ? (shortcuts help), Esc (close/dismiss)
  • Page-specific shortcuts for common actions
  • Keyboard shortcuts dialog listing all available shortcuts
  • Shortcuts do not conflict with browser/OS defaults
  • Focus trap implemented in modals, drawers, and dropdowns

Acceptance Criteria

  1. Press Tab to navigate through all interactive elements in order
  2. Press ? to see keyboard shortcuts dialog
  3. Press Esc to close any modal/dialog
  4. Focus ring is visible on all focused elements
  5. Skip-to-content link appears on first Tab press

Files to Modify

  • New file: frontend/src/hooks/useKeyboardShortcuts.ts — global shortcut handler
  • New file: frontend/src/components/KeyboardShortcutsDialog.tsx — help dialog
  • frontend/src/hooks/useFocusTrap.ts — enhance focus trap behavior
  • frontend/src/app/layout.tsx — add skip-to-content link
  • Multiple component files — add tabIndex, aria attributes, role attributes
  • frontend/src/styles/globals.css — ensure visible focus ring styles

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions