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;
}
Аргументы
optionsObject (необязательный)-
interestingOnlyboolean (необязательный)#Удалить неинтересные узлы из дерева. По умолчанию
true. -
rootElementHandle (необязательный)#Корневой DOM-элемент для снимка. По умолчанию — вся страница.
-
Возвращает
- Promise<null | Object>#
-
rolestringроль.
-
namestringЧитаемое человеком имя узла.
-
Текущее значение узла, если применимо.
-
descriptionstringДополнительное читаемое человеком описание узла, если применимо.
-
keyshortcutsstringГорячие клавиши, связанные с этим узлом, если применимо.
-
roledescriptionstringЧитаемая человеком альтернатива роли, если применимо.
-
valuetextstringОписание текущего значения, если применимо.
-
disabledbooleanЯвляется ли узел отключенным, если применимо.
-
expandedbooleanЯвляется ли узел развернутым или свернутым, если применимо.
-
focusedbooleanЯвляется ли узел фокусированным, если применимо.
-
modalbooleanЯвляется ли узел модальным, если применимо.
-
multilinebooleanПоддерживает ли текстовый ввод узла многострочный ввод, если применимо.
-
multiselectablebooleanМожно ли выбрать более одного дочернего узла, если применимо.
-
readonlybooleanЯвляется ли узел только для чтения, если применимо.
-
requiredbooleanЯвляется ли узел обязательным, если применимо.
-
selectedbooleanЯвляется ли узел выбранным в родительском узле, если применимо.
-
checkedboolean | "mixed"Является ли флажок установленным или "смешанным", если применимо.
-
pressedboolean | "mixed"Является ли переключатель установленным или "смешанным", если применимо.
-
levelnumberУровень заголовка, если применимо.
-
valueminnumberМинимальное значение в узле, если применимо.
-
valuemaxnumberМаксимальное значение в узле, если применимо.
-
autocompletestringКакой тип автозаполнения поддерживается контролем, если применимо.
-
haspopupstringКакой тип всплывающего окна в настоящее время отображается для узла, если применимо.
-
invalidstringЯвляется ли и каким образом значение этого узла недействительным, если применимо.
-
orientationstringОриентирован ли узел горизонтально или вертикально, если применимо.
-
Дочерние узлы, если есть, если применимо.
-