跳转到主要内容

Accessibility

已废弃

此类别已废弃。如果您需要测试页面可访问性,请使用其他库,例如 Axe。请参阅我们的 Node.js 指南,了解如何与 Axe 集成。

Accessibility 类提供用于检查 Chromium 可访问性树的方法。可访问性树由辅助技术使用,例如 屏幕阅读器开关

可访问性是一个与平台高度相关的问题。在不同的平台上,可能有截然不同的屏幕阅读器,它们可能会产生截然不同的输出。

Chromium、Firefox 和 WebKit 的渲染引擎都有一个“可访问性树”的概念,然后将其转换为不同的平台特定 API。Accessibility 命名空间提供对该可访问性树的访问。

在将内部浏览器 AX 树转换为平台特定 AX 树或由辅助技术本身进行转换时,大部分可访问性树都会被过滤掉。默认情况下,Playwright 会尝试近似这种过滤,仅公开树中“有趣”的节点。


已废弃

快照

v1.9 之前添加 accessibility.snapshot
已废弃

此方法已废弃。如果您需要测试页面可访问性,请使用其他库,例如 Axe。请参阅我们的 Node.js 指南,了解如何与 Axe 集成。

捕获可访问性树的当前状态。返回的对象表示页面的根可访问节点。

注意

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 布尔值 (可选)#

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

    • root ElementHandle (可选)#

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

返回

  • Promise<null | Object>#
    • role 字符串

      角色

    • name string

      节点的易读名称。

    • value 字符串 | 数字

      节点的当前值(如果适用)。

    • description 字符串

      节点的额外易读描述(如果适用)。

    • keyshortcuts 字符串

      与此节点关联的键盘快捷键(如果适用)。

    • roledescription 字符串

      角色的易读替代(如果适用)。

    • valuetext 字符串

      当前值的描述(如果适用)。

    • disabled 布尔值

      节点是否被禁用(如果适用)。

    • expanded 布尔值

      节点是展开还是折叠(如果适用)。

    • focused 布尔值

      节点是否获得焦点(如果适用)。

    • modal 布尔值

      节点是否为 模态(如果适用)。

    • multiline 布尔值

      节点文本输入是否支持多行(如果适用)。

    • multiselectable 布尔值

      是否可以选中多个子节点(如果适用)。

    • readonly 布尔值

      节点是否只读(如果适用)。

    • required 布尔值

      节点是否为必需(如果适用)。

    • selected 布尔值

      节点是否在其父节点中被选中(如果适用)。

    • checked 布尔值 | "mixed"

      复选框是否被选中,或为“混合”状态(如果适用)。

    • pressed 布尔值 | "mixed"

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

    • level 数字

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

    • valuemin 数字

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

    • valuemax 数字

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

    • autocomplete 字符串

      控件支持哪种自动完成(如果适用)。

    • haspopup 字符串

      节点当前显示哪种弹出窗口(如果适用)。

    • invalid 字符串

      此节点的值是否无效以及无效的方式(如果适用)。

    • orientation 字符串

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

    • children 数组<对象>

      子节点(如果适用)。