HTML / Element / Initial coverage

<nav>要素

状態: 初期Coverage 対象: HTML Living Standard / HTML-AAM / WAI-ARIA 仕様確認日: 2026-10-25

Technical Summary

navは、同じ文書やほかの文書へ移動するための主要なリンク群を表すsectioning contentです。すべてのリンク群をnavにする要件はありません。

HTML-AAMは暗黙のroleをnavigationに対応付けます。複数のnavigation landmarkが異なる目的を持つ場合は、それぞれのaccessible nameで目的を区別します。仕様上の定義、規範文書上のmapping、選定WPT、単一ブラウザーの観測を分けて記録します。

Definition / Categories

項目仕様上の整理
意味同じページ内またはほかのページへの移動先を示すリンクを含むsection
CategoriesFlow content、Sectioning content、Palpable content
ContextSectioning contentが使用できる場所
Content modelFlow content
Tag omission開始tag・終了tagとも省略できない
DOM interfaceHTMLElement
HTML-AAM implicit rolenavigation(landmark role)

仕様の意味は、ナビゲーションを目的とするsectionです。リスト要素を使うか、項目をいくつ含むかはnavの定義だけでは限定されません。

意味と適用範囲

HTML Standardは、navを「ほかのページまたは同じページ内の場所へ移動するリンクを含むsection」と定義し、主なnavigation blockに使うものと説明しています。ページ上のリンク群をすべてnavにする必要はありません。

サイトの主なメニュー、記事の目次、パンくずリストは代表的な例です。フッターにある利用規約や著作権情報などの短いリンク一覧は、通常、リンクがあるという理由だけでnavにする必要はありません。分類は見た目だけでなく、そのまとまりが担う案内の目的で判断します。

navはsectioning contentですが、見出しを自動で作ったり、リンクを自動生成したりしません。見出しが必要なときは別に見出し要素を置きます。アンカーの遷移は中にあるa要素とそのhrefが担います。

Content modelとDOM

Content modelはFlow contentです。順序が意味を持つ案内にはol、同列のリンクにはulを使う例が一般的ですが、リストは必須ではなく、文章などのFlow contentも入れられます。

DOM interfaceはHTMLElementです。専用のナビゲーションAPIや、navだけに定められたキーボード操作はありません。利用者は通常どおり中のリンクやコントロールへ移動します。視覚的な配置や色はCSSで決まり、要素の意味とは別に確認します。

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

console.log(nav instanceof HTMLElement); // true
console.log(nav.localName);              // "nav"
console.log(nav.getAttribute('role'));   // null: role属性は指定していない

role属性がないことと、Accessibility Treeにroleがないことは同じではありません。HTML-AAMのimplicit roleと、ブラウザーが公開したAccessibility Treeの内容を別に調べます。

Accessibility / Landmark Name

HTML-AAM 1.0 Working Draft(2026-10-21)は、navの暗黙のroleをWAI-ARIAのnavigation roleに対応付けています。WAI-ARIAではnavigationはlandmarkです。ランドマークは、ページの大きな領域を支援技術から見つけ、移動する手がかりになります。

landmarkの名前は、その領域が何を案内するのかを伝えます。WAI-ARIA APGは、ページにnavigation landmarkが1つだけなら名前を省略でき、複数ある場合は目的が分かる名前を付けるよう勧めています。同じリンク群を同じ形で繰り返す場合は、同じ名前を付けます。これはAPGの実装指針として扱い、HTML StandardのContent modelとは分けます。

aria-labelまたはaria-labelledbyで名前を指定できます。HTML-AAMのname computationでは、参照されたラベルがほかの名前指定より優先されます。スクリーンリーダーはrole名を別に伝えるため、ラベル自体に「navigation」や「ナビゲーション」と重ねて書く必要はありません。特定の支援技術による発話は今回のブラウザー観測には含めません。

HTMLのnav要素を使えば暗黙のroleが伝わります。通常はrole="navigation"を重ねて指定する必要はありません。

Fact / Evidence(主張 / 根拠)

規範的なHTMLの定義、HTML-AAMのrole mapping、APGの実装指針を別の主張として整理します。

