跳至主要内容

辅助功能

辅助功能类提供用于检查 Chromium 辅助功能树的方法。辅助功能树由辅助技术使用,例如 屏幕阅读器开关.

辅助功能是与平台高度相关的。在不同的平台上,不同的屏幕阅读器可能会有截然不同的输出。

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

在从内部浏览器 AX 树转换为平台特定 AX 树或由辅助技术本身进行转换时,大多数辅助功能树会被过滤掉。默认情况下,Playwright 尝试近似此过滤,仅公开树的“有趣”节点。


已弃用

快照

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

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

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

注意

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

      从树中修剪掉无趣的节点。默认为 true

    • root 元素句柄 (可选)#

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

返回值

  • Promise<null | 对象>#
    • role 字符串

      角色.

    • name 字符串

      节点的人类可读名称。

    • value 字符串 | 数字

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

    • description 字符串

      节点的附加人类可读描述(如果适用)。

    • keyshortcuts 字符串

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

    • roledescription 字符串

      角色的人类可读替代方案(如果适用)。

    • valuetext 字符串

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

    • disabled 布尔值

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

    • expanded 布尔值

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

    • focused 布尔值

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

    • modal 布尔值

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

    • multiline 布尔值

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

    • multiselectable 布尔值

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

    • readonly 布尔值

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

    • required 布尔值

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

    • selected 布尔值

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

    • checked 布尔值 | "mixed"

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

    • pressed 布尔值 | "mixed"

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

    • level 数字

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

    • valuemin 数字

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

    • valuemax 数字

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

    • autocomplete 字符串

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

    • haspopup 字符串

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

    • invalid 字符串

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

    • orientation 字符串

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

    • children 数组<对象>

      子节点(如果有)(如果适用)。