一旦您通过Javascript更改焦点,我就无法了解如何让Chromevox读取元素。以OpenAjax上的示例为例。单击“显示主题1”按钮时,将展开受控元素并将焦点移动到该元素。但是在Chromevox中,它不会仅仅通过aria-labelledby读取元素的内容。
要让Chromevox在扩展后阅读元素的内容,我必须再次搬出。用户体验不是很好。
这是与Chromevox有关的问题还是有更好的方法来解决这个问题?
注意:忽略其他三个例子,他们在aria-labelledby属性中有拼写错误,因此无法正常运行。
答案 0 :(得分:1)
ajax示例不是一个模仿的好例子。除了你提到的t2 / m2拼写错误,它们还有竞争标签。有一个(隐藏的)<div>
包含文字(“主题1是关于...”)和有一个aria-labelledby
。
根据可访问名称计算规则attributedPlaceholder
,在步骤2.B.first-bullet中处理aria-labelledby
,然后完成该过程。应忽略<div>
内的文字。
如果不一个aria-labelledby
,那么您将转到步骤2.G,内部文本将是可访问的名称(并由屏幕阅读器读取)。
因此,您看到/听到了冲突,这可能取决于浏览器如何解释这些规则,以及屏幕阅读器读取的文本。
NVDA读取 aria-labelledby
和文本。
JAWS只读 aria-labelledby
,这在技术上是正确的。
听起来Chromevox和JAWS的做法是一样的,这是正确的。