From 964ab78e8ff3ed8fa1527e006876429a72f962cc Mon Sep 17 00:00:00 2001 From: 1010nishant Date: Tue, 24 Jan 2023 00:44:30 +0530 Subject: [PATCH] Fix:announcements by the screen reader interrupt any existing speech TODO comment:Use announceForAccessibilityWithOptions to queue this behind any in-progress announcements By default announcements will interrupt any existing speech, but they can be queued behind existing speech by setting queue to true in the second parameter of announceForAccessibilityWithOptions method as it takes an object. i have replaced announceForAccessibility() with announceForAccessibilityWithOptions(). fixes: #5611 --- src/boot/OfflineNoticeProvider.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/boot/OfflineNoticeProvider.js b/src/boot/OfflineNoticeProvider.js index 533cf118b2d..ccc783c12a8 100644 --- a/src/boot/OfflineNoticeProvider.js +++ b/src/boot/OfflineNoticeProvider.js @@ -212,9 +212,10 @@ export function OfflineNoticeProvider(props: ProviderProps): Node { // another app.) if (shouldShowUncertaintyNotice && !haveAnnouncedUncertain.current) { - // TODO(react-native-68): Use announceForAccessibilityWithOptions to - // queue this behind any in-progress announcements - AccessibilityInfo.announceForAccessibility(_('Zulip’s Internet connection is uncertain.')); + AccessibilityInfo.announceForAccessibilityWithOptions( + _('Zulip’s Internet connection is uncertain.'), + { queue: true }, + ); haveAnnouncedUncertain.current = true; } @@ -226,9 +227,7 @@ export function OfflineNoticeProvider(props: ProviderProps): Node { isOnline === true && (haveAnnouncedOffline.current || haveAnnouncedUncertain.current) ) { - // TODO(react-native-68): Use announceForAccessibilityWithOptions to - // queue this behind any in-progress announcements - AccessibilityInfo.announceForAccessibility(_('Zulip is online.')); + AccessibilityInfo.announceForAccessibilityWithOptions(_('Zulip is online.'), { queue: true }); haveAnnouncedOffline.current = false; haveAnnouncedUncertain.current = false; }