aria-errormessage 和 aria-alert 之间的区别?

difference between aria-errormessage and aria-alert?

我对辅助功能类型还很陌生。对于何时使用 aria-errormessage 以及何时使用 aria-alert 存在混淆。

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

这不是 either/or 情况。 aria-errormessage 是 ARIA 1.1 中的新内容。 aria-errormessage 的值是包含错误文本的另一个对象的 ID(类似于 aria-labelledbyaria-describedby)。这是一种 "connect" 您的对象及其相关错误的方法。仅此而已。

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

role="alert"是一个"shortcut",用于设置aria-live="assertive""aria-atomic="true"。它将导致宣布 "alert" 一词,然后阅读您的文本更改。错误消息不一定是警报。如果我有一个需要特定格式的输入字段并且我犯了一个错误,应该宣布一个错误,但它并不重要以至于它必须是一个警报。它可以是一个简单的 aria-live="polite".

请记住,如果您使用警报(表示自信的 aria-live)并且您有多个警报角色,那么某些警报可以清除其他警报的队列,您只会听到其中一个。

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

User agents or assistive technologies MAY choose to clear queued changes when an assertive change occurs. (e.g., changes in an assertive region may remove all currently queued changes)