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

Accessibility

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

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

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

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


非推奨

snapshot

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

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

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

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

使用方法

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

snapshot = page.accessibility.snapshot()
print(snapshot)

フォーカスされたノードの名前をログに記録する例

def find_focused_node(node):
if node.get("focused"):
return node
for child in (node.get("children") or []):
found_node = find_focused_node(child)
if found_node:
return found_node
return None

snapshot = page.accessibility.snapshot()
node = find_focused_node(snapshot)
if node:
print(node["name"])

引数

  • interesting_only bool (オプション)#

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

  • root ElementHandle (オプション)#

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

戻り値

  • NoneType | Dict#
    • role str

      ロール

    • name str

      ノードの人間が判読できる名前。

    • value str | float

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

    • description str

      該当する場合、ノードの追加の人間が判読できる説明。

    • keyshortcuts str

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

    • roledescription str

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

    • valuetext str

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

    • disabled bool

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

    • expanded bool

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

    • focused bool

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

    • modal bool

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

    • multiline bool

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

    • multiselectable bool

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

    • readonly bool

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

    • required bool

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

    • selected bool

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

    • checked bool | "mixed"

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

    • pressed bool | "mixed"

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

    • level int

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

    • valuemin float

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

    • valuemax float

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

    • autocomplete str

      該当する場合、コントロールによってどのようなオートコンプリートがサポートされているか。

    • haspopup str

      該当する場合、現在ノードにどのようなポップアップが表示されているか。

    • invalid str

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

    • orientation str

      該当する場合、ノードが水平方向か垂直方向か。

    • children List[Dict]

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