[html5] r5154 - [giow] (0) Captions - Stage 22: rendering: the CSS extensions

whatwg at whatwg.org whatwg at whatwg.org
Tue Jul 13 15:24:34 PDT 2010


Author: ianh
Date: 2010-07-13 15:24:33 -0700 (Tue, 13 Jul 2010)
New Revision: 5154

Modified:
   complete.html
   index
   source
Log:
[giow] (0) Captions - Stage 22: rendering: the CSS extensions

Modified: complete.html
===================================================================
--- complete.html	2010-07-13 08:19:18 UTC (rev 5153)
+++ complete.html	2010-07-13 22:24:33 UTC (rev 5154)
@@ -1294,7 +1294,10 @@
       <ol>
        <li><a href=#websrt-cue-text-rendering-rules><span class=secno>14.3.2.1 </span>WebSRT cue text rendering rules</a></li>
        <li><a href=#applying-css-properties-to-websrt-node-objects><span class=secno>14.3.2.2 </span>Applying CSS properties to WebSRT Node Objects</a></li>
-       <li><a href=#css-extensions><span class=secno>14.3.2.3 </span>CSS extensions</a></ol></li>
+       <li><a href=#css-extensions><span class=secno>14.3.2.3 </span>CSS extensions</a>
+        <ol>
+         <li><a href="#the-'::cue'-pseudo-element"><span class=secno>14.3.2.3.1 </span>The '::cue' pseudo-element</a></li>
+         <li><a href="#the-'::cue-part'-pseudo-element"><span class=secno>14.3.2.3.2 </span>The '::cue-part' pseudo-element</a></ol></ol></li>
      <li><a href=#images-0><span class=secno>14.3.3 </span>Images</a></li>
      <li><a href=#attributes-for-embedded-content-and-images><span class=secno>14.3.4 </span>Attributes for embedded content and images</a></li>
      <li><a href=#image-maps-0><span class=secno>14.3.5 </span>Image maps</a></li>
@@ -27650,11 +27653,12 @@
     <ul class=brief><li>One character in the range U+0031 DIGIT ONE (1) to U+0039
      DIGIT NINE (9), followed by zero or more characters in the range
      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-     <li>The string "<code title="">narrator</code>".</li>
-     <li>The string "<code title="">music</code>".</li>
-     <li>The string "<code title="">sound</code>".</li> <!-- for audio fx descriptions -->
-     <li>The string "<code title="">comment</code>".</li> <!-- for annotations -->
-     <li>The string "<code title="">credit</code>".</li>
+     <li>The string "<dfn id=timed-track-cue-narrator-voice title="timed track cue narrator voice"><code>narrator</code></dfn>".</li>
+     <li>The string "<dfn id=timed-track-cue-music-voice title="timed track cue music voice"><code>music</code></dfn>".</li>
+     <li>The string "<dfn id=timed-track-cue-lyric-voice title="timed track cue lyric voice"><code>lyric</code></dfn>".</li>
+     <li>The string "<dfn id=timed-track-cue-sound-voice title="timed track cue sound voice"><code>sound</code></dfn>".</li> <!-- for audio fx descriptions -->
+     <li>The string "<dfn id=timed-track-cue-comment-voice title="timed track cue comment voice"><code>comment</code></dfn>".</li> <!-- for annotations -->
+     <li>The string "<dfn id=timed-track-cue-credit-voice title="timed track cue credit voice"><code>credit</code></dfn>".</li>
     </ul></li>
    <li>A U+003E GREATER-THAN SIGN character (>).</li>
   </ol><p><dfn id=websrt-cue-text>WebSRT cue text</dfn> consists of one or more of the
@@ -28311,35 +28315,42 @@
     <dl class=switch><dt>If <var title="">input</var> starts with the string "<code title=""><narrator></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">narrator</code>"
+      identifier</a> be the string "<code title="timed track cue narrator voice"><a href=#timed-track-cue-narrator-voice>narrator</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
      <dt>If <var title="">input</var> starts with the string "<code title=""><music></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">music</code>"
+      identifier</a> be the string "<code title="timed track cue music voice"><a href=#timed-track-cue-music-voice>music</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
+     <dt>If <var title="">input</var> starts with the string "<code title=""><lyric></code>"</dt>
+     <dd>
+      <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
+      identifier</a> be the string "<code title="timed track cue lyric voice"><a href=#timed-track-cue-lyric-voice>lyric</a></code>"
+      and advance <var title="">position</var> past the matching substring.</p>
+     </dd>
+
      <dt>If <var title="">input</var> starts with the string "<code title=""><sound></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">sound</code>"
+      identifier</a> be the string "<code title="timed track cue sound voice"><a href=#timed-track-cue-sound-voice>sound</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
      <dt>If <var title="">input</var> starts with the string "<code title=""><comment></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">comment</code>"
+      identifier</a> be the string "<code title="timed track cue comment voice"><a href=#timed-track-cue-comment-voice>comment</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
      <dt>If <var title="">input</var> starts with the string "<code title=""><credit></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">credit</code>"
+      identifier</a> be the string "<code title="timed track cue credit voice"><a href=#timed-track-cue-credit-voice>credit</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
@@ -86677,9 +86688,8 @@
        anonymous boxes whose 'display' property has the value
        'ruby-base'. <a href=#refsCSSRUBY>[CSSRUBY]</a></li>
 
-       <li>All properties on <a href=#websrt-node-object title="WebSRT Node Object">WebSRT
-       Node Objects</a> have their initial values, except as
-       explicitly overridden for specific nodes in the next
+       <li>Properties on <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node
+       Objects</a> have their values set as defined in the next
        section. (That section uses some of the variables whose values
        were calculated earlier in this algorithm.)</li>
 
@@ -86969,7 +86979,15 @@
   element</a> or other playback mechanism, then they must be
   interpreted as defined in the next section.</p>
 
-  <p>All other properties must be set to their initial values.</p>
+  <p>All other non-inherited properties must be set to their initial
+  values; inherited properties on the root <a href=#list-of-websrt-node-objects>List of WebSRT Node
+  Objects</a> must inherit their values from the <a href=#media-element>media
+  element</a> for which the <a href=#timed-track-cue>timed track cue</a> is being
+  rendered, if any. If there is no <a href=#media-element>media element</a> (i.e. if
+  the <a href=#timed-track>timed track</a> is being rendered for another media
+  playback mechanism), then inherited properties on the root
+  <a href=#list-of-websrt-node-objects>List of WebSRT Node Objects</a> must take their initial
+  values.</p>
 
 
   <h5 id=css-extensions><span class=secno>14.3.2.3 </span>CSS extensions</h5>
