Art*_*kyi 30 html html5 semantic-markup
我对角色有些困惑.如果我在页面中有一个包含在nav元素中的导航并指定了一个role="navigation".
<nav role="navigation">
...
</nav>
Run Code Online (Sandbox Code Playgroud)
是否已经在语义上明确该nav部分是导航?
或者,如果我的页面上有其他导航部分,并且只为其中一个指定了角色,则此部分在页面上变得最重要?而那些没有role="navigation"无聊导航的人呢?
Mik*_*ons 30
确实,大多数现代浏览器/技术都将HTML5 <nav>元素识别为导航并给予相同的关注.但明确设置role="navigation"属性只是确保更多的技术可以提取它.
例如,屏幕阅读器和残障用户的其他技术很少完全符合标准(特别是如果它们必须一直工作到IE6或更低版本!)因此,明确添加角色属性始终确保您覆盖所有基础最多的用户可能.
此外(这只是一个猜测)一些鲜为人知的搜索引擎可能还没有完全识别HTML5,因此添加这些角色应该有助于网站爬行能力.
Alb*_*lvo 17
从W3C 看看这个.它说:
在大多数情况下,设置ARIA角色和/或与默认隐式ARIA语义匹配的aria-*属性是不必要的,不推荐使用,因为这些属性已由浏览器设置.
这样做<main role="main">是不必要的,不推荐.也就是说,Bootstrap的导航栏示例(包括me-copy-paste在内的所有人)都附带了<nav role="navigation">.
说实话,我不确定什么是正确的.
小智 5
W3C 建议:“但是,为了使支持 ARIA 的用户代理更容易访问该结构,并确保不支持 HTML5 的用户代理也可以理解该结构,建议添加 ARIA role="navigation"。 ” https://www.w3.org/WAI/GL/wiki/Using_HTML5_nav_element