アクセシビリティ
Accessibilityクラスは、Chromiumのアクセシビリティツリーを検査するためのメソッドを提供します。アクセシビリティツリーは、スクリーンリーダーやスイッチなどの支援技術によって使用されます。
アクセシビリティは非常にプラットフォームに依存するものです。異なるプラットフォームでは、異なるスクリーンリーダーが存在し、出力が大きく異なる場合があります。
Chromium、Firefox、およびWebKitのレンダリングエンジンは、「アクセシビリティツリー」の概念を持っており、それは異なるプラットフォーム固有のAPIに変換されます。Accessibility名前空間は、このアクセシビリティツリーへのアクセスを提供します。
アクセシビリティツリーのほとんどは、内部ブラウザAXツリーからプラットフォーム固有のAXツリーへの変換時、または支援技術自体によってフィルタリングされます。デフォルトでは、Playwrightはこのフィルタリングを近似的に行い、ツリーの「興味深い」ノードのみを公開します。
非推奨
snapshot
v1.9より前に追加アクセシビリティツリーの現在の状態をキャプチャします。返されるオブジェクトは、ページのルートとなるアクセス可能なノードを表します。
Chromiumのアクセシビリティツリーには、ほとんどのプラットフォームやほとんどのスクリーンリーダーで使用されないノードが含まれています。Playwrightは、処理しやすいツリーのために、それらも破棄しますが、interesting_onlyがfalse
に設定されていない限りは破棄しません。
使用方法
アクセシビリティツリー全体をダンプする例
- Sync
- Async
snapshot = page.accessibility.snapshot()
print(snapshot)
snapshot = await page.accessibility.snapshot()
print(snapshot)
フォーカスされたノードの名前をログに記録する例
- Sync
- Async
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"])
引数
-
interesting_only
bool (オプション)#ツリーから興味のないノードを削除します。デフォルトは
true
です。 -
root
ElementHandle (オプション)#スナップショットのルートDOM要素。デフォルトはページ全体です。
戻り値
- NoneType | Dict#
-
role
strロール。
-
name
strノードの人間が読める名前。
-
ノードの現在の値(該当する場合)。
-
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ノードが水平方向または垂直方向に配置されているかどうか(該当する場合)。
-
子ノード(存在する場合、該当する場合)。
-