Добавить доступный интерфейс этапа 3
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Stage 3 accessibility QA
|
||||
|
||||
Дата: 18 августа 2026 года. Slice: масштаб текста, high contrast, non-audio state
|
||||
и семантика Canvas-экранов.
|
||||
|
||||
## Реализованный контракт
|
||||
|
||||
- Settings содержит сохраняемые пресеты `Text size: Standard/Large`
|
||||
(`1.0×/1.25×`) и `High contrast: Off/On`;
|
||||
- настройки хранятся отдельно от control settings и progress, поэтому миграция не
|
||||
меняет существующие сохранения;
|
||||
- оба общих Canvas text helper применяют выбранный масштаб ко всему тексту;
|
||||
viewport и hit mapping остаются неизменными, а фиксированные HUD/card/button
|
||||
области обрезают переполнение внутри своих границ;
|
||||
- high contrast использует чёрный фон, непрозрачные кнопки, белые контуры и
|
||||
бело-жёлтый текст; активные механизмы не различаются только цветом;
|
||||
- `ON/OFF`, `UP/DOWN`, `OPEN/LOCKED` и постоянная строка
|
||||
`Signals · Doors · Volunteer` дают видимое представление критического состояния
|
||||
при выключенной вибрации;
|
||||
- content description меняется для level select, settings, playing, pause и
|
||||
complete; системный Back сохраняет прежний детерминированный контракт;
|
||||
- read-only automation surface: `textScaleForAutomation()`,
|
||||
`highContrastForAutomation()`, `screenDescriptionForAutomation()`,
|
||||
`criticalVisibleStatusForAutomation()` и `safeViewportForAutomation()`.
|
||||
|
||||
## TDD evidence
|
||||
|
||||
- RED: `AccessibilitySettings` отсутствовал, focused JVM-test завершался шестью
|
||||
`cannot find symbol`;
|
||||
- GREEN: `Standard/Large`, `Off/On` и безопасное восстановление persisted index;
|
||||
- RED → GREEN отдельными циклами: `highContrastEnabled`, `restore`,
|
||||
`canvasTextSize`, `AccessibilityStatus.describe` и
|
||||
`AccessibilityScreenDescription`;
|
||||
- RED device compile: отсутствовали persisted/public Settings surface,
|
||||
screen transition и safe-viewport hooks;
|
||||
- GREEN device compile: пять focused Android acceptance методов компилируются и
|
||||
проверяют recreation, реальные Settings taps, screen/Back semantics,
|
||||
неизменный safe viewport и textual state при `Vibration: Off`.
|
||||
|
||||
## Проверки этого isolated slice
|
||||
|
||||
- focused accessibility JVM tests — GREEN;
|
||||
- все JVM tests — обязательный gate перед коммитом;
|
||||
- `lintDebug`, `assembleDebug`, `compileDebugAndroidTestJavaWithJavac` — обязательный
|
||||
gate перед коммитом;
|
||||
- device execution намеренно оставлен финальной интеграционной ветке: этот stream
|
||||
не запускает и не меняет общий emulator.
|
||||
|
||||
## Интеграционные замечания
|
||||
|
||||
- `GameView` одновременно изменяется onboarding/result и localization slices;
|
||||
при merge нужно сохранить единые text helpers и вызывать refresh semantics после
|
||||
всех новых screen transitions;
|
||||
- localized строки должны заменить английский текст и в Canvas, и в content
|
||||
descriptions одним источником, не удаляя read-only acceptance hooks;
|
||||
- minSdk 23, control settings, progress format и Stage 2 physics/levels не менялись.
|
||||
Reference in New Issue
Block a user