Версия движка проверки: axe-core 4.13.0. Всего критериев: 55 (A: 31, AA: 24). Задействовано правил движка: 63.
Итог по автоматизируемости: полностью - 0, частично - 20, вручную - 35.
Правила классификации
- «вручную»: ни одно действующее (не experimental и не мертвое deprecated) правило движка с тегом критерия не найдено.
- «частично»: правила есть, но покрывают только часть условий критерия; конкретный остаток указан в столбце «Что остается человеку».
- «полностью»: применяется только если все проверяемые условия критерия программно определимы без участия человека. В этой сборке такому условию не удовлетворяет ни один критерий (см. расхождения ниже).
- can_prove для всех частично автоматизируемых критериев в этой сборке равен «нарушение»: автоматический pass означает лишь отсутствие найденной ошибки, а не доказанное прохождение критерия.
Расхождения с прежней оценкой
Прежняя экспертная оценка одним прочтением (без проверки по движку) дала итог: полностью 3 (3.1.1, 2.4.2, 1.4.3), частично 20, вручную 32. Проверка по фактическим тегам axe-core 4.13.0 дала: полностью 0, частично 20, вручную 35.
- 3.1.1 Язык страницы. Правила html-has-lang/html-lang-valid/html-xml-lang-mismatch проверяют присутствие и синтаксическую валидность атрибута lang, но не то, что заявленный язык совпадает с фактическим языком контента. Итог: частично, не полностью.
- 2.4.2 Заголовок страницы. Правило document-title проверяет только присутствие непустого <title>, а не описательность заголовка относительно темы или назначения страницы. Итог: частично, не полностью.
- 1.4.3 Контраст, минимум. Правило color-contrast надежно ловит нарушение при однозначно определимых сплошных цветах, но на фоне-изображении, градиенте или при полупрозрачности возвращает incomplete, а не прохождение. Итог: частично, не полностью.
- Общее число «частично» в этой сборке (20) получено независимо от прежней оценки (по реальным тегам axe-core), поэтому состав множества «частично» отличается от прежнего даже там, где итоговое число совпадает: часть прежних «частично» здесь оказались «вручную» (например, при более строгой проверке enabled/experimental-статуса правил), а три прежних «полностью» перешли в «частично».
- Правила движка axe-core с тегом упраздненного критерия 4.1.1 (wcag411): duplicate-id, duplicate-id-active. Они не привязаны ни к одному критерию реестра.
Таблица (55 строк)
| Критерий | Уровень | Автоматизация | Правила движка | Что проверяет автомат | Что остается человеку |
|---|---|---|---|---|---|
| 1.1.1 Нетекстовый контент | A | частично | aria-meter-name, aria-progressbar-name, image-alt, input-image-alt, object-alt, role-img-alt, svg-img-alt | Наличие и непустоту доступного имени у <img>, <input type=image>, <object>, [role=img]/[role=image], <svg role=img>, ARIA meter и progressbar. | Смысловое соответствие альтернативы назначению или информации объекта, разграничение декоративного и содержательного, качество альтернативы CAPTCHA, карт и сенсорных объектов, полнота длинных описаний диаграмм. |
| 1.2.1 Только аудио и только видео, запись | A | вручную | - | Ничего: непустого действующего правила с тегом этого критерия в axe-core 4.13.0 нет. | Вся применимость критерия: сопоставление записанного аудио/видео без второй дорожки с текстовой альтернативой той же информации. |
| 1.2.2 Субтитры, запись | A | частично | video-caption | Наличие дорожки субтитров (<track kind="captions">) у элемента <video>. | Полнота и синхронность субтитров, передачу говорящих и значимых неречевых звуков, субтитры вне тега <video> (сторонние плееры, встраиваемые виджеты). |
| 1.2.3 Аудиоописание или медиальтернатива, запись | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Определение значимой визуальной информации, не переданной звуком, и проверку аудиоописания либо последовательной медиальтернативы. |
| 1.2.4 Субтитры, прямой эфир | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Наблюдение прямого эфира и сопоставление живых субтитров со звуком в реальном времени. |
| 1.2.5 Аудиоописание, запись | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Определение значимых визуальных событий и проверку их передачи аудиоописанием. |
| 1.3.1 Информация и отношения | A | частично | aria-hidden-body, aria-required-children, aria-required-parent, definition-list, dlitem, list, listitem, td-headers-attr, th-has-data-cells | Формальную структурную корректность списков (<ul>/<ol>/<li>), определений (<dl>/<dt>/<dd>), обязательных ARIA родитель-потомок отношений, aria-hidden на <body>, связку заголовков и ячеек таблиц данных (td[headers], th с соответствующими данными). | Смысловую группировку (fieldset/legend, области по назначению), совпадение визуально воспринимаемых отношений с программной структурой там, где формальная разметка технически валидна, но не отражает смысл. |
| 1.3.2 Значимая последовательность | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Сравнение осмысленного визуального порядка с программным порядком чтения. |
| 1.3.3 Сенсорные характеристики | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Поиск инструкций, зависящих только от формы, цвета, размера, положения или звука, и проверку наличия несенсорного идентификатора. |
| 1.3.4 Ориентация | AA | вручную | - | Ничего: применимое правило исключено из классификации (см. rationale). | Проверку работы функции в книжной и альбомной ориентации на реальном/эмулируемом устройстве. |
| 1.3.5 Назначение полей ввода | AA | частично | autocomplete-valid | Синтаксическую корректность значения атрибута autocomplete по спецификации HTML. | Соответствие выбранного токена реальному смыслу поля и фактическое распознавание менеджером паролей/пользовательским агентом. |
| 1.4.1 Использование цвета | A | частично | link-in-text-block | Отличимость ссылки внутри текстового абзаца от окружающего текста не только по цвету. | Все остальные случаи цветового кодирования: состояния элементов, графики, ошибки, легенды, обязательные поля. |
| 1.4.2 Управление аудио | A | частично | no-autoplay-audio | Факт автозапуска <audio>/<video> с autoplay без mute в разметке. | Фактическую длительность автозвука свыше 3 секунд и наличие независимого от общей громкости контроля паузы/остановки/громкости. |
| 1.4.3 Контраст, минимум | AA | частично | color-contrast | Вычисление отношения контраста текста к фону и его сопоставление с порогом 4.5:1/3:1 там, где цвета фона и текста однозначно определимы. | Случаи, где color-contrast возвращает incomplete: фон-изображение, градиенты, полупрозрачность, перекрывающие элементы; применимость исключений (логотип, неактивный элемент, изображение текста). |
| 1.4.4 Изменение размера текста | AA | частично | meta-viewport | Отсутствие блокирующих zoom значений meta viewport (user-scalable=no, ограничивающий maximum-scale). | Фактическое поведение интерфейса при масштабе 200%: обрезку, наложение, недоступные элементы, диалоги и сообщения. |
| 1.4.5 Изображения текста | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Определение, является ли изображение текстом, который можно было представить текстом, и применимость исключений (логотип, существенность представления). |
| 1.4.10 Перестроение | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Эмуляцию viewport 320 CSS px (или 400% при ширине 1280 px) и визуальный поиск двумерной прокрутки и потери содержимого. |
| 1.4.11 Нетекстовый контраст | AA | вручную | - | Ничего: в axe-core 4.13.0 нет отдельного правила с тегом критерия 1.4.11. | Измерение контраста произвольных границ, индикаторов состояния и значимых графических объектов к соседним цветам. |
| 1.4.12 Интервалы текста | AA | частично | avoid-inline-spacing | Инлайновые стили (в т.ч. с !important) на line-height/letter-spacing/word-spacing/margin, мешающие переопределить их пользовательским CSS. | Фактический результат одновременного применения всех четырех параметров критерия: обрезку, наложение и скрытие содержимого или функции. |
| 1.4.13 Содержимое при наведении или фокусе | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Проверку dismissible, hoverable и persistent реальным наведением и фокусом. |
| 2.1.1 Клавиатура | A | частично | frame-focusable-content, scrollable-region-focusable, server-side-image-map | Отдельные технические антипаттерны: tabindex=-1 на фрейме с фокусируемым содержимым, прокручиваемая область без клавиатурного доступа, использование серверной image map. | Полное прохождение каждой функции клавиатурой (Tab/Shift+Tab/Enter/Space/стрелки), кастомные виджеты и обработчики, реагирующие только на мышь или касание. |
| 2.1.2 Нет клавиатурной ловушки | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Попытку вывести фокус из каждого фокусируемого компонента стандартным или документированным способом. |
| 2.1.4 Одноклавишные сочетания | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Проверку каждого одноклавишного сочетания вне и внутри целевого компонента и наличие механизма отключения/переназначения/ограничения фокусом. |
| 2.2.1 Настраиваемое ограничение времени | A | частично | meta-refresh | Наличие meta http-equiv="refresh" с задержкой менее 20 часов. | Прочие источники ограничений времени (скрипты, серверные сессии), фактическое наличие настройки/продления/предупреждения за 20 секунд и применимость исключений real-time/essential/20 часов. |
| 2.2.2 Пауза, остановка, скрытие | A | частично | blink, marquee | Использование устаревших тегов <blink> и <marquee>. | Современные CSS/JS-анимации, карусели, тикеры и автообновляемые блоки, а также наличие управления паузой/остановкой/скрытием - основную массу применимости критерия. |
| 2.3.1 Три вспышки или ниже порога | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Покадровый анализ видео на пороги общей и красной вспышки за любую секунду. |
| 2.4.1 Обход блоков | A | частично | bypass | Наличие хотя бы одного технического механизма обхода повторяющихся блоков (skip-ссылка, landmark, заголовок в начале содержимого). | Фактическую работоспособность механизма (перевод фокуса действительно достигает основного содержимого) и повторяемость блока на второй странице набора. |
| 2.4.2 Заголовок страницы | A | частично | document-title | Наличие непустого элемента <title>. | Описательность заголовка относительно темы или назначения страницы и его обновление при навигации в одностраничном приложении. |
| 2.4.3 Порядок фокуса | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Прохождение фокусом вперед и назад по всем элементам и оценку сохранения смысла и управляемости. |
| 2.4.4 Назначение ссылки в контексте | A | частично | area-alt, link-name | Наличие непустого доступного имени у ссылок и активных областей image map. | Понятность назначения именно из текста или программно связанного контекста: непустое, но неинформативное имя вроде "подробнее" пройдет проверку правилом, но может провалить критерий. |
| 2.4.5 Несколько способов | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Сопоставление минимум двух способов найти страницу на уровне всего набора страниц (навигация, поиск, карта сайта, связанные ссылки). |
| 2.4.6 Заголовки и подписи | AA | вручную | - | Ничего: применимое правило исключено из классификации (см. rationale). | Оценку описательности заголовков разделов и подписей элементов управления по смыслу. |
| 2.4.7 Видимый фокус | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Визуальную проверку видимого индикатора фокуса при реальном табулировании по всем фокусируемым элементам, включая кастомные компоненты. |
| 2.4.11 Фокус не закрыт, минимум | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Проверку перекрытия компонента липкими шапками/подвалами, баннерами и диалогами в разных viewport при реальном получении фокуса. |
| 2.5.1 Указательные жесты | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Выполнение многоточечных и траекторных жестов на сенсорном устройстве и поиск одноточечной альтернативы. |
| 2.5.2 Отмена указателя | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Эмуляцию событий down/up с уходом указателя за пределы элемента и проверку момента фактического срабатывания действия. |
| 2.5.3 Подпись в имени | A | вручную | - | Ничего: применимое правило исключено из классификации (см. rationale). | Сравнение видимой подписи с вычисленным доступным именем и проверку голосовой команды. |
| 2.5.4 Управление движением | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Физическое движение устройством и проверку наличия альтернативного элемента управления и возможности отключить реакцию на движение. |
| 2.5.7 Перетаскивание | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Выполнение drag-операции и проверку достижимости того же результата одноуказательной альтернативой. |
| 2.5.8 Размер цели, минимум | AA | частично | target-size | Измерение геометрии интерактивных целей (высоту, ширину, положение соседей) и сопоставление с порогом 24x24 CSS px там, где размеры и соседство однозначно вычислимы из рендера. | Случаи, где правило возвращает incomplete из-за неоднозначного соседства, перекрытия или inline-контекста, и применимость исключений equivalent/inline/user-agent control/essential. |
| 3.1.1 Язык страницы | A | частично | html-has-lang, html-lang-valid, html-xml-lang-mismatch | Наличие атрибута lang на <html>, его синтаксическую валидность по BCP 47 и совпадение значений lang и xml:lang. | Соответствие заявленного языка фактическому основному языку содержимого страницы: правило не читает и не распознает язык текста, поэтому lang="en" на русскоязычной странице его пройдет. |
| 3.1.2 Язык частей | AA | частично | valid-lang | Синтаксическую валидность значения lang у элементов, отличного от корневого языка. | Обнаружение самих иноязычных фрагментов без разметки lang (правило не находит непомеченные фрагменты) и применимость исключений (имена, термины, заимствования). |
| 3.2.1 При фокусе | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Перевод фокуса на каждый компонент без активации и наблюдение, вызывает ли это смену контекста по определению WCAG. |
| 3.2.2 При вводе | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Изменение каждого значения компонента без отдельной активации и наблюдение за сменой контекста и предупреждением до использования. |
| 3.2.3 Последовательная навигация | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Сравнение относительного порядка повторяющихся механизмов навигации минимум на двух страницах набора. |
| 3.2.4 Последовательная идентификация | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Сравнение идентификации одинаковых по функции компонентов на разных страницах набора. |
| 3.2.6 Последовательная помощь | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Сравнение относительного порядка механизма помощи на страницах набора. |
| 3.3.1 Определение ошибки | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Вызов реальной ошибки ввода и проверку текстового описания и связи с ошибочным элементом. |
| 3.3.2 Подписи или инструкции | A | частично | form-field-multiple-labels | Обнаружение поля формы с несколькими конфликтующими <label>-элементами. | Наличие и достаточность самой подписи или инструкции по смыслу, указание формата, обязательности и нестандартных ограничений. |
| 3.3.3 Предложение исправления ошибки | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Вызов ошибки и оценку, предложено ли конкретное известное исправление и можно ли его применить. |
| 3.3.4 Предотвращение ошибок: юридические, финансовые, данные | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Прохождение операции с фиктивными данными и проверку одного из трех допустимых механизмов (отмена, проверка с исправлением, просмотр и подтверждение). |
| 3.3.7 Повторный ввод | A | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Прохождение многошагового процесса и проверку автоподстановки или выбора ранее введенных данных на повторном шаге. |
| 3.3.8 Доступная аутентификация, минимум | AA | вручную | - | Ничего: правил с тегом этого критерия в axe-core нет. | Прохождение аутентификации и восстановления доступа, оценку наличия когнитивного теста и доступной альтернативы или помощи. |
| 4.1.2 Имя, роль, значение | A | частично | area-alt, aria-allowed-attr, aria-braille-equivalent, aria-command-name, aria-conditional-attr, aria-deprecated-role, aria-hidden-body, aria-hidden-focus, aria-input-field-name, aria-prohibited-attr, aria-required-attr, aria-roles, aria-tab-name, aria-toggle-field-name, aria-tooltip-name, aria-valid-attr, aria-valid-attr-value, button-name, duplicate-id-aria, frame-title, frame-title-unique, input-button-name, input-image-alt, label, link-name, nested-interactive, select-name, summary-name | Программные имя, роль и допустимость ARIA-атрибутов для стандартных интерактивных элементов и распространенных ARIA-паттернов: кнопки, ссылки, поля ввода, вкладки, тултипы, фреймы, дубли id и схожие технические дефекты. | Поведенческую корректность кастомных виджетов при реальном взаимодействии (изменение состояний/значений), передачу изменений разным вспомогательным технологиям, случаи вне покрытых ARIA-паттернов. |
| 4.1.3 Сообщения о состоянии | AA | вручную | - | Ничего: в axe-core 4.13.0 нет правила с тегом этого критерия. | Вызов сообщения без перевода фокуса и наблюдение вывода конкретной вспомогательной технологии, определение программной роли/свойства статуса. |