我在HTML5中创建了一个聊天,我在HTML代码中包含了WAI-ARIA角色和属性,以便向屏幕阅读器用户通知新消息 . 接下来,我展示了我的代码:
<ul id="conversation" class="conversation" aria-relevant="all" role="log" aria-live="polite">
<li role="listitem">One element</li>
<li role="listitem">Two element</li>
</ul>
屏幕阅读器如:NVDA,JAWS或Talkback可以毫无问题地读取新邮件 . 但是,VoiceOver并没有读好 . 大多数消息都由VoiceOver读取;但是,VoiceOver不会读取相同的消息 . 例如,如果另一个 li
元素添加到 ul
,并且此 li
元素包含文本'one element',与第一个元素相同的文本,则屏幕阅读器不会读取它 .
我不知道它是代码问题还是与VoiceOver相关的问题 . 你有什么建议可以解决吗?
1 回答
这是VO众所周知的问题 . 我这样做的方法是有两个区域,然后在两个区域之间循环,删除一个中的内容,同时向另一个添加新内容,然后翻转此行为 . 这可确保始终在所有屏幕阅读器上读取内容 .
还有一件事:如果你使用这种技术,你将需要aria-relevant =“additions”来确保不读取删除 .