2014-06-19 113 views
2

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

例如对这个“ARIA Role Cheat Sheet website”我看到以下内容:

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

同样在Twitter的引导中的示例形式具有的作用形式:如<form role="form">

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

在前面提到的情况下将角色留空是否正确?它没有提供任何有关标签的额外信息。

回答

2

WAI-ARIA比HTML5更早。在HTML5成为主流之前,屏幕阅读器实现了对ARIA角色的支持,因此对于某些用户来说,即使等效的HTML5元素不支持,ARIA角色也能提供好处。

虽然屏幕阅读器正在迎头赶上,请记住,升级屏幕阅读器(不像升级浏览器)是一个昂贵的过程,所以老屏幕阅读器都在使用中比旧的浏览器更长的时间。

3

的ARIA(无障碍富因特网应用程序)的属性意在用于该用于创建在不能从标记否则推导出的方式的用户界面元素。原因是这可能有助于用户代理和辅助软件帮助用户使用这些元素。考虑用作提交按钮,复选框或文本输入窗口小部件的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- *属性是不必要的,不推荐,因为这些属性已经由浏览器设定。”这明确表示,role属性不应该为navmainaside进行设置时,其价值将匹配默认值。