跳至主要内容

Accessibility

Accessibility 类提供了检查 Chromium 无障碍树的方法。无障碍树被辅助技术使用,例如 屏幕阅读器开关

无障碍访问是与平台高度相关的事项。在不同平台上,有不同的屏幕阅读器,其输出可能会有很大差异。

Chromium、Firefox 和 WebKit 的渲染引擎有一个“无障碍树”的概念,该概念随后被转换为不同的平台特定 API。Accessibility 命名空间提供了对该无障碍树的访问。

从内部浏览器 AX Tree 转换为平台特定 AX Tree 或由辅助技术本身过滤时,大多数无障碍树会被过滤掉。默认情况下,Playwright 会尝试近似这种过滤,仅暴露树中“重要”的节点。


已弃用

snapshot

在 v1.9 之前添加 accessibility.snapshot
已弃用

此方法已弃用。如果您需要测试页面无障碍功能,请使用其他库,例如 Axe。有关与 Axe 集成的 Node.js 指南,请参阅我们的 指南

捕获无障碍树的当前状态。返回的对象表示页面的根无障碍节点。

注意

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;
}

参数

  • options Object (可选)
    • interestingOnly boolean (可选)#

      从树中修剪掉不重要的节点。默认为 true

    • root ElementHandle (可选)#

      快照的根 DOM 元素。默认为整个页面。

返回值

  • 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"

      复选框是否被选中,或为“mixed”(如果适用)。

    • pressed boolean | "mixed"

      切换按钮是否被选中,或为“mixed”(如果适用)。

    • level number

      标题的级别(如果适用)。

    • valuemin number

      节点中的最小值(如果适用)。

    • valuemax number

      节点中的最大值(如果适用)。

    • autocomplete string

      控件支持的自动完成类型(如果适用)。

    • haspopup string

      当前节点正在显示的弹出窗口类型(如果适用)。

    • invalid string

      此节点的值是否以及在何种程度上无效(如果适用)。

    • orientation string

      节点是水平方向还是垂直方向(如果适用)。

    • children Array<Object>

      子节点(如果存在且适用)。