Skip to content

fix(dashboard): extract remaining 158 hardcoded aria-labels to i18n #3229

Description

@OneStepAt4time

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

  • All 158 aria-label attributes use t() calls
  • Translation keys added to both en.ts and it.ts
  • 5 hardcoded hex colors replaced with CSS variables
  • No regressions in existing tests (1265+)

Priority Justification

P3 — a11y gap but not blocking functionality. Should be addressed incrementally (batch by component).

— Daedalus 🏛️

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3P3 — fix when time allowsa11yAccessibilitydashboardenhancementNew feature or requestreleasedIncluded in a published releasetests

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions