Accessibility Insights

Back to Info and Examples for Accessibility Insights for Web

bypass

Web pages must allow keyboard users to bypass repeated blocks of content.

Why it matters

Web pages typically begin with blocks of content that repeat across multiple pages, such as banners and site navigation menus. A person who uses a mouse can visually skim past that repeated content and access a link or other control within the primary content with a single click.

Similarly, a bypass mechanism allows keyboard users to navigate directly to the page’s main content. Otherwise, reaching the primary content could require dozens of keystrokes. People with limited mobility could find this task difficult or painful, and people who use screen readers could find it tedious to listen as each repeated element is announced.

How to fix

Provide a mechanism that allows keyboard users to bypass repeated blocks of text using one of the following methods.

Good

  • Landmark regions

Better

  • Headings

Best

  • Skip link

Example

A web page has no mechanism for users to bypass the banner content that appears at the top of the page. It has no skip link, no headings, and no landmarks.

Keyboard users have to tab through numerous links in the site banner and navigation menus to get to the page's primary content.

… <html> <head> <style> body {background-color: powderblue; … </style> </head> <body> <div class="sitebanner">…</div> <div class="menubar">…</div> <div class="main">…

A skip link is added immediately after the page's <body> tag. Styling makes the skip link visible only when it has focus. Mouse users are unaware of it, but all keyboard users can take advantage of it. (Note that assistive technology users would still benefit from the addition of headings and landmarks.)

… <html> <head> <style> body {background-color: powderblue; … [#skip a {display: block; position: absolute; left: -999px; top: -999px;} #skip a:focus {left: 0; top: 0; padding: 6px; background: #fff; border:1px solid #990000;}] </style> </head> <body> [<div id="skip"> <a href="#content">Skip to main content</a> </div>] <div class="sitebanner">…</div> <div class="menubar">…</div> <div class="main" [id="content"]>…

About this rule

This rule passes if ANY of the following is true:

  • Valid skip link found
  • Page has a header
  • Page has a landmark region

More examples