angular / angular/components

bug(Button toggle): Voice Over not read status pressed / not pressed after select and deselect

Open
#30,930 0 comments 0 reactions 0 assignees View on GitHub
Accessibility area: material/button-toggle P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Is this a regression?

- No.

### Description

Voice Over does not read the state of the button as pressed when selected or not pressed when deselected. It only reads 'selected' if you change focus and return to the selected button. The NVDA screen reader does not have this problem, it reads the states correctly.

### Reproduction

Steps to reproduce:
1. Go to official multiple selection example: https://material.angular.io/components/button-toggle/examples#button-toggle-mode
2. Focus those buttons with VO open
3. States presses/ not pressed not announced when toggle buttons

### Expected Behavior

VO should read pressed/ not pressed when button toggled like NVDA do this.

### Actual Behavior

Voice Over does not read the state of the button as pressed when selected or not pressed when deselected.

### Environment

- Angular: 19.2.7
- CDK/Material: 19.2.10
- Browser(s): Chrome, Edge, FF, Safari
- Operating System (e.g. Windows, macOS, Ubuntu): MacOS 15.4.1

Contributor guide

Open the contributing guide

Research direction

Start with the official multiple-selection button-toggle example at https://material.angular.io/components/button-toggle/examples#button-toggle-mode and reproduce the issue with VoiceOver, then compare the behavior with NVDA. The change is done when selecting and deselecting a toggle causes VoiceOver to announce the pressed and not-pressed states without moving focus.

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.