@@ -86984,38 +87002,217 @@
   <a href=#timed-track-cue title="timed track cue">cue</a> is being rendered, even in
   between applications of the <a href=#websrt-cue-text-rendering-rules>WebSRT cue text rendering
   rules</a> (which are only run when the set of active cues
-  changes). User agents that support these pseudo-elements must
-  dynamically update renderings accordingly.</p>
+  changes). User agents that support the pseudo-element described
+  below must dynamically update renderings accordingly.</p>
 
-  <!-- XXX
+  <p>Pseudo-elements apply to elements that are matched by
+  selectors. For the purpose of this section, that element is the
+  <i>matched element</i>. The pseudo-elements defined in the following
+  sections affect the styling of parts of <a href=#timed-track-cue title="timed track
+  cue">timed track cues</a> that are being rendered for the
+  <i>matched element</i>.</p>
 
-   rules for rendering the list of active cues:
-    - for each segment, decide if it's before or after the current
-      playback position.
-    - style it, using the voice and other styles.
+  <p class=note>If the <i>matched element</i> is not a
+  <code><a href=#video>video</a></code> element, the pseudo-elements defined below won't
+  have any effect according to this specification.</p>
 
-   It's important that we support transitions when the styles
-   change. Would be nice to support transitions that are directional,
+
+  <h6 id="the-'::cue'-pseudo-element"><span class=secno>14.3.2.3.1 </span>The '::cue' pseudo-element</h6>
+
+  <p>A CSS user agent that implemented the <a href=#timed-track title="timed
+  track">timed tracks</a> model must implement the '::cue'
+  pseudo-element.</p>
+
+  <p>The '<dfn id=pseudo-cue title=pseudo-cue>::cue</dfn>' pseudo-element matches
+  any <a href=#list-of-websrt-node-objects>List of WebSRT Node Objects</a> constructed for the
+  <i>matched element</i>, with the exception that the properties
+  corresponding to the 'background' shorthand must be applied to the
+  <a href=#websrt-cue-background-box>WebSRT cue background box</a> rather than the <a href=#list-of-websrt-node-objects>List of
+  WebSRT Node Objects</a>.</p>
+
+  <p>The following properties apply to the '::cue' pseudo-element;
+  other properties set on the pseudo-element must be ignored:</p>
+
+  <ul class=brief><li>'color'</li>
+   <li>'text-shadow'</li>
+   <li>'text-outline'</li>
+   <li>the properties corresponding to the 'background' shorthand</li>
+   <li>the properties corresponding to the 'outline' shorthand</li>
+   <li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+   <!-- add more... -->
+   <!-- definitely not:
+          display, float, position, top, left, right, bottom, width,
+          height, margin-top, margin-bottom, margin-left, margin-right,
+          clip, clear, content, cursor, direction, max-height,
+          min-height, max-width, min-width, orphans, overflow,
+          page-break-*, text-align, unicode-bidi, widows, z-index
+   -->
+  </ul><h6 id="the-'::cue-part'-pseudo-element"><span class=secno>14.3.2.3.2 </span>The '::cue-part' pseudo-element</h6>
+
+  <p>A CSS user agent that implemented the <a href=#timed-track title="timed
+  track">timed tracks</a> model must implement the '::cue-part(<var title="">filter</var>)' pseudo-element.</p>
+
+  <p>The '<dfn id=pseudo-cue-part title=pseudo-cue-part>::cue-part(<var title="">argument</var>)</dfn>' pseudo-element matches any
+  <a href=#websrt-node-object>WebSRT Node Object</a> constructed for the <i>matched
+  element</i> that matches the given <var title="">argument</var>.</p>
+
+  <p>The <var title="">argument</var> must match the syntax
+  "<voice> || <part> || <position> || <future-compatibility>". <a href=#refsCSS>[CSS]</a></p>
+  
+  <p>The "<voice>" component must be either a non-negative
+  <integer> or one of the keywords "<code title=pseudo-cue-part-narrator><a href=#pseudo-cue-part-narrator>narrator</a></code>", "<code title=pseudo-cue-part-music><a href=#pseudo-cue-part-music>music</a></code>", "<code title=pseudo-cue-part-lyric><a href=#pseudo-cue-part-lyric>lyric</a></code>", "<code title=pseudo-cue-part-sound><a href=#pseudo-cue-part-sound>sound</a></code>", "<code title=pseudo-cue-part-comment><a href=#pseudo-cue-part-comment>comment</a></code>", or "<code title=pseudo-cue-part-credit><a href=#pseudo-cue-part-credit>credit</a></code>".</p>
+
+  <p>The "<part>" component must be one of the keywords "<code title=pseudo-cue-part-i><a href=#pseudo-cue-part-i>i</a></code>", "<code title=pseudo-cue-part-b><a href=#pseudo-cue-part-b>b</a></code>", "<code title=pseudo-cue-part-ruby><a href=#pseudo-cue-part-ruby>ruby</a></code>", or "<code title=pseudo-cue-part-rt><a href=#pseudo-cue-part-rt>rt</a></code>".</p>
+
+  <p>The "<position>" component must be one of the keywords "<code title=pseudo-cue-part-past><a href=#pseudo-cue-part-past>past</a></code>" or "<code title=pseudo-cue-part-future><a href=#pseudo-cue-part-future>future</a></code>".</p>
+
+  <p>The "<future-compatibility>" component can be any
+  identifier.</p>
+
+  <p>Each component of <var title="">argument</var> restricts which
+  <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> are
+  matched by the pseudo-element, as follows:</p>
+
+  <dl><dt>An integer greater than or equal to zero</dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is the given number expressed in
+    base ten with digits in the range U+0030 DIGIT ZERO (0) to U+0039
+    DIGIT NINE (9).</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-narrator title=pseudo-cue-part-narrator><code>narrator</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    narrator voice"><a href=#timed-track-cue-narrator-voice>narrator</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-music title=pseudo-cue-part-music><code>music</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    music voice"><a href=#timed-track-cue-music-voice>music</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-lyric title=pseudo-cue-part-lyric><code>lyric</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    lyric voice"><a href=#timed-track-cue-lyric-voice>lyric</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-sound title=pseudo-cue-part-sound><code>sound</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    sound voice"><a href=#timed-track-cue-sound-voice>sound</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-comment title=pseudo-cue-part-comment><code>comment</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    comment voice"><a href=#timed-track-cue-comment-voice>comment</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-credit title=pseudo-cue-part-credit><code>credit</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    credit voice"><a href=#timed-track-cue-credit-voice>credit</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-i title=pseudo-cue-part-i><code>i</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-italic-object title="WebSRT Italic Object">WebSRT Italic Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-b title=pseudo-cue-part-b><code>b</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-bold-object title="WebSRT Bold Object">WebSRT Bold Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-ruby title=pseudo-cue-part-ruby><code>ruby</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-ruby-object title="WebSRT Ruby Object">WebSRT Ruby Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-rt title=pseudo-cue-part-rt><code>rt</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-ruby-text-object title="WebSRT Ruby Text Object">WebSRT Ruby Text Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-past title=pseudo-cue-part-past><code>past</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> that are <i><a href=#in-the-past>in the past</a></i>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-future title=pseudo-cue-part-future><code>future</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> that are <i><a href=#in-the-future>in the future</a></i>.</p>
+   </dd>
+
+   <dt>Any other identifier</dt>
+   <dd>
+    <p>Restricts the pseudo-element to not matching any <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a>.</p>
+    <p class=note>This is intended to allow for future extensions
+    while still allowing Selectors to include a mixture of old and new
+    '::cue-part()' pseudo-elements.</p>
+   </dd>
+
+  </dl><p>A <a href=#websrt-node-object>WebSRT Node Object</a> <var title="">c</var> is
+  <dfn id=in-the-past>in the past</dfn> if, in a pre-order, depth-first traversal of
+  the <a href=#timed-track-cue>timed track cue</a>'s <a href=#list-of-websrt-node-objects>List of WebSRT Node
+  Objects</a>, there exists a <a href=#websrt-timestamp-object>WebSRT Timestamp Object</a>
+  whose value is less than the <a href=#current-playback-position>current playback position</a>
+  of the <a href=#media-element>media element</a> that is the <i>matched
+  element</i>, entirely after the <a href=#websrt-node-object>WebSRT Node Object</a> <var title="">c</var>.</p>
+
+  <p>A <a href=#websrt-node-object>WebSRT Node Object</a> <var title="">c</var> is
+  <dfn id=in-the-future>in the future</dfn> if, in a pre-order, depth-first traversal
+  of the <a href=#timed-track-cue>timed track cue</a>'s <a href=#list-of-websrt-node-objects>List of WebSRT Node
+  Objects</a>, there exists a <a href=#websrt-timestamp-object>WebSRT Timestamp Object</a>
+  whose value is greater than the <a href=#current-playback-position>current playback
+  position</a> of the <a href=#media-element>media element</a> that is the
+  <i>matched element</i>, entirely before the <a href=#websrt-node-object>WebSRT Node
+  Object</a> <var title="">c</var>.</p>
+
+  <p>The following properties apply to the '::cue-part(<var title="">filter</var>)' pseudo-element:</p>
+
+  <ul class=brief><li>'color'</li>
+   <li>'text-shadow'</li>
+   <li>'text-outline'</li>
+   <li>the properties corresponding to the 'background' shorthand</li>
+   <li>the properties corresponding to the 'outline' shorthand</li>
+   <li>properties relating to the transition and animation features</li>
+   <!-- add more... -->
+   <!-- but definitely not anything that affects dimensions of boxes -->
+  </ul><!--v2
+   Would be nice to support transitions that are directional,
    e.g. changing text fill colour or shadow size of the start of a
