HTML / Element / Initial coverage

The <nav> Element

Status: Initial coverage Scope: HTML Living Standard / HTML-AAM / WAI-ARIA Specification checked: 2026-10-25

Technical Summary

nav is sectioning content for major groups of links that help users move within the current document or to other documents. The HTML Standard does not require every group of links to use nav.

HTML-AAM maps its implicit role to navigation. When a page has distinct navigation landmarks, their accessible names should make their purposes clear. Normative HTML rules, accessibility mappings, selected WPT files, and observations from one browser are recorded separately.

Definition / Categories

ItemSpecification summary
MeaningA section containing links to other documents or places in the current document
CategoriesFlow content, sectioning content, and palpable content
ContextWhere sectioning content is expected
Content modelFlow content
Tag omissionNeither the start nor end tag can be omitted
DOM interfaceHTMLElement
HTML-AAM implicit rolenavigation (a landmark role)

The definition makes nav a section for navigation. It does not require a list element or set a minimum number of links.

Meaning and scope

The HTML Standard defines nav as a section containing links to other pages or places within the current page, and says it is primarily intended for major navigation blocks. Not every group of links on a page needs the element.

A site's main menu, an article's table of contents, and breadcrumbs are common examples. A short footer list of links to terms or copyright information usually does not need to be nav just because it contains links. Judge by the purpose of the group, not only by how it looks.

nav is sectioning content, but it does not create a heading or generate links. Add a heading separately when the content needs one. The child a elements and their href attributes provide link navigation.

Content model and DOM

The content model is flow content. Ordered lists are useful when order matters, and unordered lists are useful for parallel links, but a list is not required. Other flow content, including paragraphs, is permitted.

The DOM interface is HTMLElement. The element does not define its own navigation API or special keyboard interaction. Users interact with the links or controls inside it in the usual way. CSS controls visual layout and color; those styles are separate from the element's meaning.

const nav = document.querySelector('nav');

console.log(nav instanceof HTMLElement); // true
console.log(nav.localName);              // "nav"
console.log(nav.getAttribute('role'));   // null: no role attribute was set

No explicit role attribute does not mean no role is exposed in the accessibility tree. Inspect the HTML-AAM implicit role separately from the browser's observed accessibility tree.

Accessibility / Landmark Names

HTML-AAM 1.0 Working Draft (2026-10-21) maps the implicit role of nav to WAI-ARIA's navigation role. In WAI-ARIA, navigation is a landmark. Landmarks help assistive technology users find and move to major page areas.

A landmark name describes what that area helps users find. The WAI-ARIA APG says a name is optional when a page has only one navigation landmark and recommends names that distinguish multiple landmarks by purpose. Repeated navigation areas with the same links can share the same name. Treat this as APG author guidance, separate from the HTML Standard's content model.

Use aria-label or aria-labelledby to provide a name. In HTML-AAM name computation, a referenced label takes precedence over other naming sources. Because assistive technology announces the role separately, the name does not need to repeat the word "navigation". Screen-reader speech was not part of this browser observation.

The native HTML element already communicates the navigation role. Usually there is no need to repeat it with role="navigation".

Fact / Evidence

Normative HTML definitions, HTML-AAM role mappings, and APG author guidance are recorded as separate claims.

Key facts and evidence locations
TypeFact / ClaimConditions / ScopeStatusEvidence
SPECnav is a section with links to the current or another document and is intended for major navigation blocks. It is not required for every link group.HTML Living Standard §4.3.4. Meaning, categories, context, content model, and note on major navigation blocks.Specification checkedHTML Standard: The nav element
AAMHTML-AAM maps nav to WAI-ARIA's navigation role, which is a landmark role and can have an author-provided name.HTML-AAM 1.0 WD 2026-10-21 and WAI-ARIA 1.2. Browser and platform API exposure are measured separately.Specification checkedHTML-AAM: nav · WAI-ARIA: navigation
AAMThe APG recommends names that distinguish navigation landmarks with different purposes, and the same name for repeated landmarks with the same link set.WAI-ARIA APG Navigation Landmark pattern. Author guidance, not a normative HTML Standard requirement.Guidance checkedWAI-ARIA APG: Navigation Landmark

