1

在最近的某个时间点(我相信在 v80 更新期间)Chrome 已经开始在添加内容时将 aria-live 元素的全部内容发送到屏幕阅读器。在此之前,它曾经只宣布添加内容。Firefox 仍然像它应该的那样工作,只是宣布添加到这个元素。我正在使用 NVDA 进行测试,但我的用户也报告了与 JAWS 相同的行为。这是一些简单的代码来说明行为(您需要打开屏幕阅读器才能在此处获得想法)。

<html>
<head>
<script>
    function addtologinner()
    {
        document.getElementById('log').innerHTML += '<div><p>Event happened at ' + gettime() + '</p></div>';
    }
    function addtologappend()
    {
        var div = document.createElement('div');
        div.innerHTML = '<p>Event happened at ' + gettime() + '</p>';
        document.getElementById('log').appendChild(div);
    }
    function gettime()
    {
        return (new Date()).toJSON().slice(11,19);
    }
</script>
</head>
<body>
<button onclick="addtologappend();">Append to Log</button>
<button onclick="addtologinner();">Add to innerHTML</button><br />
<div id="log" aria-live="polite" aria-atomic="false" aria-relevant="additions text" role="log"></div>

</body>
</html>

这以前在所有主要浏览器中都有效,只有屏幕阅读报告更改,但我的用户本周报告了这个问题。更改 aria-atomic 和 aria-relevant 属性的值没有任何作用。就好像 Chrome 不再尊重这些属性,当它分别默认为 false/additions 时。我没有机会在 Edge 或 Safari 中进行测试,我的大多数用户都在使用 Chrome。关于如何解决这个问题的任何想法?我在版本 80 的最新补丁说明中没有找到与此相关的任何内容。

4

0 回答 0