Доступность
Класс Accessibility предоставляет методы для проверки дерева доступности Chromium. Дерево доступности используется технологиями辅助, такими как скринридеры или переключатели.
Доступность сильно зависит от платформы. На разных платформах используются разные скринридеры, которые могут давать совершенно разные результаты.
Рендеринговые движки Chromium, Firefox и WebKit имеют понятие "дерева доступности", которое затем преобразуется в API, специфичные для разных платформ. Пространство имен Accessibility предоставляет доступ к этому дереву доступности.
Большая часть дерева доступности отфильтровывается при переходе от внутреннего дерева AX браузера к платформенно-специфичному дереву AX или самими технологиями辅助. По умолчанию Playwright пытается приблизительно воспроизвести этот фильтр, отображая только "интересные" узлы дерева.
Устаревшее
снимок
Добавлен до версии 1.9УстаревшееЭтот метод устарел. Пожалуйста, используйте другие библиотеки, такие как Axe, если вам нужно проверить доступность страницы. Обратитесь к нашему руководству по Node.js пошаговая инструкция для интеграции с Axe.
Захватывает текущее состояние дерева доступности. Возвращаемый объект представляет корневой узел доступности страницы.
примечаниеДерево доступности 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строкаЧеловекочитаемое имя узла.
-
Текущее значение узла, если применимо.
-
descriptionстрокаДополнительное описание узла для чтения человеком, если применимо.
-
keyshortcutsстрокаСочетания клавиш, связанные с этим узлом, если применимо.
-
roledescriptionстрокаАльтернативное для чтения человеком описание роли, если применимо.
-
valuetextстрокаОписание текущего значения, если применимо.
-
disabledбулевоОтключен ли узел, если применимо.
-
expandedбулевоРазвернут или свёрнут ли узел, если применимо.
-
focusedбулевоСфокусирован ли узел, если применимо.
-
modalбулевоЯвляется ли узел модальным, если применимо.
-
multilineбулевоПоддерживает ли текстовое поле ввода узла несколько строк, если применимо.
-
multiselectableбулевоМожет ли быть выбрано более одного дочернего узла, если применимо.
-
readonlyбулевоТолько для чтения ли узел, если применимо.
-
requiredбулевоОбязателен ли узел, если применимо.
-
selectedбулевоВыбран ли узел в родительском узле, если применимо.
-
checkedбулево | "смешанный"Отмечен ли флажок, или "смешанный", если применимо.
-
pressedбулево | "смешанный"Отмечена ли переключательная кнопка, или "смешанный", если применимо.
-
levelчислоУровень заголовка, если применимо.
-
valueminчислоМинимальное значение в узле, если применимо.
-
valuemaxчислоМаксимальное значение в узле, если применимо.
-
autocompleteстрокаКакой тип автозаполнения поддерживается элементом управления, если применимо.
-
haspopupстрокаКакой тип всплывающего окна в настоящее время отображается для узла, если применимо.
-
invalidстрокаЯвляется ли значение узла недействительным и, если да, то каким образом, если применимо.
-
orientationстрокаОриентирован ли узел по горизонтали или вертикали, если применимо.
-
Дочерние узлы, если таковые имеются, если применимо.
-
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-accessibility