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
Acceptance Criteria
- Press Tab to navigate through all interactive elements in order
- Press ? to see keyboard shortcuts dialog
- Press Esc to close any modal/dialog
- Focus ring is visible on all focused elements
- 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
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
Acceptance Criteria
Files to Modify
frontend/src/hooks/useKeyboardShortcuts.ts— global shortcut handlerfrontend/src/components/KeyboardShortcutsDialog.tsx— help dialogfrontend/src/hooks/useFocusTrap.ts— enhance focus trap behaviorfrontend/src/app/layout.tsx— add skip-to-content linkfrontend/src/styles/globals.css— ensure visible focus ring styles