Deprecated
This class is deprecated. Please use other libraries such as Axe if you need to test page accessibility. See our Node.js guide for integration with Axe.
The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as screen readers or switches.
Accessibility is a very platform-specific thing. On different platforms, there are different screen readers that might have wildly different output.
Rendering engines of Chromium, Firefox and WebKit have a concept of "accessibility tree", which is then translated into different platform-specific APIs. Accessibility namespace gives access to this Accessibility Tree.
Most of the accessibility tree gets filtered out when converting from internal browser AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. By default, Playwright tries to approximate this filtering, exposing only the "interesting" nodes of the tree.
Deprecated snapshotAdded before v1.9 accessibility.snapshotDeprecated
This method is deprecated. Please use other libraries such as Axe if you need to test page accessibility. See our Node.js guide for integration with Axe.
Captures the current state of the accessibility tree. The returned object represents the root accessible node of the page.
note
The Chromium accessibility tree contains nodes that go unused on most platforms and by most screen readers. Playwright will discard them as well for an easier to process tree, unless interesting_only is set to false
.
Usage
An example of dumping the entire accessibility tree:
snapshot = page.accessibility.snapshot()
print(snapshot)
snapshot = await page.accessibility.snapshot()
print(snapshot)
An example of logging the focused node's 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 = 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"])
Arguments
interesting_only
bool (optional)#
Prune uninteresting nodes from the tree. Defaults to true
.
root
ElementHandle (optional)#
The root DOM element for the snapshot. Defaults to the whole page.
Returns
role
str
The role.
name
str
A human readable name for the node.
The current value of the node, if applicable.
description
str
An additional human readable description of the node, if applicable.
keyshortcuts
str
Keyboard shortcuts associated with this node, if applicable.
roledescription
str
A human readable alternative to the role, if applicable.
valuetext
str
A description of the current value, if applicable.
disabled
bool
Whether the node is disabled, if applicable.
expanded
bool
Whether the node is expanded or collapsed, if applicable.
focused
bool
Whether the node is focused, if applicable.
modal
bool
Whether the node is modal, if applicable.
multiline
bool
Whether the node text input supports multiline, if applicable.
multiselectable
bool
Whether more than one child can be selected, if applicable.
readonly
bool
Whether the node is read only, if applicable.
required
bool
Whether the node is required, if applicable.
selected
bool
Whether the node is selected in its parent node, if applicable.
checked
bool | "mixed"
Whether the checkbox is checked, or "mixed", if applicable.
pressed
bool | "mixed"
Whether the toggle button is checked, or "mixed", if applicable.
level
int
The level of a heading, if applicable.
valuemin
float
The minimum value in a node, if applicable.
valuemax
float
The maximum value in a node, if applicable.
autocomplete
str
What kind of autocomplete is supported by a control, if applicable.
haspopup
str
What kind of popup is currently being shown for a node, if applicable.
invalid
str
Whether and in what way this node's value is invalid, if applicable.
orientation
str
Whether the node is oriented horizontally or vertically, if applicable.
Child nodes, if any, if applicable.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4