1

In Chrome (85) and FF (80), clicking on a tabbable element gives it focus. Of course, one can focus by tabbing to the element too, and the focus events that come from either seem to be identical (view dump in browser console: the focus event is quite big):

document.getElementById('main').addEventListener('focus', console.log)
<a href="#" id="main">focus here</a>

This becomes problematic for the following: I'm implementing a double-click behavior, where one must select an item with one click, then click again to follow it. I'd also like users to be able to use tab + enter or tab + single-click to follow through.

While I'd strongly prefer to use the default browser behavior to do most of the work, given all I'm adding is one extra click, this seems to be impossible to do without listening for keystrokes. This is because if indeed the two above events are indistinguishable, then one can't tell the difference between:

  • a tab followed immediately by click, and
  • a single click that generates both a focus and click event.

Event order can't be trusted, and unfortunately FF has focus first before click anyways.

Is there something in the focus or click events that I'm overlooking that I could use to check where that event is coming from?

concat
  • 3,107
  • 16
  • 30
  • `relatedTarget` almost helps - can't figure it out, but see if using relatedTarget (it's null on click and sometimes not null on tab - but that could be completely coincidental due to the limited code/markup) – Jaromanda X Sep 25 '20 at 04:14
  • @JaromandaX Hmm, no dice from what I see. I'm seeing null in both cases on FF 80. – concat Sep 25 '20 at 04:18

0 Answers0