JAWS 仅在 IE 中读取“aria-live”区域内 DOM 节点的删除

JAWS reads removal of DOM node within an `aria-live` region only in IE

直播区域是:

<div aria-live='assertive' id='abc'> </div>

在JavaScript中,我做的第一个改变是

document.getElementById("abc").innerHTML="<span>Processing</span>";

接下来,我再做一个改动:

document.getElementById("abc").innerHTML="<span>Done</span>";

JAWS 在 Firefox 中没有问题,可以读取 "Processing" 和 "Done"。但是 IE 读取 "Processing Removing Processing Done"

我知道我要用新的 <span> 替换 <span>。但是,如何让 JAWS 忽略提供删除更新?

要了解 IE 中的这个错误,您必须查看 aria-relevant 属性的文档,该属性指定了您希望屏幕阅读器收到通知的更改。

请参阅 Microsoft 文档中的以下页面:aria-relevant attribute

在你的情况下,IE 认为(错误地)你正在做文本更新(因为使用 innerHTML 被认为是一个字符串),所以它通知删除和添加:

Updates are announced only as nodes are added, or as text is added or removed.

解决方案应该是使用 addChild()removeChild() 函数添加或删除。

我在 IE 中成功克服这个错误的唯一方法是隐藏被删除的元素,添加新元素,然后再删除隐藏的元素。