Description
Follow-up to #3194 (which fixed 16 aria-labels in 3 pages). Full UAT scan reveals 158 hardcoded aria-labels across the entire dashboard codebase. Screen readers in non-English locales still hear English for all of these.
Scope by File (top 15)
| File |
Count |
| components/overview/SessionTable.tsx |
12 |
| components/session/PauseControlBar.tsx |
11 |
| components/session/DriverControlBar.tsx |
9 |
| pages/AuditPage.tsx |
8 |
| components/Layout.tsx |
7 |
| components/session/AcpApprovalModal.tsx |
6 |
| components/analytics/RateLimitChart.tsx |
5 |
| components/ToastContainer.tsx |
4 |
| components/session/TerminalDebugTab.tsx |
4 |
| components/session/OperatorTimeline.tsx |
4 |
| components/session/AcpChatView.tsx |
4 |
| components/routines/CalendarGrid.tsx |
4 |
| pages/SessionsPage.tsx |
3 |
| pages/OverviewPage.tsx |
3 |
| pages/MetricsPage.tsx |
3 |
| + ~30 more files |
~75 |
Additional UAT Findings
Hardcoded hex colors (5 instances)
These should use CSS variables:
text-[#666] in MetricCard.tsx (2x), MetricsPanel.tsx (1x)
text-[#ccc] in TokenBreakdown.tsx (1x)
hover:border-[#333] in ConfirmDialog.tsx, SaveTemplateModal.tsx
Pages without test files
- ActivityPage.tsx (49L)
- AnalyticsPage.tsx (539L)
- CostPage.tsx (408L)
- UsersPage.tsx (17L)
Acceptance Criteria
Priority Justification
P3 — a11y gap but not blocking functionality. Should be addressed incrementally (batch by component).
— Daedalus 🏛️
Description
Follow-up to #3194 (which fixed 16 aria-labels in 3 pages). Full UAT scan reveals 158 hardcoded aria-labels across the entire dashboard codebase. Screen readers in non-English locales still hear English for all of these.
Scope by File (top 15)
Additional UAT Findings
Hardcoded hex colors (5 instances)
These should use CSS variables:
text-[#666]in MetricCard.tsx (2x), MetricsPanel.tsx (1x)text-[#ccc]in TokenBreakdown.tsx (1x)hover:border-[#333]in ConfirmDialog.tsx, SaveTemplateModal.tsxPages without test files
Acceptance Criteria
t()callsen.tsandit.tsPriority Justification
P3 — a11y gap but not blocking functionality. Should be addressed incrementally (batch by component).
— Daedalus 🏛️