<main>元素上是否需要role =“main”?</main>

时间:2014-03-03 09:24:40

标签: html5 semantic-markup wai-aria

如果定义内容主要部分的最具语义和可访问性的方式是标准<main>元素,则使用ARIA地标似乎是多余的。是否真的需要向元素添加role="main"

2 个答案:

答案 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>

这在技术上是多余的,但可以帮助一些用户并且不会伤害任何用户。几年后,这种技术可能就变得不必要了。

您可以查看以下链接以获取更多信息...

Accessible Rich Internet Applications (WAI-ARIA) 1.0