HTML5标签上的“复制”ARIA角色

时间:2014-06-19 15:02:28

标签: html5 wai-aria

我在互联网上看到的很多是,HTML5标签上的ARIA角色大多与标签名称本身完全重复(含义)。你为什么想这么做?我只是说你可以通过查看标签名称来扣除某些角色。

例如关于这个" ARIA Role Cheat Sheet website"我看到以下内容:

<nav role="navigation></nav>
<main role="main"></main>
<aside role="complimentory"></aside>

同样在示例中的Twitter Bootstrap中,表单具有角色形式:例如<form role="form">

我说,不开玩笑?当它具有搜索角色<form role="search">之类的内容时,它实际上提供了无法从标记本身中扣除的上下文。

在前面提到的案例中将角色留空是否正确?它没有提供任何关于标签的明显额外信息。

2 个答案:

答案 0 :(得分:3)

ARIA(可访问的富Internet应用程序)属性旨在用于以无法从标记推断的方式创建用户界面的元素。原因是这可以帮助用户代理和辅助软件帮助用户使用这些元素。考虑一个span元素,它充当提交按钮,复选框或文本输入小部件。

因此,我们不希望将ARIA属性用于其简单,自然含义的元素。因此,为role=navigation元素声明nav原则上是多余的,因为该元素将此角色作为默认的作为唯一允许的角色(根据当前规范)和草稿)。但正如@Alohci指出的那样,如果用户代理足够高级以识别属性但又不足以知道该元素,则该属性可能仍然有用。

文档Using WAI-ARIA in HTML(工作草案,2013年10月3日)根据有关用户代理的信息,提供了有关明确指定ARIA属性的一些建议。这些信息当然是可变的,但我们可以预期,任何指定为冗余的属性都将保持冗余。特别是,它表示对于navmainaside应指定role属性,但不应指定form(因为用户代理肯定知道form元素。)

相比之下,W3C HTML5草案最近又回到了LC状态says:“在大多数情况下,设置ARIA角色和/或aria- *属性与默认的隐式ARIA语义相匹配是不必要的,不推荐使用,因为浏览器已经设置了这些属性。“它明确指出不应为rolenavmain设置aside属性当它的值与默认值匹配时。

答案 1 :(得分:2)

WAI-ARIA比HTML5旧。屏幕阅读器在HTML5成为主流之前实现了对ARIA角色的支持,因此对于一些用户来说,即使相同的HTML5元素没有,ARIA角色也会带来好处。

虽然屏幕阅读器正在迎头赶上,但请记住,升级屏幕阅读器(与升级浏览器不同)是一个昂贵的过程,因此旧屏幕阅读器的使用时间远远超过旧浏览器。