Overview
Pages with repeated navigation must provide a way to skip directly to the main content, so keyboard users don't have to tab through the same nav links on every page.
Every page that repeats a navigation menu forces keyboard and screen reader users to Tab through every nav link before reaching the content—on every page. A skip link (WCAG 2.4.1) lets them jump straight to the main content in one keystroke. It’s invisible to mouse users, takes a few minutes to add, and dramatically improves the experience for keyboard users on content-heavy sites.
The Problem
This pattern is inaccessible — avoid it.
The Fix
Use this accessible pattern instead.
Step-by-step
Add a skip link as the very first element in <body>.
The link target (#main-content) must exist and have tabindex="-1" to accept programmatic focus.
The link can be visually hidden but must become visible on keyboard focus.
For apps with multiple repeated sections, you can add multiple skip links.
Common Mistakes
No skip link at all on pages with large navigation.
A skip link whose target id doesn’t exist or can’t receive focus.
Hiding the skip link with display:none, which removes it for keyboard users too.
The skip link never becoming visible when focused.
How to Test for It
Load the page and press Tab once—the first focusable item should be the skip link, and it should appear.
Activate it and confirm focus jumps to <main>.
Verify the target has tabindex="-1" so it accepts programmatic focus.
Framework Notes
How to apply this fix in your stack.