ナビゲーションを
作成するときに書く
nav要素ですが
イマイチ書く理由がわかりません。
解説を見てもだいたい
「主要なナビゲーションにつけます」とか
「書かなくても構わない」という解説があり
結局必要なのかもよくわかりません。
ちょっと調べてみました。
Contents
1.リンクを含むセクションにつかわれる
ウェブの発展のために
規格を設定し標準化する
W3Cという国際団体があります。
このW3Cの解説によると
nav要素はほかのページやページ内の他の部分へリンクするセクションを表す
と書かれています。
つまりナビゲーションを
<nav> ~ </nav>でくくる
ということです。
これはわかっています。
でも「なんで?」というところは
書かれていないのですが
そのあとにいくつか注釈があります。
2.すべてのリンクをnav要素にする必要はなし
ページ内のすべてのリンクグループをnav要素にする必要はない。
(中略)
(nav要素は)主要なナビゲーションブロックを構成する部分を対象としている。
これがなにかと
分かりづらくしている気がします。
「主要なナビゲーションってなんだろう?」
「主要じゃないリンクグループを
nav要素にしたら問題があるんだろうか?」
そのあとに追加されている注釈では
footer要素を例に説明があります。
footerには通常
HOMEに戻るボタンであったり
少なからずリンクを含みます。
ただ、この場合は
footer要素で十分なので
あえてnav要素にする必要はない、と。
ほかで代用できるなら
多用はするなよ。
というところでしょうか。
でも、なんで??
3.ユーザーエージェントのためのnav要素
さらにふたつめの注釈に
ユーザーエージェントについての
記載があります。
ナビゲーションの情報を表示させないでほしい、
あるいは表示させてほしいユーザーを対象とした
ユーザーエージェントが
要求に応じてどのコンテンツを表示するか
あるいは省くかを決める手段として
nav要素を利用できる。
少し分かりづらい表現ですが
これがいちばん理解できる解説です。
ここでは
ユーザーエージェント
(スクリーンリーダー等)とあります。
つまり、
ページを読み上げるとき
ナビゲーションは読み上げないで
ほしいですよね。
でも、ブラウザでページを見るときは
ナビゲーションがあったほうが便利です。
このように必要なケース、不要なケースを
判断するために使われるわけです。
nav要素が追加される前は
普通に "ID" か "class" を指定するしかありませんでした。
しかし、
いくらIDで "global-navigation" のような記載をして
「これはナビゲーションですよ」と
主張したところで
機械側は理解できないわけです。
それをnav要素をつかうことで
「ここはナビゲーションなんだ」と理解でき
読み上げようか、あるいは表示させようか
ということを自動で判断する基準となるわけです。
どうですかスッキリしました?
ぼくは案外スッキリでした。
ちなみにブログに
ナビゲーションを追加する方法はこちら