Accessibility
Accessibility 类提供了检查 Chromium 无障碍树的方法。无障碍树被辅助技术使用,例如 屏幕阅读器 或 开关。
无障碍功能是非常平台特定的。在不同的平台上,可能有不同的屏幕阅读器,它们可能有截然不同的输出。
Chromium、Firefox 和 WebKit 的渲染引擎都有“无障碍树”的概念,然后将其转换为不同的平台特定 API。Accessibility 命名空间提供了对这个无障碍树的访问。
大多数无障碍树在从内部浏览器 AX 树转换为平台特定 AX 树或被辅助技术本身过滤掉。默认情况下,Playwright 尝试近似这种过滤,仅暴露树的“有趣”节点。
已弃用
snapshot
在 v1.9 之前添加捕获无障碍树的当前状态。返回的对象表示页面的根可访问节点。
Chromium 无障碍树包含在大多数平台和大多数屏幕阅读器上未使用的节点。Playwright 也会丢弃它们以获得更易于处理的树,除非 interestingOnly 设置为 false
。
用法
转储整个无障碍树的示例
const snapshot = await page.accessibility.snapshot();
console.log(snapshot);
记录焦点节点的名称的示例
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;
}
参数
options
Object (可选)-
从树中修剪不有趣的节点。默认为
true
。 -
root
ElementHandle (可选)#快照的根 DOM 元素。默认为整个页面。
-
返回值
- Promise<null | Object>#
-
role
string角色。
-
name
string节点的易读名称。
-
节点的当前值(如果适用)。
-
description
string节点的可读附加描述(如果适用)。
-
keyshortcuts
string与此节点关联的键盘快捷键(如果适用)。
-
roledescription
string角色的可读替代方案(如果适用)。
-
valuetext
string当前值的描述(如果适用)。
-
disabled
boolean节点是否禁用(如果适用)。
-
expanded
boolean节点是否展开或折叠(如果适用)。
-
focused
boolean节点是否聚焦(如果适用)。
-
modal
boolean节点是否为模态(如果适用)。
-
multiline
boolean节点文本输入是否支持多行(如果适用)。
-
multiselectable
boolean是否可以选择多个子项(如果适用)。
-
readonly
boolean节点是否只读(如果适用)。
-
required
boolean节点是否为必需(如果适用)。
-
selected
boolean节点是否在其父节点中被选中(如果适用)。
-
checked
boolean | "mixed"复选框是否被选中,或“混合”(如果适用)。
-
pressed
boolean | "mixed"切换按钮是否被选中,或“混合”(如果适用)。
-
level
number标题的级别(如果适用)。
-
valuemin
number节点中的最小值(如果适用)。
-
valuemax
number节点中的最大值(如果适用)。
-
autocomplete
string控件支持哪种自动完成功能(如果适用)。
-
haspopup
string当前为节点显示哪种类型的弹出窗口(如果适用)。
-
invalid
string此节点的值是否以及以何种方式无效(如果适用)。
-
orientation
string节点是水平还是垂直方向(如果适用)。
-
子节点(如果有)(如果适用)。
-