-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"player control" component behaves differently between TalkBack (Accessibility) on and off #8627
Comments
This issue slipped through the cracks, sorry about that. I can confirm this exact issue is happening on my device. @ojw28 is this something you can look into? I'm conscious there seems to be a few other Talkback related issues, such as it repeatedly 'saying' the current progress time? Is that expected behaviour? It could be worth a full dive into the UI talkback situation? |
I did take a look at this a while back, and was able to reproduce the issue. I wasn't able to figure out the root cause though. It felt like it was more likely to be a problem with talkback itself than a problem with ExoPlayer's UI components. It seems quite likely there exists a way we could work around whatever the underlying problem is. We'll need to carve out some more time to try and figure out how to do that. |
Overriding onTouchEvent was causing multiple issues, and appears to be unnecessary. Removing the override fixes: 1. StyledPlayerView accessibility issue where "hide player controls" actually toggled play/pause. 2. Delivery of events to a registered OnClickListener when useController is false. 3. Delivery of events to a registered OnLongClickListener in all configurations. 4. Incorrectly treating a sequence of touch events that exit the bounds of the view before ACTION_UP as a click, both for delivery to OnClickListener and for toggling the controls. Note: After this change, control visibility will not be toggled if the application developer explicitly sets the view to be non-clickable. I think that's probably working as intended though. It seems correct that a non-clickable view would not respond to clicks. Issue: google/ExoPlayer#8627 Issue: google/ExoPlayer#9605 Issue: google/ExoPlayer#9861 PiperOrigin-RevId: 433016626
Overriding onTouchEvent was causing multiple issues, and appears to be unnecessary. Removing the override fixes: 1. StyledPlayerView accessibility issue where "hide player controls" actually toggled play/pause. 2. Delivery of events to a registered OnClickListener when useController is false. 3. Delivery of events to a registered OnLongClickListener in all configurations. 4. Incorrectly treating a sequence of touch events that exit the bounds of the view before ACTION_UP as a click, both for delivery to OnClickListener and for toggling the controls. Note: After this change, control visibility will not be toggled if the application developer explicitly sets the view to be non-clickable. I think that's probably working as intended though. It seems correct that a non-clickable view would not respond to clicks. Issue: #8627 Issue: #9605 Issue: #9861 PiperOrigin-RevId: 433016626
Fixed in |
Steps to reproduce
This is different behaviour compared with when Talkback is off:
This is causing confusion to our users who use TalkBack. When player controls are shown and TalkBack focus is still on the player, and then users activate, what should happen is player controls get hidden. The key thing here is that TalkBack focus is still on the player, so the action should not apply onto the play/pause button. User with accessibility might not see why this is happening.
The text was updated successfully, but these errors were encountered: