我有一个定义列表,其中一项可以更改:
// Update dynamic content
setInterval(function() {
document.getElementById('dynamic-info').textContent++;
}, 3000);
<dl>
<dt>Static information</dt>
<dd>Value 1</dd>
<dt>Static information 2</dt>
<dd>Value 2</dd>
<dt id="dynamic-info-def">Dynamic number</dt>
<dd id="dynamic-info" aria-live="polite" aria-labelledby="dynamic-info-def">1</dd>
</dl>
我放aria-live
了内容,因为它需要阅读到屏幕阅读器,它可以工作,但只读取数字。它需要说“动态数字:2”,以便用户有上下文。
我不能穿上aria-live
,<dl>
因为那将是太多的内容阅读。我尝试在最后一对周围放置一个包装器 div dt/dd
,但这是非法的 HTML。
我尝试使用aria-labelledby
(如上所示),但这没有效果(在带有 VoiceOver 的 Chrome 中)。
如何让实时区域读取相关内容?