- From: Mustaq Ahmed via GitHub <sysbot+gh@w3.org>
- Date: Fri, 04 Nov 2016 21:35:23 +0000
- To: public-pointer-events@w3.org
PointerEvents can be tweaked to represent a "dial" (Windows Wheel) for
sure. But before we commit to changes in this direction, we should
discuss the pros & cons of other comparable alternatives. Here are my
thoughts on one such alternative: WheelEvents could also be tweaked to
represent the device too---is it really bad compared to
PointerEvents?
Both PointerEvent and WheelEvent (each of them is a direct subclasses
of MouseEvent) seem to have some unique winning points. I looked at
three properties of a "dial", as follows. I found WheelEvents to be a
better choice for two of them, YMMV.
#### Dial rotation
Dial rotation comes first because it is the most prominent aspect of
the new hardware. The dial is symmetric around its axis, so the exact
_physical_ angle of the dial position seems immaterial to users, e.g.
there is no left/right/up/down position. This is like a mouse-wheel,
and unlike stylus devices (possibly with a "calligraphic" tip) for
which PointerEvent.twist was added.
The
[website](https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/windows-wheel-interactions)
shows some nice widgets to mark dial position but the physical dial
has no mark, to allow defining the "position" arbitrarily through
software (which is a great thing IMO). Even if a software widget
exactly simulates a physical marker position on the dial, the
connection between the widget and the device breaks completely when
the device goes off-screen. Consider this experiment: mark the dial
(with a marker) at the widget-marked rotation angle, detach the device
from the screen, bring it back at a different angle.
Clearly an absolute rotation angle ("twist") from the device would
make no sense to the software. Only the rotation offset matters here.
This is like WheelEvent.deltaZ as @shepazu mentioned above, and unlike
PointerEvent.twist.
So dial rotation is more like turning a mouse wheel than twisting a
pen, both physically & for the software interface.
#### Device diameter
WheelEvent doesn't have anything to offer here. PointerEvent wins,
with width & height.
#### Pointer location
The use-cases shown in Microsoft website seem to suggest that the
location of the dial has only a weak association to the content below
it. If a dial is off the screen, it's location is irrelevant, unlike
any other pointing device. When the dial is about to touch the screen,
it doesn't seem to affect the content below it but instead "pops up"
a new UI widget, and then controls the part of the widget _around_ it.
"Center of of the Widget upon contact" seems to be the only use of
its location. Does it have any use case as a _pointing device_? I
didn't find any.
A mouse wheel is not used as a pointing tool (even though it "resides"
on a pointing device). We don't move the mouse when turning the
wheel---either for the physical awkwardness of simultaneous movements,
or to avoid scrolling wrong things accidentally. Dial seems exactly
like this: meant to be used by our "non-dominant" hand which is not an
expert for precise movement, at least for me.
Thoughts?
--
GitHub Notification of comment by mustaqahmed
Please view or discuss this issue at
https://github.com/w3c/pointerevents/issues/152#issuecomment-258553526
using your GitHub account
Received on Friday, 4 November 2016 21:35:29 UTC