W3C home > Mailing lists > Public > public-pointer-events@w3.org > October to December 2016

Re: [pointerevents] pointerType: 'dial'

From: Mustaq Ahmed via GitHub <sysbot+gh@w3.org>
Date: Fri, 04 Nov 2016 21:35:23 +0000
To: public-pointer-events@w3.org
Message-ID: <issue_comment.created-258553526-1478295322-sysbot+gh@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

This archive was generated by hypermail 2.3.1 : Friday, 4 November 2016 21:35:30 UTC