无障碍访问
Accessibility类提供了检查Chromium无障碍功能树的方法。无障碍功能树被辅助技术如屏幕阅读器或切换设备所使用。
无障碍访问是一个非常依赖平台的功能。在不同的平台上,存在不同的屏幕阅读器,它们可能产生截然不同的输出。
Chromium、Firefox和WebKit的渲染引擎都有一个"可访问性树"的概念,随后会被转换为不同平台特定的API。可访问性命名空间提供了对这个可访问性树的访问。
在从内部浏览器AX树转换为平台特定的AX树或由辅助技术本身处理时,大部分可访问性树会被过滤掉。默认情况下,Playwright尝试近似这种过滤,仅暴露树中"有趣"的节点。
已弃用
快照
Added before v1.9捕获当前无障碍访问树的状态。返回的对象表示页面的根无障碍访问节点。
Chromium的可访问性树包含在大多数平台和大多数屏幕阅读器上未被使用的节点。除非将interesting_only设置为false
,否则Playwright也会丢弃这些节点,以生成更易于处理的树。
用法
一个转储整个无障碍树的示例:
- Sync
- 异步
snapshot = page.accessibility.snapshot()
print(snapshot)
snapshot = await page.accessibility.snapshot()
print(snapshot)
记录焦点节点名称的示例:
- 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)
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 | 字典#
-
role
str该角色。
-
name
str节点的人类可读名称。
-
该节点的当前值(如果适用)。
-
description
str节点的附加人类可读描述(如适用)。
-
keyshortcuts
str如果适用,与此节点关联的键盘快捷键。
-
roledescription
str如果适用,作为角色的人类可读替代描述。
-
valuetext
str当前值的描述(如果适用)。
-
disabled
bool该节点是否被禁用(如果适用)。
-
expanded
bool节点是否展开或折叠(如果适用)。
-
focused
bool该节点是否处于聚焦状态(如适用)。
-
modal
bool该节点是否为modal(如果适用)。
-
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该节点是水平还是垂直方向,如果适用的话。
-
如果适用,表示存在的子节点。
-