Accessibility
Класс Accessibility предоставляет методы для инспекции дерева доступности Chromium. Дерево доступности используется вспомогательными технологиями, такими как экранные считыватели или переключатели.
Доступность — это очень специфичная для платформы вещь. На разных платформах существуют разные экранные считыватели, которые могут выдавать совершенно разные результаты.
Рендеринг-движки Chromium, Firefox и WebKit имеют концепцию "дерева доступности", которое затем переводится в различные специфичные для платформы API. Пространство имен Accessibility предоставляет доступ к этому дереву доступности.
Большая часть дерева доступности отфильтровывается при преобразовании из внутреннего AX-дерева браузера в специфичное для платформы AX-дерево или самими вспомогательными технологиями. По умолчанию Playwright пытается приблизить это фильтрацию, exposing только "интересные" узлы дерева.
Устарело
snapshot
Добавлено до v1.9Фиксирует текущее состояние дерева доступности. Возвращаемый объект представляет корневой доступный узел страницы.
Дерево доступности 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 (необязательный)-
interestingOnly
boolean (необязательный)#Удалить неинтересные узлы из дерева. По умолчанию
true
. -
root
ElementHandle (необязательный)#Корневой DOM-элемент для снимка. По умолчанию — вся страница.
-
Возвращает
- Promise<null | Object>#
-
role
stringроль.
-
name
stringЧитаемое человеком имя узла.
-
Текущее значение узла, если применимо.
-
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Ориентирован ли узел горизонтально или вертикально, если применимо.
-
Дочерние узлы, если есть, если применимо.
-