Describe the bug
The application shell has no skip link or equivalent bypass control. On every route, keyboard users must traverse the same nine shell controls before they can reach the page's main content.
This makes repeated keyboard navigation unnecessarily costly and does not satisfy the bypass-blocks expectation in WCAG 2.4.1.
Steps/Code to Reproduce
- Open the frontend Home page with no element focused.
- Press Tab repeatedly.
- Observe focus moving through Take a tour, five primary navigation controls, Feedback, Security, and Theme.
- Main content is first reached on the 10th Tab press.
- Inspect the page for a skip or bypass control. None is present.
Expected Results
The first focusable control should be a visible-on-focus link that moves focus directly to the existing application main landmark. The link should work consistently on every route and remain keyboard-accessible in both themes and responsive layouts.
Actual Results
There are zero bypass controls. Keyboard users must traverse nine repeated shell controls before reaching route content each time.
MainLayout.tsx already owns the application main landmark, so it can provide the stable destination for a skip link.
Screenshots
Session-local audit evidence: daily-2026-09-07/manual/keyboard-bypass-ux.json records the complete focus sequence and confirms zero bypass candidates.
Versions
- OS: Windows
- Browser: Chromium through Playwright 1.62.1
- Python: 3.14.4
- Frontend: 1.2.0-dev.0
- PyRIT:
main at 623d57a3b26e214f53e671c593953b21da6d8b77
- Python package listing: N/A; this is a frontend accessibility defect.
Describe the bug
The application shell has no skip link or equivalent bypass control. On every route, keyboard users must traverse the same nine shell controls before they can reach the page's main content.
This makes repeated keyboard navigation unnecessarily costly and does not satisfy the bypass-blocks expectation in WCAG 2.4.1.
Steps/Code to Reproduce
Expected Results
The first focusable control should be a visible-on-focus link that moves focus directly to the existing application
mainlandmark. The link should work consistently on every route and remain keyboard-accessible in both themes and responsive layouts.Actual Results
There are zero bypass controls. Keyboard users must traverse nine repeated shell controls before reaching route content each time.
MainLayout.tsxalready owns the applicationmainlandmark, so it can provide the stable destination for a skip link.Screenshots
Session-local audit evidence:
daily-2026-09-07/manual/keyboard-bypass-ux.jsonrecords the complete focus sequence and confirms zero bypass candidates.Versions
mainat623d57a3b26e214f53e671c593953b21da6d8b77