Skip to content

a11y(settings): announce theme updates politely - #449

Open
emirykl wants to merge 1 commit into
Agentpay-Org:mainfrom
emirykl:grantfox/issue-411-announce-settings-updates-through-an-aria-live-r
Open

a11y(settings): announce theme updates politely#449
emirykl wants to merge 1 commit into
Agentpay-Org:mainfrom
emirykl:grantfox/issue-411-announce-settings-updates-through-an-aria-live-r

Conversation

@emirykl

@emirykl emirykl commented Jul 28, 2026

Copy link
Copy Markdown

Summary

  • add a visually hidden polite, atomic live region for theme-setting updates
  • debounce announcements by 300 ms so rapid changes announce only the latest selection
  • keep the live region empty on mount
  • preserve existing theme persistence and application behavior

Test evidence

  • npm test -- --no-watchman --runInBand src/components/__tests__/ThemeToggle.test.tsx src/app/settings/page.test.tsx — passed, 10/10 tests
  • focused coverage — passed with 100% statements, branches, functions, and lines for ThemeToggle.tsx
  • focused ESLint — passed
  • npm run build — passed
  • git diff --check — passed
  • full Jest baseline: 75 suites passed and 2 unrelated suites failed in existing API-key and theme SSR tests
  • repository lint/typecheck retain unrelated pre-existing errors in service edit, useApi, apiClient tests, and validateNumber tests

Fixes #411

Verification

  • PASS: focused settings tests — 10/10
  • PASS: focused ESLint
  • PASS: ThemeToggle coverage — 100% statements, branches, functions, and lines
  • PASS: npm run build
  • PASS: git diff --check
  • BASELINE FAILURE: full Jest — 75 suites passed, 2 unrelated suites failed (API keys and theme SSR tests)
  • BASELINE FAILURE: repository lint — 3 existing errors in service edit/useApi files
  • BASELINE FAILURE: typecheck — 5 existing errors in apiClient/validateNumber tests

Diagnostics

Recovered command failures: /bin/zsh -lc 'npm ci --ignore-scripts' (255), /bin/zsh -lc 'npm test -- --no-watchman --runInBand src/components/__tests__/ThemeToggle.test.tsx --coverage --collectCoverageFrom=src/components/ThemeToggle.tsx' (1), /bin/zsh -lc 'npm run typecheck' (2), /bin/zsh -lc 'npm run lint' (1), /bin/zsh -lc 'npm test -- --no-watchman --runInBand' (1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Announce settings updates through an aria-live region

1 participant