cocottetech/@platform/codebase/@features/ai-copilot/docs/accessibility-settings.screen.md
natalie 1b719e1fd7 chore(bootstrap): initial V4 commit
Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac
working tree at ~/Code/@projects/@cocottetech/. node_modules and build
artifacts excluded via .gitignore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 08:11:41 -07:00

81 lines
5 KiB
Markdown

# accessibility-settings.screen
Accessibility configuration — VoiceOver depth, Dynamic Type, reduced motion, color/contrast preferences, audio descriptions. Implements [brief X](./X-accessibility.brief.md). Reached from settings-root.screen.md S6/S8 category (depending on brief X placement). Voice: plain.
## Layout (full-screen sheet)
```
┌─────────────────────────────────────────────────┐
│ ◄ Settings Done │ 56pt
├─────────────────────────────────────────────────┤
│ Cocotte inherits iOS settings by default. │ reassurance
│ Use this screen to override or specialize. │
│ │
│ ─── Display ─── │
│ ☑ Match iOS Dynamic Type │
│ Override font size: [ Default ▼ ] │
│ ☑ Match iOS Reduce Motion │
│ ☐ High contrast │
│ Color blindness: [ None ▼ ] │ protanopia / deuter / tritan
│ Stakes-color override: [ Default ▼ ] │ alt palettes for color-blind
│ │
│ ─── Voice & audio ─── │
│ ☑ VoiceOver-friendly action labels │
│ Speak action receipts: ○ Always ● High-stakes │
│ TTS voice: [ System default ▼ ] │
│ Voice prompts: ○ Off ● Hearth ○ Working ○ Plain │ register override
│ │
│ ─── Interaction ─── │
│ ☐ Disable pinch gestures │ alt-input replacements
│ ☑ Larger tap targets │
│ ☐ Single-tap approvals (no swipe) │
│ ☑ Reduce haptics │
│ │
│ ─── Content ─── │
│ ☑ Image descriptions in chat │ alt-text for AI-generated images
│ ☑ Plain language toggle (suppress metaphor) │ forces working register everywhere
│ │
└─────────────────────────────────────────────────┘
```
## Components
| Component | Notes |
|---|---|
| Display | Type / motion / contrast / color-blind palettes. Stakes-color override changes [F §F1](./00-system-visual-system.md) low/medium/high palette. |
| Voice & audio | VoiceOver labels, TTS preferences, register override (forces hearth/working/plain everywhere). |
| Interaction | Replacements for gesture-based affordances (pinch, swipe). Single-tap approvals replace swipe-to-approve. |
| Content | Image alt-text from `content-*` specialists; plain-language toggle suppresses culinary metaphor. |
## States
1. **Default (inherits iOS)** — all top-level toggles match iOS settings; explicit overrides clearly marked.
2. **Override active** — chip on overridden rows: "Override of iOS setting."
3. **Color-blind selected** — preview swatch of new stakes palette appears inline.
4. **Plain-language enforced** — banner: "All Cocotte copy is in plain register. Hearth + working registers are suppressed."
5. **Reduced haptics on** — confirmation chip "Cocotte uses one haptic per event, not two."
6. **VoiceOver** — section read in order; overrides explicitly announced.
## Interactions
- **Tap any toggle** → commits immediately + recorded as audit row (per brief I — accessibility changes are auditable).
- **Tap "Override font size"** → iOS-style size picker.
- **Tap palette preview** → expands swatches comparison.
## Edge cases
- **Color-blind palette conflicts with brand accent** (rose) — alt palette uses amber/blue for stakes, preserves brand accent elsewhere.
- **Single-tap approvals on a multi-surface card** (per H §H4) — replaces per-surface checkboxes with toggle list, single tap on Approve commits all selected.
- **VoiceOver with cook-mode requested** — cook-mode disables; VoiceOver gets primary audio.
- **Reduced motion + streaming reply** — replaces token-fade with full-message snap-in.
## Related
- [Brief X](./X-accessibility.brief.md) — parent (cross-cuts all briefs).
- [Brief F](./00-system-visual-system.md) — stakes color palette source.
- [Brief voice](./00-system-voice.md) — register suppression target.
- [settings-root.screen.md](./settings-root.screen.md) — entry point.
- [Brief I](./I-audit-trust-replay.brief.md) — every change audited.
## Out of scope
- iOS-side accessibility settings (CocotteAI defers to system where possible).
- Per-specialist accessibility overrides (single global config at P0).