revise April 2022 accessible interface articles
Build and deploy / deploy (push) Successful in 14s

This commit is contained in:
2026-07-31 13:43:17 +03:00
parent f6afaff958
commit fb4d8598ab
7 changed files with 576 additions and 1 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# Производство редакционных партий
На 31 июля 2026 года строгий аудит проходит 151 из 358 созданных материалов. Остальные 207 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
На 31 июля 2026 года строгий аудит проходит 154 из 358 созданных материалов. Остальные 204 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
## Одна партия
+70
View File
@@ -0,0 +1,70 @@
# П50 · 2022-04 · Доступный интерфейс — три прохода саморевью
## Рамка пакета
- Slug: `editorial-2022-04-practice-accessible-interface`, `editorial-2022-04-mechanism-accessible-interface`, `editorial-2022-04-field-accessible-interface`.
- Голос: М5, системный практик 2022 года. Мост от рендеринга и frontend-сценариев к надёжности интерактивного изменения: имя, роль, состояние, маршрут фокуса и обратимое сохранение.
- Граница компетентности: автор не заявляет a11y-платформу, production-дефект, user study, ручной screen-reader результат или полную доступность продукта.
- Fixture: только локальные объекты/массивы. Все `focus`/`focusRoute` и `declaredAnnouncement` — проектные модельные значения. DOM, браузер, keyboard events, HTTP, accessibility tree и assistive technology не создаются и не наблюдаются.
## Проход 1 — факты и техника
- Историческая рамка сверена с неизменяемой W3C Recommendation [WCAG 2.1, 05.06.2018](https://www.w3.org/TR/2018/REC-WCAG21-20180605/), датированной [WAI-ARIA Authoring Practices 1.2, 29.11.2021](https://www.w3.org/TR/2021/NOTE-wai-aria-practices-1.2-20211129/) и неизменяемым [WAI-ARIA 1.2 Candidate Recommendation Draft, 08.12.2021](https://www.w3.org/TR/2021/CRD-wai-aria-1.2-20211208/). Не используется будущая Recommendation 2023 года.
- Убраны непроверяемые формулировки о том, что screen reader «объявил» текст: статьи говорят о declared status и требуют отдельной платформенной проверки.
- Fixture отделяет draft `channel` от committed `savedChannel`; invalid branch не коммитит состояние, save оставляет prior value для одного undo, повторный undo останавливается.
- Проверки после финальной правки: `node --check web/scripts/upgrade-2022-04.mjs` — PASS; `node web/scripts/upgrade-2022-04.mjs --verify-fixture` — PASS 16/16; `npm run audit:draft -- scripts/upgrade-2022-04.mjs` — PASS.
## Проход 2 — редактура и голос
- В первых двух абзацах каждой статьи есть конкретный сбой и цена: потерянный фокус, разрыв visual/semantic state, неверный commit или непредсказуемый откат.
- Основная речь следует маршруту «симптом → причина → проверка → действие». Термины `WCAG`, `role`, `radiogroup`, declared status и rollback привязаны к контракту одной панели, а не используются как общий лозунг.
- В каждой статье есть таблица, рисунок с содержательным alt/caption, исполнимый детерминированный пример, нумерованный маршрут, ограничения и следующий шаг.
- Размер основного текста проверяется самим скриптом: 8 002 / 8 743 / 8 980 знаков без списка источников; все значения в диапазоне 5 000–15 000.
## Независимый редакторский приём
### Проход 1 — факты и контракт
Проверены даты, статусы и доступность трёх W3C URL: WCAG 2.1 —
Recommendation 5 июня 2018 года; APG 1.2 — Group Note 29 ноября 2021 года;
WAI-ARIA 1.2 — Candidate Recommendation Draft 8 декабря 2021 года. Все
датированные URL ответили `200`. Источники используются только для критериев,
практик и исторической границы; они не выдаются за результат проверки конкретной
панели.
Независимый просмотр fixture выявил разрыв между текстом и кодом: у статичных
описаний `email`/`sms` признак `checked` не менялся после выбора SMS. Он удалён
из статических descriptor-объектов. Новая `declaredOptionState()` выводит
учебный selected state только из `channel`; добавлены assertions initial,
выбора SMS и undo. Отдельно сохранён текст status до undo, поэтому assertion о
save больше не проверяет сообщение rollback. Модель по-прежнему не создаёт DOM
или `aria-checked` и не наблюдает accessibility tree.
### Проход 2 — речь и доказательства
Повторно прочитаны problem/cost в первых двух абзацах, таблицы, код, маршруты
и ограничения всех трёх статей. Они не обещают screen-reader speech,
универсальную доступность или проведённое исследование. Целевой audit подтвердил
8 002 / 8 743 / 8 980 знаков, по одной figure и таблице в каждой статье и
1 / 1 / 1 code example. После правки fixture завершилась с **16/16
assertions**, а import-safe проверка вернула три объекта без `date` и `author`.
### Проход 3 — визуал и выпуск
`xmllint` прошёл для всех SVG; safety scan не нашёл script, `foreignObject`,
внешних URL или `data:image`. Sharp-рендеры на 375 px просмотрены: схема
focus route, semantic contract и diagnosis/undo отвечают на разные вопросы и
сохраняют читаемую границу «модель, не DOM». После подключения апреля registry
содержит 145 ревизий. Строгий аудит slug прошёл; production build успешно
сгенерировал 374 страницы. Материалы мая–июля этой партией не затрагиваются.
## Финальный вердикт
П50 принята и интегрирована после трёх независимых проходов. В коммит войдут
только пять файлов апреля и два точечных файла интеграции.
## Проход 3 — визуал и выпуск
- SVG различаются по задаче: focus sequence, semantic/state contract и diagnosis/rollback. В них нет `script`, `foreignObject`, внешних URL или `data:image`.
- Выполнены XML-проверка, safety scan без совпадений и рендер всех трёх SVG на ширине 375 px через Sharp; подписи и ключевые ветки остаются различимыми.
- Sidecar не меняет registry, README, `articles.json`, очередь, стандарт качества, документацию или Git-состояние. Интеграция и публикация сознательно не выполнялись.