如果定义内容主要部分的最具语义和可访问性的方式是标准<main>
元素,则使用ARIA地标似乎是多余的。是否真的需要向元素添加role="main"
?
答案 0 :(得分:4)
并非所有现代浏览器都已将aria-role main
映射到<main>
元素(到目前为止,只有Firefox 21+和Chrome 26+已映射它)。当所有浏览器都支持此功能时,可以删除属性role="main"
,但同时最好还是使用它。
来源:
http://html5doctor.com/the-main-element/#comment-35495(和史蒂夫福克纳的回答) http://html5doctor.com/the-main-element/#comment-36407(最后引用和回答)
答案 1 :(得分:2)
这取决于您使用“角色”缩进的原因。
在本机语义元素中使用角色的两个主要原因是:
原因1。覆盖没有适当主机语言元素的角色,或者出于各种原因,使用了语义较少的元素。
示例:
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
在上面的示例中,使用了一个链接,即使生成的功能比导航链接更像按钮。
屏幕阅读器会将此视为按钮(而不是链接),您可以使用CSS属性选择器来避免class-itis和div-itis。
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
Reson 2. 备份本机元素的角色,以支持实现ARIA角色但尚未实现本机元素角色的浏览器。
例如,浏览器多年来一直支持“main”角色,但它是HTML5的一个相对较新的版本,因此很多浏览器还不支持语义。
<main role="main">…</main>
这在技术上是多余的,但可以帮助一些用户并且不会伤害任何用户。几年后,这种技术可能就变得不必要了。
您可以查看以下链接以获取更多信息...