Accessibility
Accessibility 类提供了用于检查 Chromium 无障碍树的方法。无障碍树被辅助技术(如屏幕阅读器或切换设备)使用。
无障碍性是非常依赖平台的。在不同的平台上,存在不同的屏幕阅读器,它们的输出可能有很大差异。
Chromium、Firefox 和 WebKit 的渲染引擎都有“无障碍树”的概念,然后会被转换为不同平台的 API。Accessibility 命名空间允许访问这个无障碍树。
在从浏览器内部的 AX Tree 转换为平台特定的 AX-Tree 或被辅助技术处理时,大部分无障碍树节点会被过滤掉。默认情况下,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"])
参数
-
从树中裁剪无关节点。默认为
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节点是水平还是垂直排列(如适用)。
-
子节点(如有且适用)。
-