This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# П55 · 2022-09 · Мобильный сценарий — три прохода саморевью
|
||||
|
||||
## Рамка sidecar
|
||||
|
||||
- Slug: `editorial-2022-09-practice-mobile-ux`, `editorial-2022-09-mechanism-mobile-ux`, `editorial-2022-09-field-mobile-ux`.
|
||||
- Голос: М5, системный frontend-практик 2022 года. Текст остаётся коротким и предметным: симптом, граница, проверка, действие, ограничение. Нет выдуманного опыта руководства продуктом или «проверенных» пользовательских эффектов.
|
||||
- Граница модели: profile `narrow/coarse/unavailable` задаётся вручную. Fixture не запускает DOM, CSS, `matchMedia`, browser, pointer events, сетевой запрос, метрику, usability-тест или реальный rollback. `platform: not-observed` и `usability: not-measured` являются частью возвращаемого результата.
|
||||
- Источники проверены до написания и отвечают 200: [Media Queries Level 4 CRD, 25.12.2021](https://www.w3.org/TR/2021/CRD-mediaqueries-4-20211225/), [Pointer Events Level 2 Recommendation, 04.04.2019](https://www.w3.org/TR/2019/REC-pointerevents2-20190404/), [WCAG 2.1 Recommendation, 05.06.2018](https://www.w3.org/TR/2018/REC-WCAG21-20180605/). Все URL неизменяемые и документы были доступны в сентябре 2022 года.
|
||||
|
||||
## Проход 1 — факты и техника
|
||||
|
||||
- Сверена историческая статусная рамка. Media Queries Level 4 на 25.12.2021 — Candidate Recommendation Draft, Pointer Events Level 2 и WCAG 2.1 — Recommendations; поздние WCAG 2.2 и текущие плавающие URL не используются.
|
||||
- Убрана ложная логика «`hover: none` означает touch-only» и «pointer event доказывает достижимость действия». В тексте остаётся ограниченное утверждение: media features описывают capability среды, а не намерение и удобство конкретного пользователя.
|
||||
- Fixture проверяет только локальные строки и массив route: валидный explicit path, порядок `summary > details > confirm`, блокировку `hover-only` для teaching profile, invalid input и неизмеряемость platform/usability. В ней нет claims о device, browser, trace, результатах людей или продуктовой метрике.
|
||||
- Пройдены после последней правки: `node --check web/scripts/upgrade-2022-09.mjs`; `node web/scripts/upgrade-2022-09.mjs --verify-fixture`; `npm run audit:draft -- scripts/upgrade-2022-09.mjs`; import-safe `--print-revisions` без `date` и `author`.
|
||||
|
||||
## Проход 2 — голос, полнота и объём
|
||||
|
||||
- Первые два абзаца всех трёх статей называют конкретный сценарий и цену: скрытое основное действие, незавершённая операция, ошибочное подтверждение и невозможность объяснить релиз. Нет общих фраз о «важности мобильности».
|
||||
- В каждой статье есть проблема, таблица, проверяемый JS-пример, figure с осмысленными alt/caption, нумерованный маршрут «симптом → причина → проверка → действие», rollback boundary, перечень того, что модель не покрывает, и следующий отдельный шаг для реальной реализации.
|
||||
- Основной текст (без источников): practice 7 562 знака, mechanism 8 362 знака, field 8 253 знака. Каждая статья находится в заданном диапазоне 5 000–15 000 знаков и не описывает учебный contract как реальный браузерный или пользовательский результат.
|
||||
|
||||
## Проход 3 — визуал и безопасность
|
||||
|
||||
- SVG разделены по вопросу: route (`summary → details → confirm`), граница четырёх слоёв и diagnosis/rollback. Они не изображают device screenshot, человека, продуктовый funnel или реальные тестовые данные.
|
||||
- В SVG нет `script`, `foreignObject`, external URL, `data:image` и event-handler attributes. У всех есть `<title>`, `<desc>`, role `img`, содержательная подпись в статье и контрастные блоки для чтения на узком экране.
|
||||
- Пройдены: `xmllint --noout` для трёх SVG; safety scan без совпадений; Sharp-рендер каждого SVG на 375 px и визуальный просмотр. Sidecar меняет ровно пять новых файлов; registry, README, `articles.json`, очередь, Git и прочие месяцы не менялись.
|
||||
|
||||
## Независимый редакторский приём
|
||||
|
||||
### Проход 1 — факты и контракт
|
||||
|
||||
Проверены все три датированных W3C URL: Media Queries Level 4 Candidate
|
||||
Recommendation Draft 25 декабря 2021 года, Pointer Events Level 2
|
||||
Recommendation 4 апреля 2019 года и WCAG 2.1 Recommendation 5 июня 2018 года
|
||||
ответили `200`. Источники разделены по роли: Media Queries описывает
|
||||
capabilities среды, Pointer Events — browser event model, WCAG — критерии;
|
||||
ни один из них не доказывает usability отдельного человека.
|
||||
|
||||
`planTeachingMobilePath` просмотрен как локальный contract: profile вводится
|
||||
вручную, route всегда имеет `summary → details → confirm`, narrow/coarse/no
|
||||
hover block относится только к `hover-only`, а wide profile явно оставляет
|
||||
`platform: not-observed` и `usability: not-measured`. Fixture прошла **9/9
|
||||
assertions** без DOM, `matchMedia` или pointer event.
|
||||
|
||||
### Проход 2 — речь и полнота
|
||||
|
||||
Повторно проверены первые абзацы, tables, code, ordered routes, rollback и
|
||||
границы статей. Они не делают из hover-сигнала определение устройства и не
|
||||
называют route результатом usability-test. Draft audit подтвердил 7 562 /
|
||||
8 362 / 8 253 знака; import-safe проверка вернула три revision-объекта без
|
||||
`date` и `author`.
|
||||
|
||||
### Проход 3 — визуал и выпуск
|
||||
|
||||
`xmllint` прошёл; safety scan не нашёл script, `foreignObject`, внешних URL,
|
||||
`data:image` или event-handler attributes. Sharp-рендеры на 375 px
|
||||
просмотрены: route, четыре слоя контрактной границы и diagnosis/rollback
|
||||
самостоятельны и не изображают device screenshot или пользователя. После
|
||||
подключения сентября registry содержит 160 ревизий. Строгий slug-audit прошёл
|
||||
с одной figure, 1 / 2 / 2 tables и одним code example на статью; production
|
||||
build успешно сгенерировал 374 страницы. Sidecar октября и позже не
|
||||
затрагиваются.
|
||||
|
||||
## Финальный вердикт
|
||||
|
||||
П55 принята и интегрирована после трёх независимых проходов. В коммит войдут
|
||||
только пять файлов сентября и два точечных файла интеграции.
|
||||
Reference in New Issue
Block a user