[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