<nav> ページ上の主要なナビゲーションであることを表す
取り扱い | 現行の標準 |
カテゴリ |
フロー・コンテンツ セクショニング・コンテンツ パルパブル・コンテンツ |
親にできる要素 | フロー・コンテンツを受け入れる要素 |
子にできる要素 | フロー・コンテンツ |
対応ブラウザ | caniuseで確認 |
<nav>タグの説明
<nav>
は、その要素がページ上の主要なナビゲーションであることを表します。よく使われる場所として、ヘッダーのグローバルナビゲーションや、サイドバーのコンテンツナビゲーションが挙げられます。
例えば、ウェブサイトのヘッダーにグローバルナビゲーションがある場合には、<nav>
で囲うことが適切であると言えます。サイト内の主要なコンテンツに遷移するためのナビゲーションとして機能することを、マークアップによって明示できるからです。
サイドバーに関しても、ウェブサイトの主要なコンテンツへの導線であったり、ユーザーをナビゲートするために重要なリンクの集まったリストであれば、<nav>
で囲うことが望ましいでしょう。
また、メインコンテンツにローカルナビゲーションを設置するケースも考えられます。そのページの利用者にとって手助けとなるような導線を提供する目的で、ページ内リンクをリスト化して目次を設ける場合に、それがメインコンテンツにおける主要なナビゲーションになりえると判断できます。
逆に、単なるリンクの集まりや、補助的な役割りのリンクに使用すべきではありません。<nav>
は、あくまで主要なナビゲーションのみに適用するようにして下さい。その内容が主要なナビゲーションであると明示すべき場所を除いて、無闇に<nav>
を使うことは避けましょう。
<nav>タグの特徴
- レイアウトの初期値はブロックレベルです。文章の改行に影響を与えます。
- この要素はセクショニング・コンテンツなので、文章構造のアウトラインに影響を与えます。
- 原則として見出しを含むことを想定していますが、無くても問題ないようです。
- 同一のページ内に複数使うことができます。ただし、この要素自体を入れ子にすることはできません。
- スクリーンリーダーのようなユーザーエージェントに対して、読み上げの対象を判断する材料を提供できます。アクセシビリティを向上させる用途としても有効です。
<nav>に指定できる主な属性
- グローバル属性
- 全てのHTML要素に指定できる共通の属性です。詳細は一覧表で解説します。
- イベントハンドラ
- 全てのHTML要素に指定できるコンテンツ属性です。
<nav>の使い方とサンプル
<nav>
は、ドキュメントのアウトラインに影響を与えるセクショニング・コンテンツです。各要素との相対的な関係、文章に書かれている内容に対して適切な範囲に記述しましょう。
以下の内容は、<nav>
をヘッダーのグローバルナビゲーションに使用した例です。
HTML
<body>
<header>
<h1>サイト名</h1>
<h2>このサイトのキャッチコピー</h2>
<nav>
<ul>
<li><a href="home">ホーム</a></li>
<li><a href="blog">ブログ</a></li>
<li><a href="contents">コンテンツ</a></li>
<li><a href="sitemap">サイトマップ</a></li>
<li><a href="contact">コンタクト</a></li>
</ul>
</nav>
</header>
<main>
<section>
<h1>コンテンツの見出し</h1>
<p>コンテンツの内容。コンテンツの内容。</p>
<p>コンテンツの内容。コンテンツの内容。</p>
</section>
</main>
<footer>
フッターの内容
</footer>
</body>
<nav>に関連するHTMLタグ
文書の構造を組み立てる要素 | |
---|---|
<article> | 自己完結した記事であることを示す |
<section> | 文書構造におけるセクションを定義する |
<aside> | 本筋から分離しても問題のない余談や補足を表す |
<nav> | ページ上の主要なナビゲーションであることを表す |
<header> | セクションの先頭となるグループを表す |
<footer> | セクションのフッターを表す |
<h1> 〜 <h6> | 文書やセクションの見出しを表す |
<p> | 文章の段落を指定する |