首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML可访问性:让屏幕阅读器在显示隐藏文本时通知它

HTML可访问性:让屏幕阅读器在显示隐藏文本时通知它
EN

Stack Overflow用户
提问于 2017-06-21 07:28:19
回答 2查看 819关注 0票数 3

根据w3 documentation,我们可以使用aria-live属性告诉屏幕阅读器在HTML元素发生更改时读取该元素的文本内容。然而,在我的例子中,我不会更新任何文本,只是希望屏幕阅读器在某些条件下(即,通过使用<span>.show()函数)变为可见时通知jQuery的内容。

这是我的HTML &JS的简化:

代码语言:javascript
复制
<div class="toggleable_element" hidden>
    <span aria-live="assertive">Text to be read out</span>
</div>
....
<script>
    $("#toggleable_element").show();
</script>

像这样使用aria-live不会触发屏幕阅读器读取文本(在本例中我使用的是JAWS )。

另一个建议是添加属性role="alert",尽管这似乎也不会触发屏幕阅读器声明。

关于如何让跨度的内容被朗读,有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-31 04:35:15

在最新的屏幕阅读器+浏览器组合中,您所做的应该可以正常工作。

我在iOS 10上尝试了IE/Firefox/Chrome+Jaws/NVDA以及VO。当aria-live元素的内容发生变化时,它的内容会被读出,也会在由于CSS显示或可见性属性的变化而变得可见时读出。当这样的元素被添加到DOM中时,它也会被读出。请注意,它只适用于显示和可见性CSS属性。其他可能影响有效可见性的CSS属性不起作用,例如不透明度、变换、屏幕外定位等。后者通常被屏幕阅读器完全忽略。

但是,不起作用的是在DOM中显示或添加元素之后添加aria-live属性。这样做,该元素永远不会成为唱段活动区域,并且以后的内容更改也不会被读出。

为此,几乎所有的SR+browser组合都是一致的。

票数 2
EN

Stack Overflow用户

发布于 2017-06-27 21:44:30

您使用的是哪个版本的JAWS和web浏览器?

我知道在使用aria-live时,JAWS和IE11经常不能很好地配合使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44664533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档