Accessibility
Accessibility 类提供检查 Chromium 无障碍树的方法。无障碍树由辅助技术使用,例如 屏幕阅读器 或 开关。
可访问性是一个与平台高度相关的问题。在不同的平台上,可能有截然不同的屏幕阅读器,它们可能会产生截然不同的输出。
Chromium、Firefox 和 WebKit 的渲染引擎都有一个“可访问性树”的概念,然后将其转换为不同的平台特定 API。Accessibility 命名空间提供对该可访问性树的访问。
大多数无障碍树在从内部浏览器 AX 树转换为平台特定的 AX 树时,或者由辅助技术本身进行过滤时,都会被过滤掉。默认情况下,Playwright 会尝试近似此过滤,仅暴露树中“有趣”的节点。
已弃用
快照
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 元素。默认为整个页面。
返回
- 无类型 | 字典#
-
role
字符串角色。
-
name
str节点的人类可读名称。
-
节点当前的值(如果适用)。
-
description
字符串节点额外的人类可读描述(如果适用)。
-
keyshortcuts
字符串与此节点关联的键盘快捷键(如果适用)。
-
roledescription
字符串角色的人类可读替代名称(如果适用)。
-
valuetext
字符串当前值的描述(如果适用)。
-
disabled
布尔值节点是否被禁用(如果适用)。
-
expanded
布尔值节点是否展开或折叠(如果适用)。
-
focused
布尔值节点是否获得焦点(如果适用)。
-
modal
布尔值节点是否为 模态(如果适用)。
-
multiline
布尔值节点文本输入是否支持多行(如果适用)。
-
multiselectable
布尔值是否可以选择多个子项(如果适用)。
-
readonly
布尔值节点是否只读(如果适用)。
-
required
布尔值节点是否必需(如果适用)。
-
selected
布尔值节点是否在其父节点中被选中(如果适用)。
-
checked
布尔值 | "mixed"复选框是否被选中,或者为“混合”状态(如果适用)。
-
pressed
布尔值 | "mixed"切换按钮是否被选中,或者为“混合”状态(如果适用)。
-
level
整数标题的级别(如果适用)。
-
valuemin
浮点数节点中的最小值(如果适用)。
-
valuemax
浮点数节点中的最大值(如果适用)。
-
autocomplete
字符串控件支持何种类型的自动完成(如果适用)。
-
haspopup
字符串当前为节点显示何种类型的弹出窗口(如果适用)。
-
invalid
字符串此节点的值是否无效以及无效的方式(如果适用)。
-
orientation
字符串节点是水平还是垂直方向(如果适用)。
-
子节点(如果存在且适用)。
-