input-device-capabilities icon indicating copy to clipboard operation
input-device-capabilities copied to clipboard

Suggest adding a `firesHoverEvents` property or some way to detect that in active input device supports hover?

Open mattrq opened this issue 2 years ago • 0 comments

Suggests that a firesHoverEvents boolean is added to allow accurate handling of different pointer-based input devices. There are a number of benefits that this allows for by allowing to changing the behaviour based on the support for hover for user interaction and better accessibility handling.

The current methods to detect hover support are not always accurate:

  1. Using CSS media queries: The cross-browser support and reliability of those are mixed. A negative query may indicate no support for the query or the current device doesn't support hover.
  2. The PointerEvent.pointerType can help by making assumptions for "mouse" (hover supported) and "touch" (hover unsupported), however "pen" may or may not support hover depending on the type of pen in-use.
  3. Assuming that fireTouchEvents===true means that hover is unsupported. However, this is not officially documented and unclear if it is an accurate assumption.

Example scenarios:

  • Laptop with touchscreen, mouse and trackpad.
  • Laptop with a touchscreen with pen support, mouse and trackpad.
  • Computer with a mouse and then digitizer tablet/pen (e.g. Wacom pen tablets) added after page load.
  • Laptop with mouse and trackpad but hover disabled for accessibility.
  • Tablet with mouse added.

Additionally, clarification on which events are intended for which capabilities? e.g. (Not accurate)

Event On Event Handler firesHoverEvents TRUE firesHoverEvents FALSE firesTouchEvents TRUE firesTouchEvents FALSE
pointerover onpointerover    
pointerenter onpointerenter
pointerdown onpointerdown
pointermove onpointermove ✓ While down ✓ While down
pointerup onpointerup
pointercancel onpointercancel
pointerout onpointerout    
pointerleave onpointerleave

mattrq avatar Apr 26 '22 07:04 mattrq