bypass · WCAG 2.4.1 Bypass Blocks · Level AHow to fix the “bypass” accessibility issue
The axe-core bypass rule fails when a page offers no mechanism to skip past repeated blocks (header, nav) to the main content. WCAG 2.2 (2.4.1, Level A) requires a bypass — most commonly a “skip to content” link or proper landmarks.
What axe-core checks
axe-core looks for a skip link, a <main> landmark, or heading structure that lets a user jump past repeated navigation. If none exists, it fails.
Which standard this maps to
| WCAG 2.2 | 2.4.1 Bypass Blocks (Level A) |
| EN 301 549 | 9.2.4.1 |
| BFSG / EAA | BFSG § 12 via EN 301 549 · EAA Annex I |
| Category | Keyboard & Focus |
Why it matters
A keyboard user without a skip link must Tab through every nav item on every page before reaching the product. On a shop with a big mega-menu that is dozens of presses per page — a Level A barrier.
Common causes
- No skip link and no
<main>landmark - A skip link that is hidden with
display:none(also hidden from keyboard) - A skip-link target that has no
id - Everything wrapped in
<div>with no landmarks
How to fix it
Add a visible-on-focus “skip to content” link as the first focusable element, pointing at the main region. Also wrap primary content in <main id="main">.
<body>
<a class="skip-link" href="#main">Skip to content</a>
<header>…</header>
<main id="main">…</main>
FAQ
It satisfies axe and helps screen-reader users, but a visible skip link is still the best experience for sighted keyboard users.
It must be in the DOM and focusable (not display:none), and its href must match the id of the target element.
Find every issue like this on your site
Run a free WCAG 2.2 AA scan — real axe-core engine, no signup. Or get a timestamped evidence report for €29.