-   segment when the segment becomes "before", and having the change
+   segment when the segment becomes "past", and having the change
    propagate towards the end of the segment so that it reaches the end
-   of the segment when the next segment becomes "before".
+   of the segment when the next segment becomes "past".
+  --><p>The following properties apply to the '::cue-part(<var title="">filter</var>)' pseudo-element if the neither of the <code title=pseudo-cue-part-past><a href=#pseudo-cue-part-past>past</a></code> or <code title=pseudo-cue-part-future><a href=#pseudo-cue-part-future>future</a></code> keywords are
+  present:</p>
 
-   properties that only apply to the cue as a whole, and i, b, ruby, rt:
-    - font
-    - line-height
-    - anything else that affects the size of CSS boxes but not their kind or their position independant of their size
+  <ul class=brief><li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+   <!-- add more... -->
+   <!-- definitely not:
+          display, float, position, top, left, right, bottom, width,
+          height, margin-top, margin-bottom, margin-left, margin-right,
+          clip, clear, content, cursor, direction, max-height,
+          min-height, max-width, min-width, orphans, overflow,
+          page-break-*, text-align, unicode-bidi, widows, z-index
+   -->
+  </ul><p>Other properties must be ignored.</p>
 
-   properties that apply to the above as well as 'before' and 'after' parts:
-    - color
-    - background
-    - outline
-    - anything else that doesn't affect the size or position or kind of CSS boxes
+  <p>As a special exception, the properties corresponding to the
+  'background' shorthand, when they would have been applied to the
+  <a href=#list-of-websrt-node-objects>List of WebSRT Node Objects</a>, must instead be applied to
+  the <a href=#websrt-cue-background-box>WebSRT cue background box</a>.</p>
 
-  -->
-
-  <p class=XXX>...</p>
-
   </div>
 </div>
 <!--TT-->

Modified: index
===================================================================
--- index	2010-07-13 08:19:18 UTC (rev 5153)
+++ index	2010-07-13 22:24:33 UTC (rev 5154)
@@ -1164,7 +1164,10 @@
       <ol>
        <li><a href=#websrt-cue-text-rendering-rules><span class=secno>12.3.2.1 </span>WebSRT cue text rendering rules</a></li>
        <li><a href=#applying-css-properties-to-websrt-node-objects><span class=secno>12.3.2.2 </span>Applying CSS properties to WebSRT Node Objects</a></li>
-       <li><a href=#css-extensions><span class=secno>12.3.2.3 </span>CSS extensions</a></ol></li>
+       <li><a href=#css-extensions><span class=secno>12.3.2.3 </span>CSS extensions</a>
+        <ol>
+         <li><a href="#the-'::cue'-pseudo-element"><span class=secno>12.3.2.3.1 </span>The '::cue' pseudo-element</a></li>
+         <li><a href="#the-'::cue-part'-pseudo-element"><span class=secno>12.3.2.3.2 </span>The '::cue-part' pseudo-element</a></ol></ol></li>
      <li><a href=#images-0><span class=secno>12.3.3 </span>Images</a></li>
      <li><a href=#attributes-for-embedded-content-and-images><span class=secno>12.3.4 </span>Attributes for embedded content and images</a></li>
      <li><a href=#image-maps-0><span class=secno>12.3.5 </span>Image maps</a></li>
