Android/iOS Accessible Live Regions

This issue has been tracked since 2022-09-20.

Description

The accessibilityLiveRegion prop is currently only supported on Android, and there are issues with it even on that platform. Ideally this prop would consistently work on both iOS and Android.

Expected Behavior
Whenever an element with accessibilityLiveRegion set, or any descendant of an element with accessibilityLiveRegion set has any content changes, they should be queued up to be announced by the screen reader. “Polite” announcements should not interrupt any ongoing announcements, while “assertive” ones should interrupt.

Android Details
On Android, the accessibilityLiveRegion prop works in the older Paper renderer, but not the newer Fabric renderer.

iOS Details

On iOS there is no concept of live regions at a system level, so to support this we’d need to detect when content changes on any element (or descendant) with the accessibilityLiveRegion prop set, and make a manual announcement. These announcements will have to be queued up with the UIAccessibilitySpeechAttributeQueueAnnouncement property set to either make them “polite” or “assertive”.

The behavior of exactly how the queue works (maximum length, what happens when new announcements are queued after that length, etc.) should match Android and web as closely as possible.

Version

0.66

Output of npx react-native info

see description

Steps to reproduce

see description

Snack, code example, screenshot, or link to a repository

see description

More Details About Repo
Owner Name facebook
Repo Name react-native
Full Name facebook/react-native
Language JavaScript
Created Date 2015-01-09
Updated Date 2022-10-06
Star Count 105167
Watcher Count 3672
Fork Count 22482
Issue Count 2231

YOU MAY BE INTERESTED

Issue Title Created Date Updated Date