aria-busy
在 ARIA 即時區域 中使用,全域性 aria-busy 狀態指示正在修改元素,輔助技術可能需要等待更改完成,然後才通知使用者有關更新的資訊。
當即時區域的多個部分需要在向用戶宣佈更改之前載入時,請將 aria-busy="true" 設定為 true,直到載入完成。然後將其設定為 aria-busy="false"。這可以防止輔助技術在更新完成之前宣佈更改。
描述
有一個內容部分會更新。這些更新很重要,您希望在內容修改後讓使用者知道,因此您已將其轉換為 ARIA 即時區域,並使用 aria-live 屬性。您可能希望同時更新該部分的多個元件,但您無法確定所有內容是否會同時更新。即使這是一個非常重要的即時區域,並且 aria-live="assertive",您也不希望在內容的不同部分載入時多次中斷使用者。這就是 aria-busy 可以提供幫助的地方。
aria-busy 屬性是即時區域的可選屬性,其值可以為 true 或 false。aria-busy 屬性的值為 true 可新增到當前正在更新或修改的元素中,以通知輔助技術應等待修改或更改完成,然後才將內容顯示給使用者。使用 ariaBusy 物件屬性將值更改為 false,當下載完成時。
ariaLiveElement.ariaBusy = "false";
aria-live 的值決定了更改是在值更改為 false 時立即宣佈,還是輔助技術等待當前任務完成,然後才中斷使用者。
在 feed 內
如果具有 feed 角色的元素將 aria-busy 設定為 true,則提要內發生的呈現更改將不會被宣佈,除非使用者發起的更改。
在 widget 內
如果對渲染小部件的更改會建立小部件在指令碼執行期間缺少必需的擁有元素的狀態,請在更新過程中將 aria-busy 設定為 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 |
| 可訪問的富網際網路應用程式 (WAI-ARIA) # aria-busy |