{
  "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-объекты.",
        "pass_fail": "проходит, если эквивалент выполняет назначение и соблюдены специальные случаи критерия; нарушение, если значимая информация потеряна, имя неверно или декор озвучивается как содержимое.",
        "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": "текст и изображения текста, кроме логотипов, неактивного и иных исключений.",
        "preconditions": "вычисленные цвета текста/фона во всех состояниях, размер и насыщенность шрифта.",
        "steps": "измерить пары цветов с учетом фактического фона; порог 4.5:1 для обычного и 3:1 для крупного текста по определению WCAG.",
        "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 для горизонтального письма; масштаб 400% при исходной ширине 1280 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 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; для исключения spacing построить круг диаметром 24 CSS px с центром в ограничивающем прямоугольнике каждой малой цели и проверить, что он не пересекает другую цель или такой же круг другой малой цели; проверить исключения equivalent, 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": "пройти каждый этап входа и восстановления. Для пароля и одноразового кода отдельно проверить, требуется ли запоминание или переписывание, работают ли менеджер паролей, вставка либо иной механизм помощи. Для любого когнитивного функционального теста проверить альтернативный метод, помощь или допустимое исключение распознавания объектов/личного содержимого.",
        "pass_fail": "проходит при отсутствии когнитивного теста либо допустимом механизме/исключении; нарушение при обязательном запоминании, транскрипции или вычислении без помощи/альтернативы.",
        "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
      ]
    }
  ]
}
