Skip to content

a11y: Add dark mode coverage verification for all UI components #233

@Xhristin3

Description

@Xhristin3

Problem Statement

The app supports dark mode via next-themes with CSS variable switching, but only one component has dark mode test coverage. No systematic verification that all 28+ Radix UI components render correctly in both dark and light themes.

Evidence

Only stream-status-badge.test.tsx exists. No visual regression testing. Theme toggle exists but no automated theme-switching tests.

Impact

Components may have broken contrast, invisible text, or missing borders in dark mode. These issues go undetected until user reports.

Proposed Solution

  1. Add visual regression tests (Chromatic or Percy) that capture both light and dark mode
  2. Or add component-level tests that render in both ThemeProvider modes and verify accessibility
  3. At minimum, add a test that renders every shadcn/ui component in both themes and checks for console errors

Acceptance Criteria

  • Each custom component tested in both light and dark mode
  • No contrast issues in dark mode
  • ThemeProvider wraps all visual tests

File Map

  • app/components/ui/*.test.tsx — dark mode variants
  • app/components/theme-provider.tsx — may need test wrapper export

Labels: accessibility, enhancement
Priority: Enhancement | Difficulty: Intermediate | Estimated Effort: 2d


Labels: accessibility
Priority: Enhancement | Difficulty: Intermediate | Estimated Effort: 2d
Backlog ID: REPO-050

Metadata

Metadata

Assignees

Labels

accessibilityAccessibility improvements

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions