Home
Bookmarks
Leagues
LEARN
Courses
Career Paths
Assessments
Tutorials
Arcade
Glossary
GROW
Certifications
Log in
Glossary
Log inSign up
Courses/Accessible Interface Foundations/Keyboard paths and visible focus/
Exercise #8

Single-Page App (SPA) Route Transitions

In traditional multi-page websites, clicking a link triggers a full browser reload. The browser automatically resets focus to the top of the new document and announces the <title>.

In Single-Page Apps (React, Next.js, Vue), client-side routing updates the DOM dynamically without a page refresh.

The Blind Navigation Trap: If an app does not manage focus during route changes:

  • The keyboard user clicks 'Profile', the URL changes, and new content appears.
  • But focus remains trapped on the clicked link in the header or gets lost in the body.
  • Screen readers stay completely silent, leaving blind users wondering if the click worked.

The Fix: On route change, update document.title, move programmatic focus to the new page's <h1> (using tabindex="-1"), or announce the new page name via an aria-live region.

Topics

Sequential Focus Navigation & DOM Order
The Crime of 'outline: none'
The Three Tabindex Rules: 0, -1, and Never > 0
Skip Links: Bypassing Blocks (WCAG 2.4.1)
Modal Dialogues: The Sacred Focus Trap
Escape Key Dismissal: WCAG 1.4.13 & 2.1.2
Composite Widgets: Arrow Keys vs Tab Key
Single-Page App (SPA) Route Transitions
Target Size & Spacing (WCAG 2.5.5 / 2.5.8)
Master Challenge: Auditing a Broken Modal Dialogue

From lesson

2

Keyboard paths and visible focus

Level 1 · Accessible interaction basics

Top contributors

Community contribution details will appear here once real learner activity is available.

Share