我注意到尽管
我创建了一个小的CodePen来演示这个问题(使用浏览模式和焦点模式浏览): https://codepen.io/jmuheim/pen/avWbPe 例如,在NVDA中,在
对于
对于像
在JAWS中,行为非常相似,但是对于
我没有看到明显的模式,所以我想知道屏幕阅读器使用这些属性的一般规则是什么?或者更好的问题:为什么它们不像规范建议的那样适用于每个元素?
aria-label
,aria-labelledby
和aria-describedby
属性被称为适用于每个元素(请参见https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-describedby),但它们似乎仅适用于一些元素,例如 a
,而不适用于NVDA和JAWS中的div
或p
等元素。我创建了一个小的CodePen来演示这个问题(使用浏览模式和焦点模式浏览): https://codepen.io/jmuheim/pen/avWbPe 例如,在NVDA中,在
a
元素上,aria-label
和aria-labelledby
在浏览模式和焦点模式下都能工作。但是aria-describedby
只在焦点模式下被宣布,而不是在浏览模式下。对于
input
元素,在浏览模式下,这些属性似乎都不起作用,但在焦点模式下都能正常工作。对于像
p
或div
这样的“裸文本”元素,这些属性似乎都不起作用。在JAWS中,行为非常相似,但是对于
p
元素,当有aria-describedby
时,它会宣布可以通过按“JAWS + alt + r”来读取描述。我没有看到明显的模式,所以我想知道屏幕阅读器使用这些属性的一般规则是什么?或者更好的问题:为什么它们不像规范建议的那样适用于每个元素?