skip-link

Skip link must have a resolvable, usable target

manualconfidence: mediumseverity: minoroperable

Checks that a "skip to ..." link's href fragment resolves to a real, currently usable element in the document.

Applies to. Applies to <a href="#fragment"> elements whose accessible name matches a common "skip to ..." / "jump to ..." authoring convention (case-insensitive "skip" or "jump to" in the name), the recognizable pattern for a skip-navigation link, not every same-page anchor link on the page. "jump to" is included alongside "skip" since real skip links use both conventions (e.g. a "Jump to section" link, which a purely positional match would catch but a "skip"-only text pattern would miss). Text-pattern matching itself stays intentional (see implementation-notes); this only widens the known-convention list.

Expectation. The link's fragment resolves to a real element in the document (via a matching id, or a legacy <a name="...">), and that target is currently usable (not hidden from the accessibility tree; and, when browser geometry is available, not zero-area/no-rects). A skip link whose target is missing or effectively unusable does not provide a reliable bypass destination.

Examples

can't tell
<a href="#missing">Skip to main content</a>

The link's fragment target doesn't exist anywhere on the page, so activating it goes nowhere.

n/a
<a href="#target">Skip to content</a>
<div id="target">Target content</div>

The fragment target exists and is usable.

View source