跳至主要内容

无障碍访问

Accessibility类提供了检查Chromium无障碍功能树的方法。无障碍功能树被辅助技术如屏幕阅读器切换设备所使用。

无障碍访问是一个非常依赖平台的功能。在不同的平台上,存在不同的屏幕阅读器,它们可能产生截然不同的输出。

Chromium、Firefox和WebKit的渲染引擎都有一个"可访问性树"的概念,随后会被转换为不同平台特定的API。可访问性命名空间提供了对这个可访问性树的访问。

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


已弃用

快照

Added before v1.9 accessibility.snapshot
Deprecated

此方法已弃用。如需测试页面可访问性,请使用其他库如Axe。关于与Axe的集成,请参阅我们的Node.js指南

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

note

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 (optional)
    • interestingOnly boolean (可选)#

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

    • root ElementHandle (可选)#

      用于生成快照的根DOM元素。默认为整个页面。

返回

  • Promise<null | Object>#
    • role string

      role

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

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