使用以下代码有什么好处吗?
<ul role="list">
<li role="listitem"></li>
<li role="listitem"></li>
<li role="listitem"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
以下代码与辅助技术具有相同的含义吗?
<ul>
<li></li>
<li></li>
<li></li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我只注意到,虽然aria-label,aria-labelledby和aria-describedby属性据说每一个元素上工作(见http://www.w3.org/TR/wai-aria/states_and_properties#aria-describedby),他们似乎只是几个要素工作喜欢a,而不是例如div或p在NVDA和JAWS中.
我创建了一个小的codepen来演示问题(使用浏览和焦点模式浏览它):
http://codepen.io/jmuheim/pen/avWbPe
例如,在NVDA的上a元素时,aria-label并aria-labelledby似乎在这两个浏览和对焦模式下工作.但aria-describedby仅在焦点模式下宣布,而不是在浏览模式下宣布.
对于input元素,没有任何属性似乎在浏览模式下工作,但所有属性都在焦点模式下工作.
对于像" p或"这样的"裸"文本元素div,没有一个属性似乎有效.
在JAWS中,它的行为非常相似,但至少对于p元素,当存在时aria-describedby,它宣布可以通过按"JAWS + alt + r"来读取描述.
我真的没有看到明确的模式,所以我想知道如何使用这些属性的屏幕阅读器的一般规则是什么?或者更好:为什么他们不按照规范提出的那样只为每个元素工作?
accessibility screen-readers wai-aria nvda jaws-screen-reader