Accessibility

Skip link

A skip link is a link placed first on a page that, when activated, moves keyboard focus past repeated blocks such as the header and navigation to the main content.

It is the most common way to meet WCAG 2.4.1 Bypass Blocks (Level A). It can stay hidden until it receives keyboard focus, but it must then be plainly visible and must actually move focus.

At a glance

Also calledSkip navigation link, skip to content link, bypass link
Required by2.4.1 Bypass Blocks, Level A: a mechanism to bypass blocks of content repeated on multiple pages
The techniqueG1: a link at the top of each page that goes directly to the main content; landmarks (ARIA11) and headings (H69) are also sufficient
VisibilityIt may be hidden until it has keyboard focus; 2.4.1 does not require it to be visible at rest (G1)
The markupAn anchor whose href names the id on the main element, so activating it moves focus into the main region (WebAIM)
Found byOverlayQA Accessibility Audit reports "No skip navigation link found" when a page has a main landmark but no skip link among its first three focusable elements; axe-core's bypass rule (wcag2a) runs in the extension and the free checker

Why it matters

Sighted mouse users ignore repeated navigation by looking at the middle of the screen. Keyboard and screen reader users meet it in order, on every page. The W3C's own example is a news home page where reaching the main story without a skip link takes about 40 Tab presses, and a screen reader user hears 200 words first (Understanding 2.4.1); the same page notes this can take a long time and cause severe physical pain for some users. WebAIM adds that screen readers already have headings and landmarks to jump with, so the people a skip link helps most are sighted keyboard users, who have nothing else (WebAIM).

How do you build a skip link?

Examples

Skip linkVerdict
Visible "Skip to main content" as the first linkPasses 2.4.1; the clearest form
Off-screen link that slides in on focusPasses; the pattern WebAIM recommends for sighted keyboard users
display: none until a script shows itFails: unreachable by keyboard
Link placed after the navigationFails G1: the user has already tabbed through what it skips
Link whose target id no longer existsFails: nothing happens on activation
Main landmark and headings, no skip linkCan pass 2.4.1 through landmarks; still a gap for sighted keyboard users

Common mistakes

Frequently asked questions

Does WCAG require a skip link?

Not by name. Success criterion 2.4.1 Bypass Blocks, Level A, requires a mechanism to bypass blocks of content repeated on multiple pages. A skip link is the first sufficient technique the W3C lists (G1), but grouping repeated content with landmarks or headings is also sufficient. WebAIM still recommends a skip link, because landmarks and headings help screen reader users and do little for sighted keyboard users.

Should a skip link be visible all the time?

It can be, and the W3C says always-visible links are preferable, but 2.4.1 does not require it. The common compromise is a link that is hidden off screen and becomes prominently visible when it receives keyboard focus. What it must never be is removed with display: none or the hidden attribute, which take it out of keyboard navigation entirely.

Where does a skip link go in the HTML?

As the first focusable element inside the body, before the header and navigation, as an anchor whose href is the id of the main content region, for example href="#maincontent" paired with a main element carrying id="maincontent". Activating it moves keyboard focus into the main region, and the next Tab press continues from there.

Do you need more than one skip link?

Usually not. WebAIM notes that multiple skip links are rarely necessary; one link to the main content covers the common case. In-page links elsewhere on the page can let people jump to or over other sections, such as a long list of filters before search results, which the W3C gives as an example of a block worth bypassing.

Sources: WCAG 2.2, 2.4.1 Bypass Blocks, WCAG 2.2, Technique G1, WebAIM, Skip Navigation Links, Deque Systems, axe-core Rule Descriptions.

Last updated October 22, 2026