Accessibility audit: LanguageSwitcher and LocalePicker

Aperta
#94 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
playwright, react, tailwindcss, typescript

Direzione di ricerca

Start with src/registry/components/language-switcher.tsx, language-switcher-pill.tsx, locale-picker.tsx, and the shared use-listbox-navigation hook; review the component docs and CONTRIBUTING.md for project conventions. Check keyboard and screen reader behavior, ARIA states, locale pronunciation, focus visibility, and contrast, then add keyboard interaction and axe checks in test/. Done means reporting findings with reproduction steps, fixing the issues, and documenting component limitations.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

accessibility help wanted

Accessibility audit: LanguageSwitcher and LocalePicker

The language switchers and the locale picker are often the first thing someone using a keyboard or a screen reader touches to make a site usable in their language. They should work flawlessly without a mouse.

Scope
  • src/registry/components/language-switcher.tsx
  • src/registry/components/language-switcher-pill.tsx
  • src/registry/components/locale-picker.tsx
  • The shared use-listbox-navigation hook
What to check
  • Keyboard: open/close with Enter, Space and Escape; arrow keys, Home/End and type-ahead in the list; focus returns to the trigger on close; nothing traps focus
  • Screen readers (VoiceOver and NVDA if you can): the trigger announces the current language and that it opens a list; options announce their name, and the selected one is marked; search results changes are announced
  • ARIA: correct roles and states for the pattern used (combobox / listbox / option, aria-expanded, aria-activedescendant or roving focus, aria-selected)
  • Language names: each option has a lang attribute matching its locale, so screen readers pronounce "Deutsch" in German
  • Visuals: visible focus ring in light and dark themes; text contrast meets WCAG 2.2 AA
Deliverables
  • A short report as a comment on this issue: what works, what doesn't, with steps to reproduce
  • Fixes in one or more PRs (small focused PRs are easier to review)
  • Automated checks in test/: keyboard interaction tests, and an axe check (for example with vitest-axe) for each component
  • Note any limitations in each component's docs page

Good for contributors who know accessibility well, even without building a component from scratch.

See CONTRIBUTING.md.

Lingua principale
TypeScript
Stelle
39
Fork
16
Merge medio
18h 14m
PR unite (30g)
35

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di babelize/babelize-elements

Tutte le issue di babelize/babelize-elements

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.