Unable to get events when VoiceView is activated/unactivated

:backhand_index_pointing_right: Bug Description


1. Summary

When toggling VoiceView, pressing the back and menu button for 2 seconds, AccessibilityInfo screenReaderChanged event is not fired.

App Name:
App Link on Amazon Appstore (found through Developer Console β†’ Actions column in App List β†’ View on Amazon.com):

Bug Severity
Select one that applies

  • Impacts operation of app
  • Blocks current development
  • Improvement suggestion
  • Issue with documentation (If selected, please share the doc link and describe the issue)
  • Other

2. Steps to Reproduce

  1. Build/install/run the app
  2. Start Chrome dev tool > React Native
  3. Press the back and menu button on remote for 2 secs

3. Observed Behavior

Explain what actually happened, noting any discrepancies or malfunctions.

VoiceView is toggled on/off. Text on screen is read/not read
The console log is not printed

4. Expected Behavior

Describe what you expected the SDK to do under normal operation.

VoiceView is toggled on/off. Text on screen is read/not read
The console log is printed

4.a Possible Root Cause & Temporary Workaround

Fill out anything you have tried. If you don’t know, N/A is acceptable

N/A

5. Logs or crash report

N/A

6. Environment

Please fill out the fields related to your bug below:

  • SDK Version: 0.22.6006

  • App State: Foreground

  • OS Information: Please ssh into the device via vega exec vda shell (or kepler exec vda shell for v0.21 and earlier) and copy the output from cat /etc/os-release into the answer section below. Note, if you don’t have a simulator running or device attached, the command will respond with vda: no devices/emulators found

    ##################################################
    #####     Welcome to Developer mode Shell    #####
    ##################################################
    sh(com.amazon.dev.shell):/$ cat /etc/os-release
    NAME="OS"
    OE_VERSION="4.0.0"
    OS_MAJOR_VERSION="1"
    OS_MINOR_VERSION="1"
    RELEASE_ID="14"
    OS_VERSION="1.1"
    BRANCH_CODE="TV Ship day60"
    BUILD_DESC="OS 1.1 (TV Ship day60/4458)"
    BUILD_FINGERPRINT="4.0.207586.0(3072cab629675a74)/4458N:user-external/release-keys"
    BUILD_VARIANT="user-external"
    BUILD_TAGS="release-keys"
    BUILD_DATE="Wed Feb 04 19:00:08 UTC 2026"
    BUILD_TIMESTAMP="1770231608"
    VERSION_NUMBER="1401010445850"
    

7. Example Code Snippet / Screenshots / Screengrabs

App.tsx

import { AccessibilityInfo } from '@amazon-devices/react-native-kepler';


useEffect(() => {
  AccessibilityInfo.addEventListener('screenReaderChanged',
    (enabled) => {
      console.log('screenReaderChanged enabled: ', enabled);
    }
  );
}, []);

manifest.toml

[[needs.privilege]]
id = "com.amazon.devconf.privilege.accessibility" # Required for accessibility

:backhand_index_pointing_right: Playback Issues


N/A


:backhand_index_pointing_right: Additional Context


Any Additional Context you would like to provide?
Add any other relevant information, such as recent updates to the SDK, dependencies, or device OS that may affect the bug.

My app is using webview and i want to stop/start certain behaviour when VoiceView is toggled on/off.

Hi @DavidW,

Welcome to Amazon Developer Community!

Thank you for the detailed bug report on the AccessibilityInfo event issue.

I tried to reproduce with a standard React Native app and the screenReaderChanged events fire correctly when toggling VoiceView. Since you mentioned your app uses WebView, this may be the key difference.

To help us investigate further, could you clarify:

  1. Is your AccessibilityInfo.addEventListener code in the React Native layer or inside the WebView JavaScript?
  2. Does your app spend most of its time rendering WebView content?
  3. Does the issue occur immediately when launching the app, or after it has been running for a while?

Temporary workaround:
Poll AccessibilityInfo.isScreenReaderEnabled() periodically to detect VoiceView state changes:

useEffect(() => {
  const pollInterval = setInterval(() => {
    AccessibilityInfo.isScreenReaderEnabled().then((enabled) => {
      // Handle VoiceView state change
    });
  }, 1000); // Check every second

  return () => clearInterval(pollInterval);
}, []);

Our team is investigating this issue and will provide an update as soon as we have more information.

Thanks for helping us improve the Vega platform.

Warm regards,
Aishwarya

Hi Aishwarya,

Thanks for the quick reply. I tested it again today and it seems that I am able to get AccessibilityInfo.addEventListener to work without issue.

Regards,

David

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.