Keyboard & focus
The Skip Link Points to Something That Isn't There
Keyboard users press "Skip to main content", but nothing happens, so they must tab through the whole menu on every page.
skip-linkBest practiceBest practice — not a WCAG requirement, but it helps people all the same.
- Status
- ModerateModerate — An annoyance, with a workaround.CurrentScanners run this rule today.
- Owner
- DesignDevTest
- Audit
- Automated+ManualA scanner finds it; a person confirms the fix.
Why it matters
A skip link is usually the first link on a page. It lets people jump past the header and menu, straight to the content.
If its target is missing or misnamed, the link does nothing. People who use a keyboard or switch must press Tab dozens of times on every page.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Keyboard-only users | They press the skip link and land back in the menu, with dozens of Tab presses still ahead. | High impact |
| Motor and dexterity | Switch users pay for every extra step, so a dead skip link costs real time and effort. | High impact |
| Screen reader users | They hear "Skip to main content, link", but it goes nowhere; most can still jump by headings instead. | Partial impact |
| Low-vision users (magnification) | Magnifier users who tab around lose their place when the skip link fails to move them. | Partial impact |
| Cognitive and neurodivergent users | A link that does nothing is confusing and makes people doubt the rest of the site. | Partial impact |
| Voice control users | Saying "click Skip to main content" does nothing useful, so they must scroll or name other links. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | This rule is a best practice, not a WCAG failure on its own. But WCAG 2.2 AA asks for a way to skip repeated content, and a broken skip link doesn't give one. | Moderate impact |
| Conversion | Long menus on every page slow keyboard users down, and some give up before checkout. | Moderate impact |
| SEO | Search engines don't care about skip links — no real benefit. | Low impact |
| Brand trust | A broken skip link is often the first thing keyboard users try, so it sets the tone. | Moderate impact |
| Cost to fix | Usually a one-line fix in the shared page template. | High impact |
Fixing it in code
Link and target names don't match
Don't
<a href="#main" class="skip-link">Skip to main content</a>
…
<main id="content">A screen reader says: “Skip to main content, link — then the next Tab goes to the first menu link”
Do
<a href="#main" class="skip-link">Skip to main content</a>
…
<main id="main" tabindex="-1">A screen reader says: “Skip to main content, link — then focus moves to the main content”
The href must match an id that exists on the page.
Target hidden from the page
Don't
<a href="#main">Skip to main content</a>
…
<main id="main" hidden>A screen reader says: “Skip to main content, link — and nothing moves”
Do
<a href="#main">Skip to main content</a>
…
<main id="main" tabindex="-1">A screen reader says: “Skip to main content, link — then focus lands in the main content”
A hidden target can't receive focus, so the link has nowhere to go.
Designer's handoff note
Show the skip link when it gets keyboard focus. Keep it hidden until then if you like.
Design how it looks on focus: clear text, strong contrast, top left of the page.
Quick test
Tool
The keyboard alone
Checklist
- Pass
- Focus lands on the first link or control inside the main content.
- Fail
- Focus goes to the first menu link, or nothing seems to happen.
What a green scan still misses
A scanner checks that the target exists. It can't tell whether the skip link is visible on focus, comes first, or lands somewhere sensible.
Reference
- Rule ID
skip-link- Raised by
- axe-core: “The skip-link target should exist and be focusable”
- WCAG
- Best practice — not a WCAG requirement
- Other standards
- RGAA 12.7.1
- Last reviewed
- 14 October 2026