@@ -27577,11 +27580,12 @@
     <ul class=brief><li>One character in the range U+0031 DIGIT ONE (1) to U+0039
      DIGIT NINE (9), followed by zero or more characters in the range
      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-     <li>The string "<code title="">narrator</code>".</li>
-     <li>The string "<code title="">music</code>".</li>
-     <li>The string "<code title="">sound</code>".</li> <!-- for audio fx descriptions -->
-     <li>The string "<code title="">comment</code>".</li> <!-- for annotations -->
-     <li>The string "<code title="">credit</code>".</li>
+     <li>The string "<dfn id=timed-track-cue-narrator-voice title="timed track cue narrator voice"><code>narrator</code></dfn>".</li>
+     <li>The string "<dfn id=timed-track-cue-music-voice title="timed track cue music voice"><code>music</code></dfn>".</li>
+     <li>The string "<dfn id=timed-track-cue-lyric-voice title="timed track cue lyric voice"><code>lyric</code></dfn>".</li>
+     <li>The string "<dfn id=timed-track-cue-sound-voice title="timed track cue sound voice"><code>sound</code></dfn>".</li> <!-- for audio fx descriptions -->
+     <li>The string "<dfn id=timed-track-cue-comment-voice title="timed track cue comment voice"><code>comment</code></dfn>".</li> <!-- for annotations -->
+     <li>The string "<dfn id=timed-track-cue-credit-voice title="timed track cue credit voice"><code>credit</code></dfn>".</li>
     </ul></li>
    <li>A U+003E GREATER-THAN SIGN character (>).</li>
   </ol><p><dfn id=websrt-cue-text>WebSRT cue text</dfn> consists of one or more of the
@@ -28238,35 +28242,42 @@
     <dl class=switch><dt>If <var title="">input</var> starts with the string "<code title=""><narrator></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">narrator</code>"
+      identifier</a> be the string "<code title="timed track cue narrator voice"><a href=#timed-track-cue-narrator-voice>narrator</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
      <dt>If <var title="">input</var> starts with the string "<code title=""><music></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">music</code>"
+      identifier</a> be the string "<code title="timed track cue music voice"><a href=#timed-track-cue-music-voice>music</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
+     <dt>If <var title="">input</var> starts with the string "<code title=""><lyric></code>"</dt>
+     <dd>
+      <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
+      identifier</a> be the string "<code title="timed track cue lyric voice"><a href=#timed-track-cue-lyric-voice>lyric</a></code>"
+      and advance <var title="">position</var> past the matching substring.</p>
+     </dd>
+
      <dt>If <var title="">input</var> starts with the string "<code title=""><sound></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">sound</code>"
+      identifier</a> be the string "<code title="timed track cue sound voice"><a href=#timed-track-cue-sound-voice>sound</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
      <dt>If <var title="">input</var> starts with the string "<code title=""><comment></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">comment</code>"
+      identifier</a> be the string "<code title="timed track cue comment voice"><a href=#timed-track-cue-comment-voice>comment</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
      <dt>If <var title="">input</var> starts with the string "<code title=""><credit></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
-      identifier</a> be the string "<code title="">credit</code>"
+      identifier</a> be the string "<code title="timed track cue credit voice"><a href=#timed-track-cue-credit-voice>credit</a></code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
@@ -79918,9 +79929,8 @@
        anonymous boxes whose 'display' property has the value
        'ruby-base'. <a href=#refsCSSRUBY>[CSSRUBY]</a></li>
 
-       <li>All properties on <a href=#websrt-node-object title="WebSRT Node Object">WebSRT
-       Node Objects</a> have their initial values, except as
-       explicitly overridden for specific nodes in the next
+       <li>Properties on <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node
+       Objects</a> have their values set as defined in the next
        section. (That section uses some of the variables whose values
        were calculated earlier in this algorithm.)</li>
 
@@ -80210,7 +80220,15 @@
   element</a> or other playback mechanism, then they must be
   interpreted as defined in the next section.</p>
 
-  <p>All other properties must be set to their initial values.</p>
+  <p>All other non-inherited properties must be set to their initial
+  values; inherited properties on the root <a href=#list-of-websrt-node-objects>List of WebSRT Node
+  Objects</a> must inherit their values from the <a href=#media-element>media
+  element</a> for which the <a href=#timed-track-cue>timed track cue</a> is being
+  rendered, if any. If there is no <a href=#media-element>media element</a> (i.e. if
+  the <a href=#timed-track>timed track</a> is being rendered for another media
+  playback mechanism), then inherited properties on the root
+  <a href=#list-of-websrt-node-objects>List of WebSRT Node Objects</a> must take their initial
+  values.</p>
 
 
   <h5 id=css-extensions><span class=secno>12.3.2.3 </span>CSS extensions</h5>
@@ -80225,38 +80243,217 @@
   <a href=#timed-track-cue title="timed track cue">cue</a> is being rendered, even in
   between applications of the <a href=#websrt-cue-text-rendering-rules>WebSRT cue text rendering
   rules</a> (which are only run when the set of active cues
-  changes). User agents that support these pseudo-elements must
-  dynamically update renderings accordingly.</p>
+  changes). User agents that support the pseudo-element described
+  below must dynamically update renderings accordingly.</p>
 
-  <!-- XXX
+  <p>Pseudo-elements apply to elements that are matched by
+  selectors. For the purpose of this section, that element is the
+  <i>matched element</i>. The pseudo-elements defined in the following
+  sections affect the styling of parts of <a href=#timed-track-cue title="timed track
+  cue">timed track cues</a> that are being rendered for the
+  <i>matched element</i>.</p>
 
-   rules for rendering the list of active cues:
-    - for each segment, decide if it's before or after the current
-      playback position.
-    - style it, using the voice and other styles.
+  <p class=note>If the <i>matched element</i> is not a
+  <code><a href=#video>video</a></code> element, the pseudo-elements defined below won't
+  have any effect according to this specification.</p>
 
