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>
5 KiB
5 KiB
accessibility-settings.screen
Accessibility configuration — VoiceOver depth, Dynamic Type, reduced motion, color/contrast preferences, audio descriptions. Implements brief X. 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 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
- Default (inherits iOS) — all top-level toggles match iOS settings; explicit overrides clearly marked.
- Override active — chip on overridden rows: "Override of iOS setting."
- Color-blind selected — preview swatch of new stakes palette appears inline.
- Plain-language enforced — banner: "All Cocotte copy is in plain register. Hearth + working registers are suppressed."
- Reduced haptics on — confirmation chip "Cocotte uses one haptic per event, not two."
- 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 — parent (cross-cuts all briefs).
- Brief F — stakes color palette source.
- Brief voice — register suppression target.
- settings-root.screen.md — entry point.
- Brief I — 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).