2.4.1 - Skip to main content

Give keyboard and screen reader users a way to go directly to the page's main content.


Summary

When content (like a header with navigation links) is repeated at the top of several pages, keyboard users should be able to bypass it and move the keyboard focus directly to the start of the main content area of the page.


Requirements (Web only)

  • A "Skip to content" link is provided, allowing users to move the keyboard focus directly to the main content area;
  • The "Skip to content" link is located at (or close to) the start of the page;
  • If the "Skip to content" link is hidden at initially, it becomes visible when it receives keyboard focus.
  • The <main> element is used to represent the main content area of the page.

Common mistakes

  • The <main> element has been used, but there is no skip link that points to it;
  • A skip link is provided, but it is always visually hidden and only available to screen reader users.

Why?

This ensures that people who do not use a mouse can quickly and easily reach the primary content of the page.

Official wording in the Web Content Accessibility Guidelines

2.4.1 Bypass Blocks: A mechanism is available to bypass blocks of content that are repeated on multiple Web pages. (Level A)

See the W3C's detailed explanation of this guideline with techniques and examples.


Guidance for Design

  • Provide visual styles and position for when the link received keyboard focus
  • Label the link 'Skip to content' (like the BBC) or 'Skip to main content' (like Google)

Examples


Guidance for Web

  • A a element with the text "Skip to main content" is placed right at the start (or very near the start) of the page.
  • The a element has an href attribute pointing to the id of the page's main element.
  • If that "Skip to main content" link is hidden by default, it becomes visible on :focus.

Basic example of a "Skip to main content" link

<body>
  <a href="#main">Skip to main content</a>

  <!-- header and navigation go here -->

  <main id="main">
    <h1>Main heading on the page</h1>

    <p>This is the first paragraph of content on the page</p>

    <!-- ... -->
  </main>

  <!-- ... -->
</body>

More guidance for Web