Accessibility
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
snapshot
Added before v1.9Captures the current state of the accessibility tree. The returned object represents the root accessible node of the page.
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 interestingOnly is set to false
.
Usage
An example of dumping the entire accessibility tree:
const snapshot = await page.accessibility.snapshot();
console.log(snapshot);
An example of logging the focused node's name:
const snapshot = await page.accessibility.snapshot();
const node = findFocusedNode(snapshot);
console.log(node && node.name);
function findFocusedNode(node) {
if (node.focused)
return node;
for (const child of node.children || []) {
const foundNode = findFocusedNode(child);
if (foundNode)
return foundNode;
}
return null;
}
Arguments
options
Object (optional)-
interestingOnly
boolean (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
- Promise<null | Object>#
-
role
stringThe role.
-
name
stringA human readable name for the node.
-
The current value of the node, if applicable.
-
description
stringAn additional human readable description of the node, if applicable.
-
keyshortcuts
stringKeyboard shortcuts associated with this node, if applicable.
-
roledescription
stringA human readable alternative to the role, if applicable.
-
valuetext
stringA description of the current value, if applicable.
-
disabled
booleanWhether the node is disabled, if applicable.
-
expanded
booleanWhether the node is expanded or collapsed, if applicable.
-
focused
booleanWhether the node is focused, if applicable.
-
modal
booleanWhether the node is modal, if applicable.
-
multiline
booleanWhether the node text input supports multiline, if applicable.
-
multiselectable
booleanWhether more than one child can be selected, if applicable.
-
readonly
booleanWhether the node is read only, if applicable.
-
required
booleanWhether the node is required, if applicable.
-
selected
booleanWhether the node is selected in its parent node, if applicable.
-
checked
boolean | "mixed"Whether the checkbox is checked, or "mixed", if applicable.
-
pressed
boolean | "mixed"Whether the toggle button is checked, or "mixed", if applicable.
-
level
numberThe level of a heading, if applicable.
-
valuemin
numberThe minimum value in a node, if applicable.
-
valuemax
numberThe maximum value in a node, if applicable.
-
autocomplete
stringWhat kind of autocomplete is supported by a control, if applicable.
-
haspopup
stringWhat kind of popup is currently being shown for a node, if applicable.
-
invalid
stringWhether and in what way this node's value is invalid, if applicable.
-
orientation
stringWhether the node is oriented horizontally or vertically, if applicable.
-
Child nodes, if any, if applicable.
-