{
  "meta": {
    "wcag_version": "2.2",
    "levels": [
      "A",
      "AA"
    ],
    "engine": {
      "name": "axe-core",
      "version": "4.13.0"
    },
    "counts": {
      "by_level": {
        "A": 31,
        "AA": 24
      },
      "by_automation": {
        "полностью": 0,
        "частично": 20,
        "вручную": 35
      },
      "total_criteria": 55,
      "total_axe_rules_used": 63
    },
    "notes": [
      "Реестр содержит все 55 действующих критериев успеха уровней A и AA WCAG 2.2. Упраздненный критерий 4.1.1 не включен; критерии 2.2.6 и 2.5.6 (уровень AAA) не включены.",
      "Правила движка axe-core с тегом упраздненного критерия 4.1.1 (wcag411): duplicate-id, duplicate-id-active. Они не привязаны ни к одному критерию реестра.",
      "Правила исключены из классификации автоматизируемости (experimental, либо deprecated и отключенные по умолчанию в этой версии движка): aria-roledescription: исключено (deprecated и отключено по умолчанию в axe-core 4.13.0); audio-caption: исключено (deprecated и отключено по умолчанию в axe-core 4.13.0); css-orientation-lock: исключено (experimental); label-content-name-mismatch: исключено (experimental); p-as-heading: исключено (experimental); table-fake-caption: исключено (experimental); td-has-header: исключено (experimental).",
      "Правило target-size (2.5.8) отключено по умолчанию в axe-core 4.13.0, но не является experimental или deprecated, поэтому учтено в классификации с пометкой в automation.rationale.",
      "wcag_version_added сверен с https://www.w3.org/WAI/standards-guidelines/wcag/new-in-21/ и https://www.w3.org/WAI/standards-guidelines/wcag/new-in-22/ (проверено 13.09.2026): расхождений со списком из задания не найдено.",
      "Итог классификации по фактическим тегам axe-core 4.13.0: полностью 0, частично 20, вручную 35. Прежняя экспертная оценка одним прочтением (без проверки по движку): полностью 3 (3.1.1, 2.4.2, 1.4.3), частично 20, вручную 32.",
      "Расхождение по трем критериям, ранее отнесенным к \"полностью\": 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, а не прохождение, поэтому не все проверяемые условия критерия программно определимы). По методологии условие \"полностью\" требует, чтобы ВСЕ проверяемые условия критерия были программно определимы без суждения человека; во всех трех случаях это не так, поэтому в этой сборке \"полностью\" не присвоено ни одному критерию.",
      "Автоматический pass правила означает только отсутствие найденной этим правилом ошибки в проверенной области, а не доказанное соответствие. Поэтому can_prove для всех частично автоматизируемых критериев в этой сборке равен \"нарушение\": ни один рассмотренный набор правил не покрывает все условия критерия настолько, чтобы прохождение автоматической проверки можно было честно назвать доказательством прохождения самого критерия."
    ]
  },
  "criteria": [
    {
      "id": "1.1.1",
      "level": "A",
      "name_ru": "Нетекстовый контент",
      "principle": "1 Воспринимаемость",
      "guideline": "1.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#non-text-content",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "изображения, иконки, диаграммы, CAPTCHA, кнопки-изображения, карты и иное нетекстовое содержимое.",
        "preconditions": "открыть все состояния; определить назначение каждого объекта и наличие текстовой альтернативы в доступном дереве.",
        "steps": "отключить изображения или просмотреть доступное имя; сопоставить альтернативу с тем же назначением/информацией; отдельно проверить декоративные, сенсорные, тестовые и CAPTCHA-объекты: для CAPTCHA убедиться, что дано текстовое описание, определяющее и описывающее ее назначение, и что на странице доступна хотя бы одна альтернативная форма CAPTCHA с иным выходным режимом для другого вида сенсорного восприятия (например, аудио вместо искаженного текста).",
        "pass_fail": "проходит, если эквивалент выполняет назначение и соблюдены специальные случаи критерия (для CAPTCHA - текстовое описание назначения и альтернативная модальность для другого вида восприятия); нарушение, если значимая информация потеряна, имя неверно, декор озвучивается как содержимое либо CAPTCHA лишена текстового описания назначения или альтернативной модальности.",
        "na_not_tested": "NA только при полном отсутствии нетекстового содержимого; не проверено, если назначение объекта не установлено.",
        "min_evidence": "объект, контекст, DOM/доступное имя и объяснение эквивалентности.",
        "normative_reference": "[WCAG 1.1.1](https://www.w3.org/TR/WCAG22/#non-text-content).",
        "project_boundary": "качество длинного описания с целевыми пользователями является дополнительной проверкой."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "aria-meter-name",
            "help": "ARIA meter nodes must have an accessible name",
            "tags": [
              "EN-301-549",
              "EN-9.1.1.1",
              "RGAA-11.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag111",
              "wcag2a"
            ]
          },
          {
            "id": "aria-progressbar-name",
            "help": "ARIA progressbar nodes must have an accessible name",
            "tags": [
              "EN-301-549",
              "EN-9.1.1.1",
              "RGAA-11.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag111",
              "wcag2a"
            ]
          },
          {
            "id": "image-alt",
            "help": "Images must have alternative text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.1.1",
              "RGAA-1.1.1",
              "RGAAv4",
              "TT7.a",
              "TT7.b",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag111",
              "wcag2a"
            ]
          },
          {
            "id": "input-image-alt",
            "help": "Image buttons must have alternative text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.1.1",
              "EN-9.4.1.2",
              "RGAA-1.1.3",
              "RGAAv4",
              "TT7.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag111",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "object-alt",
            "help": "<object> elements must have alternative text",
            "tags": [
              "EN-301-549",
              "EN-9.1.1.1",
              "RGAA-1.1.6",
              "RGAAv4",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag111",
              "wcag2a"
            ]
          },
          {
            "id": "role-img-alt",
            "help": "[role=\"img\"] and [role=\"image\"] elements must have alternative text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.1.1",
              "RGAA-1.1.1",
              "RGAAv4",
              "TT7.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag111",
              "wcag2a"
            ]
          },
          {
            "id": "svg-img-alt",
            "help": "<svg> elements with an img or image role must have alternative text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.1.1",
              "RGAA-1.1.5",
              "RGAAv4",
              "TT7.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag111",
              "wcag2a"
            ]
          }
        ],
        "covers": "Наличие и непустоту доступного имени у <img>, <input type=image>, <object>, [role=img]/[role=image], <svg role=img>, ARIA meter и progressbar.",
        "leaves_to_human": "Смысловое соответствие альтернативы назначению или информации объекта, разграничение декоративного и содержательного, качество альтернативы CAPTCHA, карт и сенсорных объектов, полнота длинных описаний диаграмм.",
        "rationale": "Правила ловят отсутствующее или пустое имя, но не оценивают его смысловую эквивалентность изображению - именно это требование составляет ядро критерия."
      },
      "in_base_34": [
        1,
        31
      ]
    },
    {
      "id": "1.2.1",
      "level": "A",
      "name_ru": "Только аудио и только видео, запись",
      "principle": "1 Воспринимаемость",
      "guideline": "1.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#audio-only-and-video-only-prerecorded",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "записанное аудио без видео и записанное видео без аудиодорожки, кроме медиальтернативы тексту.",
        "preconditions": "полный медиаматериал и доступ ко всем дорожкам/альтернативам.",
        "steps": "просмотреть или прослушать материал полностью; сравнить записанное аудио с текстовой альтернативой, а немое видео с текстом либо аудиодорожкой, передающими эквивалентную информацию.",
        "pass_fail": "проходит при эквивалентной альтернативе; нарушение при пропуске значимой последовательности, речи, звуков или визуальных событий.",
        "na_not_tested": "NA для синхронизированного аудио-видео и медиальтернативы тексту; не проверено при недоступном полном файле.",
        "min_evidence": "таймкоды, ссылка на альтернативу и список переданной/пропущенной информации.",
        "normative_reference": "[WCAG 1.2.1](https://www.w3.org/TR/WCAG22/#audio-only-and-video-only-prerecorded).",
        "project_boundary": "литературная редактура расшифровки сверх эквивалентности дополнительна."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: непустого действующего правила с тегом этого критерия в axe-core 4.13.0 нет.",
        "leaves_to_human": "Вся применимость критерия: сопоставление записанного аудио/видео без второй дорожки с текстовой альтернативой той же информации.",
        "rationale": "Единственное потенциально относящееся правило audio-caption помечено deprecated и отключено по умолчанию в axe-core 4.13.0, поэтому не используется для классификации."
      },
      "in_base_34": [
        30
      ]
    },
    {
      "id": "1.2.2",
      "level": "A",
      "name_ru": "Субтитры, запись",
      "principle": "1 Воспринимаемость",
      "guideline": "1.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#captions-prerecorded",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "записанное синхронизированное медиа со звуковой информацией, кроме медиальтернативы тексту.",
        "preconditions": "полный ролик, включенная дорожка субтитров, возможность слышать оригинал для сравнения.",
        "steps": "воспроизвести полностью; по таймкодам сравнить речь, говорящих и значимые звуки с субтитрами; проверить синхронность и доступность включения.",
        "pass_fail": "проходит, если вся записанная звуковая информация представлена субтитрами; нарушение при отсутствии дорожки или смысловых пропусках.",
        "na_not_tested": "NA для материала без звука или медиальтернативы тексту; не проверено без доступа к звуку/полному ролику.",
        "min_evidence": "URL, дорожка, таймкоды и точные пропуски/искажения.",
        "normative_reference": "[WCAG 1.2.2](https://www.w3.org/TR/WCAG22/#captions-prerecorded).",
        "project_boundary": "требования к стилю и скорости чтения сверх эквивалентности дополнительны."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "video-caption",
            "help": "<video> elements must have captions",
            "tags": [
              "EN-301-549",
              "EN-9.1.2.2",
              "RGAA-4.3.1",
              "RGAAv4",
              "TT17.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag122",
              "wcag2a"
            ]
          }
        ],
        "covers": "Наличие дорожки субтитров (<track kind=\"captions\">) у элемента <video>.",
        "leaves_to_human": "Полнота и синхронность субтитров, передачу говорящих и значимых неречевых звуков, субтитры вне тега <video> (сторонние плееры, встраиваемые виджеты).",
        "rationale": "Правило проверяет только присутствие технической дорожки, а не ее содержательное соответствие звуку."
      },
      "in_base_34": [
        30
      ]
    },
    {
      "id": "1.2.3",
      "level": "A",
      "name_ru": "Аудиоописание или медиальтернатива, запись",
      "principle": "1 Воспринимаемость",
      "guideline": "1.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#audio-description-or-media-alternative-prerecorded",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "записанное синхронизированное видео, кроме медиальтернативы тексту.",
        "preconditions": "полный ролик, основная дорожка, аудиоописание и/или медиальтернатива.",
        "steps": "определить значимую визуальную информацию, которой нет в звуке; проверить, передает ли ее аудиоописание либо последовательная медиальтернатива.",
        "pass_fail": "проходит при наличии хотя бы одного допустимого эквивалента; нарушение, если значимая визуальная информация недоступна.",
        "na_not_tested": "NA для медиальтернативы тексту и видео без непереданной визуальной информации; не проверено без полного материала.",
        "min_evidence": "таймкоды, описание визуального события и соответствующий фрагмент альтернативы.",
        "normative_reference": "[WCAG 1.2.3](https://www.w3.org/TR/WCAG22/#audio-description-or-media-alternative-prerecorded).",
        "project_boundary": "на уровне AA отдельный 1.2.5 требует аудиоописание и не заменяется текстовой медиальтернативой."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Определение значимой визуальной информации, не переданной звуком, и проверку аудиоописания либо последовательной медиальтернативы.",
        "rationale": "Задача требует просмотра и сопоставления дорожек - статический анализ DOM ее не решает."
      },
      "in_base_34": [
        30
      ]
    },
    {
      "id": "1.2.4",
      "level": "AA",
      "name_ru": "Субтитры, прямой эфир",
      "principle": "1 Воспринимаемость",
      "guideline": "1.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#captions-live",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "живое синхронизированное медиа со звуком.",
        "preconditions": "разрешенная тестовая трансляция или реальный эфир, дорожка субтитров и наблюдатель звука.",
        "steps": "зафиксировать границы события и наблюденные интервалы; сопоставить речь и значимые звуки с живыми субтитрами, включая смену говорящих. Для вывода о событии нужен охват всего его интервала. Проверка отдельных фрагментов дает только ограниченное наблюдение.",
        "pass_fail": "проходит в явно указанной области при субтитрах для всей значимой звуковой информации; отсутствие требуемой информации является нарушением. Успех отдельных фрагментов не дает прохождение всему эфиру; непокрытый остаток отмечается как не проверенный.",
        "na_not_tested": "NA без прямых эфиров; не проверено, если эфир не был доступен и тестовая трансляция не проведена.",
        "min_evidence": "дата/эфир, интервалы наблюдения, запись при согласии или журнал таймкодов и пропусков.",
        "normative_reference": "[WCAG 1.2.4](https://www.w3.org/TR/WCAG22/#captions-live).",
        "project_boundary": "числовая норма задержки или точности без принятого профиля не вводится."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Наблюдение прямого эфира и сопоставление живых субтитров со звуком в реальном времени.",
        "rationale": "Прямой эфир не поддается статическому анализу разметки."
      },
      "in_base_34": [
        30
      ]
    },
    {
      "id": "1.2.5",
      "level": "AA",
      "name_ru": "Аудиоописание, запись",
      "principle": "1 Воспринимаемость",
      "guideline": "1.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#audio-description-prerecorded",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "записанное синхронизированное видео, кроме медиальтернативы тексту.",
        "preconditions": "полный ролик и доступная дорожка аудиоописания.",
        "steps": "определить значимые визуальные события, не переданные основным звуком; включить аудиоописание и проверить их передачу в подходящих паузах либо расширенной версии.",
        "pass_fail": "проходит при аудиоописании всей значимой визуальной информации; нарушение при отсутствии дорожки или смысловых пропусках.",
        "na_not_tested": "NA, если вся значимая визуальная информация уже присутствует в основной дорожке; не проверено без полного ролика.",
        "min_evidence": "таймкоды, визуальная информация и текст/звук аудиоописания.",
        "normative_reference": "[WCAG 1.2.5](https://www.w3.org/TR/WCAG22/#audio-description-prerecorded).",
        "project_boundary": "одна текстовая медиальтернатива не закрывает этот критерий AA."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Определение значимых визуальных событий и проверку их передачи аудиоописанием.",
        "rationale": "Как и 1.2.3, требует прослушивания и сопоставления дорожек - не формального анализа кода."
      },
      "in_base_34": [
        30
      ]
    },
    {
      "id": "1.3.1",
      "level": "A",
      "name_ru": "Информация и отношения",
      "principle": "1 Воспринимаемость",
      "guideline": "1.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#info-and-relationships",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "визуальная структура, заголовки, списки, таблицы, подписи, группы полей, области и состояния.",
        "preconditions": "содержимое во всех состояниях, DOM и доступное дерево.",
        "steps": "сопоставить визуально переданные структуру/отношения с HTML и программной семантикой; линейно прочитать; проверить связи заголовков таблицы, label, fieldset/legend и групп.",
        "pass_fail": "проходит, если информация и отношения программно определимы или доступны текстом; нарушение при передаче только оформлением.",
        "na_not_tested": "NA только без структурных/визуальных отношений; не проверено при недоступной программной структуре.",
        "min_evidence": "визуальный фрагмент, DOM/дерево и конкретная утраченная связь.",
        "normative_reference": "[WCAG 1.3.1](https://www.w3.org/TR/WCAG22/#info-and-relationships).",
        "project_boundary": "предпочтение конкретной HTML-структуры сверх результата является авторским правилом."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "aria-hidden-body",
            "help": "aria-hidden=\"true\" must not be present on the document body",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "EN-9.4.1.2",
              "RGAA-10.8.1",
              "RGAAv4",
              "cat.aria",
              "wcag131",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-required-children",
            "help": "Certain ARIA roles must contain particular children",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-9.3.1",
              "RGAAv4",
              "cat.aria",
              "wcag131",
              "wcag2a"
            ]
          },
          {
            "id": "aria-required-parent",
            "help": "Certain ARIA roles must be contained by particular parents",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-9.3.1",
              "RGAAv4",
              "cat.aria",
              "wcag131",
              "wcag2a"
            ]
          },
          {
            "id": "definition-list",
            "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-9.3.3",
              "RGAAv4",
              "cat.structure",
              "wcag131",
              "wcag2a"
            ]
          },
          {
            "id": "dlitem",
            "help": "<dt> and <dd> elements must be contained by a <dl>",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-9.3.3",
              "RGAAv4",
              "cat.structure",
              "wcag131",
              "wcag2a"
            ]
          },
          {
            "id": "list",
            "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-9.3.1",
              "RGAAv4",
              "cat.structure",
              "wcag131",
              "wcag2a"
            ]
          },
          {
            "id": "listitem",
            "help": "<li> elements must be contained in a <ul> or <ol>",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-9.3.1",
              "RGAAv4",
              "cat.structure",
              "wcag131",
              "wcag2a"
            ]
          },
          {
            "id": "td-headers-attr",
            "help": "Table cell headers attributes must refer to other <th> elements in the same table",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-5.7.4",
              "RGAAv4",
              "TT14.b",
              "TTv5",
              "cat.tables",
              "section508",
              "section508.22.g",
              "wcag131",
              "wcag2a"
            ]
          },
          {
            "id": "th-has-data-cells",
            "help": "Table headers in a data table must refer to data cells",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "RGAA-5.7.1",
              "RGAAv4",
              "TT14.b",
              "TTv5",
              "cat.tables",
              "section508",
              "section508.22.g",
              "wcag131",
              "wcag2a"
            ]
          }
        ],
        "covers": "Формальную структурную корректность списков (<ul>/<ol>/<li>), определений (<dl>/<dt>/<dd>), обязательных ARIA родитель-потомок отношений, aria-hidden на <body>, связку заголовков и ячеек таблиц данных (td[headers], th с соответствующими данными).",
        "leaves_to_human": "Смысловую группировку (fieldset/legend, области по назначению), совпадение визуально воспринимаемых отношений с программной структурой там, где формальная разметка технически валидна, но не отражает смысл.",
        "rationale": "Экспериментальные правила p-as-heading, table-fake-caption и td-has-header исключены из классификации; активные правила проверяют формальную валидность структуры, а не совпадение со зрительно воспринимаемыми отношениями."
      },
      "in_base_34": [
        2,
        31
      ]
    },
    {
      "id": "1.3.2",
      "level": "A",
      "name_ru": "Значимая последовательность",
      "principle": "1 Воспринимаемость",
      "guideline": "1.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#meaningful-sequence",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "содержимое, порядок представления которого влияет на смысл.",
        "preconditions": "страница с отключенными стилями или линейным представлением и доступным деревом.",
        "steps": "определить осмысленный визуальный порядок; сравнить с DOM/порядком чтения после линеаризации и в скринридере.",
        "pass_fail": "проходит, если программно определимый порядок сохраняет смысл; нарушение при изменении смысла или инструкции.",
        "na_not_tested": "NA, если порядок не влияет на смысл; не проверено без доступа к структуре.",
        "min_evidence": "ожидаемая и фактическая последовательности с фрагментом DOM/вывода.",
        "normative_reference": "[WCAG 1.3.2](https://www.w3.org/TR/WCAG22/#meaningful-sequence).",
        "project_boundary": "совпадение DOM с визуальным порядком при равнозначных вариантах не обязательно."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Сравнение осмысленного визуального порядка с программным порядком чтения.",
        "rationale": "Оценка сохранения смысла при линейном чтении - задача понимания, а не проверки разметки."
      },
      "in_base_34": [
        3
      ]
    },
    {
      "id": "1.3.3",
      "level": "A",
      "name_ru": "Сенсорные характеристики",
      "principle": "1 Воспринимаемость",
      "guideline": "1.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#sensory-characteristics",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "инструкции, зависящие от формы, цвета, размера, расположения, ориентации или звука.",
        "preconditions": "все инструкции и соответствующие элементы.",
        "steps": "найти сенсорные указания; попытаться определить объект без восприятия названной характеристики; проверить текстовое имя или иной несенсорный признак.",
        "pass_fail": "проходит, если инструкции не зависят только от сенсорной характеристики; нарушение при единственном указании вроде «кнопка справа».",
        "na_not_tested": "NA без таких инструкций; не проверено, если связанный объект недоступен.",
        "min_evidence": "точная инструкция, элементы-кандидаты и отсутствующий идентификатор.",
        "normative_reference": "[WCAG 1.3.3](https://www.w3.org/TR/WCAG22/#sensory-characteristics).",
        "project_boundary": "запрет любых сенсорных слов сверх требования «не только» является дополнительным."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Поиск инструкций, зависящих только от формы, цвета, размера, положения или звука, и проверку наличия несенсорного идентификатора.",
        "rationale": "Критерий про текст инструкций и его смысловую самодостаточность - вне области формального анализа."
      },
      "in_base_34": [
        4
      ]
    },
    {
      "id": "1.3.4",
      "level": "AA",
      "name_ru": "Ориентация",
      "principle": "1 Воспринимаемость",
      "guideline": "1.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#orientation",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "веб-контент на устройствах, поддерживающих книжную и альбомную ориентацию.",
        "preconditions": "мобильный viewport/устройство, обе ориентации, без системной блокировки пользователя.",
        "steps": "открыть каждое существенное состояние в portrait и landscape; выполнить функцию и проверить отсутствие авторской блокировки.",
        "pass_fail": "проходит при работе в обеих ориентациях либо когда конкретная ориентация существенна; нарушение при необоснованной блокировке.",
        "na_not_tested": "NA для среды без понятия ориентации или при доказанной существенности; не проверено без подходящего устройства/эмуляции.",
        "min_evidence": "устройство, viewport, обе ориентации и объяснение исключения при его применении.",
        "normative_reference": "[WCAG 1.3.4](https://www.w3.org/TR/WCAG22/#orientation).",
        "project_boundary": "оптимизация компоновки в обеих ориентациях сверх сохранения функции дополнительна."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: применимое правило исключено из классификации (см. rationale).",
        "leaves_to_human": "Проверку работы функции в книжной и альбомной ориентации на реальном/эмулируемом устройстве.",
        "rationale": "Единственное относящееся правило css-orientation-lock помечено experimental и отключено по умолчанию, поэтому не используется для классификации."
      },
      "in_base_34": []
    },
    {
      "id": "1.3.5",
      "level": "AA",
      "name_ru": "Назначение полей ввода",
      "principle": "1 Воспринимаемость",
      "guideline": "1.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#identify-input-purpose",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "поля, собирающие сведения о пользователе с назначениями из списка Input Purposes for User Interface Components и реализованные поддерживающей технологией.",
        "preconditions": "форма с тестовой ролью, DOM и механизм автозаполнения.",
        "steps": "сопоставить смысл каждого применимого поля с установленным токеном; проверить программный атрибут и фактическое распознавание пользовательским агентом.",
        "pass_fail": "проходит, если назначение программно определимо; нарушение при отсутствующем, неверном или неоднозначном значении.",
        "na_not_tested": "NA для полей вне перечня или не относящихся к пользователю; не проверено без доступа к форме/DOM.",
        "min_evidence": "поле, ожидаемое назначение, фактический атрибут и результат распознавания.",
        "normative_reference": "[WCAG 1.3.5](https://www.w3.org/TR/WCAG22/#identify-input-purpose).",
        "project_boundary": "обязательное автозаполнение каждого поля является отдельным правилом."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "autocomplete-valid",
            "help": "autocomplete attribute must be used correctly",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.3.5",
              "RGAA-11.13.1",
              "RGAAv4",
              "cat.forms",
              "wcag135",
              "wcag21aa"
            ]
          }
        ],
        "covers": "Синтаксическую корректность значения атрибута autocomplete по спецификации HTML.",
        "leaves_to_human": "Соответствие выбранного токена реальному смыслу поля и фактическое распознавание менеджером паролей/пользовательским агентом.",
        "rationale": "Правило проверяет синтаксис атрибута, а не семантическое соответствие полю из списка Input Purposes."
      },
      "in_base_34": []
    },
    {
      "id": "1.4.1",
      "level": "A",
      "name_ru": "Использование цвета",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#use-of-color",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "информация, состояние, действие или различие, выраженное цветом.",
        "preconditions": "все состояния, включая ошибки, выбранность, графики и ссылки в тексте.",
        "steps": "просмотреть в оттенках серого/без различения цветов; проверить текст, форму, узор, подпись или иной дополнительный признак.",
        "pass_fail": "проходит, если цвет не единственный визуальный способ; нарушение, если без цвета значение исчезает.",
        "na_not_tested": "NA без цветового кодирования; не проверено при недоступном состоянии.",
        "min_evidence": "исходное состояние и представление без цвета с утраченным/сохраненным смыслом.",
        "normative_reference": "[WCAG 1.4.1](https://www.w3.org/TR/WCAG22/#use-of-color).",
        "project_boundary": "конкретная палитра или обязательная иконка сверх второго признака дополнительны."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "link-in-text-block",
            "help": "Links must be distinguishable without relying on color",
            "tags": [
              "EN-301-549",
              "EN-9.1.4.1",
              "RGAA-10.6.1",
              "RGAAv4",
              "TT13.a",
              "TTv5",
              "cat.color",
              "wcag141",
              "wcag2a"
            ]
          }
        ],
        "covers": "Отличимость ссылки внутри текстового абзаца от окружающего текста не только по цвету.",
        "leaves_to_human": "Все остальные случаи цветового кодирования: состояния элементов, графики, ошибки, легенды, обязательные поля.",
        "rationale": "Правило link-in-text-block покрывает один узкий частный случай применимости критерия."
      },
      "in_base_34": [
        4
      ]
    },
    {
      "id": "1.4.2",
      "level": "A",
      "name_ru": "Управление аудио",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#audio-control",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "аудио, автоматически запускающееся более чем на 3 секунды.",
        "preconditions": "чистая сессия, звук включен, настройки по умолчанию.",
        "steps": "загрузить страницу без действия; измерить длительность; найти независимые от общей громкости системы паузу/остановку или управление громкостью.",
        "pass_fail": "проходит, если автоаудио длится до 3 секунд либо доступен требуемый контроль; нарушение при более долгом неконтролируемом звуке.",
        "na_not_tested": "NA без автоаудио свыше 3 секунд; не проверено без звукового вывода.",
        "min_evidence": "время старта/длительность и действия с контролом.",
        "normative_reference": "[WCAG 1.4.2](https://www.w3.org/TR/WCAG22/#audio-control).",
        "project_boundary": "полный запрет автозапуска является более строгим правилом."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "no-autoplay-audio",
            "help": "<video> or <audio> elements must not play automatically",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.4.2",
              "RGAA-4.10.1",
              "RGAAv4",
              "TT2.a",
              "TTv5",
              "cat.time-and-media",
              "wcag142",
              "wcag2a"
            ]
          }
        ],
        "covers": "Факт автозапуска <audio>/<video> с autoplay без mute в разметке.",
        "leaves_to_human": "Фактическую длительность автозвука свыше 3 секунд и наличие независимого от общей громкости контроля паузы/остановки/громкости.",
        "rationale": "Правило видит факт autoplay в разметке, но не измеряет длительность и не проверяет орган управления."
      },
      "in_base_34": []
    },
    {
      "id": "1.4.3",
      "level": "AA",
      "name_ru": "Контраст, минимум",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#contrast-minimum",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "текст и изображения текста, кроме крупного текста (от 18 пунктов или от 14 пунктов полужирного начертания, либо эквивалентного размера для китайского/японского/корейского письма) с порогом 3:1, текста неактивных компонентов интерфейса, чисто декоративного или невидимого текста, текста на изображении со значительным иным визуальным содержимым и текста, входящего в логотип или название бренда.",
        "preconditions": "вычисленные цвета текста/фона во всех состояниях, размер и насыщенность шрифта.",
        "steps": "измерить пары цветов с учетом фактического фона; порог 4.5:1 для обычного текста; 3:1 для крупного текста по определению WCAG (от 18 пунктов или от 14 пунктов полужирного начертания); отдельно оценить применимость исключений: неактивный компонент, чистая декорация, невидимый текст, текст на изображении со значительным иным визуальным содержимым, логотип или название бренда.",
        "pass_fail": "проходит при достижении порога или применимом исключении; нарушение при меньшем отношении.",
        "na_not_tested": "NA только без применимого текста; не проверено при неопределимом динамическом фоне.",
        "min_evidence": "цвета, отношение, размер/вес текста, состояние и примененное исключение.",
        "normative_reference": "[WCAG 1.4.3](https://www.w3.org/TR/WCAG22/#contrast-minimum).",
        "project_boundary": "более высокий контраст может быть целевой настройкой, но не частью этого AA-критерия."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "color-contrast",
            "help": "Elements must meet minimum color contrast ratio thresholds",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.4.3",
              "RGAA-3.2.1",
              "RGAAv4",
              "TT13.c",
              "TTv5",
              "cat.color",
              "wcag143",
              "wcag2aa"
            ]
          }
        ],
        "covers": "Вычисление отношения контраста текста к фону и его сопоставление с порогом 4.5:1/3:1 там, где цвета фона и текста однозначно определимы.",
        "leaves_to_human": "Случаи, где color-contrast возвращает incomplete: фон-изображение, градиенты, полупрозрачность, перекрывающие элементы; применимость исключений (логотип, неактивный элемент, изображение текста).",
        "rationale": "color-contrast достоверно ловит нарушение при однозначно определимых сплошных цветах, но на фоне-изображении или сложном фоне возвращает incomplete, а не \"прохождение\" - это прямо признанный предел правила. Поэтому в отличие от прежней оценки (полностью) итог здесь - частично."
      },
      "in_base_34": [
        5
      ]
    },
    {
      "id": "1.4.4",
      "level": "AA",
      "name_ru": "Изменение размера текста",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#resize-text",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "текст, кроме субтитров и изображений текста.",
        "preconditions": "настольный браузер, масштаб текста/страницы 200%, все состояния.",
        "steps": "увеличить до 200% без вспомогательной технологии; пройти функции, открыть диалоги и сообщения; искать обрезку, наложение и недоступные элементы.",
        "pass_fail": "проходит без потери содержимого и функции; нарушение при потере из-за авторской реализации.",
        "na_not_tested": "NA только без применимого текста; не проверено, если пользовательский агент не позволяет нужный масштаб.",
        "min_evidence": "браузер, исходный и 200% вид, потерянный элемент и шаг функции.",
        "normative_reference": "[WCAG 1.4.4](https://www.w3.org/TR/WCAG22/#resize-text).",
        "project_boundary": "reflow на узкой ширине оценивается отдельно по 1.4.10."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "meta-viewport",
            "help": "Zooming and scaling must not be disabled",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.4.4",
              "RGAA-10.4.2",
              "RGAAv4",
              "cat.sensory-and-visual-cues",
              "wcag144",
              "wcag2aa"
            ]
          }
        ],
        "covers": "Отсутствие блокирующих zoom значений meta viewport (user-scalable=no, ограничивающий maximum-scale).",
        "leaves_to_human": "Фактическое поведение интерфейса при масштабе 200%: обрезку, наложение, недоступные элементы, диалоги и сообщения.",
        "rationale": "Правило ловит один способ заблокировать масштабирование, но не воспроизводит сам тест увеличения на 200% в браузере."
      },
      "in_base_34": [
        7
      ]
    },
    {
      "id": "1.4.5",
      "level": "AA",
      "name_ru": "Изображения текста",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#images-of-text",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "изображения, содержащие текст, который мог быть представлен текстом.",
        "preconditions": "все изображения и стилизованные надписи, проверка возможности эквивалентного HTML/CSS.",
        "steps": "определить, используется ли изображение для визуального эффекта; проверить, является ли оно настраиваемым пользователем или существенным, включая логотип.",
        "pass_fail": "проходит при настоящем тексте либо применимом исключении; нарушение при необязательном изображении текста.",
        "na_not_tested": "NA без изображений текста; не проверено при неизвестной существенности.",
        "min_evidence": "объект, содержащаяся строка и решение по исключению.",
        "normative_reference": "[WCAG 1.4.5](https://www.w3.org/TR/WCAG22/#images-of-text).",
        "project_boundary": "запрет логотипов и существенных изображений текста сверх критерия недопустим без отдельного профиля."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Определение, является ли изображение текстом, который можно было представить текстом, и применимость исключений (логотип, существенность представления).",
        "rationale": "Различение необходимого и произвольного изображения текста - вопрос суждения, не формальный признак."
      },
      "in_base_34": []
    },
    {
      "id": "1.4.10",
      "level": "AA",
      "name_ru": "Перестроение",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#reflow",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "обычное веб-содержимое, кроме частей, которым для использования нужна двумерная компоновка.",
        "preconditions": "viewport шириной 320 CSS px для содержимого с вертикальной прокруткой (обычные страницы) или высотой 256 CSS px для содержимого с горизонтальной прокруткой (например, вертикальное письмо); 320 CSS px эквивалентны масштабу 400% при исходной ширине экрана 1280 CSS px.",
        "steps": "открыть все состояния, прокрутить и выполнить функции; проверить отсутствие одновременной горизонтальной и вертикальной прокрутки и потери.",
        "pass_fail": "проходит при одномерной прокрутке без потери либо применимом исключении; нарушение при требуемой двумерной прокрутке обычного содержимого.",
        "na_not_tested": "NA только для полностью исключенного двумерного содержимого; не проверено без заданного viewport.",
        "min_evidence": "CSS viewport, масштаб, скрин/видео и утраченный элемент или обоснование исключения.",
        "normative_reference": "[WCAG 1.4.10](https://www.w3.org/TR/WCAG22/#reflow).",
        "project_boundary": "таблица может быть исключением как участок, но вся страница автоматически исключением не становится."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Эмуляцию viewport 320 CSS px для содержимого с вертикальной прокруткой (эквивалент масштаба 400% при исходной ширине экрана 1280 CSS px) либо 256 CSS px по высоте для содержимого с горизонтальной прокруткой, и визуальный поиск двумерной прокрутки и потери содержимого.",
        "rationale": "Reflow требует визуального рендера при заданном viewport - статических правил в axe-core нет."
      },
      "in_base_34": [
        8
      ]
    },
    {
      "id": "1.4.11",
      "level": "AA",
      "name_ru": "Нетекстовый контраст",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#non-text-contrast",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "визуальная информация, необходимая для определения компонентов/состояний и значимых графических объектов, кроме неактивных компонентов и графики, чье конкретное представление существенно для передачи информации (например, логотипы, фотографии).",
        "preconditions": "все состояния, вычисленные соседние цвета, увеличение для тонких линий.",
        "steps": "измерить контраст необходимых границ, индикаторов, состояния и графических частей; порог 3:1 к соседним цветам; проверить применимость исключений: неактивные компоненты интерфейса и компоненты, чей внешний вид определен пользовательским агентом и не изменен автором; графические объекты, для которых конкретное представление существенно для передаваемой информации (например, логотипы, фотографии).",
        "pass_fail": "проходит при 3:1 или исключении; нарушение, если необходимый признак ниже порога.",
        "na_not_tested": "NA без применимой визуальной информации; не проверено при неопределимом фоне.",
        "min_evidence": "цвета, отношение, элемент, состояние и почему признак необходим.",
        "normative_reference": "[WCAG 1.4.11](https://www.w3.org/TR/WCAG22/#non-text-contrast).",
        "project_boundary": "декоративные границы не становятся обязательными только из-за этого критерия."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: в axe-core 4.13.0 нет отдельного правила с тегом критерия 1.4.11.",
        "leaves_to_human": "Измерение контраста произвольных границ, индикаторов состояния и значимых графических объектов к соседним цветам.",
        "rationale": "В отличие от 1.4.3 (текстовый контраст), для нетекстового контраста в свободной версии axe-core не реализовано отдельное правило."
      },
      "in_base_34": [
        6
      ]
    },
    {
      "id": "1.4.12",
      "level": "AA",
      "name_ru": "Интервалы текста",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#text-spacing",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "содержимое на языках/письменностях, где указанные параметры применимы.",
        "preconditions": "внедрить пользовательские стили: line-height 1.5, после абзаца 2 размера шрифта, letter-spacing 0.12, word-spacing 0.16.",
        "steps": "применить все четыре значения одновременно; открыть состояния и выполнить функции; искать обрезку, наложение и скрытие.",
        "pass_fail": "проходит без потери содержимого или функции; нарушение при потере из-за авторских стилей.",
        "na_not_tested": "NA только для текста, к письменности которого параметры не применимы; не проверено без возможности внедрить стили.",
        "min_evidence": "стили, браузер, до/после и конкретная потеря.",
        "normative_reference": "[WCAG 1.4.12](https://www.w3.org/TR/WCAG22/#text-spacing).",
        "project_boundary": "критерий не требует использовать эти интервалы по умолчанию."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "avoid-inline-spacing",
            "help": "Inline text spacing must be adjustable with custom stylesheets",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.4.12",
              "cat.structure",
              "wcag1412",
              "wcag21aa"
            ]
          }
        ],
        "covers": "Инлайновые стили (в т.ч. с !important) на line-height/letter-spacing/word-spacing/margin, мешающие переопределить их пользовательским CSS.",
        "leaves_to_human": "Фактический результат одновременного применения всех четырех параметров критерия: обрезку, наложение и скрытие содержимого или функции.",
        "rationale": "Правило проверяет один технический барьер, но не воспроизводит сам тест увеличенных интервалов."
      },
      "in_base_34": [
        9
      ]
    },
    {
      "id": "1.4.13",
      "level": "AA",
      "name_ru": "Содержимое при наведении или фокусе",
      "principle": "1 Воспринимаемость",
      "guideline": "1.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#content-on-hover-or-focus",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "дополнительное содержимое, появляющееся при pointer hover или keyboard focus и исчезающее при их снятии.",
        "preconditions": "мышь и клавиатура, все подсказки/меню/поповеры.",
        "steps": "вызвать hover и focus; проверить возможность скрыть без перемещения фокуса/указателя, навести указатель на появившееся содержимое и удерживать его до снятия триггера либо закрытия пользователем; учесть исключения.",
        "pass_fail": "проходит при dismissible, hoverable и persistent одновременно, когда они применимы; нарушение при провале любого условия.",
        "na_not_tested": "NA без такого авторского содержимого; не проверено без одного из способов ввода.",
        "min_evidence": "триггер, последовательность клавиш/указателя и поведение по каждому из трех условий.",
        "normative_reference": "[WCAG 1.4.13](https://www.w3.org/TR/WCAG22/#content-on-hover-or-focus).",
        "project_boundary": "внешний вид и время анимации поповера регулируются отдельно."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Проверку dismissible, hoverable и persistent реальным наведением и фокусом.",
        "rationale": "Три условия критерия проверяются только живым взаимодействием мышью и клавиатурой."
      },
      "in_base_34": []
    },
    {
      "id": "2.1.1",
      "level": "A",
      "name_ru": "Клавиатура",
      "principle": "2 Управляемость",
      "guideline": "2.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#keyboard",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "вся функциональность контента.",
        "preconditions": "отключить указатель; начать с адресной строки/начала документа; подготовить все роли и состояния.",
        "steps": "выполнить каждую функцию клавишами Tab, Shift+Tab, Enter, Space, стрелками и документированными командами без временной зависимости от движения; проверить исключение для функции, требующей траектории ввода.",
        "pass_fail": "проходит, если все функции доступны через клавиатурный интерфейс; нарушение при недоступной функции или требовании имитировать мышь.",
        "na_not_tested": "NA практически только при отсутствии функций; не проверено, если состояние недоступно.",
        "min_evidence": "функция, начальная точка, последовательность клавиш и точка блокировки/успеха.",
        "normative_reference": "[WCAG 2.1.1](https://www.w3.org/TR/WCAG22/#keyboard).",
        "project_boundary": "конкретные сочетания клавиш задаются компонентом и не следуют автоматически из критерия."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "frame-focusable-content",
            "help": "Frames with focusable content must not have tabindex=-1",
            "tags": [
              "EN-301-549",
              "EN-9.2.1.1",
              "RGAA-7.3.2",
              "RGAAv4",
              "TT4.a",
              "TTv5",
              "cat.keyboard",
              "wcag211",
              "wcag2a"
            ]
          },
          {
            "id": "scrollable-region-focusable",
            "help": "Scrollable region must have keyboard access",
            "tags": [
              "EN-301-549",
              "EN-9.2.1.1",
              "EN-9.2.1.3",
              "RGAA-7.3.2",
              "RGAAv4",
              "TT4.a",
              "TTv5",
              "cat.keyboard",
              "wcag211",
              "wcag213",
              "wcag2a"
            ]
          },
          {
            "id": "server-side-image-map",
            "help": "Server-side image maps must not be used",
            "tags": [
              "EN-301-549",
              "EN-9.2.1.1",
              "RGAA-1.1.4",
              "RGAAv4",
              "TT4.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.f",
              "wcag211",
              "wcag2a"
            ]
          }
        ],
        "covers": "Отдельные технические антипаттерны: tabindex=-1 на фрейме с фокусируемым содержимым, прокручиваемая область без клавиатурного доступа, использование серверной image map.",
        "leaves_to_human": "Полное прохождение каждой функции клавиатурой (Tab/Shift+Tab/Enter/Space/стрелки), кастомные виджеты и обработчики, реагирующие только на мышь или касание.",
        "rationale": "Правила ловят частные технические маркеры недоступности, но не эмулируют полное клавиатурное прохождение функциональности страницы."
      },
      "in_base_34": [
        10
      ]
    },
    {
      "id": "2.1.2",
      "level": "A",
      "name_ru": "Нет клавиатурной ловушки",
      "principle": "2 Управляемость",
      "guideline": "2.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#no-keyboard-trap",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "все компоненты, получающие клавиатурный фокус.",
        "preconditions": "клавиатура, открытые модальные окна, редакторы, iframe и медиаплееры.",
        "steps": "войти в компонент Tab/Shift+Tab или предусмотренной клавишей; выйти стандартным способом; если способ нестандартен, проверить доступную инструкцию до входа.",
        "pass_fail": "проходит, если фокус можно вывести; нарушение, если пользователь застрял без сообщенного способа.",
        "na_not_tested": "NA без фокусируемых компонентов; не проверено без доступа к встроенному контуру.",
        "min_evidence": "последовательность входа/выхода, фактический фокус и инструкция при нестандартном способе.",
        "normative_reference": "[WCAG 2.1.2](https://www.w3.org/TR/WCAG22/#no-keyboard-trap).",
        "project_boundary": "циклический фокус в корректном модальном окне сам по себе не является ловушкой, если окно можно закрыть."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Попытку вывести фокус из каждого фокусируемого компонента стандартным или документированным способом.",
        "rationale": "Ловушка фокуса обнаруживается только реальной попыткой выйти из компонента клавиатурой."
      },
      "in_base_34": [
        11
      ]
    },
    {
      "id": "2.1.4",
      "level": "A",
      "name_ru": "Одноклавишные сочетания",
      "principle": "2 Управляемость",
      "guideline": "2.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#character-key-shortcuts",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "сочетания, запускаемые одной печатной буквой, цифрой, знаком пунктуации или символом без модификатора.",
        "preconditions": "список сочетаний и компоненты, где они активны; голосовой ввод при наличии.",
        "steps": "нажать каждую клавишу вне и внутри целевого компонента; проверить возможность отключить, переназначить с модификатором либо активность только при фокусе компонента.",
        "pass_fail": "проходит при одном из трех механизмов; нарушение при глобальном неуправляемом одноклавишном вызове.",
        "na_not_tested": "NA без таких сочетаний; не проверено без полного списка/состояния.",
        "min_evidence": "клавиша, область активности и результат отключения/переназначения/фокуса.",
        "normative_reference": "[WCAG 2.1.4](https://www.w3.org/TR/WCAG22/#character-key-shortcuts).",
        "project_boundary": "запрет всех горячих клавиш является более строгим правилом."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Проверку каждого одноклавишного сочетания вне и внутри целевого компонента и наличие механизма отключения/переназначения/ограничения фокусом.",
        "rationale": "Требует переигровки нажатий клавиш и проверки настроек - вне области статического анализа."
      },
      "in_base_34": []
    },
    {
      "id": "2.2.1",
      "level": "A",
      "name_ru": "Настраиваемое ограничение времени",
      "principle": "2 Управляемость",
      "guideline": "2.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#timing-adjustable",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "каждое ограничение времени, установленное контентом.",
        "preconditions": "известная длительность, тестовая сессия, данные перед тайм-аутом и все предупреждения.",
        "steps": "дождаться лимита; проверить выключение до начала, настройку минимум до десятикратного значения либо предупреждение минимум за 20 секунд с продлением простым действием не менее 10 раз; отдельно проверить заявленное исключение real-time, essential или более 20 часов.",
        "pass_fail": "проходит при одном допустимом механизме или доказанном исключении; нарушение при неконтролируемом лимите.",
        "na_not_tested": "NA без лимитов, установленных контентом; не проверено, если лимит не воспроизведен.",
        "min_evidence": "фактическое время, предупреждение, действия продления и решение по исключению.",
        "normative_reference": "[WCAG 2.2.1](https://www.w3.org/TR/WCAG22/#timing-adjustable).",
        "project_boundary": "сохранение введенных данных после истечения времени является отдельным когнитивным предложением."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "meta-refresh",
            "help": "Delayed refresh under 20 hours must not be used",
            "tags": [
              "EN-301-549",
              "EN-9.2.2.1",
              "RGAA-13.1.2",
              "RGAAv4",
              "TT8.a",
              "TTv5",
              "cat.time-and-media",
              "wcag221",
              "wcag2a"
            ]
          }
        ],
        "covers": "Наличие meta http-equiv=\"refresh\" с задержкой менее 20 часов.",
        "leaves_to_human": "Прочие источники ограничений времени (скрипты, серверные сессии), фактическое наличие настройки/продления/предупреждения за 20 секунд и применимость исключений real-time/essential/20 часов.",
        "rationale": "Правило видит только один механизм задержки (meta refresh), а не любые лимиты, устанавливаемые скриптами или сессией."
      },
      "in_base_34": []
    },
    {
      "id": "2.2.2",
      "level": "A",
      "name_ru": "Пауза, остановка, скрытие",
      "principle": "2 Управляемость",
      "guideline": "2.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#pause-stop-hide",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "автоматически начинающееся движущееся/мигающее/прокручиваемое содержимое дольше 5 секунд параллельно другому, а также автоматически обновляющееся содержимое.",
        "preconditions": "чистая загрузка, секундомер, все карусели, анимации, тикеры и обновления.",
        "steps": "наблюдать более 5 секунд; найти паузу/остановку/скрытие; для обновлений проверить управление частотой; оценить исключение существенности.",
        "pass_fail": "проходит при требуемом контроле или существенности; нарушение при отвлекающем неуправляемом содержимом.",
        "na_not_tested": "NA без применимого движения/обновления; не проверено, если длительность или управление не воспроизведены.",
        "min_evidence": "тип, время, параллельное содержимое и действие контроля.",
        "normative_reference": "[WCAG 2.2.2](https://www.w3.org/TR/WCAG22/#pause-stop-hide).",
        "project_boundary": "`prefers-reduced-motion` полезен, но сам по себе не заменяет все условия критерия."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "blink",
            "help": "<blink> elements are deprecated and must not be used",
            "tags": [
              "EN-301-549",
              "EN-9.2.2.2",
              "RGAA-13.8.1",
              "RGAAv4",
              "TT2.b",
              "TTv5",
              "cat.time-and-media",
              "section508",
              "section508.22.j",
              "wcag222",
              "wcag2a"
            ]
          },
          {
            "id": "marquee",
            "help": "<marquee> elements are deprecated and must not be used",
            "tags": [
              "EN-301-549",
              "EN-9.2.2.2",
              "RGAA-13.8.1",
              "RGAAv4",
              "TT2.b",
              "TTv5",
              "cat.parsing",
              "wcag222",
              "wcag2a"
            ]
          }
        ],
        "covers": "Использование устаревших тегов <blink> и <marquee>.",
        "leaves_to_human": "Современные CSS/JS-анимации, карусели, тикеры и автообновляемые блоки, а также наличие управления паузой/остановкой/скрытием - основную массу применимости критерия.",
        "rationale": "Покрытие ограничено двумя редко встречающимися устаревшими элементами; типовые карусели и автопрокрутка не проверяются автоматически."
      },
      "in_base_34": [
        12
      ]
    },
    {
      "id": "2.3.1",
      "level": "A",
      "name_ru": "Три вспышки или ниже порога",
      "principle": "2 Управляемость",
      "guideline": "2.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#three-flashes-or-below-threshold",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "мигающее или быстро меняющее яркость содержимое.",
        "preconditions": "полный временной фрагмент, известные размеры и цвета вспышек.",
        "steps": "определить интервалы с более чем тремя вспышками за любую секунду; при наличии применить проверенный анализ общих и красных порогов вспышки.",
        "pass_fail": "проходит при не более трех вспышек либо ниже обоих порогов; нарушение при превышении.",
        "na_not_tested": "NA без вспышек; не проверено без надежного анализа потенциально превышающего фрагмента.",
        "min_evidence": "видео/кадры, временной интервал и результат анализа порогов.",
        "normative_reference": "[WCAG 2.3.1](https://www.w3.org/TR/WCAG22/#three-flashes-or-below-threshold).",
        "project_boundary": "полный запрет вспышек является более строгим правилом."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Покадровый анализ видео на пороги общей и красной вспышки за любую секунду.",
        "rationale": "Требует анализа видеоряда, а не статического анализа DOM."
      },
      "in_base_34": [
        13
      ]
    },
    {
      "id": "2.4.1",
      "level": "A",
      "name_ru": "Обход блоков",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#bypass-blocks",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "наборы страниц с повторяющимися блоками.",
        "preconditions": "клавиатура/скринридер, минимум две страницы общего шаблона.",
        "steps": "начать с начала; использовать skip link, области, заголовки или иной механизм; перейти прямо к основному содержимому и проверить повтор.",
        "pass_fail": "проходит при доступном механизме обхода; нарушение при необходимости каждый раз проходить весь повторяющийся блок.",
        "na_not_tested": "NA для страницы без повторяющихся блоков/набора; не проверено без второй страницы при спорной повторяемости.",
        "min_evidence": "повторяющийся блок, механизм, последовательность и конечный фокус/позиция.",
        "normative_reference": "[WCAG 2.4.1](https://www.w3.org/TR/WCAG22/#bypass-blocks).",
        "project_boundary": "конкретный вид skip link не предписан."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "bypass",
            "help": "Page must have means to bypass repeated blocks",
            "tags": [
              "EN-301-549",
              "EN-9.2.4.1",
              "RGAA-12.7.1",
              "RGAAv4",
              "TT9.a",
              "TTv5",
              "cat.keyboard",
              "section508",
              "section508.22.o",
              "wcag241",
              "wcag2a"
            ]
          }
        ],
        "covers": "Наличие хотя бы одного технического механизма обхода повторяющихся блоков (skip-ссылка, landmark, заголовок в начале содержимого).",
        "leaves_to_human": "Фактическую работоспособность механизма (перевод фокуса действительно достигает основного содержимого) и повторяемость блока на второй странице набора.",
        "rationale": "Правило bypass проверяет наличие технического механизма, не его срабатывание при активации."
      },
      "in_base_34": []
    },
    {
      "id": "2.4.2",
      "level": "A",
      "name_ru": "Заголовок страницы",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#page-titled",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "каждая веб-страница/представление, для которого браузер сообщает title.",
        "preconditions": "открыть страницу и значимые маршруты SPA.",
        "steps": "прочитать программный заголовок до и после навигации; сопоставить с темой или назначением текущего представления.",
        "pass_fail": "проходит при описательном заголовке; нарушение при пустом, общем, неверном или не обновленном заголовке.",
        "na_not_tested": "NA обычно не применяется к веб-странице; не проверено при недоступном представлении.",
        "min_evidence": "URL/маршрут, фактический title и тема/назначение.",
        "normative_reference": "[WCAG 2.4.2](https://www.w3.org/TR/WCAG22/#page-titled).",
        "project_boundary": "шаблон брендинга и длина title являются редакционным правилом."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "document-title",
            "help": "Documents must have <title> element to aid in navigation",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.2.4.2",
              "RGAA-8.5.1",
              "RGAAv4",
              "TT12.a",
              "TTv5",
              "cat.text-alternatives",
              "wcag242",
              "wcag2a"
            ]
          }
        ],
        "covers": "Наличие непустого элемента <title>.",
        "leaves_to_human": "Описательность заголовка относительно темы или назначения страницы и его обновление при навигации в одностраничном приложении.",
        "rationale": "document-title проверяет присутствие тега, но не оценивает, описывает ли текст тему или назначение представления - это смысловое требование критерия. В отличие от прежней оценки (полностью), итог здесь - частично."
      },
      "in_base_34": []
    },
    {
      "id": "2.4.3",
      "level": "A",
      "name_ru": "Порядок фокуса",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#focus-order",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "последовательная навигация влияет на смысл или работу.",
        "preconditions": "клавиатура, все динамические состояния и модальные окна.",
        "steps": "пройти вперед/назад по всем элементам; открыть/закрыть компоненты; записать порядок, начальный перевод и возврат фокуса.",
        "pass_fail": "проходит, если порядок сохраняет смысл и управляемость; нарушение при нелогичном скачке, недоступном элементе или потере контекста.",
        "na_not_tested": "NA без последовательной навигации; не проверено, если часть состояния недоступна.",
        "min_evidence": "нумерованная последовательность фокуса и точка нарушения.",
        "normative_reference": "[WCAG 2.4.3](https://www.w3.org/TR/WCAG22/#focus-order).",
        "project_boundary": "точное совпадение с визуальным порядком не требуется, если смысл сохранен."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Прохождение фокусом вперед и назад по всем элементам и оценку сохранения смысла и управляемости.",
        "rationale": "Порядок фокуса проверяется только реальным табулированием и оценкой смысла последовательности."
      },
      "in_base_34": [
        14
      ]
    },
    {
      "id": "2.4.4",
      "level": "A",
      "name_ru": "Назначение ссылки в контексте",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#link-purpose-in-context",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "каждая ссылка.",
        "preconditions": "видимый текст, программно связанный контекст и список ссылок скринридера.",
        "steps": "определить назначение по тексту ссылки отдельно или вместе с программно определимым контекстом; проверить исключение неоднозначности для пользователей вообще.",
        "pass_fail": "проходит при определимом назначении; нарушение при неразличимых «подробнее» без программного контекста.",
        "na_not_tested": "NA без ссылок; не проверено при недоступном целевом контексте.",
        "min_evidence": "текст, доступное имя, контекст и целевой URL/действие.",
        "normative_reference": "[WCAG 2.4.4](https://www.w3.org/TR/WCAG22/#link-purpose-in-context).",
        "project_boundary": "уникальное имя ссылки без контекста относится к AAA 2.4.9, не к этому A-критерию."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "area-alt",
            "help": "Active <area> elements must have alternative text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.2.4.4",
              "EN-9.4.1.2",
              "RGAA-1.1.2",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag244",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "link-name",
            "help": "Links must have discernible text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.2.4.4",
              "EN-9.4.1.2",
              "RGAA-6.2.1",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.name-role-value",
              "section508",
              "section508.22.a",
              "wcag244",
              "wcag2a",
              "wcag412"
            ]
          }
        ],
        "covers": "Наличие непустого доступного имени у ссылок и активных областей image map.",
        "leaves_to_human": "Понятность назначения именно из текста или программно связанного контекста: непустое, но неинформативное имя вроде \"подробнее\" пройдет проверку правилом, но может провалить критерий.",
        "rationale": "Проверка непустого имени не равнозначна проверке понятности назначения ссылки - в этом ключевое ограничение правила link-name."
      },
      "in_base_34": [
        15
      ]
    },
    {
      "id": "2.4.5",
      "level": "AA",
      "name_ru": "Несколько способов",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#multiple-ways",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "поиск веб-страницы внутри набора, кроме страницы как результата/шага процесса.",
        "preconditions": "карта набора, навигация, поиск, список связанных страниц.",
        "steps": "для каждой существенной страницы проверить минимум два способа нахождения, например навигация и поиск, карта или ссылки.",
        "pass_fail": "проходит при двух и более способах либо исключении шага процесса; нарушение при единственном способе.",
        "na_not_tested": "NA для отдельной страницы вне набора или шага процесса; не проверено без карты набора.",
        "min_evidence": "страница и два воспроизводимых пути либо причина исключения.",
        "normative_reference": "[WCAG 2.4.5](https://www.w3.org/TR/WCAG22/#multiple-ways).",
        "project_boundary": "конкретные два механизма не предписаны."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Сопоставление минимум двух способов найти страницу на уровне всего набора страниц (навигация, поиск, карта сайта, связанные ссылки).",
        "rationale": "Требует знания структуры целого сайта, выходящей за пределы одной проверяемой страницы."
      },
      "in_base_34": []
    },
    {
      "id": "2.4.6",
      "level": "AA",
      "name_ru": "Заголовки и подписи",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#headings-and-labels",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "существующие заголовки и подписи элементов управления.",
        "preconditions": "страница во всех состояниях и список заголовков/подписей.",
        "steps": "сопоставить каждый заголовок с темой раздела, каждую подпись с назначением компонента; проверить различимость однотипных функций.",
        "pass_fail": "проходит, если они описывают тему или назначение; нарушение при вводящих в заблуждение/пустых формулировках.",
        "na_not_tested": "NA без заголовков и компонентов, требующих подписи; не проверено при неизвестном назначении.",
        "min_evidence": "текст, связанный раздел/компонент и объяснение расхождения.",
        "normative_reference": "[WCAG 2.4.6](https://www.w3.org/TR/WCAG22/#headings-and-labels).",
        "project_boundary": "критерий не требует добавлять заголовки везде; структурная необходимость проверяется по 1.3.1."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: применимое правило исключено из классификации (см. rationale).",
        "leaves_to_human": "Оценку описательности заголовков разделов и подписей элементов управления по смыслу.",
        "rationale": "Близкое правило empty-heading помечено best-practice без тега критерия и не используется для классификации; описательность формулировки - смысловая, а не формальная оценка."
      },
      "in_base_34": []
    },
    {
      "id": "2.4.7",
      "level": "AA",
      "name_ru": "Видимый фокус",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#focus-visible",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "любой клавиатурно управляемый интерфейс.",
        "preconditions": "клавиатура, все фокусируемые элементы и состояния.",
        "steps": "пройти элементы только клавиатурой; на каждом шаге визуально определить фокус, включая кастомные и встроенные компоненты.",
        "pass_fail": "проходит, если режим работы имеет видимый индикатор фокуса; нарушение, если текущий элемент невозможно увидеть.",
        "na_not_tested": "NA без клавиатурной работы практически не применяется; не проверено при недоступном состоянии.",
        "min_evidence": "последовательность, элемент и изображение состояния фокуса/его отсутствия.",
        "normative_reference": "[WCAG 2.4.7](https://www.w3.org/TR/WCAG22/#focus-visible).",
        "project_boundary": "контраст проверяется отдельно по применимому 1.4.11; усиленные требования к размеру и изменению контраста индикатора относятся к AAA 2.4.13 либо дополнительному профилю."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Визуальную проверку видимого индикатора фокуса при реальном табулировании по всем фокусируемым элементам, включая кастомные компоненты.",
        "rationale": "Видимость индикатора фокуса - визуальный признак, не читаемый из DOM без рендера и взаимодействия."
      },
      "in_base_34": [
        16
      ]
    },
    {
      "id": "2.4.11",
      "level": "AA",
      "name_ru": "Фокус не закрыт, минимум",
      "principle": "2 Управляемость",
      "guideline": "2.4",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#focus-not-obscured-minimum",
      "wcag_version_added": "2.2",
      "ru_profile": {
        "gost_52872_2019": "нет в основе",
        "note": "Критерий добавлен в WCAG 2.2. ГОСТ Р 52872-2019 гармонизирован с WCAG 2.1 и не мог включать более поздние критерии. Номер пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "элементы, получающие клавиатурный фокус.",
        "preconditions": "клавиатура, sticky header/footer, баннеры, диалоги и все viewport из матрицы.",
        "steps": "пройти все элементы и проверить видимость самого компонента, а не только внешнего индикатора. Для перемещаемых пользователем панелей оценивать начальное положение. Если перекрывающий контент открыл пользователь, проверить возможность показать компонент без перевода фокуса на другой элемент; учесть примечания критерия.",
        "pass_fail": "проходит, если компонент не полностью скрыт авторским содержимым с учетом примечаний критерия. Отсутствие перекрытия дает прохождение. Полное закрытие без применимого условия из примечаний дает нарушение.",
        "na_not_tested": "NA только при полном отсутствии элементов, получающих клавиатурный фокус; не проверено без доступа к нужному состоянию или viewport.",
        "min_evidence": "viewport, элемент, последовательность и изображение полного перекрытия.",
        "normative_reference": "[WCAG 2.4.11](https://www.w3.org/TR/WCAG22/#focus-not-obscured-minimum).",
        "project_boundary": "требование не скрывать фокус даже частично относится к AAA 2.4.12."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Проверку перекрытия компонента липкими шапками/подвалами, баннерами и диалогами в разных viewport при реальном получении фокуса.",
        "rationale": "Требует визуального сопоставления положения фокуса и перекрывающего содержимого в разных состояниях экрана."
      },
      "in_base_34": [
        16
      ]
    },
    {
      "id": "2.5.1",
      "level": "A",
      "name_ru": "Указательные жесты",
      "principle": "2 Управляемость",
      "guideline": "2.5",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#pointer-gestures",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "функции с многоточечным или основанным на траектории жестом.",
        "preconditions": "сенсорное/указательное устройство, карта всех жестов.",
        "steps": "выполнить pinch, swipe, рисование траектории или многопальцевый жест; найти одноточечную альтернативу без траекторной зависимости; оценить существенность.",
        "pass_fail": "проходит при одноточечной альтернативе или существенности жеста; нарушение при единственном сложном жесте.",
        "na_not_tested": "NA без таких жестов; не проверено без устройства/состояния.",
        "min_evidence": "жест, функция, альтернативное действие и решение о существенности.",
        "normative_reference": "[WCAG 2.5.1](https://www.w3.org/TR/WCAG22/#pointer-gestures).",
        "project_boundary": "критерий относится к авторскому содержимому, а не системным жестам пользовательского агента."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Выполнение многоточечных и траекторных жестов на сенсорном устройстве и поиск одноточечной альтернативы.",
        "rationale": "Требует реального ввода на сенсорном/указательном устройстве."
      },
      "in_base_34": []
    },
    {
      "id": "2.5.2",
      "level": "A",
      "name_ru": "Отмена указателя",
      "principle": "2 Управляемость",
      "guideline": "2.5",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#pointer-cancellation",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "функции, управляемые одним указателем.",
        "preconditions": "мышь/сенсор, все кнопки и кастомные области.",
        "steps": "нажать down внутри, переместить наружу и отпустить; проверить, что действие происходит на up, может быть отменено/возвращено либо down необходим; для завершения проверить возможность отменить до up.",
        "pass_fail": "проходит при одном из условий критерия; нарушение при необратимом ненужном срабатывании на down.",
        "na_not_tested": "NA без одноуказательных функций; не проверено без подходящего ввода.",
        "min_evidence": "событие down/up, траектория, момент срабатывания и отмена.",
        "normative_reference": "[WCAG 2.5.2](https://www.w3.org/TR/WCAG22/#pointer-cancellation).",
        "project_boundary": "подтверждение каждого обычного действия сверх критерия не требуется."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Эмуляцию событий down/up с уходом указателя за пределы элемента и проверку момента фактического срабатывания действия.",
        "rationale": "Требует последовательности живых событий указателя, а не анализа статической разметки."
      },
      "in_base_34": []
    },
    {
      "id": "2.5.3",
      "level": "A",
      "name_ru": "Подпись в имени",
      "principle": "2 Управляемость",
      "guideline": "2.5",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#label-in-name",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "компоненты с видимой текстовой подписью или изображением текста.",
        "preconditions": "видимая подпись, вычисленное доступное имя, голосовой ввод при наличии.",
        "steps": "сравнить строки с учетом порядка/включения; произнести видимую подпись как команду и наблюдать выбор элемента.",
        "pass_fail": "проходит, если доступное имя содержит видимый текст; нарушение при несовпадении, мешающем адресации.",
        "na_not_tested": "NA для компонента без видимой текстовой подписи; не проверено при недоступном имени.",
        "min_evidence": "видимая строка, доступное имя и результат голосовой команды в заявленной конфигурации.",
        "normative_reference": "[WCAG 2.5.3](https://www.w3.org/TR/WCAG22/#label-in-name).",
        "project_boundary": "точное равенство строк желательно, но нормативно требуется включение видимой подписи."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: применимое правило исключено из классификации (см. rationale).",
        "leaves_to_human": "Сравнение видимой подписи с вычисленным доступным именем и проверку голосовой команды.",
        "rationale": "Единственное относящееся правило label-content-name-mismatch помечено experimental и отключено по умолчанию, поэтому не используется для классификации."
      },
      "in_base_34": [
        19
      ]
    },
    {
      "id": "2.5.4",
      "level": "A",
      "name_ru": "Управление движением",
      "principle": "2 Управляемость",
      "guideline": "2.5",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#motion-actuation",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "функции, запускаемые движением устройства или пользователя.",
        "preconditions": "устройство с датчиком, включенная функция и альтернативный интерфейс.",
        "steps": "вызвать движение; выполнить ту же функцию компонентом интерфейса; отключить реакцию на движение, кроме поддерживаемого интерфейса доступности; оценить существенность.",
        "pass_fail": "проходит при альтернативе и возможности отключить либо при исключении; нарушение при единственном неотключаемом движении.",
        "na_not_tested": "NA без управления движением; не проверено без подходящего устройства.",
        "min_evidence": "движение, функция, контроль отключения и альтернатива.",
        "normative_reference": "[WCAG 2.5.4](https://www.w3.org/TR/WCAG22/#motion-actuation).",
        "project_boundary": "визуальная анимация проверяется другими критериями."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Физическое движение устройством и проверку наличия альтернативного элемента управления и возможности отключить реакцию на движение.",
        "rationale": "Требует датчика движения устройства и реального взаимодействия."
      },
      "in_base_34": []
    },
    {
      "id": "2.5.7",
      "level": "AA",
      "name_ru": "Перетаскивание",
      "principle": "2 Управляемость",
      "guideline": "2.5",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#dragging-movements",
      "wcag_version_added": "2.2",
      "ru_profile": {
        "gost_52872_2019": "нет в основе",
        "note": "Критерий добавлен в WCAG 2.2. ГОСТ Р 52872-2019 гармонизирован с WCAG 2.1 и не мог включать более поздние критерии. Номер пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "функции, где пользователь перетаскивает объект из точки в точку.",
        "preconditions": "указатель, все drag-состояния и альтернативный компонент.",
        "steps": "выполнить drag; затем достичь того же результата без перетаскивания одним указателем, например кнопками или выбором точки; оценить применимость исключений: существенность перетаскивания (без него меняется смысл или функция) и функциональность, определяемую пользовательским агентом (браузером/ОС) и не измененную автором, например встроенную прокрутку или изменение размера окна браузера.",
        "pass_fail": "проходит при одноуказательной альтернативе без drag, при обоснованной существенности перетаскивания либо когда функциональность определена пользовательским агентом и не изменена автором; нарушение при drag-only, реализованном именно автором содержимого.",
        "na_not_tested": "NA без dragging movement; не проверено без состояния/устройства.",
        "min_evidence": "начальная/конечная позиции, функция, шаги альтернативы и решение о существенности.",
        "normative_reference": "[WCAG 2.5.7](https://www.w3.org/TR/WCAG22/#dragging-movements).",
        "project_boundary": "клавиатурная доступность той же функции дополнительно проверяется по 2.1.1."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Выполнение drag-операции и проверку достижимости того же результата одноуказательной альтернативой.",
        "rationale": "Перетаскивание проверяется только реальным вводом, недоступным статическому анализатору."
      },
      "in_base_34": [
        17
      ]
    },
    {
      "id": "2.5.8",
      "level": "AA",
      "name_ru": "Размер цели, минимум",
      "principle": "2 Управляемость",
      "guideline": "2.5",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#target-size-minimum",
      "wcag_version_added": "2.2",
      "ru_profile": {
        "gost_52872_2019": "нет в основе",
        "note": "Критерий добавлен в WCAG 2.2. ГОСТ Р 52872-2019 гармонизирован с WCAG 2.1 и не мог включать более поздние критерии. Номер пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "цели указателя.",
        "preconditions": "CSS-пиксельные размеры/координаты, все состояния и viewport.",
        "steps": "измерить область цели не менее 24x24 CSS px; геометрический центр ограничивающего прямоугольника (bounding box) цели определяет точку построения круга; для исключения spacing построить круг диаметром 24 CSS px с центром в геометрическом центре ограничивающего прямоугольника каждой малой цели и проверить, что он не пересекает другую цель или такой же круг другой малой цели; проверить применимость остальных исключений: equivalent (эквивалент) - та же функция доступна через другой элемент управления на этой же странице размером не меньше 24x24 CSS px; inline (в строке) - цель находится в строке текста или ее размер ограничен высотой строки нецелевого текста; user agent control (управление пользовательским агентом) - размер цели задан браузером и не изменен автором; essential (существенность) - конкретное представление цели существенно для передаваемой информации или требуется по закону.",
        "pass_fail": "проходит по размеру, расстоянию или исключению; нарушение при слишком малой близкой цели.",
        "na_not_tested": "NA без целей указателя; не проверено при невозможности измерить геометрию.",
        "min_evidence": "размеры, координаты соседей, состояние и примененное исключение.",
        "normative_reference": "[WCAG 2.5.8](https://www.w3.org/TR/WCAG22/#target-size-minimum).",
        "project_boundary": "44x44 CSS px относится к AAA 2.5.5 или проектному профилю, не к этому критерию."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "target-size",
            "help": "All touch targets must be 24px large, or leave sufficient space",
            "tags": [
              "cat.sensory-and-visual-cues",
              "wcag22aa",
              "wcag258"
            ]
          }
        ],
        "covers": "Измерение геометрии интерактивных целей (высоту, ширину, положение соседей) и сопоставление с порогом 24x24 CSS px там, где размеры и соседство однозначно вычислимы из рендера.",
        "leaves_to_human": "Случаи, где правило возвращает incomplete из-за неоднозначного соседства, перекрытия или inline-контекста, и применимость исключений equivalent/inline/user-agent control/essential.",
        "rationale": "Правило target-size отключено по умолчанию в axe-core 4.13.0 (требует явного включения) и в сложной верстке часто возвращает incomplete там, где геометрию соседних целей нельзя доказать без визуального рендера, поэтому классификация - частично, а не полностью."
      },
      "in_base_34": [
        18
      ]
    },
    {
      "id": "3.1.1",
      "level": "A",
      "name_ru": "Язык страницы",
      "principle": "3 Понятность",
      "guideline": "3.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#language-of-page",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "каждая веб-страница/представление.",
        "preconditions": "основной естественный язык содержимого, DOM и скринридер с языковыми голосами.",
        "steps": "определить основной язык; проверить программное значение корневого элемента и фактическое переключение произношения.",
        "pass_fail": "проходит, если основной язык программно определим; нарушение при отсутствующем или неверном значении.",
        "na_not_tested": "NA обычно не применяется; не проверено, если основной язык невозможно установить.",
        "min_evidence": "основной язык, фактический атрибут и вывод заявленной AT.",
        "normative_reference": "[WCAG 3.1.1](https://www.w3.org/TR/WCAG22/#language-of-page).",
        "project_boundary": "качество перевода оценивается отдельно."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "html-has-lang",
            "help": "<html> element must have a lang attribute",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.3.1.1",
              "RGAA-8.3.1",
              "RGAAv4",
              "TT11.a",
              "TTv5",
              "cat.language",
              "wcag2a",
              "wcag311"
            ]
          },
          {
            "id": "html-lang-valid",
            "help": "<html> element must have a valid value for the lang attribute",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.3.1.1",
              "RGAA-8.4.1",
              "RGAAv4",
              "TT11.a",
              "TTv5",
              "cat.language",
              "wcag2a",
              "wcag311"
            ]
          },
          {
            "id": "html-xml-lang-mismatch",
            "help": "HTML elements with lang and xml:lang must have the same base language",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.3.1.1",
              "RGAA-8.3.1",
              "RGAAv4",
              "cat.language",
              "wcag2a",
              "wcag311"
            ]
          }
        ],
        "covers": "Наличие атрибута lang на <html>, его синтаксическую валидность по BCP 47 и совпадение значений lang и xml:lang.",
        "leaves_to_human": "Соответствие заявленного языка фактическому основному языку содержимого страницы: правило не читает и не распознает язык текста, поэтому lang=\"en\" на русскоязычной странице его пройдет.",
        "rationale": "Правила ловят отсутствующий или синтаксически неверный атрибут, но не проверяют смысловую корректность значения. В отличие от прежней оценки (полностью), итог здесь - частично."
      },
      "in_base_34": [
        20
      ]
    },
    {
      "id": "3.1.2",
      "level": "AA",
      "name_ru": "Язык частей",
      "principle": "3 Понятность",
      "guideline": "3.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#language-of-parts",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "фразы и фрагменты на языке, отличном от основного, кроме имен, технических терминов, слов неопределенного языка и общеупотребительных заимствований.",
        "preconditions": "список разноязычных фрагментов, DOM и AT с языковыми голосами.",
        "steps": "проверить программное обозначение языка каждого применимого фрагмента и произношение; оценить исключения.",
        "pass_fail": "проходит при корректно определимом языке; нарушение при отсутствующей/неверной маркировке.",
        "na_not_tested": "NA без применимых смен языка; не проверено при спорном языке/термине.",
        "min_evidence": "цитата фрагмента, язык, атрибут и результат AT.",
        "normative_reference": "[WCAG 3.1.2](https://www.w3.org/TR/WCAG22/#language-of-parts).",
        "project_boundary": "перевод фрагмента не требуется этим критерием."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "valid-lang",
            "help": "lang attribute must have a valid value",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.3.1.2",
              "RGAA-8.8.1",
              "RGAAv4",
              "TT11.b",
              "TTv5",
              "cat.language",
              "wcag2aa",
              "wcag312"
            ]
          }
        ],
        "covers": "Синтаксическую валидность значения lang у элементов, отличного от корневого языка.",
        "leaves_to_human": "Обнаружение самих иноязычных фрагментов без разметки lang (правило не находит непомеченные фрагменты) и применимость исключений (имена, термины, заимствования).",
        "rationale": "Правило проверяет только уже размеченные атрибуты; фрагменты без lang вообще не будут замечены."
      },
      "in_base_34": [
        20
      ]
    },
    {
      "id": "3.2.1",
      "level": "A",
      "name_ru": "При фокусе",
      "principle": "3 Понятность",
      "guideline": "3.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#on-focus",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "любой компонент, способный получить фокус.",
        "preconditions": "клавиатура, все элементы и начальные состояния.",
        "steps": "переводить фокус на каждый компонент без активации. Для обнаруженного изменения установить, меняет ли оно контекст по определению WCAG: пользовательский агент, область просмотра, фокус или содержание так, что оно может дезориентировать человека, не воспринимающего страницу целиком. Обычное обновление содержимого без смены контекста не признавать нарушением.",
        "pass_fail": "проходит, если получение фокуса не инициирует смену контекста; нарушение при любой такой автоматической смене.",
        "na_not_tested": "NA без фокусируемых компонентов; не проверено при недоступном состоянии.",
        "min_evidence": "исходное состояние, последовательность фокуса и произошедшая смена контекста.",
        "normative_reference": "[WCAG 3.2.1](https://www.w3.org/TR/WCAG22/#on-focus).",
        "project_boundary": "предварительное предупреждение не разрешает смену контекста при получении фокуса."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Перевод фокуса на каждый компонент без активации и наблюдение, вызывает ли это смену контекста по определению WCAG.",
        "rationale": "Смена контекста определяется наблюдением за реальным поведением интерфейса."
      },
      "in_base_34": [
        21
      ]
    },
    {
      "id": "3.2.2",
      "level": "A",
      "name_ru": "При вводе",
      "principle": "3 Понятность",
      "guideline": "3.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#on-input",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "компоненты, изменение настройки которых может вызвать смену контекста.",
        "preconditions": "формы, select, переключатели и все варианты значений; текст предупреждения до использования.",
        "steps": "изменить каждое значение без отдельной активации. Установить именно смену контекста по определению WCAG, как в карточке 3.2.1, затем проверить, было ли о ней сообщено до использования компонента. Обновление результатов или появление дополнительного поля само по себе не считать сменой контекста.",
        "pass_fail": "проходит без автоматической смены контекста либо при предупреждении до использования компонента; нарушение при непредупрежденной смене.",
        "na_not_tested": "NA без компонентов ввода/смены контекста; не проверено при недоступной ветви.",
        "min_evidence": "компонент, значение, предупреждение до него и фактическая смена.",
        "normative_reference": "[WCAG 3.2.2](https://www.w3.org/TR/WCAG22/#on-input).",
        "project_boundary": "это условие отличается от 3.2.1, где предупреждение не создает исключение."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Изменение каждого значения компонента без отдельной активации и наблюдение за сменой контекста и предупреждением до использования.",
        "rationale": "Аналогично 3.2.1, требует наблюдения за поведением после изменения значения поля."
      },
      "in_base_34": [
        21
      ]
    },
    {
      "id": "3.2.3",
      "level": "AA",
      "name_ru": "Последовательная навигация",
      "principle": "3 Понятность",
      "guideline": "3.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#consistent-navigation",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "повторяющиеся механизмы навигации на наборе страниц.",
        "preconditions": "минимум две страницы/представления набора в одной относительной последовательности.",
        "steps": "сравнить порядок повторяющихся механизмов; проверить изменение, инициированное пользователем.",
        "pass_fail": "проходит при одинаковом относительном порядке либо пользовательском изменении; нарушение при неожиданной перестановке.",
        "na_not_tested": "NA без повторяющейся навигации/набора; не проверено без достаточного числа страниц.",
        "min_evidence": "страницы и сопоставленные последовательности.",
        "normative_reference": "[WCAG 3.2.3](https://www.w3.org/TR/WCAG22/#consistent-navigation).",
        "project_boundary": "идентичный внешний вид проверяется отдельно."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Сравнение относительного порядка повторяющихся механизмов навигации минимум на двух страницах набора.",
        "rationale": "Требует сопоставления нескольких страниц набора между собой - вне области одной страницы."
      },
      "in_base_34": [
        22
      ]
    },
    {
      "id": "3.2.4",
      "level": "AA",
      "name_ru": "Последовательная идентификация",
      "principle": "3 Понятность",
      "guideline": "3.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#consistent-identification",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "компоненты с одинаковой функциональностью на наборе страниц.",
        "preconditions": "перечень повторяющихся функций, видимые и доступные названия.",
        "steps": "сравнить идентификацию каждой одинаковой функции между страницами и состояниями.",
        "pass_fail": "проходит при последовательной идентификации; нарушение, если одинаковая функция названа/обозначена так, что выглядит другой.",
        "na_not_tested": "NA без повторяющихся функций; не проверено без доступа ко всему набору.",
        "min_evidence": "функция, страницы, видимые подписи и доступные имена.",
        "normative_reference": "[WCAG 3.2.4](https://www.w3.org/TR/WCAG22/#consistent-identification).",
        "project_boundary": "разные функции не обязаны иметь одинаковую идентификацию."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Сравнение идентификации одинаковых по функции компонентов на разных страницах набора.",
        "rationale": "Требует сопоставления нескольких страниц набора между собой."
      },
      "in_base_34": [
        22
      ]
    },
    {
      "id": "3.2.6",
      "level": "A",
      "name_ru": "Последовательная помощь",
      "principle": "3 Понятность",
      "guideline": "3.2",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#consistent-help",
      "wcag_version_added": "2.2",
      "ru_profile": {
        "gost_52872_2019": "нет в основе",
        "note": "Критерий добавлен в WCAG 2.2. ГОСТ Р 52872-2019 гармонизирован с WCAG 2.1 и не мог включать более поздние критерии. Номер пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "набор страниц, где повторяется хотя бы один механизм помощи из критерия: контакт человека, контактный механизм, самообслуживание или полностью автоматический контакт.",
        "preconditions": "страницы набора и все механизмы помощи.",
        "steps": "сравнить относительный порядок механизма помощи относительно остального содержимого страницы (порядок в линейном/сериализованном представлении, а не только визуальную позицию) на страницах набора с одинаковым способом представления (тот же брейкпоинт, масштаб и ориентация); если порядок изменен по инициативе самого пользователя, проверить сохранение этого выбора.",
        "pass_fail": "проходит при одинаковом относительном порядке механизма помощи среди остального содержимого на страницах одного представления либо при изменении порядка по инициативе пользователя; нарушение при ином относительном порядке на страницах того же представления.",
        "na_not_tested": "NA без перечисленных механизмов помощи; не проверено без набора страниц.",
        "min_evidence": "страницы, вид помощи и позиции в порядке.",
        "normative_reference": "[WCAG 3.2.6](https://www.w3.org/TR/WCAG22/#consistent-help).",
        "project_boundary": "критерий не требует создать помощь, если ее нет; это может быть отдельным правилом COGA."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Сравнение относительного порядка механизма помощи на страницах набора.",
        "rationale": "Требует сопоставления нескольких страниц набора между собой."
      },
      "in_base_34": [
        22
      ]
    },
    {
      "id": "3.3.1",
      "level": "A",
      "name_ru": "Определение ошибки",
      "principle": "3 Понятность",
      "guideline": "3.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#error-identification",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "автоматически обнаруживаемые ошибки ввода.",
        "preconditions": "тестовые неверные/пропущенные данные для каждого правила валидации.",
        "steps": "вызвать ошибку, отправить/покинуть поле по реальному сценарию; найти ошибочный элемент и текстовое описание ошибки.",
        "pass_fail": "проходит, если элемент определен и ошибка описана текстом; нарушение при одном цвете/иконке, общем сообщении без определимого элемента или отсутствии описания.",
        "na_not_tested": "NA без автоматически обнаруживаемых ошибок; не проверено без безопасной возможности вызвать ошибку.",
        "min_evidence": "ввод, действие, ошибочный элемент и точный текст сообщения.",
        "normative_reference": "[WCAG 3.3.1](https://www.w3.org/TR/WCAG22/#error-identification).",
        "project_boundary": "автоматическое объявление скринридером требует отдельной проверки 4.1.3 и конкретной конфигурации."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Вызов реальной ошибки ввода и проверку текстового описания и связи с ошибочным элементом.",
        "rationale": "Требует воспроизвести ошибку по реальному сценарию и оценить формулировку - не формальный признак."
      },
      "in_base_34": [
        24
      ]
    },
    {
      "id": "3.3.2",
      "level": "A",
      "name_ru": "Подписи или инструкции",
      "principle": "3 Понятность",
      "guideline": "3.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#labels-or-instructions",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "содержимое, требующее пользовательского ввода.",
        "preconditions": "пустая форма, форматы, обязательность и нестандартные ограничения.",
        "steps": "до ввода проверить наличие видимой/доступной подписи и необходимых инструкций; ввести граничные данные, не используя placeholder как единственный устойчивый источник.",
        "pass_fail": "проходит, если пользователь получает нужную подпись или инструкцию; нарушение при неизвестном назначении/формате/обязательности.",
        "na_not_tested": "NA без ввода; не проверено при недоступной форме.",
        "min_evidence": "поле, требование к вводу, подпись/инструкция до ввода.",
        "normative_reference": "[WCAG 3.3.2](https://www.w3.org/TR/WCAG22/#labels-or-instructions).",
        "project_boundary": "постоянная видимость подсказки является полезным проектным правилом, если нормативное условие иначе уже выполнено."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "form-field-multiple-labels",
            "help": "Form field must not have multiple label elements",
            "tags": [
              "EN-301-549",
              "EN-9.3.3.2",
              "RGAA-11.2.1",
              "RGAAv4",
              "TT5.c",
              "TTv5",
              "cat.forms",
              "wcag2a",
              "wcag332"
            ]
          }
        ],
        "covers": "Обнаружение поля формы с несколькими конфликтующими <label>-элементами.",
        "leaves_to_human": "Наличие и достаточность самой подписи или инструкции по смыслу, указание формата, обязательности и нестандартных ограничений.",
        "rationale": "Правило ловит один узкий конфликт разметки, а не полноту и понятность подписи или инструкции."
      },
      "in_base_34": [
        23
      ]
    },
    {
      "id": "3.3.3",
      "level": "AA",
      "name_ru": "Предложение исправления ошибки",
      "principle": "3 Понятность",
      "guideline": "3.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#error-suggestion",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "обнаруженная ошибка ввода с известным предложением исправления, если оно не угрожает безопасности или назначению.",
        "preconditions": "отдельные неверные значения и известные допустимые форматы.",
        "steps": "вызвать ошибку; проверить конкретное предложение исправления и возможность его применить.",
        "pass_fail": "проходит при доступном предложении либо доказанном исключении; нарушение при одном сообщении «ошибка» без известного способа исправления.",
        "na_not_tested": "NA при неизвестном исправлении или риске безопасности/назначению; не проверено, если ошибка не воспроизведена.",
        "min_evidence": "ввод, сообщение, известное исправление и решение по исключению.",
        "normative_reference": "[WCAG 3.3.3](https://www.w3.org/TR/WCAG22/#error-suggestion).",
        "project_boundary": "исправление не обязано применяться автоматически."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Вызов ошибки и оценку, предложено ли конкретное известное исправление и можно ли его применить.",
        "rationale": "Оценка конкретности предложенного исправления - смысловая задача."
      },
      "in_base_34": [
        24
      ]
    },
    {
      "id": "3.3.4",
      "level": "AA",
      "name_ru": "Предотвращение ошибок: юридические, финансовые, данные",
      "principle": "3 Понятность",
      "guideline": "3.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#error-prevention-legal-financial-data",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "юридические обязательства/финансовые транзакции, изменение/удаление пользовательских данных в хранилище и отправка ответов на тесты.",
        "preconditions": "безопасный стенд, фиктивные данные/платеж, все шаги подтверждения и отмены.",
        "steps": "ввести ошибочные данные и проверить три допустимых механизма: отправленное можно отменить; данные проверяются на ошибки с возможностью их исправить; либо перед окончательной отправкой можно просмотреть, подтвердить и исправить сведения. Достаточно одного полностью выполненного механизма.",
        "pass_fail": "проходит при выполнении хотя бы одного из трех механизмов. Одной кнопки «Подтвердить» без просмотра и исправления недостаточно для третьего механизма. Нарушение фиксируется, если ни один механизм не выполнен.",
        "na_not_tested": "NA для операций вне перечисленных категорий; не проверено без авторизованной безопасной фикстуры.",
        "min_evidence": "тип операции, тестовые данные, шаги обзора/исправления/отмены и итог без реального ущерба.",
        "normative_reference": "[WCAG 3.3.4](https://www.w3.org/TR/WCAG22/#error-prevention-legal-financial-data).",
        "project_boundary": "двойное подтверждение каждой операции сверх одного допустимого механизма дополнительное."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Прохождение операции с фиктивными данными и проверку одного из трех допустимых механизмов (отмена, проверка с исправлением, просмотр и подтверждение).",
        "rationale": "Требует выполнения реального сценария с тестовыми данными."
      },
      "in_base_34": [
        25
      ]
    },
    {
      "id": "3.3.7",
      "level": "A",
      "name_ru": "Повторный ввод",
      "principle": "3 Понятность",
      "guideline": "3.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#redundant-entry",
      "wcag_version_added": "2.2",
      "ru_profile": {
        "gost_52872_2019": "нет в основе",
        "note": "Критерий добавлен в WCAG 2.2. ГОСТ Р 52872-2019 гармонизирован с WCAG 2.1 и не мог включать более поздние критерии. Номер пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "информация, уже введенная или предоставленная пользователем и снова требуемая в том же процессе.",
        "preconditions": "полный процесс, тестовые данные и переходы вперед/назад.",
        "steps": "ввести данные на первом шаге; дойти до повторного запроса; проверить автоподстановку или выбор ранее введенного; оценить исключения essential, security или invalid.",
        "pass_fail": "проходит при автоподстановке/выборе либо исключении; нарушение при обязательном повторном наборе.",
        "na_not_tested": "NA без повторного запроса в процессе; не проверено без полного процесса.",
        "min_evidence": "первое и повторное поля, шаги, поведение и исключение.",
        "normative_reference": "[WCAG 3.3.7](https://www.w3.org/TR/WCAG22/#redundant-entry).",
        "project_boundary": "сохранение между разными процессами или сессиями является дополнительным правилом."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Прохождение многошагового процесса и проверку автоподстановки или выбора ранее введенных данных на повторном шаге.",
        "rationale": "Требует прохождения полного процесса с тестовыми данными."
      },
      "in_base_34": [
        26
      ]
    },
    {
      "id": "3.3.8",
      "level": "AA",
      "name_ru": "Доступная аутентификация, минимум",
      "principle": "3 Понятность",
      "guideline": "3.3",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#accessible-authentication-minimum",
      "wcag_version_added": "2.2",
      "ru_profile": {
        "gost_52872_2019": "нет в основе",
        "note": "Критерий добавлен в WCAG 2.2. ГОСТ Р 52872-2019 гармонизирован с WCAG 2.1 и не мог включать более поздние критерии. Номер пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "этапы аутентификации.",
        "preconditions": "разрешенная тестовая учетная запись, все MFA/CAPTCHA/восстановление, менеджер паролей и вставка.",
        "steps": "пройти каждый этап входа и восстановления. Обычные поля имени пользователя, e-mail или телефона сами по себе не являются когнитивным функциональным тестом: это личные для пользователя и одинаковые на разных сайтах идентификаторы; проверить, что вставка (paste) и автозаполнение в них не заблокированы. Для пароля и одноразового кода - это когнитивный функциональный тест по определению критерия - проверить наличие снимающего нагрузку механизма: работу менеджера паролей, разрешенную вставку или автозаполнение. При отсутствии такого механизма проверить альтернативный метод входа без когнитивного теста либо допустимое на уровне AA исключение: распознавание объектов (без текстовой транскрипции) или распознавание личного содержимого, ранее предоставленного пользователем сайту.",
        "pass_fail": "проходит, если поле-идентификатор (имя, e-mail, телефон) не заблокировало вставку/автозаполнение, либо для пароля/кода доступен снимающий нагрузку механизм (менеджер паролей, вставка), альтернативный метод без когнитивного теста или допустимое исключение (распознавание объектов, распознавание личного содержимого); нарушение при обязательном запоминании, транскрипции или вычислении без такого механизма, альтернативы или исключения.",
        "na_not_tested": "NA без аутентификации; не проверено без разрешенной фикстуры или конкретной ветви MFA.",
        "min_evidence": "метод, шаги, доступная альтернатива/помощь, настройки и итог тестового входа.",
        "normative_reference": "[WCAG 3.3.8](https://www.w3.org/TR/WCAG22/#accessible-authentication-minimum).",
        "project_boundary": "запрет всех CAPTCHA не следует из критерия; безопасность тестовой учетной записи обязательна по процедуре оценки."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: правил с тегом этого критерия в axe-core нет.",
        "leaves_to_human": "Прохождение аутентификации и восстановления доступа, оценку наличия когнитивного теста и доступной альтернативы или помощи.",
        "rationale": "Требует прохождения реальных этапов входа в разрешенной тестовой учетной записи."
      },
      "in_base_34": [
        27
      ]
    },
    {
      "id": "4.1.2",
      "level": "A",
      "name_ru": "Имя, роль, значение",
      "principle": "4 Надёжность",
      "guideline": "4.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#name-role-value",
      "wcag_version_added": "2.0",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.0, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "все компоненты интерфейса, особенно авторские виджеты.",
        "preconditions": "DOM, accessibility tree, точная версия браузера/AT, все состояния.",
        "steps": "для каждого компонента проверить программные имя и роль; доступность значений/состояний, которые может установить пользователь; возможность установить их программно; передачу изменений пользовательским агентам.",
        "pass_fail": "проходит по всем применимым условиям; нарушение при отсутствующем/неверном имени, роли, состоянии или недоступном управлении.",
        "na_not_tested": "NA без компонентов интерфейса практически не применяется; не проверено без состояния или программной структуры.",
        "min_evidence": "элемент, DOM/дерево, действия и фактический вывод указанной AT.",
        "normative_reference": "[WCAG 4.1.2](https://www.w3.org/TR/WCAG22/#name-role-value).",
        "project_boundary": "один успешный скринридер не доказывает универсальную совместимость; матрица поддержки задается проектом."
      },
      "automation": {
        "level": "частично",
        "can_prove": "нарушение",
        "axe_rules": [
          {
            "id": "area-alt",
            "help": "Active <area> elements must have alternative text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.2.4.4",
              "EN-9.4.1.2",
              "RGAA-1.1.2",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag244",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-allowed-attr",
            "help": "Elements must only use supported ARIA attributes",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-braille-equivalent",
            "help": "aria-braille attributes must have a non-braille equivalent",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-command-name",
            "help": "ARIA commands must have an accessible name",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-11.9.1",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-conditional-attr",
            "help": "ARIA attributes must be used as specified for the element's role",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-deprecated-role",
            "help": "Deprecated ARIA roles must not be used",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-hidden-body",
            "help": "aria-hidden=\"true\" must not be present on the document body",
            "tags": [
              "EN-301-549",
              "EN-9.1.3.1",
              "EN-9.4.1.2",
              "RGAA-10.8.1",
              "RGAAv4",
              "cat.aria",
              "wcag131",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-hidden-focus",
            "help": "ARIA hidden element must not be focusable or contain focusable elements",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-10.8.1",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.name-role-value",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-input-field-name",
            "help": "ARIA input fields must have an accessible name",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-11.1.1",
              "RGAAv4",
              "TT5.c",
              "TTv5",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-prohibited-attr",
            "help": "Elements must only use permitted ARIA attributes",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-required-attr",
            "help": "Required ARIA attributes must be provided",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-roles",
            "help": "ARIA roles used must conform to valid values",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-tab-name",
            "help": "ARIA tab nodes must have an accessible name",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "TT5.c",
              "TTv5",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-toggle-field-name",
            "help": "ARIA toggle fields must have an accessible name",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "TT5.c",
              "TTv5",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-tooltip-name",
            "help": "ARIA tooltip nodes must have an accessible name",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-valid-attr",
            "help": "ARIA attributes must conform to valid names",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "aria-valid-attr-value",
            "help": "ARIA attributes must conform to valid values",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "cat.aria",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "button-name",
            "help": "Buttons must have discernible text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-11.9.1",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.name-role-value",
              "section508",
              "section508.22.a",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "duplicate-id-aria",
            "help": "IDs used in ARIA and labels must be unique",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-8.2.1",
              "RGAAv4",
              "cat.parsing",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "frame-title",
            "help": "Frames must have an accessible name",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-2.1.1",
              "RGAAv4",
              "TT12.d",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.i",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "frame-title-unique",
            "help": "Frames must have a unique title attribute",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-2.2.1",
              "RGAAv4",
              "TT12.d",
              "TTv5",
              "cat.text-alternatives",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "input-button-name",
            "help": "Input buttons must have discernible text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-11.9.1",
              "RGAAv4",
              "TT5.c",
              "TTv5",
              "cat.name-role-value",
              "section508",
              "section508.22.a",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "input-image-alt",
            "help": "Image buttons must have alternative text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.1.1.1",
              "EN-9.4.1.2",
              "RGAA-1.1.3",
              "RGAAv4",
              "TT7.a",
              "TTv5",
              "cat.text-alternatives",
              "section508",
              "section508.22.a",
              "wcag111",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "label",
            "help": "Form elements must have labels",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-11.1.1",
              "RGAAv4",
              "TT5.c",
              "TTv5",
              "cat.forms",
              "section508",
              "section508.22.n",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "link-name",
            "help": "Links must have discernible text",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.2.4.4",
              "EN-9.4.1.2",
              "RGAA-6.2.1",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.name-role-value",
              "section508",
              "section508.22.a",
              "wcag244",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "nested-interactive",
            "help": "Interactive controls must not be nested",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-7.1.1",
              "RGAAv4",
              "TT6.a",
              "TTv5",
              "cat.keyboard",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "select-name",
            "help": "Select element must have an accessible name",
            "tags": [
              "ACT",
              "EN-301-549",
              "EN-9.4.1.2",
              "RGAA-11.1.1",
              "RGAAv4",
              "TT5.c",
              "TTv5",
              "cat.forms",
              "section508",
              "section508.22.n",
              "wcag2a",
              "wcag412"
            ]
          },
          {
            "id": "summary-name",
            "help": "Summary elements must have discernible text",
            "tags": [
              "EN-301-549",
              "EN-9.4.1.2",
              "TT6.a",
              "TTv5",
              "cat.name-role-value",
              "section508",
              "section508.22.a",
              "wcag2a",
              "wcag412"
            ]
          }
        ],
        "covers": "Программные имя, роль и допустимость ARIA-атрибутов для стандартных интерактивных элементов и распространенных ARIA-паттернов: кнопки, ссылки, поля ввода, вкладки, тултипы, фреймы, дубли id и схожие технические дефекты.",
        "leaves_to_human": "Поведенческую корректность кастомных виджетов при реальном взаимодействии (изменение состояний/значений), передачу изменений разным вспомогательным технологиям, случаи вне покрытых ARIA-паттернов.",
        "rationale": "Широкий набор активных правил закрывает много частых технических дефектов имени и роли, но не доказывает совместимость произвольного кастомного компонента с конкретной вспомогательной технологией - для этого нужен ручной прогон с реальным скринридером."
      },
      "in_base_34": [
        28
      ]
    },
    {
      "id": "4.1.3",
      "level": "AA",
      "name_ru": "Сообщения о состоянии",
      "principle": "4 Надёжность",
      "guideline": "4.1",
      "w3c_url": "https://www.w3.org/TR/WCAG22/#status-messages",
      "wcag_version_added": "2.1",
      "ru_profile": {
        "gost_52872_2019": "по основе",
        "note": "Критерий существует в WCAG 2.1, на основе которого гармонизирован ГОСТ Р 52872-2019. Номер конкретного пункта ГОСТ не сопоставлен: текст стандарта не использовался.",
        "pp102": null,
        "pp102_note": "требует сверки с текстом постановления"
      },
      "protocol": {
        "applicability": "сообщения, которые информируют об успехе, результате, ожидании, прогрессе или ошибке без смены контекста.",
        "preconditions": "точная версия браузера/скринридера, действия для всех статусов, фокус до запуска.",
        "steps": "вызвать сообщение без перевода фокуса; наблюдать доступное дерево и вывод AT; проверить программно определимую роль/свойство, позволяющую сообщить статус без получения фокуса.",
        "pass_fail": "проходит, если статус программно определим через роль или свойства так, что вспомогательная технология может представить его без получения фокуса, при поддерживаемом способе использования технологии. Нарушение: отсутствует требуемая программная семантика либо доказана ее непригодность для такого представления. Молчание одной программы само по себе не определяет результат: проверить настройки, момент обновления и поддержку; при неустановленной причине оставить вопрос открытым.",
        "na_not_tested": "NA без сообщений о состоянии; не проверено без воспроизведения или заявленной конфигурации AT.",
        "min_evidence": "действие, исходный/конечный фокус, текст статуса, DOM/роль/свойства и поддерживаемый способ использования. Отдельно фиксируются настройки, фактический вывод AT и диагноз обнаруженной несовместимости, если он установлен.",
        "normative_reference": "[WCAG 4.1.3](https://www.w3.org/TR/WCAG22/#status-messages).",
        "project_boundary": "время и стиль объявления сверх достаточной программной определимости зависят от проектного профиля."
      },
      "automation": {
        "level": "вручную",
        "can_prove": null,
        "axe_rules": [],
        "covers": "Ничего: в axe-core 4.13.0 нет правила с тегом этого критерия.",
        "leaves_to_human": "Вызов сообщения без перевода фокуса и наблюдение вывода конкретной вспомогательной технологии, определение программной роли/свойства статуса.",
        "rationale": "Определение фактического вывода AT без получения фокуса требует ручной проверки в заявленной конфигурации - универсального статического признака в axe-core нет."
      },
      "in_base_34": [
        29
      ]
    }
  ]
}
