-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
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:
- 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.
- 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.
- Assuming that
fireTouchEvents===truemeans 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 | ✓ | ✓ | ✓ | ✓ |
Metadata
Metadata
Assignees
Labels
No labels