Evidence

  1. HTML Living Standard, §4.3.4 The nav element — meaning, categories, context, content model, and scope of navigation sections.
  2. HTML Accessibility API Mappings 1.0 Working Draft, 2026-10-21 — implicit role and accessible-name mappings.
  3. WAI-ARIA 1.2, navigation role — role definition and landmark semantics.
  4. WAI-ARIA APG, Navigation Landmark — author guidance for one or multiple navigation landmarks and repeated link sets.
  5. WPT at revision 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2: html-aam/roles.html — the el-nav computed-role test.
  6. WPT at the same revision: html-aam/names.html — navigation accessible-name sources and precedence.

Implementation Evidence

On 2026-10-25, 188 selected WPT checks ran in Chrome 155. A local Chrome 156 browser checked all four pages at 1280×720 and 390×844, including light/dark switching, page-level horizontal overflow, and landmark names. Each result is limited to the recorded browser and scope. Screen-reader speech and Windows platform accessibility APIs were not measured.

Dedicated fixture: All 12 checks in nav-v1 passed. The landmark role/name queries, four-page viewport and theme observations, and WPT conditions and scope are recorded in docs/atlas/nav-evidence-2026-10-25.md.

nav implementation evidence registry
TypeReproduced scopeRecorded conditionsStatus
IMPL DOM structure, flow content, multiple nav elements, accessible names, responsive display, and shared theme controls on four pages 2026-10-25 JST / local Chromium 156.0.0.0 (Windows NT 10.0 UA) / navigator.language=ja / DPR 1. Checked yugien/ja/nav.html, yugien/en/nav.html, atlas/ja/nav.html, and atlas/en/nav.html at 1280×720 and 390×844. At 1280px, document scroll width was 1265px; at 390px, document and body scroll widths were 375px (client width 375px), with no page-level horizontal overflow. Long code samples use internally scrollable pre elements; Atlas fact tables use internally scrollable wrappers (client width 342px, scroll width 608px). Actual theme clicks on all four pages selected light (#f5f1e8), dark (#1b201e), and system mode (no explicit data-theme; this browser prefers dark). The local nav-v1 fixture passed 12/12 checks. Partial observation (Chromium 156 / two viewports / light and dark)
WPT The implicit role for nav and selected accessible-name mappings and precedence cases 2026-10-25 JST / Chrome Stable 155.0.8059.85 / Windows build 26300 / headless WPT runner. At WPT revision 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2, html-aam/roles.html passed 60/60, including el-nav. html-aam/names.html passed 128/128; all eight nav-specific name checks passed (unnamed nav, aria-label, aria-labelledby, title, and four precedence cases). Total: 188/188. These are the two selected files at this revision; other WPT files and browsers were not run.

WPT version used: 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2. Test-file links open files from this version.

188/188 selected WPT checks passed (Chrome 155 / revision pinned)
AAM Chromium browser role/name exposure for the four topic pages and the nav-v1 observation fixture 2026-10-25 JST / local Chromium 156.0.0.0 (Windows NT 10.0 UA) / viewport 1280×720 and 390×844 / DPR 1 / navigator.language=ja. Browser getByRole("navigation") queries exposed 2 navigation landmarks on each Yugien page and 3 on each Atlas page. Each expected localized accessible name matched exactly one landmark: site navigation, breadcrumb, and on Atlas pages the page contents navigation. The nav-v1 fixture also verified an unnamed navigation, aria-label, aria-labelledby, two same-purpose landmarks with the same name, and an ordinary list outside nav. This is a Chromium browser role/name query only; Windows UI Automation, other platform APIs, and screen-reader speech were not measured. Partial observation (Chromium 156 role/name queries / one browser)

Coverage / Open Issues

  • Specification checkedMeaning, categories, context, content model, and sectioning-content boundaries
  • AAM checkedHTML-AAM navigation-role mapping and APG guidance for named and repeated landmarks
  • Selected WPT files runroles.html and names.html at one pinned revision
  • OpenOther browsers, Windows UI Automation and other platform APIs, screen-reader speech, and the remaining HTML-AAM/WPT coverage

Related surfaces