Website problems

No skip link

A skip link is the first focusable element on a page, offering to move focus past the repeated navigation directly to the main content. Without one, a keyboard user tabs through the entire menu again on every page they visit — twenty or thirty presses before reaching anything specific to the page. It is one of the cheapest accessibility improvements there is, and the ones that exist are frequently broken in ways nobody notices.

What it is for

Site navigation repeats on every page, and a keyboard user traverses it every time unless offered a way past.

On a site with a large menu that is dozens of key presses per page, which turns ordinary browsing into work.

Screen reader users have landmark navigation as an alternative, which helps and does not cover keyboard-only users with no screen reader.

The relevant WCAG criterion asks for a mechanism to bypass blocks of repeated content, and a skip link is the usual answer.

It costs one link and one identifier, which is why its absence is worth reporting.

Why the ones that exist are often broken

Hidden with display or visibility, which removes it from the tab order entirely — so it exists in the markup and can never be focused.

Positioned off-screen with no rule bringing it back when focused, so it receives focus invisibly and the user cannot see what they activated.

Pointing at an identifier that does not exist, usually because the target was renamed.

Pointing at a container that is not focusable, so focus does not actually move — the page scrolls and the next tab press continues from the skip link.

Placed after other focusable elements, so the navigation it was meant to bypass comes first.

What a working one does

Sits first in the document order, before anything else focusable.

Is visually hidden by a technique that keeps it focusable — positioned off-screen rather than display-hidden.

Becomes visible when focused, with enough contrast to be read.

Points at the main content container, which carries a tabindex of negative one so focus can actually land on it.

Moves focus rather than only scrolling, which is what the negative tabindex on the target makes possible.

Testing it properly

Load the page and press tab once. The skip link should appear and be readable.

Press enter. Focus should move into the main content, not merely scroll the page to it.

Press tab again. The next focus should be inside the main content, which is the test most broken implementations fail.

Repeat on a page with a different template, since the link usually lives in a shared header and the target does not.

That sequence takes about ten seconds and finds every failure listed above.

Where it is not the right answer

A single-page application whose navigation does not repeat has nothing to bypass.

A site with very little navigation, where the cost of traversing it is a few key presses.

A page with several repeated blocks, where landmarks and headings serve better than a single link.

The criterion asks for a mechanism rather than for this specific one, so a well-structured page with proper landmarks can satisfy it differently.

How to check it yourself

Search the served markup for a link whose target is a fragment, appearing before the navigation.

Confirm the identifier it names exists on the page.

Confirm the target carries a tabindex of negative one, without which focus will not move to it.

Press tab once on the live page and watch for it, which is faster than reading the markup.

Check the styles that hide it: display or visibility means it can never be focused.

How VeriFixScan detects it

`accessibility.skip_link` reports the presence and the behaviour of a skip link, which is this problem directly.

`accessibility.semantic_landmarks` reports the landmark structure, which is the alternative mechanism for the same criterion.

`accessibility.keyboard_navigation` and `accessibility.tabindex` report the sequence the link sits at the start of.

`structure.navigation` compares navigation across the crawled pages, which is what makes the repetition measurable.

Whether focus really moves on activation is behaviour under interaction and is outside a static reading.

The landmark alternative, and why both is better

Assistive technology offers navigation by landmark region, which lets a screen reader user jump to the main content without a skip link at all.

That covers screen reader users and does nothing for someone navigating by keyboard without one, which is a larger group than most teams expect.

Landmarks also need labelling when a page has several of the same type, or the list shows two unnamed navigation regions.

So a well-structured page satisfies the criterion through landmarks and still benefits from the link.

Both together cost one link, one identifier and correct sectioning elements, none of which affects the visual design.

Frequently asked questions

Can the skip link be hidden?
Visually, yes — but only by a technique that keeps it focusable. Hiding it with display or visibility removes it from the tab order, so it can never be reached.
Why does my skip link scroll but not move focus?
Because the target is not focusable. Give the main content container a tabindex of negative one, which lets focus land on it without adding it to the tab sequence.
Does every site need one?
Every site with repeated navigation blocks. The criterion asks for a mechanism to bypass them, and a well-structured page with proper landmarks can satisfy it another way.

Sources

Related

VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.

Scan a website