咏叹调标签,咏叹调标签和咏叹调描述:非常不可预见的行为在屏幕阅读器



我刚刚注意到,虽然aria-label, aria-labelledbyaria-describedby属性据说对每个元素都有效(参见https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-describedby),但它们似乎只适用于a等少数元素,而不适用于NVDA和JAWS中的divp

我已经创建了一个小代码依赖来演示这个问题(使用浏览和焦点模式浏览它):

https://codepen.io/jmuheim/pen/avWbPe

例如,在NVDA中,在a元素上,aria-labelaria-labelledby似乎可以在浏览和焦点模式下工作。但是aria-describedby只在焦点模式下发布,而不是在浏览模式下。

对于input元素,所有属性似乎都不能在浏览模式下工作,但都可以在焦点模式下工作。

对于像pdiv这样的"裸"文本元素,这些属性似乎都不起作用。

在JAWS中,这是非常相似的行为,但至少对于p元素,当存在aria-describedby时,它宣布可以通过按"JAWS + alt + r"来读取描述。

我真的没有看到一个明确的模式,所以我想知道在屏幕阅读器中如何使用这些属性的一般规则是什么?或者更好:为什么不像规范所建议的那样,简单地适用于每个元素呢?

ARIA没有定义辅助技术如何暴露UI。它定义了浏览器如何通过可访问性api公开角色、状态和属性。这与一般的HTML是一样的,HTML规范没有定义/要求UI,这是留给浏览器来决定的。在ARIA -label的情况下(例如),ARIA要求将ARIA -label映射到可访问性api中的可访问名称属性,而不是要求屏幕阅读器在任何给定元素上宣布它或不宣布它(即作为听觉UI的一部分公开)。一般观察到的规则是,屏幕阅读器将在交互元素上宣布可访问的名称和可访问的描述。它们将在大多数分组元素和分段元素上宣布可访问的名称。他们将在大多数文本级元素上既不宣布也不宣布

注意:上面的也适用于任何默认语义被ARIA角色覆盖的元素。例如,ARIA小部件角色将具有acc名称和描述,就像本地HTML交互元素一样。

相关内容

  • 没有找到相关文章

最新更新