@@ -1625,18 +1625,27 @@ Interaction Media Features</h2>
16251625 </style>
16261626 </div>
16271627
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 .
16301630
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
16331633 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,
16371640 in response to changes in the user environment
16381641 or in the way the user is interacting with the UA.
16391642
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+
16401649<h3 id="pointer">
16411650Pointing Device Quality: the 'pointer' feature</h3>
16421651
@@ -1648,10 +1657,10 @@ Pointing Device Quality: the 'pointer' feature</h3>
16481657 </pre>
16491658
16501659 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 ,
16531662 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 ,
16551664 see the 'any-pointer' media feature.)
16561665
16571666 <dl dfn-type=value dfn-for="@media/pointer">
@@ -1686,14 +1695,14 @@ Pointing Device Quality: the 'pointer' feature</h3>
16861695 even on devices whose pointing device can be described as ''fine'' ,
16871696 the UA may give a value of ''coarse'' or ''pointer/none'' to this media query,
16881697 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
16911700 wish to query the 'any-pointer' media feature to take these other ''coarse'' potential
1692- input mechanisms into account.
1701+ pointing devicess into account.
16931702
16941703 <div class="example">
16951704 <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 */
16971706 @media (pointer:coarse) {
16981707 input[type="checkbox"] , input[type="radio"] {
16991708 min-width:30px;
@@ -1714,39 +1723,41 @@ Hover Capability: the 'hover' feature</h3>
17141723 Type : discrete
17151724 </pre>
17161725
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,
17201730 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 ,
17221732 see the 'any-hover' media feature.)
17231733
17241734 <dl dfn-type=value dfn-for="@media/hover">
17251735 <dt> <dfn>none</dfn>
17261736 <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.
17301740
1731- Pointing systems that can hover,
1741+ Pointing devices that can hover,
17321742 but for which doing so is inconvenient and not part of the normal way they are used,
17331743 also match this value.
17341744 For example, a touchscreen where a long press is treated as hovering
17351745 would match ''hover: none'' .
17361746
17371747 <dt> <dfn>hover</dfn>
17381748 <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.
17401750 Examples include mice and devices that physically point at the screen, like the Nintendo Wii controller.
17411751 </dl>
17421752
17431753 <div class='example'>
17441754 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.
17471757
1758+ However, despite this, the optional mouse does allow users to hover.
17481759 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,
17501761 but they should design layouts that do not depend on hovering to be fully usable.
17511762 </div>
17521763
@@ -1814,6 +1825,9 @@ All Available Interaction Capabilities: the 'any-pointer' and 'any-hover' featur
18141825 As such, it should be understood as a query to test if any hover-capable pointing devices are present,
18151826 rather than whether or not any of the pointing devices is hover-incapable.
18161827 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.
18171831 </div>
18181832
18191833 <div class="example">
@@ -1825,15 +1839,16 @@ All Available Interaction Capabilities: the 'any-pointer' and 'any-hover' featur
18251839
18261840 <div class="note">
18271841 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
18301845 that have been detected.
18311846
18321847 Designing a page that relies on hovering or accurate pointing
18331848 only because 'any-hover' or 'any-pointer' indicate that at least one of the available
18341849 input mechanisms has these capabilities is likely to result in a poor experience.
18351850 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
18371852 are available to the user.
18381853 </div>
18391854
@@ -1846,7 +1861,7 @@ All Available Interaction Capabilities: the 'any-pointer' and 'any-hover' featur
18461861
18471862 The user may also have paired a Bluetooth mouse with the TV,
18481863 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.
18501865 'pointer' still matches ''coarse'' , while 'any-pointer' now both matches ''coarse'' and ''fine'' .
18511866
18521867 Switching to small click targets based on the fact that ''(any-pointer: fine)'' is now true
0 commit comments