Skip to main content
Perceivly: Perceivly home

2.4.1 Bypass Blocks

Level A · added in WCAG 2.0

When blocks of content, such as the header and main navigation, repeat on many pages, users need a way to skip past them. Common methods are a skip link, landmark regions and headings.

Who it helps

Keyboard users would otherwise have to press Tab through every navigation link on every page before reaching the content. Screen reader users can jump by landmark or heading, and a skip link helps sighted keyboard and switch users too.

How to meet it

Examples

Fails:The only skip link points to a missing id, and the page has no main landmark or headings to jump to
<a href="#content" class="skip-link">Skip to main content</a>
<nav><!-- 40 navigation links --></nav>
<div class="main">
  <p class="title">Pricing</p>
</div>
Fails:A skip link hidden with display: none can never receive focus; with no landmarks or headings, nothing else lets people skip
.skip-link { display: none; }
Passes:The skip link targets the main landmark, which has a matching id
<a href="#main" class="skip-link">Skip to main content</a>
<nav><!-- 40 navigation links --></nav>
<main id="main" tabindex="-1">
  <h1>Pricing</h1>
</main>
Passes:The skip link is off screen until it receives keyboard focus
.skip-link {
  position: absolute;
  left: 0;
  top: -100px;
}
.skip-link:focus { top: 0; }

Can a scanner detect this?

Partly

Automated tools check that a page has at least one bypass method: a landmark, a heading or an internal skip link. They cannot confirm that a skip link appears on focus and moves focus to the right place. Test it with the keyboard.

axe-core rules that test it

Common mistakes

Official W3C explanation of 2.4.1

Check your own page

See which automated WCAG checks your page fails, with the failing elements and how to fix them.

Enter a page address, for example example.com/shop.

Reviewed November 2, 2026