angular / angular/components

bug(DatePicker): keyboard navgiation breaks when a screen reader is used

Offen
#33,683 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Accessibility area: material/datepicker P3
Vorherrschende Sprache
TypeScript
Sterne
25k
Forks
6.8k
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
91

Beschreibung

### Is this a regression?

- [ ] Yes, this behavior used to work in the previous version

### The previous version in which this bug was not present was

_No response_

### Description

When you open the date picker you can easily use the arrow keys to navigate between the days of the month.
But if you use a screen reader (tested with nvda and the integrated one from windows) the arrow keys won't work properly anymore.

The reason is because the screen reader switches to browse mode instead of focus mode and catches the keyboard events. If you switch manually to the focus mode (in nvda its the nvda key + space) it works again.

### Reproduction

Just try it in one of the examples at the official site https://material.angular.dev/components/datepicker/examples
- without screen reader: keyboard navigation works
- with screen reader: keyboard navigation won't work - you have to switch manually to focus mode

### Expected Behavior

I expect the keyboard navigation to work regardless if a screen reader is active or not. It should also not be needed to manually switch to focus mode

### Actual Behavior

- without screen reader: keyboard navigation works
- with screen reader: keyboard navigation won't work - you have to switch manually to focus mode

### Environment

- Angular: 22
- CDK/Material: 22
- Browser(s): Chrome, Firefox
- Operating System: Windows 11

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit den datepicker-Beispielen unter https://material.angular.dev/components/datepicker/examples und reproduziere die Tastaturnavigation in Chrome oder Firefox mit NVDA oder der Windows-Bildschirmsprachausgabe. Verfolge, wie Pfeiltastenereignisse im Browse-Modus verarbeitet werden; abgeschlossen ist die Aufgabe, wenn das Navigieren durch die Tage funktioniert, ohne manuell in den Fokusmodus wechseln zu müssen, während die Navigation weiterhin ohne Screenreader funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, typescript
Bereich
accessibility, frontend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
58/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.