Accessibility
已弃用 此类已不再推荐使用。如果需要测试页面可访问性,请使用如 Axe 等其他库。有关与 Axe 集成的 Node.js 指南,请参阅我们的 指南。
Accessibility 类提供了检查 Chromium 可访问性树的方法。可访问性树被辅助技术(如屏幕阅读器或切换设备)使用。
可访问性在不同平台上差异很大。不同平台有不同的屏幕阅读器,输出可能截然不同。
Chromium、Firefox 和 WebKit 的渲染引擎都有“可访问性树”概念,随后会转换为平台特定的 API。Accessibility 命名空间提供对该树的访问。
大多数可访问性树在从内部浏览器 AX 树转换为平台特定 AX 树或被辅助技术本身过滤时会被过滤。默认情况下,Playwright 会尝试近似这种过滤,只暴露“有意义”的节点。
accessibility.snapshot([options])
Added in: v1.8options?<Object>interestingOnly?<boolean> 剪枝不重要的节点。默认true。#root?<ElementHandle> 快照的根 DOM 元素。默认整个页面。#
- returns: <Promise<null|Object>>#
role<string> 角色name<string> 人类可读的名称value<string|number> 节点的当前值(如果适用)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> 水平或垂直方向children<Array<Object>> 子节点列表
已弃用 此方法已不推荐使用。请使用其他库如 Axe 进行可访问性测试。有关与Axe集成的操作指南,请参阅我们的Node.js指南。
捕获当前可访问性树的状态。返回的对象表示页面的根可访问节点。
note
Chromium 的可访问性树包含在大多数平台和屏幕阅读器上未使用的节点。除非将 interestingOnly 设置为 false,否则 Playwright 会丢弃这些节点,以生成更易处理的树。
以下示例展示如何获取完整的可访问性树:
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;
}