html aria-errormessage和aria-alert有什么区别?

zbq4xfa0  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(201)

我对可访问性类型不熟悉。关于什么时候使用aria-errormessage和什么时候使用aria-alert存在混淆。
我需要在aria-live区域中显示其中一个。我应该使用哪一个,为什么?

kx7yvsdv

kx7yvsdv1#

这不是非此即彼的情况。aria-errormessage是ARIA 1.1中的新功能。aria-errormessage的值是包含错误文本的另一个对象(类似于aria-labelledbyaria-describedby)的ID。这是一种将对象与其关联的错误“连接”的方法。这就是全部。
aria-live用于当你想要更改时,当然可以在错误情况下使用,但也可以在你更改页面上的文本并想要文本更改时使用,例如如果你有一个计时器或股票报价机或状态指示器(例如如果WiFi连接丢失)。
role="alert"是设置aria-live="assertive""aria-atomic="true"的“快捷方式”。它将导致单词“alert”被宣布,然后您的文本更改被读取。错误消息不一定是警报。如果我有一个需要某种格式的输入字段,我犯了一个错误,一个错误应该被宣布,但它不是那么严重,它必须是一个警报。它可以是一个简单的aria-live="polite"
请记住,如果您使用alert(意思是aria-live或assertive),并且您有多个警报角色,则某些警报可以清除其他警报的队列,并且您只能听到其中一个警报。
https://www.w3.org/TR/wai-aria-1.1/#aria-live
用户代理或辅助技术MAY在发生Assert更改时选择清除排队的更改。(例如,Assert区域中的改变可以移除所有当前排队的改变)

相关问题