WCAGdesk
axe-core: bypass · WCAG 2.4.1 Bypass Blocks · Level A

How 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.22.4.1 Bypass Blocks (Level A)
EN 301 5499.2.4.1
BFSG / EAABFSG § 12 via EN 301 549 · EAA Annex I
CategoryKeyboard & 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

Is a <main> landmark enough?

It satisfies axe and helps screen-reader users, but a visible skip link is still the best experience for sighted keyboard users.

Why does my skip link not work?

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.