NVDA不会在单个网页上读取多个aria-live标签。



我在网页上使用多个aria-live标签,当网页上显示错误时,NVDA只读取第一条错误消息,而不是全部。 我有用户aria-live="assertive"也尝试过使用aria-live="礼貌"但不起作用,任何人都可以提供一些解决方案。 下面是我的代码:

<div>
<input type="text" name="username" tabIndex="0"/>
<span class="usernameerr" role="alert" aria-live="assertive">Enter User Name</span>
</div>
<div>
<input type="passowrd" name="password" tabIndex="0"/>
<span class="passworderr" role="alert" aria-live="assertive">Enter Password</span>
</div>
<div>
<input type="text" name="repassword" tabIndex="0"/>
<span class="repassworderr" role="alert" aria-live="assertive">Renter Password</span>
</div>
<div>
<input type="submit" tabIndex="0"/>
</div>

帮助将不胜感激。

如果你有role=alert,这意味着aria-live=assertive。 当您有aria-live=assertive时,屏幕阅读器可能会清除待处理邮件的队列。 因此,如果你有三个自信的区域,他们可能会互相踩踏并清除其他消息。 最后一个可能赢了。

请参阅 https://www.w3.org/TR/wai-aria-1.1/#aria-live。 它说"用户代理或辅助技术可以选择在发生自信更改时清除排队的更改。

因此,您可能会听到一个屏幕阅读器的问题,而不是另一个屏幕阅读器的问题。 您可以通过删除role=alert并将aria-live更改为polite来进行测试。 (你说你用aria-live=polite试过,但如果你不删除alert角色,那么它仍然会被assertive

最新更新