Библиотека axe-core — один из наиболее мощных
инструментов для автоматизированного тестирования доступности
веб-приложений. Одним из ключевых понятий в этой библиотеке является
статус inapplicable, который указывает на
то, что определённое правило проверки доступности не применимо к
данному элементу или контексту. Понимание работы с
inapplicable критично для корректной интерпретации
результатов сканирования и построения качественных отчётов о
доступности.
inapplicableВ axe-core каждый тест или правило проверяет DOM на соответствие
определённым критериям доступности, например, наличие альтернативного
текста для изображений или корректную семантику элементов формы. Статус
inapplicable появляется в следующих случаях:
Пример: правило image-alt проверяет
наличие альтернативного текста у изображений (<img>).
Если сканер встречает <div> без изображений, оно
будет помечено как inapplicable, так как критерий к этому
элементу неприменим.
inapplicableРезультаты axe-core имеют унифицированную структуру JSON. Каждый результат содержит несколько ключевых полей:
{
"id": "image-alt",
"impact": "critical",
"description": "Images must have alternate text",
"tags": ["wcag2a", "wcag111"],
"nodes": [
{
"html": "<div class='example'></div>",
"target": ["div.example"],
"failureSummary": "",
"any": [],
"all": [],
"none": [],
"status": "inapplicable"
}
]
}
Ключевые моменты:
status — отражает результат проверки для конкретного
узла. Значение inapplicable означает, что правило не
применялось.any, all, none могут
быть пустыми при inapplicable, так как нет условий, которые
можно было бы оценить.failureSummary не содержит текста, поскольку нарушений
нет.inapplicableОтсутствие целевого элемента. Правило ожидает
определённый тип элемента. Например, правило label для
формы требует <input> с соответствующим
<label>. Если <input> отсутствует,
правило помечается как inapplicable.
Элемент не активен или скрыт. Элементы с
display: none или aria-hidden="true" часто
автоматически становятся inapplicable для правил видимости
или фокусируемости.
Контекстные условия. Некоторые правила зависят от родительских или соседних элементов. Если контекст не соответствует, проверка пропускается.
Специфические исключения. Axe-core содержит
предопределённые исключения. Например, правило проверки
color-contrast игнорирует элементы с прозрачным текстом или
незначимый контент.
inapplicable при анализе результатовСтатус inapplicable не является ошибкой. Его правильная
интерпретация позволяет:
violations).Для удобного анализа можно фильтровать результаты по статусу:
const results = axe.run(document.body);
const inapplicableNodes = results.nodes.filter(node => node.status === 'inapplicable');
const violations = results.violations; // Только реальные нарушения
Такой подход позволяет отделять неприменимые проверки от нарушений доступности, обеспечивая чистоту отчёта.
inapplicable. Иногда большое
количество неприменимых правил может указывать на неправильную
конфигурацию сканера или тестируемого DOM.inapplicable для оптимизации
тестов, исключая проверки, которые никогда не будут
релевантными.inapplicable и
контекстными условиями правил: это помогает точнее
формулировать тестовые сценарии.inapplicable| Правило | Сценарий inapplicable |
|---|---|
image-alt |
Элемент не <img> или
<input type="image"> |
label |
Элемент формы без связанного <label> |
color-contrast |
Элемент с прозрачным текстом или скрытый от пользователя |
link-name |
Элемент без ссылки <a> или
<area> |
heading-order |
Элемент не является заголовком
(<h1>–<h6>) |
Каждый случай подчёркивает, что inapplicable не
указывает на ошибку, а служит индикатором неприменимости
правила к данному контексту.
В axe-core выделяются следующие статусы проверки:
passed — правило прошло успешно.violated — обнаружено нарушение.incomplete — проверка не была завершена.inapplicable — правило не применялось.Корректная фильтрация и интерпретация этих статусов позволяют строить
полный и точный анализ доступности веб-приложения.
Особенно важна разница между inapplicable и
passed: первый не проверяет, второй подтверждает
соответствие критериям.
Обработка inapplicable в axe-core — это фундаментальный
механизм, который позволяет тестированию быть точным, исключая ложные
срабатывания и фокусируясь только на реально проблемных элементах.
Понимание структуры результатов и причин возникновения этого статуса
необходимо для построения эффективных и надёжных проверок
доступности.