主要Factと根拠位置
種別Fact / 主張条件・範囲状態根拠
SPECnavは同じ文書または別文書への移動リンクを含むsectionであり、主なnavigation blockに用いる。全リンク群に必要な要素ではない。HTML Living Standard §4.3.4。意味、categories、context、content model、主要なnavigation blockの注記。仕様確認済みHTML Standard: The nav element
AAMHTML-AAMはnavをWAI-ARIAのnavigation roleへ対応付ける。navigation roleはlandmarkで、名前はauthorが指定できる。HTML-AAM 1.0 WD 2026-10-21、WAI-ARIA 1.2。実ブラウザー・platform APIでの公開は別に測定する。文書確認済みHTML-AAM: nav · WAI-ARIA: navigation
AAM複数のnavigation landmarkには目的を区別する名前を付け、同じリンク群を繰り返す場合は同じ名前を使うことをAPGが推奨する。WAI-ARIA APG Navigation Landmark pattern。著者向けの実装指針で、HTML Standardの規範要件ではない。文書確認済みWAI-ARIA APG: Navigation Landmark

Evidence

  1. HTML Living Standard, §4.3.4 The nav element — meaning, categories, context, content model, and the 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

2026-10-25にChrome 155で選定WPT 188件を実行し、Chrome 156のローカルブラウザーで4ページを1280×720・390×844の2 viewportで確認しました。ライト・ダーク切替、ページの横はみ出し、ランドマーク名も観測しています。各結果は記録したブラウザーと範囲に限られます。スクリーンリーダーの発話とWindows platform accessibility APIは測定していません。

専用fixture: nav-v1の12項目はすべて成功しました。ランドマークのrole/name確認、4ページのviewport・theme観測、WPTの実行条件と対象範囲はdocs/atlas/nav-evidence-2026-10-25.mdに記録しています。

nav要素の実装Evidence登録表
種別再現確認の範囲記録する条件状態
IMPL 4ページでのDOM構造、nav内に置ける内容、複数navの名前、画面幅への対応、共通テーマ切替 2026-10-25 JST / ローカルChromium 156.0.0.0(User-AgentはWindows NT 10.0)/ navigator.language=ja / DPR 1。yugien/ja/nav.html、yugien/en/nav.html、atlas/ja/nav.html、atlas/en/nav.htmlを1280×720・390×844で確認。1280px時のdocument scroll widthは1265px。390px時のdocument・body scroll widthは375pxでbody client widthと同じ。ページ全体の横はみ出しはありません。長いコード例は横スクロール可能なpre内、AtlasのFact tableは横スクロール可能なwrapper内(client width 342px / scroll width 608px)。各ページでテーマ切替をクリックし、ライト#f5f1e8、ダーク#1b201e、システム(明示的なdata-themeなし、このbrowserの設定はdark)を確認。nav-v1 fixtureは12/12項目が成功。 部分観測(Chromium 156 / 2 viewport / ライト・ダーク)
WPT navの暗黙のroleと、選定したaccessible nameの対応・優先順位 2026-10-25 JST / Chrome Stable 155.0.8059.85 / Windows build 26300 / headless WPT runner。WPT revision 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2で、html-aam/roles.htmlは60/60成功し、el-navも成功。html-aam/names.htmlは128/128成功。navに関する名前の8件(名前なし、aria-label、aria-labelledby、title、優先順位4件)はすべて成功。合計188/188成功。この2ファイルだけを実行し、ほかのWPTファイルとブラウザーは未実行。

実行したテストの版: 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2。テストファイルへのリンクは、この版のファイルを開きます。

選定WPT 188/188成功(Chrome 155 / revision固定)
AAM 4ページとnav-v1 fixtureにおけるChromiumのnavigation roleとaccessible nameの公開 2026-10-25 JST / ローカルChromium 156.0.0.0(User-AgentはWindows NT 10.0)/ viewport 1280×720・390×844 / DPR 1 / navigator.language=ja。browserのgetByRole("navigation") queryでは、Yugien各ページに2件、Atlas各ページに3件が見つかりました。各ページで想定した日本語・英語の名前は、それぞれ1件ずつに一致しました(サイト内案内、パンくず、Atlasのページ内目次)。nav-v1は名前のないnav、aria-label、aria-labelledby、同じ目的で同じ名前を持つ2つのnav、nav外の通常リストも確認。Chromiumのbrowser role/name queryのみ。Windows UI Automation、ほかのplatform API、スクリーンリーダーの発話は未測定。 部分観測(Chromium 156 role/name query / 1 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
  • WPT selected files runroles.html and names.html at one pinned revision
  • OpenOther browsers, Windows UI Automation and other platform APIs, screen-reader speech, and the remainder of HTML-AAM/WPT coverage

Related surface