ARIA: aria-busy 属性
aria-busy
属性是一个全局 ARIA 状态,用于指示一个元素当前是否正在被修改。它有助于辅助技术理解内容更改尚未完成,并且它们可能希望等待一段时间后再通知用户更新。虽然 aria-busy
通常用于 ARIA 实时区域 中,以延迟播报直到更新完成,但它也可以在实时区域之外使用——例如,在小部件或信息流中——来指示正在进行的更改或加载。
当实时区域的多个部分需要在对用户播报更改之前加载完成时,请将 aria-busy="true"
设置为完成加载。然后设置为 aria-busy="false"
。这可以防止辅助技术在更新完成之前播报更改。
描述
有一部分内容会更新。这些更新很重要,您希望在内容修改后让用户知道,因此您已将其转换为 ARIA 实时区域,并带有 aria-live
属性。您可能想同时更新该部分的几个组件,但您无法确定所有组件都会同时更新。即使这是一个非常重要的具有 aria-live="assertive"
的实时区域,您也不希望在内容的各个部分加载时多次打断用户。这就是 aria-busy
可以提供帮助的地方。
aria-busy
属性是实时区域的一个可选属性,其值可以是 true
或 false
。值为 true
的 aria-busy
属性可以添加到当前正在更新或修改的元素上,以告知辅助技术,它应该等待修改或更改完成后再将内容呈现给用户。当下载完成后,使用对象的 ariaBusy
属性将值更改为 false
。
ariaLiveElement.ariaBusy = "false";
aria-live
的值决定了在将值更改为 false
后是立即播报更改,还是辅助技术会等到当前任务完成后再打断用户。
在 feed
中
如果具有 feed
角色的元素设置了 aria-busy
为 true
,那么 feed 内部发生的渲染更改将不会被播报,用户发起的更改除外。
在 widget
中
如果渲染 widget 的更改会导致在脚本执行期间 widget 缺少必需的拥有元素的状态,请在更新过程中将 widget 的 aria-busy
设置为 true
。例如,如果一个渲染的树形网格同时更新多个未同时渲染的分支,那么替代一次性替换整个树的方法是,在修改每个分支时将树标记为 busy。
值
- false (默认)
-
元素没有预期的更新。
- true
-
元素正在更新。
相关接口
Element.ariaBusy
-
ariaBusy
属性是每个元素接口的一部分,它反映了aria-busy
属性的值,该属性指示元素当前是否正在被修改。
<div
id="clock"
role="timer"
aria-live="polite"
aria-atomic="true"
aria-busy="false"></div>
const el = document.getElementById("clock");
console.log(el.ariaBusy); // false
el.ariaBusy = "true";
console.log(el.ariaBusy); // true
相关角色
用于 **所有** 角色
规范
规范 |
---|
无障碍富互联网应用程序 (WAI-ARIA) # aria-busy |