Skip to content

Android: dispatchPointerEvents feature flag disrupts TalkBack's Explore by Touch functionality in Modal #55418

Description

@BlackCat1397

Description

Content of Modal can not be focused with Android's Explore by Touch when ReactFeatureFlags.dispatchPointerEvents is enabled.
Focus can be iterated through items with left-to-right swipe, but taps or dragging a finger over items do not focus them.

Looks like the issue was introduced in #46445.
Reverting this change in ReactViewGroup.onHoverEvent fixes this behavior.

This finding raises a few questions:

  1. Why TalkBack works outside of modals?
  2. What would be the drawback of reverting this onHoverEvent method?

@javache, could you, please, take a look?

Steps to reproduce

  1. Enable TalkBack
  2. Launch the application with yarn android
  3. See that Explore by Touch works correctly on main app screen - items can be focused by tap or by dragging a finger over them
  4. Open Modal
  5. See that Explore by Touch does not work there, but focus can be iterated through items with left-to-right swipe

React Native Version

0.83.1

Affected Platforms

Runtime - Android

Output of npx @react-native-community/cli info

System:
  OS: macOS 15.7.3
  CPU: (11) arm64 Apple M3 Pro
  Memory: 287.59 MB / 18.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 22.16.0
    path: /Users/roman_pavlov4/.nvm/versions/node/v22.16.0/bin/node
  Yarn:
    version: 1.22.22
    path: /Users/roman_pavlov4/.nvm/versions/node/v22.16.0/bin/yarn
  npm:
    version: 10.9.2
    path: /Users/roman_pavlov4/.nvm/versions/node/v22.16.0/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.16.2
    path: /Users/roman_pavlov4/.gem/ruby/3.4.2/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.4
      - iOS 18.4
      - macOS 15.4
      - tvOS 18.4
      - visionOS 2.4
      - watchOS 11.4
  Android SDK:
    API Levels:
      - "34"
      - "35"
      - "36"
    Build Tools:
      - 34.0.0
      - 35.0.0
      - 35.0.1
      - 36.0.0
      - 36.0.0
    System Images:
      - android-35 | Google APIs ARM 64 v8a
      - android-35 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2024.3 AI-243.24978.46.2431.13208083
  Xcode:
    version: 16.3/16E140
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.14
    path: /usr/bin/javac
  Ruby:
    version: 3.4.2
    path: /Users/roman_pavlov4/.rubies/ruby-3.4.2/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.0.0
    wanted: 20.0.0
  react:
    installed: 19.2.0
    wanted: 19.2.0
  react-native:
    installed: 0.83.1
    wanted: 0.83.1
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: Not found
  newArchEnabled: false

Stacktrace or Logs

No relevant logs.

MANDATORY Reproducer

https://github.com/BlackCat1397/ReactFeatureFlags-dispatchPointerEvents-modal-TalkBack-accessibility-issue

Screenshots and Videos

Screen.Recording.2026-02-05.at.16.38.45.mov

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions