iOS - Grouped CollectionView Headers Accessibility
- Dominant language
- C#
- Stars
- 23.3k
- Forks
- 2k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 290
Description
### Description
In my app I have a screen which displays a large list of alphabetical grouped data. If the user has voiceover turned on and they modify their accessibility rotor to headings only, for easy traversal, it will not be able to traverse the whole list and will be met with "No heading found".
This I believe is due to the virtualisation of the collectionView and the fact that headings that are further down in the list will not be included in the accessible tree until the UI elements are rendered on screen. Is this something that is able to be resolved or is it a limitation of the collectionView?
This is an issue with CollectionViewHandler2.
I have attached a sample repo below for testing.
### Steps to Reproduce
1. Open Repo App
2. Enable VoiceOver
3. Modify accessibility rotor to headings only
4. Single finger gesture scroll through the headings
### Link to public reproduction project repository
https://github.com/Croppo/MauiReproductionApp
### Version with bug
9.0.70 SR7
### Is this a regression from previous behavior?
Not sure, did not test other versions
### Last version that worked well
_No response_
### Affected platforms
iOS
### Affected platform versions
_No response_
### Did you find any workaround?
_No response_
### Relevant log output
```shell
```
Contributor guide
Research direction
Start by running the linked MauiReproductionApp with VoiceOver and the headings-only rotor to reproduce the failure. Then inspect the iOS CollectionViewHandler2 accessibility and virtualization path. Done means grouped headers remain discoverable through the full list, with behavior verified on the affected iOS version.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, ios
- Domain
- accessibility, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100