You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1127 lines
89 KiB
1127 lines
89 KiB
{ |
|
"lang": "ru", |
|
"rules": { |
|
"accesskeys": { |
|
"description": "Убедитесь, что значение атрибута accesskey является уникальным", |
|
"help": "Значение атрибута accesskey должно быть уникальным" |
|
}, |
|
"area-alt": { |
|
"description": "Убедитесь, что элементы <area> карт изображений имеют альтернативный текст", |
|
"help": "Активные элементы <area> должны иметь альтернативный текст" |
|
}, |
|
"aria-allowed-attr": { |
|
"description": "Убедитесь, что роль элемента поддерживает его ARIA атрибуты", |
|
"help": "Элементы должны использовать только поддерживаемые ARIA атрибуты" |
|
}, |
|
"aria-allowed-role": { |
|
"description": "Убедитесь, что атрибут role имеет допустимое значение для элемента", |
|
"help": "ARIA роль должна быть подходящей для элемента" |
|
}, |
|
"aria-braille-equivalent": { |
|
"description": "Убедитесь, что aria-braillelabel и aria-brailleroledescription имеют эквивалентный текст не для шрифта Брайля", |
|
"help": "Атрибуты aria-braille должны иметь эквивалентный текст не для шрифта Брайля" |
|
}, |
|
"aria-command-name": { |
|
"description": "Убедитесь, что каждая ARIA кнопка, ссылка и пункт меню имеет доступное имя", |
|
"help": "ARIA команды должны иметь доступное имя" |
|
}, |
|
"aria-conditional-attr": { |
|
"description": "Убедитесь, что ARIA атрибуты используются в соответствии со спецификацией роли элемента", |
|
"help": "ARIA атрибуты должны использоваться в соответствии с ролью элемента" |
|
}, |
|
"aria-deprecated-role": { |
|
"description": "Убедитесь, что элементы не используют устаревшие роли", |
|
"help": "Устаревшие ARIA роли не должны использоваться" |
|
}, |
|
"aria-dialog-name": { |
|
"description": "Убедитесь, что каждая ARIA диалоговая форма и alertdialog узел имеют доступное имя", |
|
"help": "ARIA диалоговые формы и alertdialog узлы должны иметь доступное имя" |
|
}, |
|
"aria-hidden-body": { |
|
"description": "Убедитесь, что aria-hidden=\"true\" отсутствует на теле документа.", |
|
"help": "aria-hidden=\"true\" не должно присутствовать на теле документа" |
|
}, |
|
"aria-hidden-focus": { |
|
"description": "Убедитесь, что aria-hidden элементы не могут быть сфокусированы и не содержат фокусируемых элементов", |
|
"help": "ARIA скрытые элементы не должны быть фокусируемыми или содержать фокусируемые элементы" |
|
}, |
|
"aria-input-field-name": { |
|
"description": "Убедитесь, что каждое ARIA поле ввода имеет доступное имя", |
|
"help": "ARIA поля ввода должны иметь доступное имя" |
|
}, |
|
"aria-meter-name": { |
|
"description": "Убедитесь, что каждый ARIA meter узел имеет доступное имя", |
|
"help": "ARIA meter узлы должны иметь доступное имя" |
|
}, |
|
"aria-progressbar-name": { |
|
"description": "Убедитесь, что каждый ARIA progressbar узел имеет доступное имя", |
|
"help": "ARIA progressbar узлы должны иметь доступное имя" |
|
}, |
|
"aria-prohibited-attr": { |
|
"description": "Убедитесь, что ARIA атрибуты не запрещены для роли элемента", |
|
"help": "Элементы должны использовать только разрешенные ARIA атрибуты" |
|
}, |
|
"aria-required-attr": { |
|
"description": "Убедитесь, что элементы с ARIA ролями имеют все необходимые ARIA атрибуты", |
|
"help": "Необходимые ARIA атрибуты должны быть предоставлены" |
|
}, |
|
"aria-required-children": { |
|
"description": "Убедитесь, что элементы с ARIA ролями, требующими дочерние роли, содержат их", |
|
"help": "Некоторые ARIA роли должны содержать определенные дочерние роли" |
|
}, |
|
"aria-required-parent": { |
|
"description": "Убедитесь, что элементы с ARIA ролями, требующими родительские роли, содержатся ими", |
|
"help": "Некоторые ARIA роли должны содержаться в определенных родительских ролях" |
|
}, |
|
"aria-roledescription": { |
|
"description": "Убедитесь, что aria-roledescription используется только на элементах с явной или неявной ролью", |
|
"help": "aria-roledescription должен использоваться на элементах с семантической ролью" |
|
}, |
|
"aria-roles": { |
|
"description": "Убедитесь, что все элементы с атрибутом role используют допустимое значение", |
|
"help": "ARIA роли должны соответствовать допустимым значениям" |
|
}, |
|
"aria-text": { |
|
"description": "Убедитесь, что роль=\"text\" используется на элементах без фокусируемых потомков", |
|
"help": "\"роль=text\" не должна иметь фокусируемых потомков" |
|
}, |
|
"aria-toggle-field-name": { |
|
"description": "Убедитесь, что каждое ARIA toggle поле имеет доступное имя", |
|
"help": "ARIA toggle поля должны иметь доступное имя" |
|
}, |
|
"aria-tooltip-name": { |
|
"description": "Убедитесь, что каждый ARIA tooltip узел имеет доступное имя", |
|
"help": "ARIA tooltip узлы должны иметь доступное имя" |
|
}, |
|
"aria-treeitem-name": { |
|
"description": "Убедитесь, что каждый ARIA treeitem узел имеет доступное имя", |
|
"help": "ARIA treeitem узлы должны иметь доступное имя" |
|
}, |
|
"aria-valid-attr-value": { |
|
"description": "Убедитесь, что все ARIA атрибуты имеют допустимые значения", |
|
"help": "ARIA атрибуты должны соответствовать допустимым значениям" |
|
}, |
|
"aria-valid-attr": { |
|
"description": "Убедитесь, что атрибуты, начинающиеся с aria-, являются допустимыми ARIA атрибутами", |
|
"help": "ARIA атрибуты должны соответствовать допустимым именам" |
|
}, |
|
"audio-caption": { |
|
"description": "Убедитесь, что элементы <audio> имеют субтитры", |
|
"help": "Элементы <audio> должны иметь трек субтитров" |
|
}, |
|
"autocomplete-valid": { |
|
"description": "Убедитесь, что атрибут autocomplete правильный и подходит для поля формы", |
|
"help": "Атрибут autocomplete должен использоваться правильно" |
|
}, |
|
"avoid-inline-spacing": { |
|
"description": "Убедитесь, что расстояние между текстом, установленное через атрибуты стиля, можно настроить с помощью пользовательских таблиц стилей", |
|
"help": "Встроенное текстовое пространство должно быть регулируемым с помощью пользовательских таблиц стилей" |
|
}, |
|
"blink": { |
|
"description": "Убедитесь, что элементы <blink> не используются", |
|
"help": "Элементы <blink> устарели и не должны использоваться" |
|
}, |
|
"button-name": { |
|
"description": "Убедитесь, что кнопки имеют различимый текст", |
|
"help": "Кнопки должны иметь различимый текст" |
|
}, |
|
"bypass": { |
|
"description": "Убедитесь, что на каждой странице есть хотя бы один механизм, позволяющий пользователю обходить навигацию и переходить непосредственно к содержимому", |
|
"help": "На странице должен быть способ обойти повторяющиеся блоки" |
|
}, |
|
"color-contrast-enhanced": { |
|
"description": "Убедитесь, что контраст между цветами переднего и заднего плана соответствует пороговым значениям улучшенной контрастности WCAG 2 AAA", |
|
"help": "Элементы должны соответствовать пороговым значениям улучшенной контрастности цвета" |
|
}, |
|
"color-contrast": { |
|
"description": "Убедитесь, что контраст между цветами переднего и заднего плана соответствует минимальным пороговым значениям контрастности WCAG 2 AA", |
|
"help": "Элементы должны соответствовать минимальным пороговым значениям контрастности цвета" |
|
}, |
|
"css-orientation-lock": { |
|
"description": "Убедитесь, что содержимое не привязано к определенной ориентации дисплея, и оно доступно во всех ориентациях дисплея", |
|
"help": "Медиа-запросы CSS не должны блокировать ориентацию дисплея" |
|
}, |
|
"definition-list": { |
|
"description": "Убедитесь, что элементы <dl> структурированы правильно", |
|
"help": "Элементы <dl> должны содержать только группы <dt> и <dd>, <script>, <template> или <div> элементы" |
|
}, |
|
"dlitem": { |
|
"description": "Убедитесь, что элементы <dt> и <dd> находятся внутри <dl>", |
|
"help": "Элементы <dt> и <dd> должны быть размещены внутри <dl>" |
|
}, |
|
"document-title": { |
|
"description": "Убедитесь, что каждый HTML-документ содержит непустой элемент <title>", |
|
"help": "Документы должны иметь элемент <title> для навигации" |
|
}, |
|
"duplicate-id-active": { |
|
"description": "Убедитесь, что каждое значение атрибута id активных элементов уникально", |
|
"help": "Идентификаторы активных элементов должны быть уникальными" |
|
}, |
|
"duplicate-id-aria": { |
|
"description": "Убедитесь, что каждое значение атрибута id, используемого в ARIA и метках, уникально", |
|
"help": "Идентификаторы, используемые в ARIA и метках, должны быть уникальными" |
|
}, |
|
"duplicate-id": { |
|
"description": "Убедитесь, что каждое значение атрибута id уникально", |
|
"help": "Значение атрибута id должно быть уникальным" |
|
}, |
|
"empty-heading": { |
|
"description": "Убедитесь, что заголовки содержат различимый текст", |
|
"help": "Заголовки не должны быть пустыми" |
|
}, |
|
"empty-table-header": { |
|
"description": "Убедитесь, что заголовки таблиц содержат различимый текст", |
|
"help": "Текст заголовка таблицы не должен быть пустым" |
|
}, |
|
"focus-order-semantics": { |
|
"description": "Убедитесь, что элементы в порядке фокуса имеют роль, соответствующую интерактивному содержимому", |
|
"help": "Элементы в порядке фокуса должны иметь соответствующую роль" |
|
}, |
|
"form-field-multiple-labels": { |
|
"description": "Убедитесь, что поле формы не имеет нескольких элементов label", |
|
"help": "Поле формы не должно иметь несколько элементов label" |
|
}, |
|
"frame-focusable-content": { |
|
"description": "Убедитесь, что элементы <frame> и <iframe> с фокусируемым содержимым не имеют tabindex=-1", |
|
"help": "Фреймы с фокусируемым содержимым не должны иметь tabindex=-1" |
|
}, |
|
"frame-tested": { |
|
"description": "Убедитесь, что элементы <iframe> и <frame> содержат скрипт axe-core", |
|
"help": "Фреймы должны быть протестированы с помощью axe-core" |
|
}, |
|
"frame-title-unique": { |
|
"description": "Убедитесь, что элементы <iframe> и <frame> содержат уникальный атрибут title", |
|
"help": "Фреймы должны иметь уникальный атрибут title" |
|
}, |
|
"frame-title": { |
|
"description": "Убедитесь, что элементы <iframe> и <frame> имеют доступное имя", |
|
"help": "Фреймы должны иметь доступное имя" |
|
}, |
|
"heading-order": { |
|
"description": "Убедитесь, что порядок заголовков соответствует семантической структуре", |
|
"help": "Уровни заголовков должны увеличиваться на единицу" |
|
}, |
|
"hidden-content": { |
|
"description": "Информирует пользователей о скрытом содержимом.", |
|
"help": "Скрытое содержимое на странице должно быть проанализировано" |
|
}, |
|
"html-has-lang": { |
|
"description": "Убедитесь, что каждый HTML-документ имеет атрибут lang", |
|
"help": "Элемент <html> должен иметь атрибут lang" |
|
}, |
|
"html-lang-valid": { |
|
"description": "Убедитесь, что атрибут lang элемента <html> имеет допустимое значение", |
|
"help": "Элемент <html> должен иметь допустимое значение для атрибута lang" |
|
}, |
|
"html-xml-lang-mismatch": { |
|
"description": "Убедитесь, что HTML элементы с атрибутами lang и xml:lang согласуются в базовом языке страницы", |
|
"help": "HTML элементы с атрибутами lang и xml:lang должны согласоваться в базовом языке" |
|
}, |
|
"identical-links-same-purpose": { |
|
"description": "Убедитесь, что ссылки с одинаковым доступным именем выполняют схожую цель", |
|
"help": "Ссылки с одинаковым именем должны выполнять схожую цель" |
|
}, |
|
"image-alt": { |
|
"description": "Убедитесь, что элементы <img> имеют альтернативный текст или роль \"none\" или \"presentation\"", |
|
"help": "Изображения должны иметь альтернативный текст" |
|
}, |
|
"image-redundant-alt": { |
|
"description": "Убедитесь, что альтернативный текст изображения не повторяется в тексте", |
|
"help": "Альтернативный текст изображения не должен повторяться в тексте" |
|
}, |
|
"input-button-name": { |
|
"description": "Убедитесь, что кнопки ввода имеют различимый текст", |
|
"help": "Кнопки ввода должны иметь различимый текст" |
|
}, |
|
"input-image-alt": { |
|
"description": "Убедитесь, что элементы <input type=\"image\"> имеют альтернативный текст", |
|
"help": "Кнопки изображения должны иметь альтернативный текст" |
|
}, |
|
"label-content-name-mismatch": { |
|
"description": "Убедитесь, что элементы, маркированные через их содержимое, содержат видимый текст как часть доступного имени", |
|
"help": "Элементы должны содержать видимый текст как часть доступного имени" |
|
}, |
|
"label-title-only": { |
|
"description": "Убедитесь, что каждый элемент формы имеет видимую метку и не маркируется исключительно скрытыми метками, или атрибутами title или aria-describedby", |
|
"help": "Элементы формы должны иметь видимую метку" |
|
}, |
|
"label": { |
|
"description": "Убедитесь, что каждый элемент формы имеет метку", |
|
"help": "Элементы формы должны иметь метки" |
|
}, |
|
"landmark-banner-is-top-level": { |
|
"description": "Убедитесь, что область баннера находится на верхнем уровне", |
|
"help": "Область баннера не должна быть вложена в другую область" |
|
}, |
|
"landmark-complementary-is-top-level": { |
|
"description": "Убедитесь, что дополнительная область или aside находятся на верхнем уровне", |
|
"help": "Aside не должен быть вложен в другую область" |
|
}, |
|
"landmark-contentinfo-is-top-level": { |
|
"description": "Убедитесь, что область contentinfo находится на верхнем уровне", |
|
"help": "Область contentinfo не должна быть вложена в другую область" |
|
}, |
|
"landmark-main-is-top-level": { |
|
"description": "Убедитесь, что область main находится на верхнем уровне", |
|
"help": "Область main не должна быть вложена в другую область" |
|
}, |
|
"landmark-no-duplicate-banner": { |
|
"description": "Убедитесь, что документ содержит не более одного баннера", |
|
"help": "Документ не должен содержать более одного баннера" |
|
}, |
|
"landmark-no-duplicate-contentinfo": { |
|
"description": "Убедитесь, что документ содержит не более одной области contentinfo", |
|
"help": "Документ не должен содержать более одной области contentinfo" |
|
}, |
|
"landmark-no-duplicate-main": { |
|
"description": "Убедитесь, что документ содержит не более одной области main", |
|
"help": "Документ не должен содержать более одной области main" |
|
}, |
|
"landmark-one-main": { |
|
"description": "Убедитесь, что документ содержит одну основную область", |
|
"help": "Документ должен содержать одну основную область" |
|
}, |
|
"landmark-unique": { |
|
"description": "Убедитесь, что области уникальны", |
|
"help": "Области должны иметь уникальную роль или комбинацию роли/метки/названия (т.е. доступное имя)" |
|
}, |
|
"link-in-text-block": { |
|
"description": "Убедитесь, что ссылки выделяются на фоне окружающего текста, не полагаясь только на цвет", |
|
"help": "Ссылки должны быть различимы без использования цвета" |
|
}, |
|
"link-name": { |
|
"description": "Убедитесь, что ссылки содержат различимый текст", |
|
"help": "Ссылки должны содержать различимый текст" |
|
}, |
|
"list": { |
|
"description": "Убедитесь, что списки структурированы правильно", |
|
"help": "Элементы <ul> и <ol> должны содержать только элементы <li>, <script> или <template>" |
|
}, |
|
"listitem": { |
|
"description": "Убедитесь, что элементы <li> используются семантически правильно", |
|
"help": "Элементы <li> должны быть вложены в <ul> или <ol>" |
|
}, |
|
"marquee": { |
|
"description": "Убедитесь, что элементы <marquee> не используются", |
|
"help": "Элементы <marquee> устарели и не должны использоваться" |
|
}, |
|
"meta-refresh-no-exceptions": { |
|
"description": "Убедитесь, что <meta http-equiv=\"refresh\"> не используется для отложенного обновления", |
|
"help": "Отложенное обновление не должно использоваться" |
|
}, |
|
"meta-refresh": { |
|
"description": "Убедитесь, что <meta http-equiv=\"refresh\"> не используется для отложенного обновления", |
|
"help": "Отложенное обновление менее 20 часов не должно использоваться" |
|
}, |
|
"meta-viewport-large": { |
|
"description": "Убедитесь, что <meta name=\"viewport\"> позволяет значительное масштабирование", |
|
"help": "Пользователи должны иметь возможность увеличивать и масштабировать текст до 500%" |
|
}, |
|
"meta-viewport": { |
|
"description": "Убедитесь, что <meta name=\"viewport\"> не отключает масштабирование и увеличение текста", |
|
"help": "Масштабирование и увеличение текста не должны быть отключены" |
|
}, |
|
"nested-interactive": { |
|
"description": "Убедитесь, что интерактивные элементы не вложены, так как они могут не озвучиваться экранными считывателями или вызывать проблемы с фокусом для вспомогательных технологий", |
|
"help": "Интерактивные элементы не должны быть вложены" |
|
}, |
|
"no-autoplay-audio": { |
|
"description": "Убедитесь, что элементы <video> или <audio> не воспроизводят аудио автоматически более 3 секунд без механизма для его остановки или отключения", |
|
"help": "Элементы <video> или <audio> не должны воспроизводиться автоматически" |
|
}, |
|
"object-alt": { |
|
"description": "Убедитесь, что элементы <object> имеют альтернативный текст", |
|
"help": "Элементы <object> должны иметь альтернативный текст" |
|
}, |
|
"p-as-heading": { |
|
"description": "Убедитесь, что текст, оформленный как жирный, курсивный или с измененным размером шрифта, не используется для оформления элементов <p> в качестве заголовков", |
|
"help": "Оформленные элементы <p> не должны использоваться как заголовки" |
|
}, |
|
"page-has-heading-one": { |
|
"description": "Убедитесь, что страница или хотя бы один из ее фреймов содержит заголовок первого уровня", |
|
"help": "Страница должна содержать заголовок первого уровня" |
|
}, |
|
"presentation-role-conflict": { |
|
"description": "Элементы, отмеченные как презентационные, не должны иметь глобальные ARIA атрибуты или tabindex, чтобы все экранные считыватели игнорировали их", |
|
"help": "Убедитесь, что элементы, отмеченные как презентационные, последовательно игнорируются" |
|
}, |
|
"region": { |
|
"description": "Убедитесь, что все содержимое страницы заключено в ориентиры", |
|
"help": "Все содержимое страницы должно быть заключено в ориентиры" |
|
}, |
|
"role-img-alt": { |
|
"description": "Убедитесь, что элементы с ролью [role=\"img\"] имеют альтернативный текст", |
|
"help": "Элементы с ролью [role=\"img\"] должны иметь альтернативный текст" |
|
}, |
|
"scope-attr-valid": { |
|
"description": "Убедитесь, что атрибут scope используется правильно в таблицах", |
|
"help": "Атрибут scope должен использоваться правильно" |
|
}, |
|
"scrollable-region-focusable": { |
|
"description": "Убедитесь, что элементы с прокручиваемым содержимым доступны с клавиатуры", |
|
"help": "Прокручиваемая область должна быть доступна с клавиатуры" |
|
}, |
|
"select-name": { |
|
"description": "Убедитесь, что элемент select имеет доступное имя", |
|
"help": "Элемент select должен иметь доступное имя" |
|
}, |
|
"server-side-image-map": { |
|
"description": "Убедитесь, что серверные карты изображений не используются", |
|
"help": "Серверные карты изображений не должны использоваться" |
|
}, |
|
"skip-link": { |
|
"description": "Убедитесь, что все ссылки для пропуска имеют фокусируемую цель", |
|
"help": "Цель ссылки для пропуска должна существовать и быть фокусируемой" |
|
}, |
|
"summary-name": { |
|
"description": "Убедитесь, что элементы summary содержат различимый текст", |
|
"help": "Элементы summary должны содержать различимый текст" |
|
}, |
|
"svg-img-alt": { |
|
"description": "Убедитесь, что элементы <svg> с ролью img, graphics-document или graphics-symbol имеют доступный текст", |
|
"help": "Элементы <svg> с ролью img должны иметь альтернативный текст" |
|
}, |
|
"tabindex": { |
|
"description": "Убедитесь, что значения атрибута tabindex не превышают 0", |
|
"help": "Элементы не должны иметь tabindex больше нуля" |
|
}, |
|
"table-duplicate-name": { |
|
"description": "Убедитесь, что элемент <caption> не содержит тот же текст, что и атрибут summary", |
|
"help": "Таблицы не должны иметь одинаковый summary и caption" |
|
}, |
|
"table-fake-caption": { |
|
"description": "Убедитесь, что таблицы с заголовком используют элемент <caption>", |
|
"help": "Данные или заголовочные ячейки не должны использоваться для заголовка таблицы" |
|
}, |
|
"target-size": { |
|
"description": "Убедитесь, что целевые элементы для касания имеют достаточный размер и пространство", |
|
"help": "Все целевые элементы для касания должны быть не менее 24px или иметь достаточное пространство" |
|
}, |
|
"td-has-header": { |
|
"description": "Убедитесь, что каждая непустая ячейка данных в таблице больше 3 на 3 имеет один или несколько заголовков таблицы", |
|
"help": "Непустые элементы <td> в больших таблицах должны иметь связанные заголовки таблицы" |
|
}, |
|
"td-headers-attr": { |
|
"description": "Убедитесь, что каждая ячейка в таблице, использующая атрибут headers, ссылается только на другие элементы <th> в этой таблице", |
|
"help": "Атрибуты headers ячеек таблицы должны ссылаться на другие элементы <th> в той же таблице" |
|
}, |
|
"th-has-data-cells": { |
|
"description": "Убедитесь, что элементы <th> и элементы с ролью columnheader/rowheader имеют ячейки данных, которые они описывают", |
|
"help": "Заголовки таблицы в таблице данных должны ссылаться на ячейки данных" |
|
}, |
|
"valid-lang": { |
|
"description": "Убедитесь, что атрибуты lang имеют допустимые значения", |
|
"help": "Атрибут lang должен иметь допустимое значение" |
|
}, |
|
"video-caption": { |
|
"description": "Убедитесь, что элементы <video> имеют субтитры", |
|
"help": "Элементы <video> должны иметь субтитры" |
|
} |
|
}, |
|
"checks": { |
|
"abstractrole": { |
|
"pass": "Абстрактные роли не используются", |
|
"fail": { |
|
"singular": "Абстрактная роль не может быть использована напрямую: ${data.values}", |
|
"plural": "Абстрактные роли не могут быть использованы напрямую: ${data.values}" |
|
} |
|
}, |
|
"aria-allowed-attr": { |
|
"pass": "ARIA атрибуты используются правильно для заданной роли", |
|
"fail": { |
|
"singular": "ARIA атрибут не допускается: ${data.values}", |
|
"plural": "ARIA атрибуты не допускаются: ${data.values}" |
|
}, |
|
"incomplete": "Проверьте, не возникает ли проблема, если атрибут ARIA будет проигнорирован на этом элементе: ${data.values}" |
|
}, |
|
"aria-allowed-role": { |
|
"pass": "ARIA роль допустима для данного элемента", |
|
"fail": { |
|
"singular": "ARIA роль ${data.values} не допускается для данного элемента", |
|
"plural": "ARIA роли ${data.values} не допускаются для данного элемента" |
|
}, |
|
"incomplete": { |
|
"singular": "ARIA роль ${data.values} должна быть удалена, когда элемент становится видимым, так как она не допускается для элемента", |
|
"plural": "ARIA роли ${data.values} должны быть удалены, когда элемент становится видимым, так как они не допускаются для элемента" |
|
} |
|
}, |
|
"aria-busy": { |
|
"pass": "Элемент имеет атрибут aria-busy", |
|
"fail": "Элемент использует aria-busy=\"true\", пока отображается индикатор загрузки" |
|
}, |
|
"aria-conditional-attr": { |
|
"pass": "ARIA атрибут допустим", |
|
"fail": { |
|
"checkbox": "Удалите aria-checked или установите его значение в \"${data.checkState}\", чтобы оно соответствовало фактическому состоянию флажка", |
|
"rowSingular": "Этот атрибут поддерживается для строк treegrid, но не для ${data.ownerRole}: ${data.invalidAttrs}", |
|
"rowPlural": "Эти атрибуты поддерживаются для строк treegrid, но не для ${data.ownerRole}: ${data.invalidAttrs}" |
|
} |
|
}, |
|
"aria-errormessage": { |
|
"pass": "aria-errormessage существует и ссылается на элементы, видимые для экранных считывателей, которые используют поддерживаемую технику aria-errormessage", |
|
"fail": { |
|
"singular": "Значение aria-errormessage `${data.values}` должно использовать технику для объявления сообщения (например, aria-live, aria-describedby, role=alert и т.д.)", |
|
"plural": "Значения aria-errormessage `${data.values}` должны использовать технику для объявления сообщения (например, aria-live, aria-describedby, role=alert и т.д.)", |
|
"hidden": "Значение aria-errormessage `${data.values}` не может ссылаться на скрытый элемент" |
|
}, |
|
"incomplete": { |
|
"singular": "Убедитесь, что значение aria-errormessage `${data.values}` ссылается на существующий элемент", |
|
"plural": "Убедитесь, что значения aria-errormessage `${data.values}` ссылаются на существующие элементы", |
|
"idrefs": "Невозможно определить, существует ли элемент aria-errormessage на странице: ${data.values}" |
|
} |
|
}, |
|
"aria-hidden-body": { |
|
"pass": "Атрибут aria-hidden отсутствует на теле документа", |
|
"fail": "aria-hidden=true не должно присутствовать на теле документа" |
|
}, |
|
"aria-level": { |
|
"pass": "Значения aria-level допустимы", |
|
"incomplete": "Значения aria-level больше 6 не поддерживаются всеми комбинациями экранных считывателей и браузеров" |
|
}, |
|
"aria-prohibited-attr": { |
|
"pass": "ARIA атрибут допустим", |
|
"fail": { |
|
"hasRolePlural": "Атрибуты ${data.prohibited} не могут использоваться с ролью \"${data.role}\".", |
|
"hasRoleSingular": "Атрибут ${data.prohibited} не может использоваться с ролью \"${data.role}\".", |
|
"noRolePlural": "Атрибуты ${data.prohibited} не могут использоваться на ${data.nodeName} без допустимого атрибута role.", |
|
"noRoleSingular": "Атрибут ${data.prohibited} не может использоваться на ${data.nodeName} без допустимого атрибута role." |
|
}, |
|
"incomplete": { |
|
"hasRoleSingular": "Атрибут ${data.prohibited} не поддерживается с ролью \"${data.role}\".", |
|
"hasRolePlural": "Атрибуты ${data.prohibited} не поддерживаются с ролью \"${data.role}\".", |
|
"noRoleSingular": "Атрибут ${data.prohibited} не поддерживается на ${data.nodeName} без допустимого атрибута role.", |
|
"noRolePlural": "Атрибуты ${data.prohibited} не поддерживаются на ${data.nodeName} без допустимого атрибута role." |
|
} |
|
}, |
|
"aria-required-attr": { |
|
"pass": "Все необходимые ARIA атрибуты присутствуют", |
|
"fail": { |
|
"singular": "Необходимый ARIA атрибут отсутствует: ${data.values}", |
|
"plural": "Необходимые ARIA атрибуты отсутствуют: ${data.values}" |
|
} |
|
}, |
|
"aria-required-children": { |
|
"pass": { |
|
"default": "Необходимые ARIA дочерние элементы присутствуют", |
|
"aria-busy": "Элемент имеет атрибут aria-busy, поэтому разрешено пропускать необходимые дочерние элементы" |
|
}, |
|
"fail": { |
|
"singular": "Необходимая ARIA дочерняя роль отсутствует: ${data.values}", |
|
"plural": "Необходимые ARIA дочерние роли отсутствуют: ${data.values}", |
|
"unallowed": "Элемент имеет недопустимые дочерние элементы: ${data.values}" |
|
}, |
|
"incomplete": { |
|
"singular": "Ожидается добавление ARIA дочерней роли: ${data.values}", |
|
"plural": "Ожидается добавление ARIA дочерних ролей: ${data.values}" |
|
} |
|
}, |
|
"aria-required-parent": { |
|
"pass": "Необходимая ARIA родительская роль присутствует", |
|
"fail": { |
|
"singular": "Необходимая ARIA родительская роль отсутствует: ${data.values}", |
|
"plural": "Необходимые ARIA родительские роли отсутствуют: ${data.values}" |
|
} |
|
}, |
|
"aria-roledescription": { |
|
"pass": "aria-roledescription используется на поддерживаемой семантической роли", |
|
"incomplete": "Проверьте, объявляется ли aria-roledescription поддерживаемыми экранными считывателями", |
|
"fail": "Назначьте элементу роль, поддерживающую aria-roledescription" |
|
}, |
|
"aria-unsupported-attr": { |
|
"pass": "ARIA атрибут поддерживается", |
|
"fail": "ARIA атрибут не поддерживается в большинстве экранных считывателей и вспомогательных технологий: ${data.values}" |
|
}, |
|
"aria-valid-attr-value": { |
|
"pass": "Значения ARIA атрибутов допустимы", |
|
"fail": { |
|
"singular": "Недопустимое значение ARIA атрибута: ${data.values}", |
|
"plural": "Недопустимые значения ARIA атрибутов: ${data.values}" |
|
}, |
|
"incomplete": { |
|
"noId": "Элемент ID атрибута ARIA не существует на странице: ${data.needsReview}", |
|
"noIdShadow": "Элемент ID атрибута ARIA не существует на странице или является потомком другого дерева теневых DOM: ${data.needsReview}", |
|
"ariaCurrent": "Значение атрибута ARIA недопустимо и будет трактоваться как \"aria-current=true\": ${data.needsReview}", |
|
"idrefs": "Невозможно определить, существует ли элемент ID атрибута ARIA на странице: ${data.needsReview}", |
|
"empty": "Значение атрибута ARIA игнорируется, если оно пустое: ${data.needsReview}", |
|
"controlsWithinPopup": "Невозможно определить, существует ли ссылка на ID атрибута aria-controls на странице при использовании aria-haspopup: ${data.needsReview}" |
|
} |
|
}, |
|
"aria-valid-attr": { |
|
"pass": "Имя ARIA атрибута допустимо", |
|
"fail": { |
|
"singular": "Недопустимое имя ARIA атрибута: ${data.values}", |
|
"plural": "Недопустимые имена ARIA атрибутов: ${data.values}" |
|
} |
|
}, |
|
"braille-label-equivalent": { |
|
"pass": "aria-braillelabel используется на элементе с доступным текстом", |
|
"fail": "aria-braillelabel используется на элементе без доступного текста", |
|
"incomplete": "Не удалось вычислить доступный текст" |
|
}, |
|
"braille-roledescription-equivalent": { |
|
"pass": "aria-brailleroledescription используется на элементе с aria-roledescription", |
|
"fail": { |
|
"noRoleDescription": "aria-brailleroledescription используется на элементе без aria-roledescription", |
|
"emptyRoleDescription": "aria-brailleroledescription используется на элементе с пустым aria-roledescription" |
|
} |
|
}, |
|
"deprecatedrole": { |
|
"pass": "ARIA роль не устарела", |
|
"fail": "Используемая роль устарела: ${data}" |
|
}, |
|
"fallbackrole": { |
|
"pass": "Используется только одно значение роли", |
|
"fail": "Используйте только одно значение роли, так как резервные роли не поддерживаются в старых браузерах", |
|
"incomplete": "Используйте только роль 'presentation' или 'none', так как они являются синонимами." |
|
}, |
|
"has-global-aria-attribute": { |
|
"pass": { |
|
"singular": "Элемент имеет глобальный ARIA атрибут: ${data.values}", |
|
"plural": "Элемент имеет глобальные ARIA атрибуты: ${data.values}" |
|
}, |
|
"fail": "Элемент не имеет глобального ARIA атрибута" |
|
}, |
|
"has-widget-role": { |
|
"pass": "Элемент имеет роль виджета.", |
|
"fail": "Элемент не имеет роли виджета." |
|
}, |
|
"invalidrole": { |
|
"pass": "ARIA роль допустима", |
|
"fail": { |
|
"singular": "Роль должна быть одной из допустимых ARIA ролей: ${data.values}", |
|
"plural": "Роли должны быть одной из допустимых ARIA ролей: ${data.values}" |
|
} |
|
}, |
|
"is-element-focusable": { |
|
"pass": "Элемент может быть сфокусирован.", |
|
"fail": "Элемент не может быть сфокусирован." |
|
}, |
|
"no-implicit-explicit-label": { |
|
"pass": "Нет несоответствия между <label> и доступным именем", |
|
"incomplete": "Проверьте, нужно ли, чтобы <label> был частью имени поля ARIA ${data}" |
|
}, |
|
"unsupportedrole": { |
|
"pass": "ARIA роль поддерживается", |
|
"fail": "Используемая роль не поддерживается большинством экранных считывателей и вспомогательных технологий: ${data}" |
|
}, |
|
"valid-scrollable-semantics": { |
|
"pass": "Элемент имеет допустимую семантику для элемента в порядке фокусировки.", |
|
"fail": "Элемент имеет недопустимую семантику для элемента в порядке фокусировки." |
|
}, |
|
"color-contrast-enhanced": { |
|
"pass": "Элемент имеет достаточный цветовой контраст ${data.contrastRatio}", |
|
"fail": { |
|
"default": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} (цвет переднего плана: ${data.fgColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}", |
|
"fgOnShadowColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом переднего плана и тенью (цвет переднего плана: ${data.fgColor}, цвет текстовой тени: ${data.shadowColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}", |
|
"shadowOnBgColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом тени и фоном (цвет текстовой тени: ${data.shadowColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}" |
|
}, |
|
"incomplete": { |
|
"default": "Невозможно определить коэффициент контрастности", |
|
"bgImage": "Невозможно определить цвет фона элемента из-за изображения на фоне", |
|
"bgGradient": "Невозможно определить цвет фона элемента из-за градиента на фоне", |
|
"imgNode": "Невозможно определить цвет фона элемента, так как он содержит изображение", |
|
"bgOverlap": "Невозможно определить цвет фона элемента, так как он перекрыт другим элементом", |
|
"fgAlpha": "Невозможно определить цвет переднего плана элемента из-за прозрачности альфа-канала", |
|
"elmPartiallyObscured": "Невозможно определить цвет фона элемента, так как он частично перекрыт другим элементом", |
|
"elmPartiallyObscuring": "Невозможно определить цвет фона элемента, так как он частично перекрывает другие элементы", |
|
"outsideViewport": "Невозможно определить цвет фона элемента, так как он находится за пределами видимой области", |
|
"equalRatio": "Элемент имеет коэффициент контрастности 1:1 с фоном", |
|
"shortTextContent": "Содержимое элемента слишком короткое, чтобы определить, является ли оно текстом", |
|
"nonBmp": "Содержимое элемента содержит только не текстовые символы", |
|
"pseudoContent": "Невозможно определить цвет фона элемента из-за псевдоэлемента" |
|
} |
|
}, |
|
"color-contrast": { |
|
"pass": { |
|
"default": "Элемент имеет достаточный цветовой контраст ${data.contrastRatio}", |
|
"hidden": "Элемент скрыт" |
|
}, |
|
"fail": { |
|
"default": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} (цвет переднего плана: ${data.fgColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}", |
|
"fgOnShadowColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом переднего плана и тенью (цвет переднего плана: ${data.fgColor}, цвет текстовой тени: ${data.shadowColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}", |
|
"shadowOnBgColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом тени и фоном (цвет текстовой тени: ${data.shadowColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}" |
|
}, |
|
"incomplete": { |
|
"default": "Невозможно определить коэффициент контрастности", |
|
"bgImage": "Невозможно определить цвет фона элемента из-за изображения на фоне", |
|
"bgGradient": "Невозможно определить цвет фона элемента из-за градиента на фоне", |
|
"imgNode": "Невозможно определить цвет фона элемента, так как он содержит изображение", |
|
"bgOverlap": "Невозможно определить цвет фона элемента, так как он перекрыт другим элементом", |
|
"complexTextShadows": "Невозможно определить контрастность элемента из-за сложных теней текста", |
|
"fgAlpha": "Невозможно определить цвет переднего плана элемента из-за прозрачности альфа-канала", |
|
"elmPartiallyObscured": "Невозможно определить цвет фона элемента, так как он частично перекрыт другим элементом", |
|
"elmPartiallyObscuring": "Невозможно определить цвет фона элемента, так как он частично перекрывает другие элементы", |
|
"outsideViewport": "Невозможно определить цвет фона элемента, так как он находится за пределами видимой области", |
|
"equalRatio": "Элемент имеет коэффициент контрастности 1:1 с фоном", |
|
"shortTextContent": "Содержимое элемента слишком короткое, чтобы определить, является ли оно текстом", |
|
"nonBmp": "Содержимое элемента содержит только не текстовые символы", |
|
"pseudoContent": "Невозможно определить цвет фона элемента из-за псевдоэлемента" |
|
} |
|
}, |
|
"link-in-text-block-style": { |
|
"pass": "Ссылки могут быть выделены среди окружающего текста с помощью визуального стиля", |
|
"incomplete": { |
|
"default": "Проверьте, нужно ли оформлять ссылку, чтобы отличить её от окружающего текста", |
|
"pseudoContent": "Проверьте, достаточно ли псевдо-стиля ссылки, чтобы отличить её от окружающего текста" |
|
}, |
|
"fail": "Ссылка не имеет стиля (например, подчеркивания), чтобы отличить её от окружающего текста" |
|
}, |
|
"link-in-text-block": { |
|
"pass": "Ссылки можно отличить от окружающего текста каким-либо способом, кроме цвета", |
|
"fail": { |
|
"fgContrast": "У ссылки недостаточный цветовой контраст ${data.contrastRatio}:1 с окружающим текстом. (Минимальный контраст ${data.requiredContrastRatio}:1, текст ссылки: ${data.nodeColor}, окружающий текст: ${data.parentColor})", |
|
"bgContrast": "Фон ссылки имеет недостаточный цветовой контраст ${data.contrastRatio} (Минимальный контраст ${data.requiredContrastRatio}:1, цвет фона ссылки: ${data.nodeBackgroundColor}, цвет фона окружающего текста: ${data.parentBackgroundColor})" |
|
}, |
|
"incomplete": { |
|
"default": "Невозможно определить контрастность переднего плана элемента", |
|
"bgContrast": "Невозможно определить контрастность фона элемента", |
|
"bgImage": "Невозможно определить контрастность элемента из-за изображения на фоне", |
|
"bgGradient": "Невозможно определить контрастность элемента из-за градиента на фоне", |
|
"imgNode": "Невозможно определить контрастность элемента, так как он содержит изображение", |
|
"bgOverlap": "Невозможно определить контрастность элемента, так как он перекрыт другим элементом" |
|
} |
|
}, |
|
"autocomplete-appropriate": { |
|
"pass": "Значение autocomplete подходит для данного элемента", |
|
"fail": "Значение autocomplete не подходит для этого типа ввода" |
|
}, |
|
"autocomplete-valid": { |
|
"pass": "Атрибут autocomplete правильно отформатирован", |
|
"fail": "Атрибут autocomplete неправильно отформатирован", |
|
"incomplete": "Атрибут autocomplete имеет нестандартное значение. Проверьте, можно ли использовать вместо него какое-либо стандартное значение." |
|
}, |
|
"accesskeys": { |
|
"pass": "Значение атрибута accesskey уникально", |
|
"fail": "Документ содержит несколько элементов с одинаковым значением accesskey" |
|
}, |
|
"focusable-content": { |
|
"pass": "Элемент содержит фокусируемые элементы", |
|
"fail": "Элемент должен содержать фокусируемое содержимое" |
|
}, |
|
"focusable-disabled": { |
|
"pass": "Внутри элемента нет фокусируемых элементов", |
|
"incomplete": "Проверьте, немедленно ли индикатор фокуса перемещается на фокусируемые элементы", |
|
"fail": "Фокусируемое содержимое должно быть отключено или удалено из DOM" |
|
}, |
|
"focusable-element": { |
|
"pass": "Элемент является фокусируемым", |
|
"fail": "Элемент должен быть фокусируемым" |
|
}, |
|
"focusable-modal-open": { |
|
"pass": "Нет фокусируемых элементов при открытии модального окна", |
|
"incomplete": "Проверьте, что фокусируемые элементы не являются доступными в текущем состоянии" |
|
}, |
|
"focusable-no-name": { |
|
"pass": "Элемент не находится в таб-ордре или имеет доступный текст", |
|
"fail": "Элемент находится в таб-ордре и не имеет доступного текста", |
|
"incomplete": "Невозможно определить, есть ли у элемента доступное имя" |
|
}, |
|
"focusable-not-tabbable": { |
|
"pass": "Внутри элемента нет фокусируемых элементов", |
|
"incomplete": "Проверьте, немедленно ли индикатор фокуса перемещается на фокусируемые элементы", |
|
"fail": "Фокусируемое содержимое должно иметь tabindex=\"-1\" или быть удалено из DOM" |
|
}, |
|
"frame-focusable-content": { |
|
"pass": "Элемент не имеет фокусируемых потомков", |
|
"fail": "Элемент имеет фокусируемых потомков", |
|
"incomplete": "Невозможно определить, есть ли у элемента потомки" |
|
}, |
|
"landmark-is-top-level": { |
|
"pass": "${data.role} область находится на верхнем уровне.", |
|
"fail": "${data.role} область содержится в другой области." |
|
}, |
|
"no-focusable-content": { |
|
"pass": "Элемент не имеет фокусируемых потомков", |
|
"fail": { |
|
"default": "Элемент имеет фокусируемых потомков", |
|
"notHidden": "Использование отрицательного tabindex на элементе внутри интерактивного управления не предотвращает фокусировку элемента вспомогательными технологиями (даже с aria-hidden=\"true\")" |
|
}, |
|
"incomplete": "Невозможно определить, есть ли у элемента потомки" |
|
}, |
|
"page-has-heading-one": { |
|
"pass": "На странице есть хотя бы один заголовок первого уровня", |
|
"fail": "На странице должен быть заголовок первого уровня" |
|
}, |
|
"page-has-main": { |
|
"pass": "В документе есть хотя бы одна основная область", |
|
"fail": "В документе нет основной области" |
|
}, |
|
"page-no-duplicate-banner": { |
|
"pass": "В документе нет более одного баннера", |
|
"fail": "В документе более одного баннера" |
|
}, |
|
"page-no-duplicate-contentinfo": { |
|
"pass": "В документе нет более одной области contentinfo", |
|
"fail": "В документе более одной области contentinfo" |
|
}, |
|
"page-no-duplicate-main": { |
|
"pass": "В документе нет более одной основной области", |
|
"fail": "В документе более одной основной области" |
|
}, |
|
"tabindex": { |
|
"pass": "Элемент не имеет tabindex больше 0", |
|
"fail": "Элемент имеет tabindex больше 0" |
|
}, |
|
"alt-space-value": { |
|
"pass": "Элемент имеет допустимое значение атрибута alt", |
|
"fail": "Элемент имеет атрибут alt, содержащий только пробельный символ, который не игнорируется всеми экранными считывателями" |
|
}, |
|
"duplicate-img-label": { |
|
"pass": "Элемент не дублирует существующий текст в тексте атрибута alt <img>", |
|
"fail": "Элемент содержит <img> с текстом атрибута alt, дублирующим существующий текст" |
|
}, |
|
"explicit-label": { |
|
"pass": "Элемент формы имеет явную <label>", |
|
"fail": "Элемент формы не имеет явной <label>", |
|
"incomplete": "Невозможно определить, имеет ли элемент формы явную <label>" |
|
}, |
|
"help-same-as-label": { |
|
"pass": "Текст помощи (title или aria-describedby) не дублирует текст метки", |
|
"fail": "Текст помощи (title или aria-describedby) совпадает с текстом метки" |
|
}, |
|
"hidden-explicit-label": { |
|
"pass": "Элемент формы имеет видимую явную <label>", |
|
"fail": "Элемент формы имеет явную <label>, которая скрыта", |
|
"incomplete": "Невозможно определить, имеет ли элемент формы явную <label>, которая скрыта" |
|
}, |
|
"implicit-label": { |
|
"pass": "Элемент формы имеет неявную (обернутую) <label>", |
|
"fail": "Элемент формы не имеет неявной (обернутой) <label>", |
|
"incomplete": "Невозможно определить, имеет ли элемент формы неявную (обернутую) <label>" |
|
}, |
|
"label-content-name-mismatch": { |
|
"pass": "Элемент содержит видимый текст как часть его доступного имени", |
|
"fail": "Текст внутри элемента не включен в доступное имя" |
|
}, |
|
"multiple-label": { |
|
"pass": "Поле формы не имеет нескольких элементов label", |
|
"incomplete": "Использование нескольких элементов label не поддерживается большинством вспомогательных технологий. Убедитесь, что первый элемент label содержит всю необходимую информацию." |
|
}, |
|
"title-only": { |
|
"pass": "Элемент формы не использует только атрибут title для своей метки", |
|
"fail": "Для создания метки элемента формы используется только атрибут title" |
|
}, |
|
"landmark-is-unique": { |
|
"pass": "Ориентиры должны иметь уникальную роль или комбинацию роли/метки/названия (т.е. доступное имя)", |
|
"fail": "Ориентир должен иметь уникальный aria-label, aria-labelledby или title, чтобы сделать ориентиры различимыми" |
|
}, |
|
"has-lang": { |
|
"pass": "Элемент <html> имеет атрибут lang", |
|
"fail": { |
|
"noXHTML": "Атрибут xml:lang недействителен на HTML страницах, используйте атрибут lang.", |
|
"noLang": "Элемент <html> не имеет атрибута lang" |
|
} |
|
}, |
|
"valid-lang": { |
|
"pass": "Значение атрибута lang включено в список допустимых языков", |
|
"fail": "Значение атрибута lang не включено в список допустимых языков" |
|
}, |
|
"xml-lang-mismatch": { |
|
"pass": "Атрибуты lang и xml:lang имеют один и тот же базовый язык", |
|
"fail": "Атрибуты lang и xml:lang не имеют один и тот же базовый язык" |
|
}, |
|
"dlitem": { |
|
"pass": "Элемент описания списка имеет родительский элемент <dl>", |
|
"fail": "Элемент описания списка не имеет родительского элемента <dl>" |
|
}, |
|
"listitem": { |
|
"pass": "Элемент списка имеет родительский элемент <ul>, <ol> или роль=\"list\"", |
|
"fail": { |
|
"default": "Элемент списка не имеет родительского элемента <ul>, <ol>", |
|
"roleNotValid": "Родительский элемент списка имеет роль, которая не является ролью=\"list\"" |
|
} |
|
}, |
|
"only-dlitems": { |
|
"pass": "Элемент dl содержит только допустимые дочерние элементы; <dt>, <dd> или <div> элементы", |
|
"fail": "Элемент dl содержит недопустимые дочерние элементы: ${data.values}" |
|
}, |
|
"only-listitems": { |
|
"pass": "Элемент списка содержит только допустимые дочерние элементы <li>", |
|
"fail": "Элемент списка содержит недопустимые дочерние элементы: ${data.values}" |
|
}, |
|
"structured-dlitems": { |
|
"pass": "Когда элемент не пустой, он имеет как минимум один элемент <dt> и один элемент <dd>", |
|
"fail": "Когда элемент не пустой, он не содержит по крайней мере одного элемента <dt>, за которым следует по крайней мере один элемент <dd>" |
|
}, |
|
"caption": { |
|
"pass": "Мультимедийный элемент имеет дорожку субтитров", |
|
"incomplete": "Проверьте, доступны ли субтитры для элемента" |
|
}, |
|
"frame-tested": { |
|
"pass": "Элемент iframe был протестирован с помощью axe-core", |
|
"fail": "Не удалось протестировать элемент iframe с помощью axe-core", |
|
"incomplete": "Элемент iframe все еще должен быть протестирован с помощью axe-core" |
|
}, |
|
"no-autoplay-audio": { |
|
"pass": "<video> или <audio> не воспроизводит аудио более допустимой продолжительности или имеет механизмы управления", |
|
"fail": "<video> или <audio> воспроизводит аудио более допустимой продолжительности и не имеет механизмов управления", |
|
"incomplete": "Проверьте, не воспроизводит ли <video> или <audio> аудио более допустимой продолжительности или предоставляет ли механизмы управления" |
|
}, |
|
"css-orientation-lock": { |
|
"pass": "Дисплей работает, блокировка ориентации отсутствует", |
|
"fail": "CSS блокировка ориентации применяется и делает дисплей неработоспособным", |
|
"incomplete": "Невозможно определить, применяется ли CSS блокировка ориентации" |
|
}, |
|
"meta-viewport-large": { |
|
"pass": "Тег <meta> не предотвращает значительное масштабирование на мобильных устройствах", |
|
"fail": "Тег <meta> ограничивает масштабирование на мобильных устройствах" |
|
}, |
|
"meta-viewport": { |
|
"pass": "Тег <meta> не отключает масштабирование на мобильных устройствах", |
|
"fail": "${data} на теге <meta> отключает масштабирование на мобильных устройствах" |
|
}, |
|
"target-offset": { |
|
"pass": { |
|
"default": "Целевой элемент имеет достаточное пространство от ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px, что не менее ${data.minOffset}px.", |
|
"large": "Целевой элемент значительно превышает минимальный размер в ${data.minOffset}px." |
|
}, |
|
"fail": "Целевой элемент имеет недостаточное пространство до ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px вместо как минимум ${data.minOffset}px.", |
|
"incomplete": { |
|
"default": "Элемент с отрицательным tabindex имеет недостаточное пространство до ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px вместо как минимум ${data.minOffset}px. Является ли это целевым элементом?", |
|
"nonTabbableNeighbor": "Целевой элемент имеет недостаточное пространство до ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px вместо как минимум ${data.minOffset}px. Является ли сосед целевым элементом?", |
|
"tooManyRects": "Не удалось определить размер целевого элемента из-за слишком большого количества перекрывающихся элементов" |
|
} |
|
}, |
|
"target-size": { |
|
"pass": { |
|
"default": "Контрол имеет достаточный размер (${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px)", |
|
"obscured": "Контрол игнорируется, так как он полностью скрыт и, следовательно, не кликабелен", |
|
"large": "Целевой элемент значительно превышает минимальный размер в ${data.minSize}px." |
|
}, |
|
"fail": { |
|
"default": "Целевой элемент имеет недостаточный размер (${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px)", |
|
"partiallyObscured": "Целевой элемент имеет недостаточный размер, так как он частично скрыт (наименьшее пространство ${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px)" |
|
}, |
|
"incomplete": { |
|
"default": "Элемент с отрицательным tabindex имеет недостаточный размер (${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px). Является ли это целевым элементом?", |
|
"contentOverflow": "Размер элемента не может быть точно определен из-за переполненного содержимого", |
|
"partiallyObscured": "Элемент с отрицательным tabindex имеет недостаточный размер, так как он частично скрыт (наименьшее пространство ${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px). Является ли это целевым элементом?", |
|
"partiallyObscuredNonTabbable": "Целевой элемент имеет недостаточный размер, так как он частично скрыт соседом с отрицательным tabindex (наименьшее пространство ${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px). Является ли сосед целевым элементом?", |
|
"tooManyRects": "Не удалось определить размер целевого элемента из-за слишком большого количества перекрывающихся элементов" |
|
} |
|
}, |
|
"header-present": { |
|
"pass": "На странице есть заголовок", |
|
"fail": "На странице нет заголовка" |
|
}, |
|
"heading-order": { |
|
"pass": "Порядок заголовков корректен", |
|
"fail": "Порядок заголовков некорректен", |
|
"incomplete": "Невозможно определить предыдущий заголовок" |
|
}, |
|
"identical-links-same-purpose": { |
|
"pass": "Нет других ссылок с тем же именем, которые ведут на другой URL", |
|
"incomplete": "Проверьте, имеют ли ссылки одинаковую цель, или они намеренно неоднозначны." |
|
}, |
|
"internal-link-present": { |
|
"pass": "Найдена допустимая ссылка для пропуска", |
|
"fail": "Допустимая ссылка для пропуска не найдена" |
|
}, |
|
"landmark": { |
|
"pass": "На странице есть область-ориентир", |
|
"fail": "На странице нет области-ориентира" |
|
}, |
|
"meta-refresh-no-exceptions": { |
|
"pass": "Тег <meta> не вызывает немедленное обновление страницы", |
|
"fail": "Тег <meta> вызывает обновление страницы по таймеру" |
|
}, |
|
"meta-refresh": { |
|
"pass": "Тег <meta> не вызывает немедленное обновление страницы", |
|
"fail": "Тег <meta> вызывает обновление страницы по таймеру (менее 20 часов)" |
|
}, |
|
"p-as-heading": { |
|
"pass": "Элементы <p> не оформлены как заголовки", |
|
"fail": "Для заголовков должны использоваться элементы <h1> - <h6>, а не стилизованные <p>", |
|
"incomplete": "Невозможно определить, оформлены ли элементы <p> как заголовки" |
|
}, |
|
"region": { |
|
"pass": "Все содержимое страницы заключено в ориентиры", |
|
"fail": "Некоторое содержимое страницы не заключено в ориентиры" |
|
}, |
|
"skip-link": { |
|
"pass": "Целевая ссылка для пропуска существует", |
|
"incomplete": "Целевая ссылка для пропуска должна стать видимой при активации", |
|
"fail": "Целевая ссылка для пропуска не найдена" |
|
}, |
|
"unique-frame-title": { |
|
"pass": "Атрибут title элемента является уникальным", |
|
"fail": "Атрибут title элемента не является уникальным" |
|
}, |
|
"duplicate-id-active": { |
|
"pass": "Документ не содержит активных элементов с одинаковым значением id атрибута", |
|
"fail": "Документ содержит активные элементы с одинаковым значением id атрибута: ${data}" |
|
}, |
|
"duplicate-id-aria": { |
|
"pass": "Документ не содержит элементов, ссылающихся на ARIA или метки с одинаковым значением id атрибута", |
|
"fail": "Документ содержит несколько элементов, ссылающихся на ARIA, с одинаковым значением id атрибута: ${data}" |
|
}, |
|
"duplicate-id": { |
|
"pass": "Документ не содержит статических элементов с одинаковым значением id атрибута", |
|
"fail": "Документ содержит несколько статических элементов с одинаковым значением id атрибута: ${data}" |
|
}, |
|
"aria-label": { |
|
"pass": "Атрибут aria-label существует и не пуст", |
|
"fail": "Атрибут aria-label не существует или пуст" |
|
}, |
|
"aria-labelledby": { |
|
"pass": "Атрибут aria-labelledby существует и ссылается на элементы, видимые для экранных считывателей", |
|
"fail": "Атрибут aria-labelledby не существует, ссылается на несуществующие элементы или ссылается на пустые элементы", |
|
"incomplete": "Убедитесь, что aria-labelledby ссылается на существующий элемент" |
|
}, |
|
"avoid-inline-spacing": { |
|
"pass": "Внутренние стили с '!important', которые влияют на интервал текста, не указаны", |
|
"fail": { |
|
"singular": "Удалите '!important' из внутреннего стиля ${data.values}, так как переопределение этого стиля не поддерживается большинством браузеров", |
|
"plural": "Удалите '!important' из внутренних стилей ${data.values}, так как переопределение этих стилей не поддерживается большинством браузеров" |
|
} |
|
}, |
|
"button-has-visible-text": { |
|
"pass": "Элемент содержит внутренний текст, видимый для экранных считывателей", |
|
"fail": "Элемент не содержит внутренний текст, видимый для экранных считывателей", |
|
"incomplete": "Невозможно определить, есть ли у элемента дочерние элементы" |
|
}, |
|
"doc-has-title": { |
|
"pass": "Документ содержит непустой элемент <title>", |
|
"fail": "Документ не содержит непустой элемент <title>" |
|
}, |
|
"exists": { |
|
"pass": "Элемент не существует", |
|
"incomplete": "Элемент существует" |
|
}, |
|
"has-alt": { |
|
"pass": "Элемент имеет атрибут alt", |
|
"fail": "Элемент не имеет атрибута alt" |
|
}, |
|
"has-visible-text": { |
|
"pass": "Элемент содержит текст, видимый для экранных считывателей", |
|
"fail": "Элемент не содержит текст, видимый для экранных считывателей", |
|
"incomplete": "Невозможно определить, есть ли у элемента дочерние элементы" |
|
}, |
|
"important-letter-spacing": { |
|
"pass": "Letter-spacing в атрибуте стиля не установлен на !important, либо соответствует минимальному значению", |
|
"fail": "Letter-spacing в атрибуте стиля не должен использовать !important, или должен быть не менее ${data.minValue}em (текущее значение ${data.value}em)" |
|
}, |
|
"important-line-height": { |
|
"pass": "Line-height в атрибуте стиля не установлен на !important, либо соответствует минимальному значению", |
|
"fail": "Line-height в атрибуте стиля не должен использовать !important, или должен быть не менее ${data.minValue}em (текущее значение ${data.value}em)" |
|
}, |
|
"important-word-spacing": { |
|
"pass": "Word-spacing в атрибуте стиля не установлен на !important, либо соответствует минимальному значению", |
|
"fail": "Word-spacing в атрибуте стиля не должен использовать !important, или должен быть не менее ${data.minValue}em (текущее значение ${data.value}em)" |
|
}, |
|
"is-on-screen": { |
|
"pass": "Элемент не виден", |
|
"fail": "Элемент виден" |
|
}, |
|
"non-empty-alt": { |
|
"pass": "Элемент имеет непустой атрибут alt", |
|
"fail": { |
|
"noAttr": "Элемент не имеет атрибута alt", |
|
"emptyAttr": "Элемент имеет пустой атрибут alt" |
|
} |
|
}, |
|
"non-empty-if-present": { |
|
"pass": { |
|
"default": "Элемент не имеет атрибута value", |
|
"has-label": "Элемент имеет непустой атрибут value" |
|
}, |
|
"fail": "Элемент имеет атрибут value, и этот атрибут пуст" |
|
}, |
|
"non-empty-placeholder": { |
|
"pass": "Элемент имеет атрибут placeholder", |
|
"fail": { |
|
"noAttr": "Элемент не имеет атрибута placeholder", |
|
"emptyAttr": "Элемент имеет пустой атрибут placeholder" |
|
} |
|
}, |
|
"non-empty-title": { |
|
"pass": "Элемент имеет атрибут title", |
|
"fail": { |
|
"noAttr": "Элемент не имеет атрибута title", |
|
"emptyAttr": "Элемент имеет пустой атрибут title" |
|
} |
|
}, |
|
"non-empty-value": { |
|
"pass": "Элемент имеет непустой атрибут value", |
|
"fail": { |
|
"noAttr": "Элемент не имеет атрибута value", |
|
"emptyAttr": "Элемент имеет пустой атрибут value" |
|
} |
|
}, |
|
"presentational-role": { |
|
"pass": "Стандартная семантика элемента была переопределена с помощью role=\"${data.role}\"", |
|
"fail": { |
|
"default": "Стандартная семантика элемента не была переопределена с помощью role=\"none\" или role=\"presentation\"", |
|
"globalAria": "Роль элемента не является презентационной, так как у него есть глобальный ARIA атрибут", |
|
"focusable": "Роль элемента не является презентационной, так как он может быть сфокусирован", |
|
"both": "Роль элемента не является презентационной, так как у него есть глобальный ARIA атрибут и он может быть сфокусирован", |
|
"iframe": "Использование атрибута \"title\" на элементе ${data.nodeName} с презентационной ролью ведет себя непоследовательно между экранными считывателями" |
|
} |
|
}, |
|
"role-none": { |
|
"pass": "Стандартная семантика элемента была переопределена с помощью role=\"none\"", |
|
"fail": "Стандартная семантика элемента не была переопределена с помощью role=\"none\"" |
|
}, |
|
"role-presentation": { |
|
"pass": "Стандартная семантика элемента была переопределена с помощью role=\"presentation\"", |
|
"fail": "Стандартная семантика элемента не была переопределена с помощью role=\"presentation\"" |
|
}, |
|
"svg-non-empty-title": { |
|
"pass": "Элемент имеет дочерний элемент title", |
|
"fail": { |
|
"noTitle": "Элемент не имеет дочернего элемента title", |
|
"emptyTitle": "Дочерний элемент title пуст" |
|
}, |
|
"incomplete": "Невозможно определить, имеет ли элемент дочерний элемент title" |
|
}, |
|
"caption-faked": { |
|
"pass": "Первая строка таблицы не используется в качестве заголовка", |
|
"fail": "Первый дочерний элемент таблицы должен быть заголовком, а не ячейкой таблицы" |
|
}, |
|
"html5-scope": { |
|
"pass": "Атрибут scope используется только для элементов заголовков таблицы (<th>)", |
|
"fail": "В HTML 5 атрибуты scope могут использоваться только для элементов заголовков таблицы (<th>)" |
|
}, |
|
"same-caption-summary": { |
|
"pass": "Содержимое атрибута summary и элемента <caption> не дублируется", |
|
"fail": "Содержимое атрибута summary и элемента <caption> идентично", |
|
"incomplete": "Невозможно определить, есть ли у элемента <table> заголовок" |
|
}, |
|
"scope-value": { |
|
"pass": "Атрибут scope используется правильно", |
|
"fail": "Значение атрибута scope может быть только 'row' или 'col'" |
|
}, |
|
"td-has-header": { |
|
"pass": "Все непустые ячейки данных имеют заголовки таблицы", |
|
"fail": "Некоторые непустые ячейки данных не имеют заголовков таблицы" |
|
}, |
|
"td-headers-attr": { |
|
"pass": "Атрибут headers используется исключительно для ссылки на другие ячейки таблицы", |
|
"incomplete": "Атрибут headers пуст", |
|
"fail": { |
|
"cell-header-not-in-table": "Атрибут headers не используется исключительно для ссылки на другие заголовочные ячейки в таблице", |
|
"cell-header-not-th": "Атрибут headers должен ссылаться на заголовочные ячейки, а не на ячейки с данными", |
|
"header-refs-self": "Элемент с атрибутом headers ссылается на самого себя" |
|
} |
|
}, |
|
"th-has-data-cells": { |
|
"pass": "Все ячейки заголовков таблицы ссылаются на ячейки данных", |
|
"fail": "Не все ячейки заголовков таблицы ссылаются на ячейки данных", |
|
"incomplete": "Ячейки данных таблицы отсутствуют или пусты" |
|
}, |
|
"hidden-content": { |
|
"pass": "Все содержимое страницы было проанализировано.", |
|
"fail": "Возникли проблемы с анализом содержимого на этой странице.", |
|
"incomplete": "На странице есть скрытое содержимое, которое не было проанализировано. Вам нужно будет включить отображение этого содержимого, чтобы его проанализировать." |
|
} |
|
}, |
|
"failureSummaries": { |
|
"any": { |
|
"failureMessage": "Исправьте любое из следующего:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}" |
|
}, |
|
"none": { |
|
"failureMessage": "Исправьте все из следующего:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}" |
|
} |
|
}, |
|
"incompleteFallbackMessage": "axe не смог определить причину. Время использовать инспектор элементов!" |
|
}
|
|
|