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 |