我正在尝试在网页中添加实时区域支持,以使 NVDA 可用于该页面。但是,我已经看到与aria-live
预期完全不同的属性行为。
我尝试添加一个隐藏的活动区域,并将所有消息(每条消息包含在
<p>
标签中)转储到该区域以供屏幕阅读器阅读。它工作正常,但唯一的问题是插入到活动区域 div 的第一条消息永远不会被 NVDA 屏幕阅读器读取。随后的消息被完美地阅读。当要宣布第一条消息时,动态创建此活动区域 div。aria-live="assertive"
并不会真正中断当前流程来宣布消息。我在网页中使用淘汰赛。当标记为 live-region 的 HTML div 基于敲除条件显示时,屏幕阅读器不会检测到它。例如:
<!-- ko if: $data --> <div aria-live="polite" data-bind="text: $data"> </div> <!-- ko -->
最初加载页面时,$data 为空。所以 live-region div 不存在。但是当获取数据时,div 会被插入。但是,NVDA 不会读取添加的 div 中的内容。这是预期的行为吗?是否有任何解决方法来解决此行为?