angular / angular/components

bug(datepicker): VoiceOver on iOS Fails to Announce Day of Week in Angular Material Datepicker, Violating WCAG 1.3.1

Open
#31,480 1 comment 0 reactions 0 assignees View on GitHub
P2
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### 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

The Angular Material Datepicker does not announce the day of the week (which is present in the table header) when using VoiceOver on iOS. Currently, VoiceOver reads the selected date as “July 3rd, 2025, row X, column X,” but omits the associated day of the week.

This behavior does not meet [WCAG 2.1 Success Criterion 1.3.1: Info and Relationships (Level A)](https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html), as the relationship between the date and its corresponding day of the week is not conveyed to assistive technologies.

### Reproduction

Steps to Reproduce

1. Enable VoiceOver via Settings > Accessibility > VoiceOver
2. Open Safari on an iOS device.
3. Navigate to the Angular Material Datepicker demo page:https://material.angular.dev/components/datepicker/overview
4. Open the datepicker by selecting any of the date input fields.
5. Use VoiceOver to navigate through the calendar and select a date.
6. The VoiceOver does not read the Day of the Week.

![Image](https://github.com/user-attachments/assets/a2238c7b-40e8-4956-b879-486c1616ad32)

### Expected Behavior

VoiceOver should announce the full date, including the day of the week.

### Actual Behavior

VoiceOver only reads the date and position (e.g., "July 3rd, 2025, row X, column X") but does not announce the day of the week, which is visually present in the table header.

### Environment

- Angular: 18, 20
- CDK/Material: 18, 20
- Browser(s): Safari
- Operating System (e.g. Windows, macOS, Ubuntu): iOS

Contributor guide

Open the contributing guide

Research direction

Start with the Angular Material datepicker overview demo and reproduce the issue using VoiceOver in Safari on iOS. Trace the datepicker's accessibility behavior for calendar cells and table headers, then verify that VoiceOver announces the day of the week together with the selected date without losing the existing row and column information.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
accessibility, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.