aria-errormessage 和 aria-alert 之间有什么区别?

nit*_*gav 4 html attributes accessibility uiaccessibility

我是辅助功能类型的新手。aria-errormessage对于何时使用以及何时使用存在混乱aria-alert

我需要在一个aria-live区域中显示其中一个。我应该使用哪个,为什么?

slu*_*ous 5

这不是一个非此即彼的情况。 aria-errormessage是 ARIA 1.1 中的新增功能。的值是包含错误文本的aria-errormessage另一个对象的 ID(类似于aria-labelledby和)。aria-describedby这是一种将对象与其关联的错误“连接”的方法。这里的所有都是它的。

aria-live当您想要宣布更改时使用,并且当然可以在错误情况下使用,但当您更改页面上的文本并希望宣布文本更改时也可以使用,例如如果您有计时器或股票行情指示器或状态指示器(例如,如果 wifi 连接丢失)。

role="alert"aria-live="assertive"是设置和的“快捷方式” "aria-atomic="true"。这将导致“警报”一词被宣布,然后您的文本更改将被读取。错误消息不一定是警报。如果我有一个需要某种格式的输入字段并且我犯了一个错误,则应该宣布一个错误,但它并不重要到必须发出警报。这可能是一个简单的aria-live="polite".

请记住,如果您使用警报(意味着 aria-live 或assertive)并且您有多个警报角色,则某些警报可以清除其他警报的队列,并且您只会听到其中之一。

https://www.w3.org/TR/wai-aria-1.1/#aria-live

当发生断言更改时,用户代理或辅助技术可以选择清除排队的更改。(例如,断言区域中的更改可能会删除所有当前排队的更改)