angular / angular/components

bug(MatDialog): Blocked aria-hidden error when hasBackdrop is false

Open
#29,578 6 comments 8 reactions 0 assignees View on GitHub
area: cdk/dialog P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Description

I am launching a dialog that has a MatDialogConfig property of hasBackdrop = false. Doing so seems to still attach a aria-hidden="true" property to DOM elements that are siblings to the cdk overlay container. This in turn seems to cause a console error of "Blocked aria-hidden on..." when interacting with DOM elements that live underneath one of those sibling elements while the dialog is open. The console error seems to be intermittent.

### Reproduction

stackblitz link: https://stackblitz.com/edit/ue8xe5
1. launch dialog
2. while dialog is open click into the text box
3. console error should appear (can be intermittent)

### Expected Behavior

I wouldn't expect the console error to occur

### Actual Behavior

Console error occurs:
Blocked aria-hidden on a element because the element that just received focus must not be hidden from assistive technology users. Avoid using aria-hidden on a focused element or its ancestor. Consider using the inert attribute instead, which will also prevent focus. For more details, see the aria-hidden section of the WAI-ARIA specification at https://w3c.github.io/aria/#aria-hidden.

### Environment

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

Contributor guide

Open the contributing guide

Research direction

Start with the linked StackBlitz reproduction and inspect MatDialogConfig.hasBackdrop=false while following the dialog's aria-hidden behavior. Reproduce the intermittent Chrome console error by focusing the text box while the dialog is open; done means the error no longer occurs and the expected focus behavior is preserved.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.