diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index d9d4a4a0..464f944f 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -1,6 +1,6 @@ # UX/UI: протокол внешней приёмки 12.5 -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md). @@ -696,7 +696,7 @@ flowchart LR ## 12.5.77 — основной блок IPsec (2026-10-09) -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md). @@ -2492,3 +2492,11 @@ TypeScript/scoped ESLint passed;25 unique E2E34060ms,0unexpected/skips (target w Протоколы: [baseline](ux-ui/acceptance/accessibility205-baseline-2026-10-13.json), [fixture E2E25](ux-ui/acceptance/accessibility205-e2e-2026-10-13.json), [live audit12](ux-ui/acceptance/accessibility205-live-2026-10-13.json), [deployment](ux-ui/acceptance/accessibility205-deployment-2026-10-13.json). Следующий206: actual live keyboard/focus для общихmenus итиповых Dialog/Sheet, ПК/телефон/роли, безapply/native mutation.200 collector loss реагирует только наobserved errors/end (неfencing);201 whole Telegram accepted, initial197 cause unproven.12.5 остаётся открытой из-за остальныхграниц внешней матрицы. + +## 12.5.206 — живая клавиатура и возврат фокуса (2026-10-13) + +Actual Portal reader/admin JWT, deployed frontend ux-accessibility205/backend ux-lock200.6 сценариев ×1440/320×reader/admin =24: Tab skip-link→main-content; Enter/ArrowDown/Escape apps menu; Enter/Escape system monitor; keyboard server row menu иEscape возврат; reader Add disabled/admin server create Dialog; GRE history Sheet выбранного enabled CHR. Вdialog/sheet Tab проходит числоfocusable controls+3 иShift+Tab3, фокус остаётся внутри, Escape возвращает original trigger. Форму не заполняли/не применяли, config restore не нажимали, mutations0/page errors0/nooverflow; собственный Portal reader удалён204. + +Первоначальная мгновенная проверка DOM containment после Tab иногда видела асинхронный focus transition Base UI; финальный тест ждёт стабильногоcontainment черезpoll. Product focus code не менялся. Это проверка listed states, не full keyboard/screen-reader certification всехформ. Source/runtime unchanged. Протокол: [actual keyboard24](ux-ui/acceptance/keyboard206-live-2026-10-13.json). + +В source review обнаружено: GRE caller не передаёт существующий restoreDisabled вобщий ConfigHistorySheet, defaultfalse. Backend write guard не отменяет необходимость корректного UI. Следующий207 — аудит всехcaller иread-only/disabled/device state запреты кнопки отката, профильныеfixtures иlive UI безapply.12.5 открыта. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 50e4886c..e4f3d717 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,12 +1,12 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-13. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. ## Актуальная точка продолжения — 2026-10-13 -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. Этапы0–11 завершены в локальных границах журнала. История выполненных внешних блоков и доказательства сохранены в [журнале](ux-ui-stage-12.md) и [протоколе](ux-ui-external-acceptance.md). Реальная Telegram доставка, Portal SSO, multi-instance и оставшиеся профильные сетевые ограничения открыты. @@ -371,6 +371,6 @@ flowchart LR ## 12.5.77 — основной блок IPsec (2026-10-09) -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md). diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index 4ed5c26c..1be8a601 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -38,6 +38,14 @@ | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–196 и ограничения ниже. Runtime backend/frontend ux-peak196. | +## 12.5.206 — живая клавиатура и возврат фокуса (2026-10-13) + +Actual Portal reader/admin JWT, deployed frontend ux-accessibility205/backend ux-lock200.6 сценариев ×1440/320×reader/admin =24: Tab skip-link→main-content; Enter/ArrowDown/Escape apps menu; Enter/Escape system monitor; keyboard server row menu иEscape возврат; reader Add disabled/admin server create Dialog; GRE history Sheet выбранного enabled CHR. Вdialog/sheet Tab проходит числоfocusable controls+3 иShift+Tab3, фокус остаётся внутри, Escape возвращает original trigger. Форму не заполняли/не применяли, config restore не нажимали, mutations0/page errors0/nooverflow; собственный Portal reader удалён204. + +Первоначальная мгновенная проверка DOM containment после Tab иногда видела асинхронный focus transition Base UI; финальный тест ждёт стабильногоcontainment черезpoll. Product focus code не менялся. Это проверка listed states, не full keyboard/screen-reader certification всехформ. Source/runtime unchanged. Протокол: [actual keyboard24](ux-ui/acceptance/keyboard206-live-2026-10-13.json). + +В source review обнаружено: GRE caller не передаёт существующий restoreDisabled вобщий ConfigHistorySheet, defaultfalse. Backend write guard не отменяет необходимость корректного UI. Следующий207 — аудит всехcaller иread-only/disabled/device state запреты кнопки отката, профильныеfixtures иlive UI безapply.12.5 открыта. + ## 12.5.205 — контраст живых данных и предупреждения целей (2026-10-13) Actual admin Portal JWT, без API mocks: traffic/alerts/backups ×light/dark×1440/320, axe-core4.11.3 tags WCAG2A/AA,2.1A/AA,2.2AA вmain-content иосновной навигации. Baseline выявил4 failing combinations: light traffic RX/TX2.07–3.76:1 иlight alerts warning4.32:1 при требовании4.5:1. Dark иbackup passed. Baseline сохранён, не переписан successful result. diff --git a/docs/ux-ui-remaining-acceptance.md b/docs/ux-ui-remaining-acceptance.md index 3a4f5385..475f28b2 100644 --- a/docs/ux-ui-remaining-acceptance.md +++ b/docs/ux-ui-remaining-acceptance.md @@ -1,8 +1,8 @@ # Оставшаяся внешняя приёмка — 2026-10-13 -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. -Это актуальная матрица после 12.5.205. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. +Это актуальная матрица после 12.5.206. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-lock200`, frontend `ux-accessibility205`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись. @@ -26,7 +26,7 @@ ## Следующая последовательность — 2026-10-13 -1. **206 — live keyboard/focus:** общиеmenus итиповые Dialog/Sheet,ПК/телефон/роли, безapply/native mutation.205 tagged audit12 принят, не full WCAG certification. +1. **207 — history restore rights:** всеConfigHistorySheet caller, запретreader/disabled device, fixture+live UI безapply. 2. **Профильный контроль:** для новых изменений выполнять затронутые SQL/API/UI проверки. Общая регрессия192 выполнена; не повторять её без изменений общей основы или нового основания. 3. **Внешние зависимости:** Portal issuer/login/revoke, Telegram bot/chat/разрешённое сообщение, клиентские ОС, независимые WAN/public IPv6 и scale/multi-instance — отдельные группы по таблице выше. Ограничения текущего стенда не превращать в обещание приёмки всех конфигураций. @@ -1408,3 +1408,11 @@ TypeScript/scoped ESLint passed;25 unique E2E34060ms,0unexpected/skips (target w Протоколы: [baseline](ux-ui/acceptance/accessibility205-baseline-2026-10-13.json), [fixture E2E25](ux-ui/acceptance/accessibility205-e2e-2026-10-13.json), [live audit12](ux-ui/acceptance/accessibility205-live-2026-10-13.json), [deployment](ux-ui/acceptance/accessibility205-deployment-2026-10-13.json). Следующий206: actual live keyboard/focus для общихmenus итиповых Dialog/Sheet, ПК/телефон/роли, безapply/native mutation.200 collector loss реагирует только наobserved errors/end (неfencing);201 whole Telegram accepted, initial197 cause unproven.12.5 остаётся открытой из-за остальныхграниц внешней матрицы. + +## 12.5.206 — живая клавиатура и возврат фокуса (2026-10-13) + +Actual Portal reader/admin JWT, deployed frontend ux-accessibility205/backend ux-lock200.6 сценариев ×1440/320×reader/admin =24: Tab skip-link→main-content; Enter/ArrowDown/Escape apps menu; Enter/Escape system monitor; keyboard server row menu иEscape возврат; reader Add disabled/admin server create Dialog; GRE history Sheet выбранного enabled CHR. Вdialog/sheet Tab проходит числоfocusable controls+3 иShift+Tab3, фокус остаётся внутри, Escape возвращает original trigger. Форму не заполняли/не применяли, config restore не нажимали, mutations0/page errors0/nooverflow; собственный Portal reader удалён204. + +Первоначальная мгновенная проверка DOM containment после Tab иногда видела асинхронный focus transition Base UI; финальный тест ждёт стабильногоcontainment черезpoll. Product focus code не менялся. Это проверка listed states, не full keyboard/screen-reader certification всехформ. Source/runtime unchanged. Протокол: [actual keyboard24](ux-ui/acceptance/keyboard206-live-2026-10-13.json). + +В source review обнаружено: GRE caller не передаёт существующий restoreDisabled вобщий ConfigHistorySheet, defaultfalse. Backend write guard не отменяет необходимость корректного UI. Следующий207 — аудит всехcaller иread-only/disabled/device state запреты кнопки отката, профильныеfixtures иlive UI безapply.12.5 открыта. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index 149199b3..761ad1a6 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -3797,3 +3797,11 @@ TypeScript/scoped ESLint passed;25 unique E2E34060ms,0unexpected/skips (target w Протоколы: [baseline](ux-ui/acceptance/accessibility205-baseline-2026-10-13.json), [fixture E2E25](ux-ui/acceptance/accessibility205-e2e-2026-10-13.json), [live audit12](ux-ui/acceptance/accessibility205-live-2026-10-13.json), [deployment](ux-ui/acceptance/accessibility205-deployment-2026-10-13.json). Следующий206: actual live keyboard/focus для общихmenus итиповых Dialog/Sheet, ПК/телефон/роли, безapply/native mutation.200 collector loss реагирует только наobserved errors/end (неfencing);201 whole Telegram accepted, initial197 cause unproven.12.5 остаётся открытой из-за остальныхграниц внешней матрицы. + +## 12.5.206 — живая клавиатура и возврат фокуса (2026-10-13) + +Actual Portal reader/admin JWT, deployed frontend ux-accessibility205/backend ux-lock200.6 сценариев ×1440/320×reader/admin =24: Tab skip-link→main-content; Enter/ArrowDown/Escape apps menu; Enter/Escape system monitor; keyboard server row menu иEscape возврат; reader Add disabled/admin server create Dialog; GRE history Sheet выбранного enabled CHR. Вdialog/sheet Tab проходит числоfocusable controls+3 иShift+Tab3, фокус остаётся внутри, Escape возвращает original trigger. Форму не заполняли/не применяли, config restore не нажимали, mutations0/page errors0/nooverflow; собственный Portal reader удалён204. + +Первоначальная мгновенная проверка DOM containment после Tab иногда видела асинхронный focus transition Base UI; финальный тест ждёт стабильногоcontainment черезpoll. Product focus code не менялся. Это проверка listed states, не full keyboard/screen-reader certification всехформ. Source/runtime unchanged. Протокол: [actual keyboard24](ux-ui/acceptance/keyboard206-live-2026-10-13.json). + +В source review обнаружено: GRE caller не передаёт существующий restoreDisabled вобщий ConfigHistorySheet, defaultfalse. Backend write guard не отменяет необходимость корректного UI. Следующий207 — аудит всехcaller иread-only/disabled/device state запреты кнопки отката, профильныеfixtures иlive UI безapply.12.5 открыта. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index 7888acd7..0de93ca1 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -1,6 +1,6 @@ # Тестовый сервер UX/UI — 2026-10-10 -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. | Параметр | Проверенное состояние | | --- | --- | @@ -708,7 +708,7 @@ flowchart LR ## 12.5.77 — основной блок IPsec (2026-10-09) -Актуальное продолжение 2026-10-13:205 исправил light contrast RX/TX и warning целей через установленный ReUI Alert; TypeScript/ESLint/25 E2E и12 actual WCAG-tagged audits passed. Frontend ux-accessibility205/backend ux-lock200.200–204 приняты в записанных границах, Telegram201 подтверждён пользователем. Следующий206 — live keyboard/focus Dialog/Sheet/menus без применения операций.12.5 открыта. +Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта. Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md). @@ -2223,3 +2223,11 @@ TypeScript/scoped ESLint passed;25 unique E2E34060ms,0unexpected/skips (target w Протоколы: [baseline](ux-ui/acceptance/accessibility205-baseline-2026-10-13.json), [fixture E2E25](ux-ui/acceptance/accessibility205-e2e-2026-10-13.json), [live audit12](ux-ui/acceptance/accessibility205-live-2026-10-13.json), [deployment](ux-ui/acceptance/accessibility205-deployment-2026-10-13.json). Следующий206: actual live keyboard/focus для общихmenus итиповых Dialog/Sheet, ПК/телефон/роли, безapply/native mutation.200 collector loss реагирует только наobserved errors/end (неfencing);201 whole Telegram accepted, initial197 cause unproven.12.5 остаётся открытой из-за остальныхграниц внешней матрицы. + +## 12.5.206 — живая клавиатура и возврат фокуса (2026-10-13) + +Actual Portal reader/admin JWT, deployed frontend ux-accessibility205/backend ux-lock200.6 сценариев ×1440/320×reader/admin =24: Tab skip-link→main-content; Enter/ArrowDown/Escape apps menu; Enter/Escape system monitor; keyboard server row menu иEscape возврат; reader Add disabled/admin server create Dialog; GRE history Sheet выбранного enabled CHR. Вdialog/sheet Tab проходит числоfocusable controls+3 иShift+Tab3, фокус остаётся внутри, Escape возвращает original trigger. Форму не заполняли/не применяли, config restore не нажимали, mutations0/page errors0/nooverflow; собственный Portal reader удалён204. + +Первоначальная мгновенная проверка DOM containment после Tab иногда видела асинхронный focus transition Base UI; финальный тест ждёт стабильногоcontainment черезpoll. Product focus code не менялся. Это проверка listed states, не full keyboard/screen-reader certification всехформ. Source/runtime unchanged. Протокол: [actual keyboard24](ux-ui/acceptance/keyboard206-live-2026-10-13.json). + +В source review обнаружено: GRE caller не передаёт существующий restoreDisabled вобщий ConfigHistorySheet, defaultfalse. Backend write guard не отменяет необходимость корректного UI. Следующий207 — аудит всехcaller иread-only/disabled/device state запреты кнопки отката, профильныеfixtures иlive UI безapply.12.5 открыта. diff --git a/docs/ux-ui/acceptance/keyboard206-live-2026-10-13.json b/docs/ux-ui/acceptance/keyboard206-live-2026-10-13.json new file mode 100644 index 00000000..ba96214d --- /dev/null +++ b/docs/ux-ui/acceptance/keyboard206-live-2026-10-13.json @@ -0,0 +1,184 @@ +{ + "date": "2026-10-13", + "block": "12.5.206", + "runtime": { + "backend": "ux-lock200", + "frontend": "ux-accessibility205", + "portal": "1.3.1" + }, + "cases": [ + { + "width": 1440, + "role": "reader", + "name": "skip link", + "focus": "main-content" + }, + { + "width": 1440, + "role": "reader", + "name": "apps menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 1440, + "role": "reader", + "name": "monitor popover", + "escapeRestoresTrigger": true + }, + { + "width": 1440, + "role": "reader", + "name": "server row menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 1440, + "role": "reader", + "name": "reader create guard", + "disabled": true + }, + { + "width": 1440, + "role": "reader", + "name": "GRE history sheet", + "trappedTabSteps": 7, + "escapeRestoresTrigger": true, + "restored": false + }, + { + "width": 1440, + "role": "admin", + "name": "skip link", + "focus": "main-content" + }, + { + "width": 1440, + "role": "admin", + "name": "apps menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 1440, + "role": "admin", + "name": "monitor popover", + "escapeRestoresTrigger": true + }, + { + "width": 1440, + "role": "admin", + "name": "server row menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 1440, + "role": "admin", + "name": "server create dialog", + "trappedTabSteps": 35, + "escapeRestoresTrigger": true, + "applied": false + }, + { + "width": 1440, + "role": "admin", + "name": "GRE history sheet", + "trappedTabSteps": 7, + "escapeRestoresTrigger": true, + "restored": false + }, + { + "width": 320, + "role": "reader", + "name": "skip link", + "focus": "main-content" + }, + { + "width": 320, + "role": "reader", + "name": "apps menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 320, + "role": "reader", + "name": "monitor popover", + "escapeRestoresTrigger": true + }, + { + "width": 320, + "role": "reader", + "name": "server row menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 320, + "role": "reader", + "name": "reader create guard", + "disabled": true + }, + { + "width": 320, + "role": "reader", + "name": "GRE history sheet", + "trappedTabSteps": 7, + "escapeRestoresTrigger": true, + "restored": false + }, + { + "width": 320, + "role": "admin", + "name": "skip link", + "focus": "main-content" + }, + { + "width": 320, + "role": "admin", + "name": "apps menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 320, + "role": "admin", + "name": "monitor popover", + "escapeRestoresTrigger": true + }, + { + "width": 320, + "role": "admin", + "name": "server row menu", + "keyboardOpen": true, + "escapeRestoresTrigger": true + }, + { + "width": 320, + "role": "admin", + "name": "server create dialog", + "trappedTabSteps": 35, + "escapeRestoresTrigger": true, + "applied": false + }, + { + "width": 320, + "role": "admin", + "name": "GRE history sheet", + "trappedTabSteps": 7, + "escapeRestoresTrigger": true, + "restored": false + } + ], + "actualPortalJWT": true, + "apiMocks": false, + "mutationRequests": 0, + "pageErrors": 0, + "ownPortalReaderRemoved": true, + "passed": true, + "bounds": [ + "Only listed overlays/default state; no RouterOS mutation or config restore, no manual screen-reader certification" + ] +}