Accessibility
Accessibilityクラスは、Chromiumのアクセシビリティツリーを検査するメソッドを提供します。アクセシビリティツリーは、スクリーンリーダーやスイッチなどの支援技術によって使用されます。
アクセシビリティは非常にプラットフォーム固有のものです。異なるプラットフォームでは、出力が大きく異なる可能性のあるさまざまなスクリーンリーダーがあります。
Chromium、Firefox、WebKitのレンダリングエンジンには「アクセシビリティツリー」の概念があり、これは異なるプラットフォーム固有のAPIに変換されます。Accessibility名前空間は、このアクセシビリティツリーへのアクセスを提供します。
ほとんどのアクセシビリティツリーは、内部ブラウザのAXツリーからプラットフォーム固有のAXツリーに変換する際、または支援技術自体によってフィルタリングされます。デフォルトでは、Playwrightはこのフィルタリングを近似しようとし、ツリーの「興味深い」ノードのみを公開します。
非推奨
スナップショット
v1.9より前に追加アクセシビリティツリーの現在の状態をキャプチャします。返されるオブジェクトは、ページのルートアクセシブルノードを表します。
Chromiumアクセシビリティツリーには、ほとんどのプラットフォームやスクリーンリーダーで使用されないノードが含まれています。Playwrightは、interesting_onlyがfalseに設定されていない限り、処理しやすいツリーにするためにそれらを破棄します。
使用法
アクセシビリティツリー全体をダンプする例
- 同期
- 非同期
snapshot = page.accessibility.snapshot()
print(snapshot)
snapshot = await 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"])
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 = await page.accessibility.snapshot()
node = find_focused_node(snapshot)
if node:
print(node["name"])
引数
-
ツリーから興味のないノードを削除します。デフォルトは
trueです。 -
rootElementHandle (任意)#スナップショットのルートDOM要素。デフォルトはページ全体です。
戻り値
- NoneType | Dict#
-
rolestrロール。
-
namestrノードの人間が読める名前。
-
該当する場合、ノードの現在の値。
-
descriptionstr該当する場合、ノードの追加の人間が読める説明。
-
keyshortcutsstr該当する場合、このノードに関連付けられたキーボードショートカット。
-
roledescriptionstr該当する場合、ロールの人間が読める代替。
-
valuetextstr該当する場合、現在の値の説明。
-
disabledbool該当する場合、ノードが無効になっているかどうか。
-
expandedbool該当する場合、ノードが展開されているか折りたたまれているか。
-
focusedbool該当する場合、ノードがフォーカスされているかどうか。
-
modalbool該当する場合、ノードがモーダルであるかどうか。
-
multilinebool該当する場合、ノードのテキスト入力が複数行をサポートしているかどうか。
-
multiselectablebool該当する場合、複数の子を選択できるかどうか。
-
readonlybool該当する場合、ノードが読み取り専用であるかどうか。
-
requiredbool該当する場合、ノードが必須であるかどうか。
-
selectedbool該当する場合、ノードが親ノードで選択されているかどうか。
-
checkedbool | "mixed"該当する場合、チェックボックスがチェックされているか、「mixed」であるか。
-
pressedbool | "mixed"該当する場合、トグルボタンがチェックされているか、「mixed」であるか。
-
levelint該当する場合、見出しのレベル。
-
valueminfloat該当する場合、ノード内の最小値。
-
valuemaxfloat該当する場合、ノード内の最大値。
-
autocompletestr該当する場合、コントロールがサポートするオートコンプリートの種類。
-
haspopupstr該当する場合、ノードに対して現在表示されているポップアップの種類。
-
invalidstr該当する場合、このノードの値が無効であるかどうか、またその方法。
-
orientationstr該当する場合、ノードが水平方向か垂直方向か。
-
該当する場合、子ノードがある場合。
-