-   It's important that we support transitions when the styles
-   change. Would be nice to support transitions that are directional,
+
+  <h6 id="the-'::cue'-pseudo-element"><span class=secno>12.3.2.3.1 </span>The '::cue' pseudo-element</h6>
+
+  <p>A CSS user agent that implemented the <a href=#timed-track title="timed
+  track">timed tracks</a> model must implement the '::cue'
+  pseudo-element.</p>
+
+  <p>The '<dfn id=pseudo-cue title=pseudo-cue>::cue</dfn>' pseudo-element matches
+  any <a href=#list-of-websrt-node-objects>List of WebSRT Node Objects</a> constructed for the
+  <i>matched element</i>, with the exception that the properties
+  corresponding to the 'background' shorthand must be applied to the
+  <a href=#websrt-cue-background-box>WebSRT cue background box</a> rather than the <a href=#list-of-websrt-node-objects>List of
+  WebSRT Node Objects</a>.</p>
+
+  <p>The following properties apply to the '::cue' pseudo-element;
+  other properties set on the pseudo-element must be ignored:</p>
+
+  <ul class=brief><li>'color'</li>
+   <li>'text-shadow'</li>
+   <li>'text-outline'</li>
+   <li>the properties corresponding to the 'background' shorthand</li>
+   <li>the properties corresponding to the 'outline' shorthand</li>
+   <li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+   <!-- add more... -->
+   <!-- definitely not:
+          display, float, position, top, left, right, bottom, width,
+          height, margin-top, margin-bottom, margin-left, margin-right,
+          clip, clear, content, cursor, direction, max-height,
+          min-height, max-width, min-width, orphans, overflow,
+          page-break-*, text-align, unicode-bidi, widows, z-index
+   -->
+  </ul><h6 id="the-'::cue-part'-pseudo-element"><span class=secno>12.3.2.3.2 </span>The '::cue-part' pseudo-element</h6>
+
+  <p>A CSS user agent that implemented the <a href=#timed-track title="timed
+  track">timed tracks</a> model must implement the '::cue-part(<var title="">filter</var>)' pseudo-element.</p>
+
+  <p>The '<dfn id=pseudo-cue-part title=pseudo-cue-part>::cue-part(<var title="">argument</var>)</dfn>' pseudo-element matches any
+  <a href=#websrt-node-object>WebSRT Node Object</a> constructed for the <i>matched
+  element</i> that matches the given <var title="">argument</var>.</p>
+
+  <p>The <var title="">argument</var> must match the syntax
+  "<voice> || <part> || <position> || <future-compatibility>". <a href=#refsCSS>[CSS]</a></p>
+  
+  <p>The "<voice>" component must be either a non-negative
+  <integer> or one of the keywords "<code title=pseudo-cue-part-narrator><a href=#pseudo-cue-part-narrator>narrator</a></code>", "<code title=pseudo-cue-part-music><a href=#pseudo-cue-part-music>music</a></code>", "<code title=pseudo-cue-part-lyric><a href=#pseudo-cue-part-lyric>lyric</a></code>", "<code title=pseudo-cue-part-sound><a href=#pseudo-cue-part-sound>sound</a></code>", "<code title=pseudo-cue-part-comment><a href=#pseudo-cue-part-comment>comment</a></code>", or "<code title=pseudo-cue-part-credit><a href=#pseudo-cue-part-credit>credit</a></code>".</p>
+
+  <p>The "<part>" component must be one of the keywords "<code title=pseudo-cue-part-i><a href=#pseudo-cue-part-i>i</a></code>", "<code title=pseudo-cue-part-b><a href=#pseudo-cue-part-b>b</a></code>", "<code title=pseudo-cue-part-ruby><a href=#pseudo-cue-part-ruby>ruby</a></code>", or "<code title=pseudo-cue-part-rt><a href=#pseudo-cue-part-rt>rt</a></code>".</p>
+
+  <p>The "<position>" component must be one of the keywords "<code title=pseudo-cue-part-past><a href=#pseudo-cue-part-past>past</a></code>" or "<code title=pseudo-cue-part-future><a href=#pseudo-cue-part-future>future</a></code>".</p>
+
+  <p>The "<future-compatibility>" component can be any
+  identifier.</p>
+
+  <p>Each component of <var title="">argument</var> restricts which
+  <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> are
+  matched by the pseudo-element, as follows:</p>
+
+  <dl><dt>An integer greater than or equal to zero</dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is the given number expressed in
+    base ten with digits in the range U+0030 DIGIT ZERO (0) to U+0039
+    DIGIT NINE (9).</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-narrator title=pseudo-cue-part-narrator><code>narrator</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    narrator voice"><a href=#timed-track-cue-narrator-voice>narrator</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-music title=pseudo-cue-part-music><code>music</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    music voice"><a href=#timed-track-cue-music-voice>music</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-lyric title=pseudo-cue-part-lyric><code>lyric</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    lyric voice"><a href=#timed-track-cue-lyric-voice>lyric</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-sound title=pseudo-cue-part-sound><code>sound</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    sound voice"><a href=#timed-track-cue-sound-voice>sound</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-comment title=pseudo-cue-part-comment><code>comment</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    comment voice"><a href=#timed-track-cue-comment-voice>comment</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-credit title=pseudo-cue-part-credit><code>credit</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
+    track cue voice identifier</a> is "<code title="timed track cue
+    credit voice"><a href=#timed-track-cue-credit-voice>credit</a></code>".</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-i title=pseudo-cue-part-i><code>i</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-italic-object title="WebSRT Italic Object">WebSRT Italic Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-b title=pseudo-cue-part-b><code>b</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-bold-object title="WebSRT Bold Object">WebSRT Bold Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-ruby title=pseudo-cue-part-ruby><code>ruby</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-ruby-object title="WebSRT Ruby Object">WebSRT Ruby Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-rt title=pseudo-cue-part-rt><code>rt</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-ruby-text-object title="WebSRT Ruby Text Object">WebSRT Ruby Text Objects</a>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-past title=pseudo-cue-part-past><code>past</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> that are <i><a href=#in-the-past>in the past</a></i>.</p>
+   </dd>
+
+   <dt><dfn id=pseudo-cue-part-future title=pseudo-cue-part-future><code>future</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> that are <i><a href=#in-the-future>in the future</a></i>.</p>
+   </dd>
+
+   <dt>Any other identifier</dt>
+   <dd>
+    <p>Restricts the pseudo-element to not matching any <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a>.</p>
+    <p class=note>This is intended to allow for future extensions
+    while still allowing Selectors to include a mixture of old and new
+    '::cue-part()' pseudo-elements.</p>
+   </dd>
+
+  </dl><p>A <a href=#websrt-node-object>WebSRT Node Object</a> <var title="">c</var> is
+  <dfn id=in-the-past>in the past</dfn> if, in a pre-order, depth-first traversal of
+  the <a href=#timed-track-cue>timed track cue</a>'s <a href=#list-of-websrt-node-objects>List of WebSRT Node
+  Objects</a>, there exists a <a href=#websrt-timestamp-object>WebSRT Timestamp Object</a>
+  whose value is less than the <a href=#current-playback-position>current playback position</a>
+  of the <a href=#media-element>media element</a> that is the <i>matched
+  element</i>, entirely after the <a href=#websrt-node-object>WebSRT Node Object</a> <var title="">c</var>.</p>
+
+  <p>A <a href=#websrt-node-object>WebSRT Node Object</a> <var title="">c</var> is
+  <dfn id=in-the-future>in the future</dfn> if, in a pre-order, depth-first traversal
+  of the <a href=#timed-track-cue>timed track cue</a>'s <a href=#list-of-websrt-node-objects>List of WebSRT Node
+  Objects</a>, there exists a <a href=#websrt-timestamp-object>WebSRT Timestamp Object</a>
+  whose value is greater than the <a href=#current-playback-position>current playback
+  position</a> of the <a href=#media-element>media element</a> that is the
+  <i>matched element</i>, entirely before the <a href=#websrt-node-object>WebSRT Node
+  Object</a> <var title="">c</var>.</p>
+
+  <p>The following properties apply to the '::cue-part(<var title="">filter</var>)' pseudo-element:</p>
+
+  <ul class=brief><li>'color'</li>
+   <li>'text-shadow'</li>
+   <li>'text-outline'</li>
+   <li>the properties corresponding to the 'background' shorthand</li>
+   <li>the properties corresponding to the 'outline' shorthand</li>
+   <li>properties relating to the transition and animation features</li>
+   <!-- add more... -->
+   <!-- but definitely not anything that affects dimensions of boxes -->
+  </ul><!--v2
+   Would be nice to support transitions that are directional,
    e.g. changing text fill colour or shadow size of the start of a
