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 屬性是即時區域的一個可選屬性,其值可以是 truefalse。值為 truearia-busy 屬性可以新增到當前正在更新或修改的元素上,以告知輔助技術,它應該等待修改或更改完成後再將內容呈現給使用者。當下載完成後,使用物件的 ariaBusy 屬性將值更改為 false

js
ariaLiveElement.ariaBusy = "false";

aria-live 的值決定了在將值更改為 false 後是立即播報更改,還是輔助技術會等到當前任務完成後再打斷使用者。

feed

如果具有 feed 角色的元素設定了 aria-busytrue,那麼 feed 內部發生的渲染更改將不會被播報,使用者發起的更改除外。

widget

如果渲染 widget 的更改會導致在指令碼執行期間 widget 缺少必需的擁有元素的狀態,請在更新過程中將 widget 的 aria-busy 設定為 true。例如,如果一個渲染的樹形網格同時更新多個未同時渲染的分支,那麼替代一次性替換整個樹的方法是,在修改每個分支時將樹標記為 busy。

false (預設)

元素沒有預期的更新。

true

元素正在更新。

相關介面

Element.ariaBusy

ariaBusy 屬性是每個元素介面的一部分,它反映了 aria-busy 屬性的值,該屬性指示元素當前是否正在被修改。

html
<div
  id="clock"
  role="timer"
  aria-live="polite"
  aria-atomic="true"
  aria-busy="false"></div>
js
const el = document.getElementById("clock");
console.log(el.ariaBusy); // false
el.ariaBusy = "true";
console.log(el.ariaBusy); // true

相關角色

用於 **所有** 角色

規範

規範
無障礙富網際網路應用程式 (WAI-ARIA)
# aria-busy

另見