Anchor elements turn orange (and stay orange) when clicked

VERIFIED FIXED in Firefox 18



Firefox for Android
6 years ago
2 years ago


(Reporter: cscott, Assigned: kats)


Firefox 18

Firefox Tracking Flags

(firefox15 affected, firefox16 affected, firefox17 affected, firefox18 verified, fennec+)



(1 attachment)



6 years ago
User Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.7) Gecko/20100101 Firefox/10.0.7 Iceweasel/10.0.7
Build ID: 20120829094104

Steps to reproduce:

The following website has four colored buttons at the bottom of the screen, colored using background-color in CSS:
Click on the throbbing button first to start the game, then look at the four colored buttons.
Clicking on the button in a desktop browser (firefox, chrome, etc) applies a transient "darkening" effect (using a transparent background-image) and then restores the color to its original value.

Actual results:

On Firefox for Android Aurora, the button turns orange when it is tapped, and stays orange until another button is tapped.

Expected results:

The button shouldn't turn orange.

This seems to be related to the "vitamin-c" focus highlight, but nothing I've tried (adding !important CSS rules for :active and :focus; setting tap-highlight-color and -moz-tap-highlight-color; setting -moz-user-focus:ignore) seems to turn off this behavior.
Can you provide a simplified test case that reproduces this behaviour? It will be much easier to debug if you create a smaller test page with just the buttons and the clicking behaviour.
Ever confirmed: true

Comment 2

6 years ago is a somewhat simplified test.  The event listeners seem to be required to get the highlight to show up (and persist).


6 years ago
tracking-fennec: --- → ?
status-firefox15: --- → affected
status-firefox16: --- → affected
status-firefox17: --- → affected
status-firefox18: --- → affected
tracking-fennec: ? → +

Comment 3

6 years ago
It's been suggested that this might be related to bug 779096?
I doubt it. I suspect this is just a problem with our touch listener logic. In this case you're calling preventDefault on the touch event which means no mouse events get sent to the page as well as none of the messages from panzoomcontroller to tell gecko to hide the highlight. I think best we can do is send a message back to java telling it to cancel the tap highlight whenever we receive the preventDefault call in Java.
Created attachment 659005 [details] [diff] [review]

I agree with what wesj said in comment #4. This probably regressed because of bug 773431; prior to that we would just not run the touchstart handler in browser.js at all if content did a preventDefault on the touch event.

The attached patch ensures that we send the Gesture:CancelTouch event to browser.js from java even in the preventDefault case, which removes the highlight.
Attachment #659005 - Flags: review?(wjohnston)
Assignee: nobody → bugmail.mozilla
Attachment #659005 - Flags: review?(wjohnston) → review+
Last Resolved: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 18
Verified fixed via posted demo on mozilla-central (09/12).

cscott, feel free to try this out in Nightly (09/12).
status-firefox18: fixed → verified

Comment 9

6 years ago
Yup, confirmed fixed on nightly.  Thanks!
You need to log in before you can comment on or make changes to this bug.