dotnet / dotnet/maui

iOS - Grouped CollectionView Headers Accessibility

Open
#30,702 0 comments 0 reactions 0 assignees View on GitHub
area-controls-collectionview platform/ios t/a11y t/bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.