i

Skip to content

Navigating · researched

A link, hidden until focused, that lets keyboard users jump past repeated navigation to the main content.

atom · also called Skip link, Skipnav, Skip navigation

Each block is the real component from that system’s own package, in an isolated frame. They are live: hover, focus and press them. Frames are drawn on white so systems compare on one ground, and a font a system licenses only for its own site (GOV.UK’s Transport) falls back to what the system itself specifies.

Ant Design

absentAnt Design does not ship this component. Nothing is drawn in its place.

Checked: components directory listing, installed antd/es text search for skip link/skipnav, docs md files. None found; Anchor is for in-page section navigation, not a hidden skip link.

Carbon

Skip to content native: yes @carbon/react 1.117.0
Variants
—
Sizes
—
States documented
—
Accessibility guidance
yes

SkipToContent renders an anchor (href default #main-content). Documented as guidance within UI shell header, not its own page.

1 corrected on re-read
  • urls: {"docs_url":"https://carbondesignsystem.com/components/UI-shell-header/usage/","code_url":"https://github.com/carbon-design-system/carbon/tree/main/packages/react/src/components/UIShell"} → {"docs_url":"https://www.carbondesignsystem.com/building-blocks/core/components/ui-shell-header/guidelines","code_url":"https://github.com/carbon-design-system/carbon/tree/main/packages/react/src/components/UIShell"} docs 200 after redirect to https://www.carbondesignsystem.com/building-blocks/core/components/ui-shell-header/guidelines; code URL 200

GOV.UK

Skip link native: yes govuk-frontend 6.5.1
Variants
—
Sizes
—
States documented
default, focus
Accessibility guidance
no

Renders a native a element, visually hidden until focused.

Material Web

absentMaterial Web does not ship this component. Nothing is drawn in its place.

Checked docs/components (20 component pages), the repo top-level dirs, labs/, labs/gb/components and the installed 2.5.0 package. No skip link element.

Primer

absentPrimer does not ship this component. Nothing is drawn in its place.

No skip link component. The Navigation UI pattern page recommends skip links but ships none; no SkipLink in the src tree. Checked: primer.style/product/components/ index, internal-components list, ui-patterns, packages/react/src tree (incl. deprecated/, experimental/, internal/).

Spectrum

absentSpectrum does not ship this component. Nothing is drawn in its place.

Searched S2 src, SWC 1st-gen packages and gen2 swc components, and spectrum-css stories for skip link or skipnav: none (gen2 only has accessibility guides mentioning skip links, and spectrum-css coachmark stories matched incidentally). Sitemap.xml and query-index.json list no skip link. Index also lists none.

USWDS

Skipnav native: yes @uswds/uswds 3.14.0
Variants
—
Sizes
—
States documented
default, focus
Accessibility guidance
no

Agrees with index on Skipnav; its docs are in the Header page accessibility section (add a skip link before the header). Skipto (second mapping) is proposal-phase only: Discussion started on the status page, no docs or code, so it does not count.

Platform facts

Native elementa href=#main-contentMDN a page 'Skip links': 'placed as early as possible in body content that points to the beginning of the page's main content', usually hidden by CSS offscreen until focused. MDN main: add an id to main to be a skip target.
Baseline—
APG patternlink
ARIA role—
Shipped by3 of 7 systems

Anatomy

  1. link — HTML a with href to an in-page target.
  2. target — MDN: an id on main or the first content element.

Keys the APG binds

  • EnterExecutes the link and moves focus to the link target.
  • Shift + F10 (Optional)Opens a context menu for the link.

The seven states

default Hidden offscreen until focused (MDN).
hover Pointer-only CSS state; not defined by APG or HTML.
focus MDN: :focus reveals the link.
active Pressed link; CSS :active.
disabled n/a — Not defined.
error n/a — Not defined.
loading n/a — Not defined.

Every cell was read twice, the second time from raw sources by a separate pass. 1 of 35 fields changed on the second read — open any “corrected” note to see what it said before.