跳到主要內容

Accessibility

Accessibility 類別提供檢查 Chromium 無障礙功能樹狀結構的方法。無障礙功能樹狀結構被輔助技術使用,例如 螢幕閱讀器切換控制

無障礙功能是非常平台特定的東西。在不同的平台上,可能有不同的螢幕閱讀器,它們可能有截然不同的輸出。

Chromium、Firefox 和 WebKit 的渲染引擎具有「無障礙功能樹狀結構」的概念,然後將其轉換為不同的平台特定 API。Accessibility 命名空間提供對此無障礙功能樹狀結構的存取權。

當從內部瀏覽器 AX 樹狀結構轉換為平台特定 AX 樹狀結構或由輔助技術本身轉換時,大部分無障礙功能樹狀結構都會被過濾掉。預設情況下,Playwright 嘗試近似這種過濾,僅公開樹狀結構中「有趣」的節點。


已棄用

snapshot

在 v1.9 之前新增 accessibility.snapshot
已棄用

此方法已棄用。如果您需要測試頁面無障礙功能,請使用其他程式庫,例如 Axe。請參閱我們的 Node.js 指南,以了解與 Axe 的整合。

擷取無障礙功能樹狀結構的目前狀態。傳回的物件代表頁面的根可存取節點。

注意

Chromium 無障礙功能樹狀結構包含在大多數平台和大多數螢幕閱讀器上未使用的節點。Playwright 也會捨棄它們以獲得更易於處理的樹狀結構,除非將 interestingOnly 設定為 false

用法

傾印整個無障礙功能樹狀結構的範例

const snapshot = await page.accessibility.snapshot();
console.log(snapshot);

記錄焦點節點名稱的範例

const snapshot = await page.accessibility.snapshot();
const node = findFocusedNode(snapshot);
console.log(node && node.name);

function findFocusedNode(node) {
if (node.focused)
return node;
for (const child of node.children || []) {
const foundNode = findFocusedNode(child);
if (foundNode)
return foundNode;
}
return null;
}

引數

  • options 物件 (選填)
    • interestingOnly 布林值 (選填)#

      從樹狀結構中修剪不有趣的節點。預設為 true

    • root ElementHandle (選填)#

      快照的根 DOM 元素。預設為整個頁面。

傳回

  • Promise<null | 物件>#
    • role 字串

      角色

    • name 字串

      節點的人類可讀名稱。

    • value 字串 | 數字

      節點的目前值(如果適用)。

    • description 字串

      節點的其他人類可讀描述(如果適用)。

    • keyshortcuts 字串

      與此節點關聯的鍵盤快捷鍵(如果適用)。

    • roledescription 字串

      角色的另一種人類可讀替代方案(如果適用)。

    • valuetext 字串

      目前值的描述(如果適用)。

    • disabled 布林值

      節點是否已停用(如果適用)。

    • expanded 布林值

      節點是否已展開或摺疊(如果適用)。

    • focused 布林值

      節點是否已聚焦(如果適用)。

    • modal 布林值

      節點是否為強制回應(如果適用)。

    • multiline 布林值

      節點文字輸入是否支援多行(如果適用)。

    • multiselectable 布林值

      是否可以選取多個子項(如果適用)。

    • readonly 布林值

      節點是否為唯讀(如果適用)。

    • required 布林值

      節點是否為必要(如果適用)。

    • selected 布林值

      節點是否在其父節點中被選取(如果適用)。

    • checked 布林值 | "mixed"

      核取方塊是否已核取,或為「混合」(如果適用)。

    • pressed 布林值 | "mixed"

      切換按鈕是否已核取,或為「混合」(如果適用)。

    • level 數字

      標題的層級(如果適用)。

    • valuemin 數字

      節點中的最小值(如果適用)。

    • valuemax 數字

      節點中的最大值(如果適用)。

    • autocomplete 字串

      控制項支援哪種自動完成功能(如果適用)。

    • haspopup 字串

      目前為節點顯示哪種快顯視窗(如果適用)。

    • invalid 字串

      此節點的值是否以及以何種方式無效(如果適用)。

    • orientation 字串

      節點是水平還是垂直方向(如果適用)。

    • children 陣列<物件>

      子節點(如果有的話,如果適用)。