Context
Keyboard and screen-reader users currently traverse global navigation on every
route change. The application needs a reliable way to bypass repeated chrome
and reach the current page content.
Scope
- Add a shared SkipLink styled with design-system focus and surface tokens.
- Give the application shell a stable main-content target.
- Move focus to the page heading or main region after client-side navigation
when appropriate.
- Prevent focus movement during query-only or tab-only state changes.
Acceptance criteria
- SkipLink is the first keyboard-focusable element and appears visibly on focus.
- Activating it moves focus to the main region without changing the URL unexpectedly.
- Route navigation announces the new page title once.
- Pointer navigation does not receive intrusive focus outlines or scrolling.
- Playwright tests cover skip activation and focus after route changes.
Out of scope
- Redesigning global navigation.
- Managing focus inside dialogs, menus, or other overlays.
Context
Keyboard and screen-reader users currently traverse global navigation on every
route change. The application needs a reliable way to bypass repeated chrome
and reach the current page content.
Scope
when appropriate.
Acceptance criteria
Out of scope