Skip to content

[mediaqueries-4] More explicit clarification for when any-* 'none' evaluates to true #842

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 33 additions & 2 deletions mediaqueries/Overview.bs
Original file line number Diff line number Diff line change
Expand Up @@ -1759,11 +1759,42 @@ All Available Interaction Capabilities: the 'any-pointer' and 'any-hover' featur

The 'any-pointer' and 'any-hover' media features are identical to the 'pointer' and 'hover' media features,
but they correspond to the union of capabilities of all the pointing devices available to the user.
More than one of their values can match,
In the case of 'any-pointer', more than one of the values can match,
if different pointing devices have different characteristics.
They must only match ''none'' if <em>all</em> of the pointing devices would match ''none'' for the corresponding query,

'any-pointer' and 'any-hover' must only match ''none'' if <em>all</em> of the pointing devices would match ''none'' for the corresponding query,
or there are no pointing devices at all.

<div class="note">
'any-pointer' is used to query the presence and accuracy of pointing devices.
It does not take into account any additional non-pointing device inputs,
and can not be used to test for the presence of other input mechanisms,
such as d-pads or keyboard-only controls,
that don't move an on-screen pointer.
'any-pointer:none' will only evaluate to true if there are no pointing devices at all present.
</div>

<div class="example">
On a traditional desktop environment with a mouse and keyboard,
'any-pointer:none' will be false (due to the presence of the mouse),
even though a non-pointer input (the keyboard) is also present.
</div>

<div class="note">
'any-hover:none' will only evaluate to true if there are no pointing devices,
or if all the pointing devices present lack hover capabilities.
As such, it should not be understood as a query to test if any hover-capable pointing devices are present,
rather than whether or not any of the pointing devices is not hover-capable.
The latter scenario can currently not be determined using 'any-hover' or any other interaction media feature.
</div>

<div class="example">
On a touch-enabled laptop with a mouse and a touchscreen,
'any-hover:none' will evaluate to false (due to the presence of the hover-capable mouse),
even though a non-hover-capable pointing device (the touchscreen) is also present.
It is currently not possible to provide different styles for cases where different pointing devices have different hover capabilities.
</div>

<div class="note">
While 'pointer' and 'hover' can be used to design the main style and interaction
mode of the page to suit the primary input mechanism, 'any-pointer' and 'any-hover'
Expand Down