ionic-team / ionic-team/ionic-framework

bug: aria-expanded is ignored when used in ion-item (TalkBack)

Aperta
#30,558 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
a11y type: bug
Lingua principale
TypeScript
Stelle
52.7k
Fork
13.3k
Merge medio
1g 15h
PR unite (30g)
51

Descrizione

### Prerequisites

- [x] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#creating-an-issue).
- [x] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [x] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v8.x

### Current Behavior

In our app we have some cases where we display some collapsible information without using ion-accordion, we implement the collapse/expand ourselves. The "expand" action is done clicking an ion-item, so we added aria-expanded to it. But Google Talkback is ignoring the aria-expanded attribute (I haven't tested it with VoiceOver yet).

The same implementation using a div works fine.

### Expected Behavior

Talkback should be able to detect aria-expanded, so it should read "expanded" or "collapsed".

### Steps to Reproduce

1. Open this URL in an Android device (e.g. in Chrome): [https://stackblitz.com/edit/prza28ny-qihwpnvt?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html](https://stackblitz.com/edit/prza28ny-qihwpnvt?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html)
2. Open the "Preview" panel and wait for the project to run.
3. Enable Talkback.
4. Select the "Content title" below "Using ion-item". Talkback will only read "Content title", it doesn't read the aria-expanded.
5. Now select the "Content title" below "Using div". Talkback will now read "Collapsed. Content title"

### Code Reproduction URL

https://stackblitz.com/edit/prza28ny-qihwpnvt?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html

### Ionic Info

Ionic:

Ionic CLI : 7.2.1
Ionic Framework : @ionic/angular 8.6.4
@angular-devkit/build-angular : 20.1.0
@angular-devkit/schematics : 19.2.15
@angular/cli : 20.1.0
@ionic/angular-toolkit : 12.2.0

Cordova:

Cordova CLI : 12.0.0 (cordova-lib@12.0.2)
Cordova Platforms : android 14.0.1, ios 7.1.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, (and 16 other plugins)

Utility:

cordova-res : not installed globally
native-run : 2.0.1

System:

ios-sim : 8.0.2
NodeJS : v22.17.0
npm : 10.9.2
OS : macOS Unknown
Xcode : Xcode 16.2 Build version 16C5032a

### Additional Information

_No response_

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start with the reproduced ion-item and div examples in app.component.ts and app.component.html from the linked StackBlitz project. Run the reproduction on Android with TalkBack enabled and compare how aria-expanded is exposed for each element. Done means ion-item causes TalkBack to announce the expanded or collapsed state consistently with the div example.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
angular, typescript
Ambito
accessibility, frontend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.