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>
81 lines
5 KiB
Markdown
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).
|