メインコンテンツにスキップ

アクセシビリティ

Accessibilityクラスは、Chromiumのアクセシビリティツリーを検査するためのメソッドを提供します。アクセシビリティツリーは、スクリーンリーダースイッチなどの支援技術によって使用されます。

アクセシビリティは非常にプラットフォーム固有のものです。異なるプラットフォームでは、出力が大きく異なる可能性のあるさまざまなスクリーンリーダーが存在します。

Chromium、Firefox、WebKitのレンダリングエンジンには、「アクセシビリティツリー」の概念があり、これはその後、異なるプラットフォーム固有のAPIに変換されます。Accessibility名前空間は、このアクセシビリティツリーへのアクセスを提供します。

アクセシビリティツリーのほとんどは、内部ブラウザのAXツリーからプラットフォーム固有のAXツリーへの変換時、または支援技術自体によってフィルタリングされます。Playwrightはデフォルトでこのフィルタリングを近似しようと試み、ツリーの「興味深い」ノードのみを公開します。


非推奨

スナップショット

v1.9より前に追加 accessibility.snapshot
非推奨

このメソッドは非推奨です。ページのアクセシビリティをテストする必要がある場合は、Axeなどの他のライブラリを使用してください。Axeとの連携については、Node.jsのガイドを参照してください。

アクセシビリティツリーの現在の状態をキャプチャします。返されるオブジェクトは、ページのルートアクセシブルノードを表します。

Chromiumのアクセシビリティツリーには、ほとんどのプラットフォームやほとんどのスクリーンリーダーで未使用となるノードが含まれています。Playwrightは、interestingOnlyfalseに設定されていない限り、処理しやすいツリーにするためにそれらも破棄します。

使用方法

アクセシビリティツリー全体をダンプする例

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 Object (オプション)
    • interestingOnly boolean (オプション)#

      ツリーから興味のないノードを削除します。デフォルトはtrueです。

    • root ElementHandle (オプション)#

      スナップショットのルートDOM要素。デフォルトはページ全体です。

戻り値

  • Promise<null | Object>#
    • role string

      このロールです。

    • name string

      ノードの人間が読める名前。

    • value string | number

      該当する場合、ノードの現在の値。

    • description string

      該当する場合、ノードの追加的な人間が読める説明。

    • keyshortcuts string

      該当する場合、このノードに関連付けられたキーボードショートカット。

    • roledescription string

      該当する場合、ロールの人間が読める代替説明。

    • valuetext string

      該当する場合、現在の値の説明。

    • disabled boolean

      該当する場合、ノードが無効になっているかどうか。

    • expanded boolean

      該当する場合、ノードが展開されているか折りたたまれているか。

    • focused boolean

      該当する場合、ノードがフォーカスされているかどうか。

    • modal boolean

      該当する場合、ノードがモーダルであるかどうか。

    • multiline boolean

      該当する場合、ノードのテキスト入力が複数行をサポートしているかどうか。

    • multiselectable boolean

      該当する場合、複数の子が選択可能かどうか。

    • readonly boolean

      該当する場合、ノードが読み取り専用であるかどうか。

    • required boolean

      該当する場合、ノードが必須であるかどうか。

    • selected boolean

      該当する場合、ノードがその親ノードで選択されているかどうか。

    • checked boolean | "mixed"

      該当する場合、チェックボックスがチェックされているか、「mixed」状態であるかどうか。

    • pressed boolean | "mixed"

      該当する場合、トグルボタンがチェックされているか、「mixed」状態であるかどうか。

    • level number

      該当する場合、見出しのレベル。

    • valuemin number

      該当する場合、ノードの最小値。

    • valuemax number

      該当する場合、ノードの最大値。

    • autocomplete string

      該当する場合、コントロールがサポートするオートコンプリートの種類。

    • haspopup string

      該当する場合、ノードに対して現在表示されているポップアップの種類。

    • invalid string

      該当する場合、このノードの値が無効であるかどうか、またその方法。

    • orientation string

      該当する場合、ノードが水平方向か垂直方向に配置されているかどうか。

    • children Array<Object>

      該当する場合、子ノード(存在する場合)。