69 lines
8.0 KiB
Markdown
69 lines
8.0 KiB
Markdown
# П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 принята и интегрирована после трёх независимых проходов. В коммит войдут
|
||
только пять файлов сентября и два точечных файла интеграции.
|