Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
LanguageSwitcher.tsx:27-36 renders a bare select next to a decorative Languages icon with no label htmlFor, no aria-label, and no aria-labelledby. Screen readers announce it as an unlabeled combobox (WCAG 4.1.2 / 1.3.1). The icon is the only visual cue and is not associated with the control.
Acceptance criteria
Files to touch
frontend/src/app/components/global_ui/LanguageSwitcher.tsx
Out of scope
- Adding new locales
- Wiring full i18n persistence
Why this matters
LanguageSwitcher.tsx:27-36 renders a bare select next to a decorative Languages icon with no label htmlFor, no aria-label, and no aria-labelledby. Screen readers announce it as an unlabeled combobox (WCAG 4.1.2 / 1.3.1). The icon is the only visual cue and is not associated with the control.
Acceptance criteria
Files to touch
frontend/src/app/components/global_ui/LanguageSwitcher.tsxOut of scope