@@ -1625,18 +1625,27 @@ Interaction Media Features</h2>
1625
1625
</style>
1626
1626
</div>
1627
1627
1628
- The 'pointer' and 'hover' features relate to the characteristics of the “primary” input mechanism ,
1629
- while 'any-pointer' and 'any-hover' can be used to query the properties of all potentially available input mechanisms .
1628
+ The 'pointer' and 'hover' features relate to the characteristics of the “primary” pointing device ,
1629
+ while 'any-pointer' and 'any-hover' can be used to query the properties of all potentially available pointing devices .
1630
1630
1631
- Note: While this specification does not define how User Agents should decide what the “primary” input is,
1632
- the expectation is that User Agents should make this determination
1631
+ Note: While this specification does not define how user agents should decide what the “primary” pointing device is,
1632
+ the expectation is that user agents should make this determination
1633
1633
by combining knowledge about the device/environment they are running on,
1634
- the number and type of input mechanisms available,
1635
- and a notion of which of these inputs is generally and/or currently being used.
1636
- User Agents may also decide to dynamically change what type of input is deemed to be primary,
1634
+ the number and type of pointing devices available,
1635
+ and a notion of which of these is generally and/or currently being used.
1636
+ In situations where the primary input mechanism for a device is not a pointing device,
1637
+ but there is a secondary – and less frequently used – input that is a pointing devices,
1638
+ the user agent may decide to treat the non-pointing device as the primary (resulting in 'pointer: none' ).
1639
+ user agents may also decide to dynamically change what type of pointing device is deemed to be primary,
1637
1640
in response to changes in the user environment
1638
1641
or in the way the user is interacting with the UA.
1639
1642
1643
+ Note: The 'pointer' , 'hover' , 'any-pointer' and 'any-hover' features only relate to the characteristics,
1644
+ or the complete absence, of pointing devices,
1645
+ and can not be used to detect the presence of non-pointing device input mechanisms such as keyboards.
1646
+ Authors should take into account the potential presence of non-pointing device inputs,
1647
+ regardless of which values are matched when querying these features.
1648
+
1640
1649
<h3 id="pointer">
1641
1650
Pointing Device Quality: the 'pointer' feature</h3>
1642
1651
@@ -1648,10 +1657,10 @@ Pointing Device Quality: the 'pointer' feature</h3>
1648
1657
</pre>
1649
1658
1650
1659
The 'pointer' media feature is used to query the presence and accuracy of a pointing device such as a mouse.
1651
- If a device has multiple input mechanisms ,
1652
- the 'pointer' media feature must reflect the characteristics of the “primary” input mechanism ,
1660
+ If multiple pointing devices are present ,
1661
+ the 'pointer' media feature must reflect the characteristics of the “primary” pointing device ,
1653
1662
as determined by the user agent.
1654
- (To query the capabilities of <em> any</em> available input mechanism ,
1663
+ (To query the capabilities of <em> any</em> available pointing devices ,
1655
1664
see the 'any-pointer' media feature.)
1656
1665
1657
1666
<dl dfn-type=value dfn-for="@media/pointer">
@@ -1686,14 +1695,14 @@ Pointing Device Quality: the 'pointer' feature</h3>
1686
1695
even on devices whose pointing device can be described as ''fine'' ,
1687
1696
the UA may give a value of ''coarse'' or ''pointer/none'' to this media query,
1688
1697
to indicate that the user has difficulties manipulating the pointing device accurately or at all.
1689
- In addition, even if the primary input mechanism has ''fine'' pointing accuracy,
1690
- there may be additional ''coarse'' input mechanisms available to the user. Authors may
1698
+ In addition, even if the primary pointing device has ''fine'' pointing accuracy,
1699
+ there may be additional ''coarse'' pointing devices available to the user. Authors may
1691
1700
wish to query the 'any-pointer' media feature to take these other ''coarse'' potential
1692
- input mechanisms into account.
1701
+ pointing devicess into account.
1693
1702
1694
1703
<div class="example">
1695
1704
<pre>
1696
- /* Make radio buttons and check boxes larger if we have an inaccurate pointing device */
1705
+ /* Make radio buttons and check boxes larger if we have an inaccurate primary pointing device */
1697
1706
@media (pointer:coarse) {
1698
1707
input[type="checkbox"] , input[type="radio"] {
1699
1708
min-width:30px;
@@ -1714,39 +1723,41 @@ Hover Capability: the 'hover' feature</h3>
1714
1723
Type : discrete
1715
1724
</pre>
1716
1725
1717
- The 'hover' media feature is used to query the user's ability to hover over elements on the page.
1718
- If a device has multiple input mechanisms,
1719
- the 'hover' media feature must reflect the characteristics of the “primary” input mechanism,
1726
+ The 'hover' media feature is used to query the user's ability to hover over elements on the page
1727
+ with the primary pointing device.
1728
+ If a device has multiple pointing devices,
1729
+ the 'hover' media feature must reflect the characteristics of the “primary” pointing device,
1720
1730
as determined by the user agent.
1721
- (To query the capabilities of <em> any</em> available input mechanism ,
1731
+ (To query the capabilities of <em> any</em> available pointing devices ,
1722
1732
see the 'any-hover' media feature.)
1723
1733
1724
1734
<dl dfn-type=value dfn-for="@media/hover">
1725
1735
<dt> <dfn>none</dfn>
1726
1736
<dd>
1727
- Indicates that the primary pointing system can't hover,
1728
- or there is no pointing system .
1729
- Examples include touchscreens and screens that use a drawing stylus.
1737
+ Indicates that the primary pointing device can't hover,
1738
+ or that there is no pointing device .
1739
+ Examples include touchscreens and screens that use a basic drawing stylus.
1730
1740
1731
- Pointing systems that can hover,
1741
+ Pointing devices that can hover,
1732
1742
but for which doing so is inconvenient and not part of the normal way they are used,
1733
1743
also match this value.
1734
1744
For example, a touchscreen where a long press is treated as hovering
1735
1745
would match ''hover: none'' .
1736
1746
1737
1747
<dt> <dfn>hover</dfn>
1738
1748
<dd>
1739
- Indicates that the primary pointing system can easily hover over parts of the page.
1749
+ Indicates that the primary pointing device can easily hover over parts of the page.
1740
1750
Examples include mice and devices that physically point at the screen, like the Nintendo Wii controller.
1741
1751
</dl>
1742
1752
1743
1753
<div class='example'>
1744
1754
For example, on a touch screen device that can also be controlled by an optional mouse,
1745
- the 'hover' <a>media feature</a> should match ''hover/ none'' ,
1746
- as the primary interaction mode (touching the screen) can't hover.
1755
+ the 'hover' <a>media feature</a> should match ''hover: none'' ,
1756
+ as the primary pointing device ( the touch screen) does not allow the user to hover.
1747
1757
1758
+ However, despite this, the optional mouse does allow users to hover.
1748
1759
Authors should therefore be careful not to assume that the ':hover' pseudo class
1749
- will never match on device where 'hover:none' is true,
1760
+ will never match on a device where 'hover:none' is true,
1750
1761
but they should design layouts that do not depend on hovering to be fully usable.
1751
1762
</div>
1752
1763
@@ -1814,6 +1825,9 @@ All Available Interaction Capabilities: the 'any-pointer' and 'any-hover' featur
1814
1825
As such, it should be understood as a query to test if any hover-capable pointing devices are present,
1815
1826
rather than whether or not any of the pointing devices is hover-incapable.
1816
1827
The latter scenario can currently not be determined using 'any-hover' or any other interaction media feature.
1828
+ Additionally, it does not take into account any non-pointing device inputs,
1829
+ such as d-pads or keyboard-only controls,
1830
+ which by their very nature are also not hover-capable.
1817
1831
</div>
1818
1832
1819
1833
<div class="example">
@@ -1825,15 +1839,16 @@ All Available Interaction Capabilities: the 'any-pointer' and 'any-hover' featur
1825
1839
1826
1840
<div class="note">
1827
1841
While 'pointer' and 'hover' can be used to design the main style and interaction
1828
- mode of the page to suit the primary input mechanism, 'any-pointer' and 'any-hover'
1829
- can be used to potentially take into account all possible types of pointers
1842
+ mode of the page to suit the primary input mechanism (based on the characteristics, or complete absence,
1843
+ of the primary pointing device), 'any-pointer' and 'any-hover'
1844
+ can be used to potentially take into account all possible types of pointing devices
1830
1845
that have been detected.
1831
1846
1832
1847
Designing a page that relies on hovering or accurate pointing
1833
1848
only because 'any-hover' or 'any-pointer' indicate that at least one of the available
1834
1849
input mechanisms has these capabilities is likely to result in a poor experience.
1835
1850
However, authors may use this information to inform their decision about the style and
1836
- functionality they wish to provide based on additional input mechanisms that
1851
+ functionality they wish to provide based on any additional pointing devices that
1837
1852
are available to the user.
1838
1853
</div>
1839
1854
@@ -1846,7 +1861,7 @@ All Available Interaction Capabilities: the 'any-pointer' and 'any-hover' featur
1846
1861
1847
1862
The user may also have paired a Bluetooth mouse with the TV,
1848
1863
and occasionally use it for extra convenience,
1849
- but such the mouse is not the main way the TV is operated.
1864
+ but this mouse is not the main way the TV is operated.
1850
1865
'pointer' still matches ''coarse'' , while 'any-pointer' now both matches ''coarse'' and ''fine'' .
1851
1866
1852
1867
Switching to small click targets based on the fact that ''(any-pointer: fine)'' is now true
0 commit comments