【问题标题】:aria-label, aria-labelledby and aria-describedby: very unforeseeable behaviour in screenreadersaria-label、aria-labelledby 和 aria- describeby:屏幕阅读器中非常不可预见的行为
【发布时间】:2015-10-05 14:33:16
【问题描述】:

我刚刚注意到虽然aria-labelaria-labelledbyaria-describedby 属性据说适用于每个元素(请参阅https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-describedby),但它们似乎只适用于a 和不是为了例如divp 在 NVDA 和 JAWS 中。

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

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

例如,在 NVDA 中,在 a 元素上,aria-labelaria-labelledby 似乎在浏览模式和焦点模式下都有效。但是aria-describedby只在焦点模式下宣布,而不是在浏览模式下。

对于input 元素,似乎没有一个属性在浏览模式下有效,但都在焦点模式下有效。

对于像pdiv 这样的“纯”文本元素,似乎没有一个属性起作用。

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

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

【问题讨论】:

  • Léonie Watson 在 Paciello Group 网站上撰写的关于此问题的精彩文章:tpgi.com/…

标签: accessibility wai-aria screen-readers jaws-screen-reader nvda


【解决方案1】:

ARIA 没有定义辅助技术如何公开 UI。它确实定义了browsers are required 如何通过可访问性 API 公开角色、状态和属性。通常与 HTML 相同,HTML 规范没有定义/要求 UI,这由浏览器决定。 对于 aria-label(例如),ARIA 要求 aria-label 映射到 accessibility APIs 中的可访问名称属性,而不要求屏幕阅读器在任何给定的情况下宣布或不宣布它元素(即作为听觉 UI 的一部分公开)。 一般遵守的规则是屏幕阅读器将在interactive elements 上宣布accessible names and accessible descriptions。他们将在大多数grouping elementssectioning elements 上公布可访问的名称。他们不会在大多数text level elements 上宣布都不

注意:上述内容也适用于其默认语义被 ARIA 角色覆盖的任何元素。例如,ARIA widget roles 将同时公布 acc 名称和描述,就像原生 HTML 交互元素一样。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 2017-10-07
  • 2014-04-05
  • 1970-01-01
相关资源
最近更新 更多