-
Notifications
You must be signed in to change notification settings - Fork 756
Description
The section on Interaction Media Features https://drafts.csswg.org/mediaqueries-4/#mf-interaction makes, throughout its description text, a hard distinction between the "primary" input and other input types, even going as far as labelling the others as "rare".
As pointed out previously (e.g. in this article https://dev.opera.com/articles/media-features/ - which needs updating due to the removal of on-demand), fundamentally this hard distinction is becoming much more blurry nowadays.
For instance, on a touch-enabled laptop, or one of those new Surface Studio desktop devices, what is the primary input? I know the idea is that the OS/UA will make that call, but by virtue of even having that distinction in the spec, you're discounting the increasing possibility that devices have multiple equi-potent input modalities. There may well be more than one "primary" input, and labelling anything other than whatever the OS/UA decides is "primary" as being "rare" is an inappropriate qualitative statement in the spec.
At the very least, I would like to see language such as "rare" being amended/removed. Call it "secondary", at a stretch, and possibly include stronger advice that the any-* results should be treated not as some courtesy
some extra conveniences or non essential controls can be offered to users who have additional ways to interact.
because if a user does rely on whatever the OS/UA deems as "rare"/"secondary", then it's not just about being "nice" to the user...if you rely on things like hovering or high pointing precision, you ARE going to stop users from being able to use your site/app if you only concentrate on the "primary".
More fundamentally, I'd actually love to see the concept of "primary" input go away altogether as it's increasingly inappropriate in multi-input environments, but I take it that'd be a step too far?
(for what it's worth, note for instance that in the Pointer Events spec, we don't try to categorise any type of pointer by it being "primary" or not...they're all treated as equally valid/important)