web-dev-qa-db-ja.com

nav role = navigation

私は役割と少し混同しています。ページにnav要素で囲まれたナビゲーションがあり、role="navigation"

<nav role="navigation">
    ...
</nav>

navセクションがナビゲーションであることは、意味的に明示的ではありませんか?

または、ページに他のナビゲーションセクションがあり、そのうちの1つだけにロールを指定した場合、このセクションはページで最も重要になりますか?そして、role="navigation"退屈なナビゲーション?

30
Artem Svirskyi

最新のブラウザ/テクノロジーのほとんどがHTML5 <nav>要素をナビゲーションとして使用し、同じ注意を払います。ただし、role="navigation"属性は、より多くのテクノロジーがそれを選択できるようにするだけです。

たとえば、障害のあるユーザー向けのスクリーンリーダーやその他の技術は、完全に標準に準拠することはほとんどありません(特にIE6以前に戻って動作する必要がある場合)!可能な限り多くのユーザー。

また(これは単なる推測です)、あまり知られていない検索エンジンの一部はまだHTML5を完全に認識していない可能性があるため、これらのロールを追加するとサイトのクロール機能が向上します。

29
Mike Parsons

W3Cから at this を見てください。それは言います:

デフォルトの暗黙的なARIAセマンティクスに一致するARIAロールおよび/またはaria- *属性を設定するケースのmajorityでは、これらのプロパティはブラウザによってすでに設定されているため、不要で推奨されません

<main role="main">不要で推奨されません。とはいえ、 Bootstrapのnavbarの例 (私を含む誰もがコピーペーストする)には<nav role="navigation">

正直に言うと、何が正しいのか分かりません。

16

W3Cは「ただし、構造をARIAをサポートするユーザーエージェントがよりアクセスしやすくするため、またHTML5をサポートしないユーザーエージェントも構造を理解できるようにするには、ARIA role = "navigation"を追加することをお勧めします。 」 https://www.w3.org/WAI/GL/wiki/Using_HTML5_nav_element

4
Hans Grimm