angular / angular/components

bug(mat-error): mat-error presentation is announces twice with NVDA screen reader

Open
#32,104 3 comments 0 reactions 0 assignees View on GitHub
Accessibility area: material/form-field P2
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Is this a regression?

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

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

@angular/material 18.1.0 did not have this behavior

### Description

Hi,

I am using NVDA v2025.3 (latest version) for accessibility testing and have noticed that the mat-error presentation is announced twice by the screen reader.

Image

The above example demonstrates the issue from the angular material docs:
https://material.angular.dev/components/form-field/overview#error-messages

### Reproduction

Steps to reproduce:
1. Open screen reader and set focus on an angular material mat-form-field with mat-error presented on blur
2. Tab away from the field to trigger error message presentation
3. Observe announcements and notice that mat-error text is read twice.

### Expected Behavior

mat-errors should only be announced a single time by the screen reader.

### Actual Behavior

mat-error is announced twice by the screen reader.

### Environment

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

Contributor guide

Open the contributing guide

Research direction

Start with the Angular Material form-field error-messages example linked in the report and reproduce the behavior using NVDA, focusing on errors shown when the field loses focus. Compare the announcements with the expected single reading and identify the form-field error presentation path involved; done means mat-error is announced only once without regressing the documented behavior.

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
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.