首页 > 解决方案 > 如何防止 HTML 元素集中在 Angular 中?

问题描述

我在 IE 浏览器上遇到 JAWS 屏幕阅读器问题。它用 role="alert" 读取 span 标签两次。在 Firefox 和 Chrome 上不会出现此问题。NVDA 也适用于 IE。只有带有 IE 的 JAWS 才会出现问题。在互联网上搜索后,我从这个网站找到了以下内容

role="alert" 这应该用于屏幕阅读器一出现就应该阅读的重要消息。如果正确实施 ARIA 警报会很有用,但警报出错的方式有很多。几个例子:

隐藏元素在页面加载时应用了 role="alert",因此屏幕阅读器会立即阅读警报(即使它在视觉上是隐藏的),而不是在它出现时阅读它。

当它出现时,焦点被设置为警报,因此它被读取两次(一次是因为它是一个警报,另一次是因为它有焦点)。反复触发 ARIA 警报,使屏幕阅读器用户不堪重负。

我猜上面的观点就是这个原因。

请帮忙。如果需要,我将添加我的 Angular 代码示例。

标签: javascriptcssangularwai-ariajaws-screen-reader

解决方案


您有几种可能的选择,但如果没有代码示例,很难说出什么是最好的

查看 aria-hidden="isItIE" 让屏幕阅读器忽略 IE 中的元素 - isItIE 是真还是假

或者也许不让它成为一个隐藏的元素?使用 ngif 并仅在页面加载后有条件地显示它,因此它在开始时不是 dom 的一部分...再次,您的条件可以基于浏览器是否 IE


推荐阅读