Summary
web/src/components/ai-action-confirmation.tsx has zero use of useTranslations. All user-facing strings — including button labels, status text, and descriptions — are hardcoded English literals. This file is fully outside the project's i18n pattern.
Location
web/src/components/ai-action-confirmation.tsx
Hardcoded strings (partial list):
- Button labels:
"Deny" (~line 228), "Allow" (~line 237), "Working…" (~line 241), "Done" (~line 249), "Denied" (~line 255)
- Action icons (
<Download>, <Sliders>, etc.) rendered without aria-hidden="true" — screen readers may announce icon titles
No useTranslations import in the file.
WCAG Criteria
- Project requirement: ALL user-facing strings must route through
next-intl
- 4.1.2 Name, Role, Value (Level AA): accessible names must be locale-aware
Expected Fix
- Add
useTranslations("aiActionConfirmation") hook
- Replace all hardcoded button labels and status text with
t("key") calls
- Add
aria-hidden="true" to all decorative ActionIcon icons
- Add keys to
web/messages/en.json under "aiActionConfirmation"
Severity
B — Accessibility defect / i18n violation
🤖 Filed by automated a11y audit (round 1)
Summary
web/src/components/ai-action-confirmation.tsxhas zero use ofuseTranslations. All user-facing strings — including button labels, status text, and descriptions — are hardcoded English literals. This file is fully outside the project's i18n pattern.Location
web/src/components/ai-action-confirmation.tsxHardcoded strings (partial list):
"Deny"(~line 228),"Allow"(~line 237),"Working…"(~line 241),"Done"(~line 249),"Denied"(~line 255)<Download>,<Sliders>, etc.) rendered withoutaria-hidden="true"— screen readers may announce icon titlesNo
useTranslationsimport in the file.WCAG Criteria
next-intlExpected Fix
useTranslations("aiActionConfirmation")hookt("key")callsaria-hidden="true"to all decorativeActionIconiconsweb/messages/en.jsonunder"aiActionConfirmation"Severity
B — Accessibility defect / i18n violation
🤖 Filed by automated a11y audit (round 1)