8.6 KiB
Этап 12: итоговая приёмка UX/UI
План: ux-ui-plan.md. Фактические результаты: ux-ui-progress.md. Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
| Блок | Проверка и результат | Критерий остановки |
|---|---|---|
| 12.1 | Общая оболочка, автоматический аудит доступности, клавиатура/фокус, 320px/ПК и обе темы | Исправлены доказанные нарушения, непроверенные состояния перечислены |
| 12.2 | Достоверность источников дашборда: неполный BGP, nullable counters/traffic, неверные DTO | Unknown/partial не становятся zero/down/empty; last good сохраняется |
| 12.3 | Производительность больших списков и таблиц на фиксированных локальных данных | Записаны размер fixture, измерения и практические ограничения |
| 12.4 | Сквозная регрессия интерфейса, права, context; production/contracts/backend builds и ReUI checklist | Итоговая матрица с результатами и точными исключениями |
| 12.5 | Внешняя приёмка PG/RouterOS/Telegram/интеграций | Протокол тестового окружения; локальные моки не заменяют эту проверку |
Сначала воспроизвести предполагаемые проблемы общей оболочки: health popover принимает только status:ok, тогда как shared health допускает подтверждённый legacy ok:true; проверить согласованность. Проверить реальные accessible names header triggers и skip link focus. Использовать установленный axe-core для автоматической части; отсутствие violations не означает полного соответствия или замену screen reader/manual проверки.
Клавиатурный сценарий должен предоставлять эквивалент действий мышью (W3C SC 2.1.1); программные имена/роли/состояния проверяются отдельно (W3C SC 4.1.2). Проверка reflow включает 320 CSS px; широкие таблицы проверяются как отдельные области прокрутки, а не как разрешение переполнения страницы (W3C SC 1.4.10).
Внешние ограничения 11Б сохраняются: migrations0008/0009, PG isolation/CAS/rollback, реальный restore/UDP workers, RouterOS, Telegram, MaxMind/RIPE, Portal/Evolution, CI/Gitea. Processing не разрешается повторять без доказуемой остановки всех отправителей; timeout или checkbox не являются таким доказательством. BGP-prefix evaluator отсутствует и честно обозначен UI; отдельного live GRE расписания нет. Производственный выпуск не разрешён одним успешным browser/DI прогоном.
12.1 — оболочка: контраст, клавиатура и health (2026-10-03)
Подтверждённые нарушения автоматического axe-аудита исправлены на уровнях потребителей: доступный фокус main для skip link; высота toggle правила не менее24px; контраст API badge, подписей групп/Telegram и статуса backend. В открытом системном мониторе значения используют text-foreground, цвет остаётся у значка/полосы; длинная подпись переносится. Установленные ReUI/Base UI primitives и глобальная тема не изменены. Health использует shared getBackendHealth, подтверждённый legacy ok:true согласован с выбором источника; неподтверждённый ответ не становится успехом. axe-core4.11.3 закреплён прямой dev dependency.
Проверки:20 browser сценариев —12 audit комбинаций alerts/settings/releases×320/1440×light/dark,4 открытых monitor/menu, клавиатура skip/apps/monitor с возвратом фокуса, legacy health,2 неподтверждённых health; violations нет. После переноса подписи дополнительно4 открытых слоя.14 профильных layout/settings/release проверок:13 прошли сразу, release fixture встретила transient Windows file lock; исходные bytes восстановлены, ограниченный retry только при записи fixture, повтор всех3 releases прошёл. Typecheck и ESLint изменённых компонентов/тестов прошли. ReUI checklist: сохранены композиции, API props проверены по установленным исходникам; имена/роли, реальные состояния, scroll/security проверены в границах сценариев. Снимки shell-monitor-light/dark-320/1440 добавлены.
Границы: audit охватывает стабильные описанные состояния, не все модалки/формы и не ручную работу screen reader; нет заявления полного соответствия WCAG. Production build и общая регрессия предусмотрены в12.4. Далее12.2.1: строгий BGP catalog на дашборде, partial и nullable counters без подмены нулями; затем остальные источники.
| Снимок | ПК | Телефон |
|---|---|---|
| Светлый монитор | 1440 | 320 |
| Тёмный монитор | 1440 | 320 |
12.2.1 — строгая сводка BGP дашборда (2026-10-03)
Дашборд перешёл с legacy sessions на существующий /api/bgp/catalog и bgpCatalogSchema. Malformed DTO, дубликаты, conflict sessions/failures и переполнение суммы отклоняются до публикации. Failure устройства не становится отсутствием сессий: источник сообщает ошибку, последний успешный KPI/время сохранены. Nullable prefixesRx установленной сессии даёт неизвестные префиксы, неизвестный/custom state — неизвестные префиксы и число установленных сессий; успешный пустой каталог подтверждает0. Exact Established не путается с NotEstablished. ACL проверяется до/после запроса, прежняя revision защита polling сохранена.
Проверки:16 browser dashboard-data/permissions прошли (включая5 invalid/partial кейсов с unknown→success→failure/cache→recovery,2 nullable/state кейса и поздние ответы);3 unit (агрегация/строгий DTO/permission parity), typecheck и ESLint прошли. Новые fixtures содержат полный реальный DTO. ReUI checklist применён: KpiStatGrid сохранён, изменены data/copy, theme/primitives без изменений.
Далее12.2.2: проверить traffic DTO/длины серий без искусственных60 точек и нулей; затем servers/probes/overlay/Internet path. Реальная телеметрия RouterOS остаётся внешней проверкой.