Accessibility
Accessibility クラスは、Chromium のアクセシビリティツリーを検査するためのメソッドを提供します。アクセシビリティツリーは、スクリーンリーダーやスイッチなどの支援技術によって使用されます。
アクセシビリティは非常にプラットフォーム固有のものです。プラットフォームが異なると、出力が大きく異なる可能性のあるさまざまなスクリーンリーダーが存在します。
Chromium、Firefox、WebKit のレンダリングエンジンは「アクセシビリティツリー」という概念を持っており、これはさまざまなプラットフォーム固有の API に変換されます。Accessibility 名前空間はこのアクセシビリティツリーへのアクセスを提供します。
ほとんどのアクセシビリティツリーは、内部ブラウザの AX ツリーからプラットフォーム固有の AX ツリーに変換される際、または支援技術自体によってフィルタリングされます。デフォルトでは、Playwright はこのフィルタリングを近似し、ツリーの「興味深い」ノードのみを公開しようとします。
非推奨
snapshot
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"])
引数
-
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該当する場合、ノードが水平方向か垂直方向か。
-
該当する場合、子ノード(存在する場合)。
-