-   segment when the segment becomes "before", and having the change
+   segment when the segment becomes "past", and having the change
    propagate towards the end of the segment so that it reaches the end
-   of the segment when the next segment becomes "before".
+   of the segment when the next segment becomes "past".
+  --><p>The following properties apply to the '::cue-part(<var title="">filter</var>)' pseudo-element if the neither of the <code title=pseudo-cue-part-past><a href=#pseudo-cue-part-past>past</a></code> or <code title=pseudo-cue-part-future><a href=#pseudo-cue-part-future>future</a></code> keywords are
+  present:</p>
 
-   properties that only apply to the cue as a whole, and i, b, ruby, rt:
-    - font
-    - line-height
-    - anything else that affects the size of CSS boxes but not their kind or their position independant of their size
+  <ul class=brief><li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+   <!-- add more... -->
+   <!-- definitely not:
+          display, float, position, top, left, right, bottom, width,
+          height, margin-top, margin-bottom, margin-left, margin-right,
+          clip, clear, content, cursor, direction, max-height,
+          min-height, max-width, min-width, orphans, overflow,
+          page-break-*, text-align, unicode-bidi, widows, z-index
+   -->
+  </ul><p>Other properties must be ignored.</p>
 
-   properties that apply to the above as well as 'before' and 'after' parts:
-    - color
-    - background
-    - outline
-    - anything else that doesn't affect the size or position or kind of CSS boxes
+  <p>As a special exception, the properties corresponding to the
+  'background' shorthand, when they would have been applied to the
+  <a href=#list-of-websrt-node-objects>List of WebSRT Node Objects</a>, must instead be applied to
+  the <a href=#websrt-cue-background-box>WebSRT cue background box</a>.</p>
 
-  -->
-
-  <p class=XXX>...</p>
-
   </div>
 </div>
 <!--TT-->

Modified: source
===================================================================
--- source	2010-07-13 08:19:18 UTC (rev 5153)
+++ source	2010-07-13 22:24:33 UTC (rev 5154)
@@ -30056,11 +30056,12 @@
      <li>One character in the range U+0031 DIGIT ONE (1) to U+0039
      DIGIT NINE (9), followed by zero or more characters in the range
      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-     <li>The string "<code title="">narrator</code>".</li>
-     <li>The string "<code title="">music</code>".</li>
-     <li>The string "<code title="">sound</code>".</li> <!-- for audio fx descriptions -->
-     <li>The string "<code title="">comment</code>".</li> <!-- for annotations -->
-     <li>The string "<code title="">credit</code>".</li>
+     <li>The string "<dfn title="timed track cue narrator voice"><code>narrator</code></dfn>".</li>
+     <li>The string "<dfn title="timed track cue music voice"><code>music</code></dfn>".</li>
+     <li>The string "<dfn title="timed track cue lyric voice"><code>lyric</code></dfn>".</li>
+     <li>The string "<dfn title="timed track cue sound voice"><code>sound</code></dfn>".</li> <!-- for audio fx descriptions -->
+     <li>The string "<dfn title="timed track cue comment voice"><code>comment</code></dfn>".</li> <!-- for annotations -->
+     <li>The string "<dfn title="timed track cue credit voice"><code>credit</code></dfn>".</li>
     </ul>
    </li>
    <li>A U+003E GREATER-THAN SIGN character (>).</li>
@@ -30849,7 +30850,7 @@
      title=""><narrator></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <span>timed track cue voice
-      identifier</span> be the string "<code title="">narrator</code>"
+      identifier</span> be the string "<code title="timed track cue narrator voice">narrator</code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
@@ -30857,15 +30858,23 @@
      title=""><music></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <span>timed track cue voice
-      identifier</span> be the string "<code title="">music</code>"
+      identifier</span> be the string "<code title="timed track cue music voice">music</code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
      <dt>If <var title="">input</var> starts with the string "<code
+     title=""><lyric></code>"</dt>
+     <dd>
+      <p>Let <var title="">cue</var>'s <span>timed track cue voice
+      identifier</span> be the string "<code title="timed track cue lyric voice">lyric</code>"
+      and advance <var title="">position</var> past the matching substring.</p>
+     </dd>
+
+     <dt>If <var title="">input</var> starts with the string "<code
      title=""><sound></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <span>timed track cue voice
-      identifier</span> be the string "<code title="">sound</code>"
+      identifier</span> be the string "<code title="timed track cue sound voice">sound</code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
@@ -30873,7 +30882,7 @@
      title=""><comment></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <span>timed track cue voice
-      identifier</span> be the string "<code title="">comment</code>"
+      identifier</span> be the string "<code title="timed track cue comment voice">comment</code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
@@ -30881,7 +30890,7 @@
      title=""><credit></code>"</dt>
      <dd>
       <p>Let <var title="">cue</var>'s <span>timed track cue voice
