39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
---
|
|
epic: 14
|
|
story: 14.1
|
|
title: "Screen Reader Support"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 14 — Accessibility & Internationalization
|
|
**Goal:** Make CalcPad usable by everyone regardless of ability, language, or locale.
|
|
|
|
### Story 14.1: Screen Reader Support
|
|
|
|
As a visually impaired user,
|
|
I want CalcPad to work with screen readers on every platform,
|
|
So that I can perform calculations with the same efficiency as sighted users.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the macOS native application
|
|
**When** VoiceOver is enabled and the user navigates the sheet
|
|
**Then** every input line has an `accessibilityLabel` that reads the expression text
|
|
**And** every result has an `accessibilityLabel` that reads the computed value with its unit
|
|
**And** error states are announced (e.g., "Line 5: error, division by zero")
|
|
|
|
**Given** the Windows application built with iced
|
|
**When** a screen reader using UI Automation is active
|
|
**Then** all input fields, results, buttons, and menus expose proper UI Automation properties (Name, Role, Value)
|
|
**And** the user can navigate lines, hear results, and interact with menus entirely through the screen reader
|
|
|
|
**Given** the web application
|
|
**When** a screen reader (NVDA, JAWS, or VoiceOver for web) is active
|
|
**Then** all interactive elements have appropriate ARIA roles and labels
|
|
**And** the result column uses `aria-live="polite"` so updated results are announced without interrupting the user
|
|
**And** navigation landmarks are defined for the editor area, sidebar, and toolbar
|
|
|
|
**Given** any platform
|
|
**When** the user adds, removes, or reorders lines
|
|
**Then** the screen reader announces the change (e.g., "Line inserted after line 4" or "Line 7 deleted")
|