Class: Playwright::Accessibility
- Inherits:
-
PlaywrightApi
- Object
- PlaywrightApi
- Playwright::Accessibility
- Defined in:
- lib/playwright_api/accessibility.rb
Overview
The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as [screen readers](en.wikipedia.org/wiki/Screen_reader) or [switches](en.wikipedia.org/wiki/Switch_access).
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.
Instance Method Summary collapse
-
#snapshot(interestingOnly: nil, root: nil) ⇒ Object
Captures the current state of the accessibility tree.
Methods inherited from PlaywrightApi
Constructor Details
This class inherits a constructor from Playwright::PlaywrightApi
Instance Method Details
#snapshot(interestingOnly: nil, root: nil) ⇒ Object
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 `interestingOnly` is set to `false`.
An example of dumping the entire accessibility tree:
“`python sync snapshot = page.accessibility.snapshot() print(snapshot) “`
An example of logging the focused node's name:
“`python sync def find_focused_node(node):
if (node.get("focused"))
return node
for child in (node.get("children") or []):
found_node = find_focused_node(child)
return found_node
return None
snapshot = page.accessibility.snapshot() node = find_focused_node(snapshot) if node:
print(node["name"])
“`
46 47 48 |
# File 'lib/playwright_api/accessibility.rb', line 46 def snapshot(interestingOnly: nil, root: nil) wrap_impl(@impl.snapshot(interestingOnly: unwrap_impl(interestingOnly), root: unwrap_impl(root))) end |