javascript - 屏幕阅读器 Chromevox 在聚焦时不读取元素

标签 javascript focus accessibility

一旦您通过 Javascript 将焦点更改为某个元素,我无法弄清楚如何让 Chromevox 读取该元素。以 OpenAjax 中找到的示例为例。当您单击“显示主题 1”按钮时,受控元素将展开,焦点将移至该元素。然而,在 Chromevox 中,它不读取元素的内容,而只是读取 aria-labelledby。

为了让 Chromevox 在展开后读取元素的内容,我必须移出并再次移入。不是很好的用户体验。

这是 Chromevox 的问题还是有更好的方法来解决这个问题?

注意:忽略其他三个示例,它们的 aria-labelledby 属性中有拼写错误,因此无法正常运行。

最佳答案

ajax 示例并不适合模仿。除了您提到的 t2/m2 拼写错误之外,它们还有竞争标签。有一个(隐藏)<div>包含文本(“主题 1 是关于...”)并且有一个 aria-labelledby .

根据可访问名称计算规则,https://www.w3.org/TR/accname-1.1/#step2aria-labelledby在步骤 2.B.first-bullet 中进行处理,然后该过程完成。 <div>内的文字应该被忽略。

如果没有 aria-labelledby ,然后您将进入步骤 2.G,内部文本将是可访问的名称(并由屏幕阅读器读取)。

因此,您看到/听到冲突,这可能取决于浏览器如何解释这些规则以及屏幕阅读器读取的文本。

NVDA 读取两者aria-labelledby和文字。

JAWS 读取 aria-labelledby ,这在技术上是正确的。

听起来 Chromevox 正在做与 JAWS 相同的事情,这是正确的。

关于javascript - 屏幕阅读器 Chromevox 在聚焦时不读取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361100/

相关文章:

javascript - jQuery 动画 Div 滚动器

c# - 是否可以单击 Button 而不会失去对 TextBox 的关注?

iOS:画外音无法正确读取 ".03 hours"文本

ios - UIAccessibilityContainer 动态更新协议(protocol)方法

html - A11y 用于带有 optional 组的选择输入

javascript - Webpack - 样式表加载但没有字体

javascript - 重用 Knockout.js ViewModel

c# - TextBox - 我可以在失去焦点时保持选择突出显示吗?

c# - 在哪里指定 FocusVisualStyle ="{x:Null}"?

PHP 点等于 Javascript 中的 `.=` 运算符?