[Accessibility] [TalkBack] PanResponder callbacks do not fire when TouchableOpacity/Pressable is pressed and TalkBack is on
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C++
- Star
- 127k
- Fork
- 25.3k
- Merge trung bình
- 1 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 4
Mô tả
Description
On Android with TalkBack on, TouchableOpacity/Pressable components do not trigger PanResponder callbacks when pressed if the TouchableOpacity/Pressable has on onPress prop and its focusable prop is not false.
Steps to reproduce
- Create a PanResponder and apply its panHandlers to a View.
- Add a Pressable inside the View and give it an onPress prop.
- View the app in Android with TalkBack on.
- Double-tap to activate, observe the pan responder callbacks DO NOT fire.
Furthermore, double-tapping a non-TouchableOpacity/Pressable element such as a Text component will trigger PanResponder callbacks.
In the example repo I provided it should print "PanResponder Callback Triggered' but its only printing "ON PRESS TRIGGERED"
React Native Version
0.73.6
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
OS: macOS 14.5
CPU: (11) arm64 Apple M3 Pro
Memory: 84.00 MB / 18.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 18.18.0
path: ~/.nvm/versions/node/v18.18.0/bin/node
Yarn:
version: 1.22.22
path: /opt/homebrew/bin/yarn
npm:
version: 9.8.1
path: ~/.nvm/versions/node/v18.18.0/bin/npm
Watchman:
version: 2024.04.22.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.15.2
path: /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 23.5
- iOS 17.5
- macOS 14.5
- tvOS 17.5
- visionOS 1.2
- watchOS 10.5
Android SDK:
API Levels:
- "29"
- "30"
- "31"
- "32"
- "33"
- "33"
- "34"
Build Tools:
- 29.0.2
- 30.0.2
- 30.0.3
- 33.0.0
- 33.0.1
- 34.0.0
System Images:
- android-28 | Google ARM64-V8a Play ARM 64 v8a
- android-29 | Google Play ARM 64 v8a
- android-31 | Google APIs ARM 64 v8a
- android-33 | Google APIs ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9514443
Xcode:
version: 15.4/15F31d
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.10
path: /Library/Java/JavaVirtualMachines/jdk-17.0.10.jdk/Contents/Home/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.73.6
wanted: 0.73.6
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
Stacktrace or Logs
No Stacktrace or log
Reproducer
https://github.com/Abhisflyingsoon/android-panresponder-accessibility
Screenshots and Videos
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với reproducer được liên kết và tái hiện vấn đề trên Android khi TalkBack được bật, sử dụng các trường hợp PanResponder, Pressable và TouchableOpacity đã mô tả. Theo dõi tương tác từ lúc kích hoạt TalkBack, qua Pressable hoặc TouchableOpacity, đến các callback của PanResponder. Hoàn tất khi các callback của PanResponder được kích hoạt trong trường hợp được báo cáo, trong khi callback onPress vẫn tiếp tục hoạt động.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- android, react-native
- Lĩnh vực
- accessibility, mobile
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100