-      identifier</span> be the string "<code title="">credit</code>"
+      identifier</span> be the string "<code title="timed track cue credit voice">credit</code>"
       and advance <var title="">position</var> past the matching substring.</p>
      </dd>
 
@@ -98876,9 +98885,8 @@
        anonymous boxes whose 'display' property has the value
        'ruby-base'. <a href="#refsCSSRUBY">[CSSRUBY]</a></li>
 
-       <li>All properties on <span title="WebSRT Node Object">WebSRT
-       Node Objects</span> have their initial values, except as
-       explicitly overridden for specific nodes in the next
+       <li>Properties on <span title="WebSRT Node Object">WebSRT Node
+       Objects</span> have their values set as defined in the next
        section. (That section uses some of the variables whose values
        were calculated earlier in this algorithm.)</li>
 
@@ -99243,7 +99251,15 @@
   element</span> or other playback mechanism, then they must be
   interpreted as defined in the next section.</p>
 
-  <p>All other properties must be set to their initial values.</p>
+  <p>All other non-inherited properties must be set to their initial
+  values; inherited properties on the root <span>List of WebSRT Node
+  Objects</span> must inherit their values from the <span>media
+  element</span> for which the <span>timed track cue</span> is being
+  rendered, if any. If there is no <span>media element</span> (i.e. if
+  the <span>timed track</span> is being rendered for another media
+  playback mechanism), then inherited properties on the root
+  <span>List of WebSRT Node Objects</span> must take their initial
+  values.</p>
 
 
   <h5>CSS extensions</h5>
@@ -99258,37 +99274,266 @@
   <span title="timed track cue">cue</span> is being rendered, even in
   between applications of the <span>WebSRT cue text rendering
   rules</span> (which are only run when the set of active cues
-  changes). User agents that support these pseudo-elements must
-  dynamically update renderings accordingly.</p>
+  changes). User agents that support the pseudo-element described
+  below must dynamically update renderings accordingly.</p>
 
-  <!-- XXX
+  <p>Pseudo-elements apply to elements that are matched by
+  selectors. For the purpose of this section, that element is the
+  <i>matched element</i>. The pseudo-elements defined in the following
+  sections affect the styling of parts of <span title="timed track
+  cue">timed track cues</span> that are being rendered for the
+  <i>matched element</i>.</p>
 
-   rules for rendering the list of active cues:
-    - for each segment, decide if it's before or after the current
-      playback position.
-    - style it, using the voice and other styles.
+  <p class="note">If the <i>matched element</i> is not a
+  <code>video</code> element, the pseudo-elements defined below won't
+  have any effect according to this specification.</p>
 
