Closed Bug 1248133 Opened 8 years ago Closed 8 years ago

Firefox/Android/TalkBack - JS events don't fire if touch event is registered

Categories

(Core :: Disability Access APIs, defect, P2)

44 Branch
Unspecified
Android
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: redux, Unassigned)

Details

Attachments

(2 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
Firefox for Android

Steps to reproduce:

The issue was encountered while trying to update http://patrickhlauke.github.io/touch/tests/results/#mobile-tablet-touchscreen-assistive-technology-events which uses some basic test pages ( in particular, http://patrickhlauke.github.io/touch/tests/event-listener.html ) to show which JS events are fired when focusing/activating a button on touch devices under different conditions, including when assistive technologies are enabled.

I created a reduced test case (attached) showing the issue. With Firefox/Android and TalkBack enabled:

1) access "index-working-just-click.html"
2) set focus (by swiping left/right) to the three different elements (a button, an input type="button", a link) and double-tap to trigger the elements (in each case, an alert for "click" is fired)
3) access "index-broken-click-and-touchstart.html"
4) again, set focus to the three different elements, but note that double-tapping any of them does not fire any alert - neither for the touchstart handler, nor for the click handler
5) turn off TalkBack, quit and restart Firefox (strangely, this is needed to get it back in working order), access "index-broken-click-and-touchstart.html" - note that tapping these elements without TalkBack running works just fine

In short, there seems to be an issue specifically when TalkBack is running AND when a control has a touch event handler (in this case, touchstart...it may happen with touchmove/touchend/touchcancel as well, not tested) that JS events are simply not fired anymore/correctly.

A video showing the result: https://www.youtube.com/watch?v=qoWJJyn_4yo

Related to https://bugzilla.mozilla.org/show_bug.cgi?id=1019425 perhaps, once you "suspend" TalkBack (though, as per that bug, you're still in some sort of "almost screenreader mode"), the touchstart and click event handlers do fire correctly, so the problem seems to somehow be connected with TalkBack, Firefox, and how events are swallowed/lost somewhere between those two. See this follow-up video: https://www.youtube.com/watch?v=An7vRXecMEY
Severity: normal → major
Component: Untriaged → Disability Access
OS: Unspecified → Android
Priority: -- → P2
Component: Disability Access → Disability Access APIs
Product: Firefox → Core
This seems to have been fixed in bug 1238368. Waiting for you to confirm Patrick before closing. Your test cases work after that patch is applied. You should be able to test this in Nightly tomorrow.
Flags: needinfo?(redux)
Trying the /pub/mobile/nightly/latest-mozilla-central-android-api-15/fennec-47.0a1.multi.android-arm.apk nightly i can't seem to actually activate anything (double-tapping has no effect, even on simple links etc). Or do I need to wait for the next nightly?
Flags: needinfo?(redux)
Actually, as soon as I submitted that last comment, Nightly downloaded an update (even though I thought I had the absolute latest that's listed under https://ftp.mozilla.org/pub/mobile/nightly/latest-mozilla-central-android-api-15/). With this - 47.0a1 (2016-02-16) - the issue is indeed resolved. Testing http://patrickhlauke.github.io/touch/tests/event-listener.html (for convenience) fires all expected events (touch events, mouse compat events, click) correctly when TalkBack is running.
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
Resolution: INVALID → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: