Jos*_*eim 6 accessibility screen-readers wai-aria nvda jaws-screen-reader
我只注意到,虽然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"来读取描述.
我真的没有看到明确的模式,所以我想知道如何使用这些属性的屏幕阅读器的一般规则是什么?或者更好:为什么他们不按照规范提出的那样只为每个元素工作?
ARIA没有定义辅助技术如何暴露UI.它确定了如何通过可访问性API公开角色,状态和属性所需的浏览器.一般来说,它与HTML相同,HTML规范没有定义/要求用户界面,由浏览器决定.在aria-label(例如)的情况下,ARIA中要求aria-label映射到辅助功能API中的可访问名称属性,这不是屏幕阅读器在任何给定元素上宣布或不宣布它的要求(即作为听觉UI的一部分公开).一般观察到的规则是屏幕阅读器将宣布关于交互元素的可访问名称和可访问描述.他们将在大多数情况下宣布可访分组元素和切片元素.他们不会在大多数文本级元素上宣布.
注意:以上内容也适用于任何使用ARIA角色覆盖其默认语义的元素.例如,ARIA小部件角色将同时公布acc名称和描述,就像本机HTML交互元素一样.