-   It's important that we support transitions when the styles
-   change. Would be nice to support transitions that are directional,
+
+  <h6>The '::cue' pseudo-element</h6>
+
+  <p>A CSS user agent that implemented the <span title="timed
+  track">timed tracks</span> model must implement the '::cue'
+  pseudo-element.</p>
+
+  <p>The '<dfn title="pseudo-cue">::cue</dfn>' pseudo-element matches
+  any <span>List of WebSRT Node Objects</span> constructed for the
+  <i>matched element</i>, with the exception that the properties
+  corresponding to the 'background' shorthand must be applied to the
+  <span>WebSRT cue background box</span> rather than the <span>List of
+  WebSRT Node Objects</span>.</p>
+
+  <p>The following properties apply to the '::cue' pseudo-element;
+  other properties set on the pseudo-element must be ignored:</p>
+
+  <ul class="brief">
+   <li>'color'</li>
+   <li>'text-shadow'</li>
+   <li>'text-outline'</li>
+   <li>the properties corresponding to the 'background' shorthand</li>
+   <li>the properties corresponding to the 'outline' shorthand</li>
+   <li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+   <!-- add more... -->
+   <!-- definitely not:
+          display, float, position, top, left, right, bottom, width,
+          height, margin-top, margin-bottom, margin-left, margin-right,
+          clip, clear, content, cursor, direction, max-height,
+          min-height, max-width, min-width, orphans, overflow,
+          page-break-*, text-align, unicode-bidi, widows, z-index
+   -->
+  </ul>
+
+
+  <h6>The '::cue-part' pseudo-element</h6>
+
+  <p>A CSS user agent that implemented the <span title="timed
+  track">timed tracks</span> model must implement the '::cue-part(<var
+  title="">filter</var>)' pseudo-element.</p>
+
+  <p>The '<dfn title="pseudo-cue-part">::cue-part(<var
+  title="">argument</var>)</dfn>' pseudo-element matches any
+  <span>WebSRT Node Object</span> constructed for the <i>matched
+  element</i> that matches the given <var title="">argument</var>.</p>
+
+  <p>The <var title="">argument</var> must match the syntax
+  "<voice> || <part> || <position> || <future-compatibility>". <a
+  href="#refsCSS">[CSS]</a></p>
+  
+  <p>The "<voice>" component must be either a non-negative
+  <integer> or one of the keywords "<code
+  title="pseudo-cue-part-narrator">narrator</code>", "<code
+  title="pseudo-cue-part-music">music</code>", "<code
+  title="pseudo-cue-part-lyric">lyric</code>", "<code
+  title="pseudo-cue-part-sound">sound</code>", "<code
+  title="pseudo-cue-part-comment">comment</code>", or "<code
+  title="pseudo-cue-part-credit">credit</code>".</p>
+
+  <p>The "<part>" component must be one of the keywords "<code
+  title="pseudo-cue-part-i">i</code>", "<code
+  title="pseudo-cue-part-b">b</code>", "<code
+  title="pseudo-cue-part-ruby">ruby</code>", or "<code
+  title="pseudo-cue-part-rt">rt</code>".</p>
+
+  <p>The "<position>" component must be one of the keywords "<code
+  title="pseudo-cue-part-past">past</code>" or "<code
+  title="pseudo-cue-part-future">future</code>".</p>
+
+  <p>The "<future-compatibility>" component can be any
+  identifier.</p>
+
+  <p>Each component of <var title="">argument</var> restricts which
+  <span title="WebSRT Node Object">WebSRT Node Objects</span> are
+  matched by the pseudo-element, as follows:</p>
+
+  <dl>
+
+   <dt>An integer greater than or equal to zero</dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span
+    title="WebSRT Node Object">WebSRT Node Objects</span> from <span
+    title="timed track cue">timed track cues</span> whose <span>timed
+    track cue voice identifier</span> is the given number expressed in
+    base ten with digits in the range U+0030 DIGIT ZERO (0) to U+0039
+    DIGIT NINE (9).</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-narrator"><code>narrator</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span
+    title="WebSRT Node Object">WebSRT Node Objects</span> from <span
+    title="timed track cue">timed track cues</span> whose <span>timed
+    track cue voice identifier</span> is "<code title="timed track cue
+    narrator voice">narrator</code>".</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-music"><code>music</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span
+    title="WebSRT Node Object">WebSRT Node Objects</span> from <span
+    title="timed track cue">timed track cues</span> whose <span>timed
+    track cue voice identifier</span> is "<code title="timed track cue
+    music voice">music</code>".</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-lyric"><code>lyric</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span
+    title="WebSRT Node Object">WebSRT Node Objects</span> from <span
+    title="timed track cue">timed track cues</span> whose <span>timed
+    track cue voice identifier</span> is "<code title="timed track cue
+    lyric voice">lyric</code>".</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-sound"><code>sound</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span
+    title="WebSRT Node Object">WebSRT Node Objects</span> from <span
+    title="timed track cue">timed track cues</span> whose <span>timed
+    track cue voice identifier</span> is "<code title="timed track cue
+    sound voice">sound</code>".</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-comment"><code>comment</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span
+    title="WebSRT Node Object">WebSRT Node Objects</span> from <span
+    title="timed track cue">timed track cues</span> whose <span>timed
+    track cue voice identifier</span> is "<code title="timed track cue
+    comment voice">comment</code>".</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-credit"><code>credit</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span
+    title="WebSRT Node Object">WebSRT Node Objects</span> from <span
+    title="timed track cue">timed track cues</span> whose <span>timed
+    track cue voice identifier</span> is "<code title="timed track cue
+    credit voice">credit</code>".</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-i"><code>i</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span title="WebSRT Italic Object">WebSRT Italic Objects</span>.</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-b"><code>b</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span title="WebSRT Bold Object">WebSRT Bold Objects</span>.</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-ruby"><code>ruby</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span title="WebSRT Ruby Object">WebSRT Ruby Objects</span>.</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-rt"><code>rt</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span title="WebSRT Ruby Text Object">WebSRT Ruby Text Objects</span>.</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-past"><code>past</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span title="WebSRT Node Object">WebSRT Node Objects</span> that are <i>in the past</i>.</p>
+   </dd>
+
+   <dt><dfn title="pseudo-cue-part-future"><code>future</code></dfn></dt>
+   <dd>
+    <p>Restricts the pseudo-element to only matching <span title="WebSRT Node Object">WebSRT Node Objects</span> that are <i>in the future</i>.</p>
+   </dd>
+
+   <dt>Any other identifier</dt>
+   <dd>
+    <p>Restricts the pseudo-element to not matching any <span title="WebSRT Node Object">WebSRT Node Objects</span>.</p>
+    <p class="note">This is intended to allow for future extensions
+    while still allowing Selectors to include a mixture of old and new
+    '::cue-part()' pseudo-elements.</p>
+   </dd>
+
+  </dl>
+
+  <p>A <span>WebSRT Node Object</span> <var title="">c</var> is
+  <dfn>in the past</dfn> if, in a pre-order, depth-first traversal of
+  the <span>timed track cue</span>'s <span>List of WebSRT Node
+  Objects</span>, there exists a <span>WebSRT Timestamp Object</span>
+  whose value is less than the <span>current playback position</span>
+  of the <span>media element</span> that is the <i>matched
+  element</i>, entirely after the <span>WebSRT Node Object</span> <var
+  title="">c</var>.</p>
+
+  <p>A <span>WebSRT Node Object</span> <var title="">c</var> is
+  <dfn>in the future</dfn> if, in a pre-order, depth-first traversal
+  of the <span>timed track cue</span>'s <span>List of WebSRT Node
+  Objects</span>, there exists a <span>WebSRT Timestamp Object</span>
+  whose value is greater than the <span>current playback
+  position</span> of the <span>media element</span> that is the
+  <i>matched element</i>, entirely before the <span>WebSRT Node
+  Object</span> <var title="">c</var>.</p>
+
+  <p>The following properties apply to the '::cue-part(<var
+  title="">filter</var>)' pseudo-element:</p>
+
+  <ul class="brief">
+   <li>'color'</li>
+   <li>'text-shadow'</li>
+   <li>'text-outline'</li>
+   <li>the properties corresponding to the 'background' shorthand</li>
+   <li>the properties corresponding to the 'outline' shorthand</li>
+   <li>properties relating to the transition and animation features</li>
+   <!-- add more... -->
+   <!-- but definitely not anything that affects dimensions of boxes -->
+  </ul>
+
+  <!--v2
+   Would be nice to support transitions that are directional,
    e.g. changing text fill colour or shadow size of the start of a
-   segment when the segment becomes "before", and having the change
+   segment when the segment becomes "past", and having the change
    propagate towards the end of the segment so that it reaches the end
-   of the segment when the next segment becomes "before".
+   of the segment when the next segment becomes "past".
+  -->
 
-   properties that only apply to the cue as a whole, and i, b, ruby, rt:
-    - font
-    - line-height
-    - anything else that affects the size of CSS boxes but not their kind or their position independant of their size
+  <p>The following properties apply to the '::cue-part(<var
+  title="">filter</var>)' pseudo-element if the neither of the <code
+  title="pseudo-cue-part-past">past</code> or <code
+  title="pseudo-cue-part-future">future</code> keywords are
+  present:</p>
 
-   properties that apply to the above as well as 'before' and 'after' parts:
-    - color
-    - background
-    - outline
-    - anything else that doesn't affect the size or position or kind of CSS boxes
+  <ul class="brief">
+   <li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+   <!-- add more... -->
+   <!-- definitely not:
+          display, float, position, top, left, right, bottom, width,
+          height, margin-top, margin-bottom, margin-left, margin-right,
+          clip, clear, content, cursor, direction, max-height,
+          min-height, max-width, min-width, orphans, overflow,
+          page-break-*, text-align, unicode-bidi, widows, z-index
+   -->
+  </ul>
 
-  -->
+  <p>Other properties must be ignored.</p>
 
-  <p class="XXX">...</p>
+  <p>As a special exception, the properties corresponding to the
+  'background' shorthand, when they would have been applied to the
+  <span>List of WebSRT Node Objects</span>, must instead be applied to
+  the <span>WebSRT cue background box</span>.</p>
 
   </div>
 </div>




More information about the Commit-Watchers mailing list