Skip to content

DS-078: Add SkipLink and main-content focus handling #489

Description

@IbrahimIjai

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave program

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions