HTML5 Tracker

Diff (omit for latest revision)
Filter

Short URL: http://html5.org/r/7126

SVNBugCommentTime (UTC)
7126[Gecko] [Internet Explorer] [Opera] [Webkit] Define :hover's weird HTML behaviours2012-06-08 21:33
Index: source
===================================================================
--- source	(revision 7125)
+++ source	(revision 7126)
@@ -70180,6 +70180,79 @@
    </dd>
 
 
+   <dt><dfn title="selector-hover"><code>:hover</code></dfn></dt>
+
+   <dd>
+
+    <p>The <code title="selector-hover">:hover</code> pseudo-class is
+    defined to match an element <q
+    cite="http://dev.w3.org/csswg/selectors3/#the-user-action-pseudo-classes-hover-act">while
+    the user <i>designates</i> an element with a pointing device</q>.
+    For the purposes of defining the <code
+    title="selector-hover">:hover</code> pseudo-class only, an HTML
+    user agent must consider an element as being one that the user
+    <i>designates</i> if it is:</p>
+
+    <ul>
+
+     <li>
+
+      <p>An element that the user indicates using a pointing device.</p>
+
+     </li>
+
+     <li>
+
+      <p>An element that has a descendant that the user indicates
+      using a pointing device.</p>
+
+     </li>
+
+     <li>
+
+      <p>An element that is the <span>labeled control</span> of a
+      <code>label</code> element that is currently matching <span
+      title="selector-hover">:hover</span>.</p>
+
+     </li>
+
+    </ul>
+<!--
+Demos:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1315
+ http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1316
+ http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1317
+-->
+
+    <div class="example">
+
+     <p>Consider in particular a fragment such as:</p>
+
+     <pre>&lt;p> &lt;label for=c> &lt;input id=a> &lt;/label> &lt;span id=b> &lt;input id=c> &lt;/span> &lt;/p></pre>
+
+     <p>If the user designates the element with ID "<code
+     title="">a</code>" with their pointing device, then the
+     <code>p</code> element (and all its ancestors not shown in the
+     snippet above), the <code>label</code> element, the element with
+     ID "<code title="">a</code>", and the element with ID "<code
+     title="">c</code>" will match the <span
+     title="selector-hover">:hover</span> pseudo-class. The element
+     with ID "<code title="">a</code>" matches it from condition 1,
+     the <code>label</code> and <code>p</code> elements match it
+     because of condition 2 (one of their descendants is designated),
+     and the element with ID "<code title="">c</code>" matches it
+     through condition 3 (its <code>label</code> element matches <span
+     title="selector-hover">:hover</span>). However, the element with
+     ID "<code title="">b</code>" does <em>not</em> match <span
+     title="selector-hover">:hover</span>: its descendant is not
+     designated, even though it matches <span
+     title="selector-hover">:hover</span>.</p>
+
+    </div>
+
+   </dd>
+
+
    <dt><dfn title="selector-enabled"><code>:enabled</code></dfn></dt>
 
    <dd>
@@ -70587,8 +70660,7 @@
   title="selector-target">:target</code> pseudo-class.</p>
 
   <p class="note">This specification does not define when an element
-  matches the <code title="selector-hover">:hover</code>, <code
-  title="selector-focus">:focus</code>, or <code
+  matches the <code title="selector-focus">:focus</code> or <code
   title="selector-lang()">:lang()</code> dynamic pseudo-classes, as
   those are all defined in sufficient detail in a language-agnostic
   fashion in the Selectors specification. <a

|