- From: CVS User pjgenste <cvsmail@w3.org>
- Date: Sun, 08 Mar 2015 03:27:43 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/webvtt In directory roscoe:/tmp/cvs-serv10639 Modified Files: Overview.html Log Message: Sync WebVTT with Git commit d7751e51f41ce9cb0efb8a3d2f262b796963302d --- /sources/public/html5/webvtt/Overview.html 2015/02/28 06:16:06 1.209 +++ /sources/public/html5/webvtt/Overview.html 2015/03/08 03:27:43 1.210 @@ -3,7 +3,7 @@ <head> <title>WebVTT: The Web Video Text Tracks Format</title> <meta charset="utf-8"> - <meta name="revision" content="91686e9444bc5749e9073e5f9c01444a0cac9e54"> + <meta name="revision" content="d7751e51f41ce9cb0efb8a3d2f262b796963302d"> @@ -305,7 +305,7 @@ </p> <h1 class="title p-name" id="title">WebVTT: The Web Video Text Tracks Format</h1> - <h2 id="draft-community-group-report-28-february-2015">Draft Community Group Report <time class="dt-published" datetime="2015-02-28">28 February 2015</time></h2> + <h2 id="draft-community-group-report-08-march-2015">Draft Community Group Report <time class="dt-published" datetime="2015-03-08">08 March 2015</time></h2> <dl> @@ -395,7 +395,7 @@ (<a href="mailto:public-texttracks-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-texttracks/">archives</a>).</p> -</section><section id="toc"><h2 class="introductory" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#cues-with-multiple-lines" class="tocxref"><span class="secno">1.1 </span>Cues with multiple lines</a></li><li class="tocline"><a href="#comments" class="tocxref"><span class="secno">1.2 </span>Comments</a></li><li class="tocline"><a href="#other-features" class="tocxref"><span class="secno">1.3 </span>Other features</a></li></ul></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">2. </span>Conformance</a><ul class="toc"><li class="tocline"><a href="#conformance-for-authors" class="tocxref"><span class="secno">2.1 </span>Conformance for authors</a></li><li class="tocline"><a href="#document-conformance" class="tocxref"><span class="secno">2.2 </span>Document conformance</a><li><li class="tocline"><a href="#dependencies" class="tocxref"><span class="secno">2.3 </span>Dependencies</a></li></ul></li><li class="tocline"><a href="#data-model" class="tocxref"><span class="secno">3. </span>Data model</a><ul class="toc"><li class="tocline"><a href="#webvtt-cues" class="tocxref"><span class="secno">3.1 </span>WebVTT cues</a></li><li class="tocline"><a href="#text-track-regions" class="tocxref"><span class="secno">3.2 </span>Text track regions</a></li></ul></li><li class="tocline"><a href="#syntax" class="tocxref"><span class="secno">4. </span>Syntax</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-structure" class="tocxref"><span class="secno">4.1 </span>WebVTT file structure</a></li><li class="tocline"><a href="#webvtt-comments" class="tocxref"><span class="secno">4.2 </span>WebVTT comments</a></li><li class="tocline"><a href="#types-of-webvtt-cue-payload" class="tocxref"><span class="secno">4.3 </span>Types of WebVTT cue payload</a><ul class="toc"><li class="tocline"><a hef="#webvtt-metadata-text" class="tocxref"><span class="secno">4.3.1 </span>WebVTT metadata text</a></li><li class="tocline"><a href="#webvtt-cue-text" class="tocxref"><span class="secno">4.3.2 </span>WebVTT cue text</a></li></ul></li><li class="tocline"><a href="#webvtt-region-definition" class="tocxref"><span class="secno">4.4 </span>WebVTT region definition</a></li><li class="tocline"><a href="#webvtt-cue-settings" class="tocxref"><span class="secno">4.5 </span>WebVTT cue settings</a></li><li class="tocline"><a href="#properties-of-cue-sequences" class="tocxref"><span class="secno">4.6 </span>Properties of cue sequences</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-using-only-nested-cues" class="tocxref"><span class="secno">4.6.1 </span>WebVTT file using only nested cues</a></li></ul></li><li class="tocline"><a href="#types-of-webvtt-files" class="tocxref"><span class="secno">4.7 </span>Types of WebVTT files</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-using-metadata-conten" class="tocxref"><span class="secno">4.7.1 </span>WebVTT file using metadata content</a></li><li class="tocline"><a href="#webvtt-file-using-chapter-title-text" class="tocxref"><span class="secno">4.7.2 </span>WebVTT file using chapter title text</a></li><li class="tocline"><a href="#webvtt-file-using-cue-text" class="tocxref"><span class="secno">4.7.3 </span>WebVTT file using cue text</a></li></ul></li></ul></li><li class="tocline"><a href="#parsing" class="tocxref"><span class="secno">5. </span>Parsing</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-parsing" class="tocxref"><span class="secno">5.1 </span>WebVTT file parsing</a></li><li class="tocline"><a href="#webvtt-region-settings-parsing" class="tocxref"><span class="secno">5.2 </span>WebVTT region settings parsing</a></li><li class="tocline"><a href="#webvtt-cue-timings-and-settings-parsing" class="tocxref"><span class="secno">5.3 </span>WebVTT cue timings and settings parsing</a></li><li class="tocline"><a href="#webvtt-cue-text-parsin-rules" class="tocxref"><span class="secno">5.4 </span><span>WebVTT cue text parsing rules</span></a></li><li class="tocline"><a href="#webvtt-cue-text-dom-construction-rules" class="tocxref"><span class="secno">5.5 </span><span>WebVTT cue text DOM construction rules</span></a></li></ul></li><li class="tocline"><a href="#rendering" class="tocxref"><span class="secno">6. </span>Rendering</a><ul class="toc"><li class="tocline"><a href="#cues-in-isolation" class="tocxref"><span class="secno">6.1 </span>Cues in isolation</a></li><li class="tocline"><a href="#cues-with-video" class="tocxref"><span class="secno">6.2 </span>Cues with video</a><ul class="toc"><li class="tocline"><a href="#processing-model" class="tocxref"><span class="secno">6.2.1 </span>Processing model</a></li><li class="tocline"><a href="#applying-css-properties-to-webvtt-node-objects" class="tocxref"><span class="secno">6.2.2 </span>Applying CSS properties to <span title="WebVTT Node Object" class="formerLink">WebVTT Node Objects</span></a></li<li class="tocline"><a href="#css-extensions" class="tocxref"><span class="secno">6.2.3 </span>CSS extensions</a><ul class="toc"><li class="tocline"><a href="#the-cue-pseudo-element" class="tocxref"><span class="secno">6.2.3.1 </span>The '::cue' pseudo-element</a></li><li class="tocline"><a href="#the-past-and-future-pseudo-classes" class="tocxref"><span class="secno">6.2.3.2 </span>The ':past' and ':future' pseudo-classes</a></li><li class="tocline"><a href="#the-cue-region-pseudo-element" class="tocxref"><span class="secno">6.2.3.3 </span>The '::cue-region' pseudo-element</a></li></ul></li></ul></li></ul></li><li class="tocline"><a href="#api" class="tocxref"><span class="secno">7. </span>API</a><ul class="toc"><li class="tocline"><a href="#the-vttcue-interface" class="tocxref"><span class="secno">7.1 </span>The <span class="formerLink"><code>VTTCue</code></span> interface</a></li><li class="tocline"><a href="#the-vttregion-interface" class="tocxref"><span class="secno">7.2 </span>The <span class="formerLnk"><code>VTTRegion</code></span> interface</a></li></ul></li><li class="tocline"><a href="#iana-considerations" class="tocxref"><span class="secno">8. </span>IANA considerations</a><ul class="toc"><li class="tocline"><a href="#text-vtt" class="tocxref"><span class="secno">8.1 </span><span><code>text/vtt</code></span></a></li></ul></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">9. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">A. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">A.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">A.2 </span>Informative references</a></li></ul></li></ul></section> +</section><section id="toc"><h2 class="introductory" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#cues-with-multiple-lines" class="tocxref"><span class="secno">1.1 </span>Cues with multiple lines</a></li><li class="tocline"><a href="#comments" class="tocxref"><span class="secno">1.2 </span>Comments</a></li><li class="tocline"><a href="#other-features" class="tocxref"><span class="secno">1.3 </span>Other features</a></li></ul></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">2. </span>Conformance</a><ul class="toc"><li class="tocline"><a href="#conformance-for-authors" class="tocxref"><span class="secno">2.1 </span>Conformance for authors</a></li><li class="tocline"><a href="#document-conformance" class="tocxref"><span class="secno">2.2 </span>Document conformance</a><li><li class="tocline"><a href="#dependencies" class="tocxref"><span class="secno">2.3 </span>Dependencies</a></li></ul></li><li class="tocline"><a href="#data-model" class="tocxref"><span class="secno">3. </span>Data model</a><ul class="toc"><li class="tocline"><a href="#webvtt-cues" class="tocxref"><span class="secno">3.1 </span>WebVTT cues</a></li><li class="tocline"><a href="#text-track-regions" class="tocxref"><span class="secno">3.2 </span>Text track regions</a></li></ul></li><li class="tocline"><a href="#syntax" class="tocxref"><span class="secno">4. </span>Syntax</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-structure" class="tocxref"><span class="secno">4.1 </span>WebVTT file structure</a></li><li class="tocline"><a href="#webvtt-comments" class="tocxref"><span class="secno">4.2 </span>WebVTT comments</a></li><li class="tocline"><a href="#types-of-webvtt-cue-payload" class="tocxref"><span class="secno">4.3 </span>Types of WebVTT cue payload</a><ul class="toc"><li class="tocline"><a hef="#webvtt-metadata-text" class="tocxref"><span class="secno">4.3.1 </span>WebVTT metadata text</a></li><li class="tocline"><a href="#webvtt-cue-text" class="tocxref"><span class="secno">4.3.2 </span>WebVTT cue text</a></li></ul></li><li class="tocline"><a href="#webvtt-region-definition" class="tocxref"><span class="secno">4.4 </span>WebVTT region definition</a></li><li class="tocline"><a href="#webvtt-cue-settings" class="tocxref"><span class="secno">4.5 </span>WebVTT cue settings</a></li><li class="tocline"><a href="#properties-of-cue-sequences" class="tocxref"><span class="secno">4.6 </span>Properties of cue sequences</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-using-only-nested-cues" class="tocxref"><span class="secno">4.6.1 </span>WebVTT file using only nested cues</a></li></ul></li><li class="tocline"><a href="#types-of-webvtt-files" class="tocxref"><span class="secno">4.7 </span>Types of WebVTT files</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-using-metadata-conten" class="tocxref"><span class="secno">4.7.1 </span>WebVTT file using metadata content</a></li><li class="tocline"><a href="#webvtt-file-using-chapter-title-text" class="tocxref"><span class="secno">4.7.2 </span>WebVTT file using chapter title text</a></li><li class="tocline"><a href="#webvtt-file-using-cue-text" class="tocxref"><span class="secno">4.7.3 </span>WebVTT file using cue text</a></li></ul></li></ul></li><li class="tocline"><a href="#parsing" class="tocxref"><span class="secno">5. </span>Parsing</a><ul class="toc"><li class="tocline"><a href="#webvtt-file-parsing" class="tocxref"><span class="secno">5.1 </span>WebVTT file parsing</a></li><li class="tocline"><a href="#webvtt-region-settings-parsing" class="tocxref"><span class="secno">5.2 </span>WebVTT region settings parsing</a></li><li class="tocline"><a href="#webvtt-cue-timings-and-settings-parsing" class="tocxref"><span class="secno">5.3 </span>WebVTT cue timings and settings parsing</a></li><li class="tocline"><a href="#webvtt-cue-text-parsin-rules" class="tocxref"><span class="secno">5.4 </span><span>WebVTT cue text parsing rules</span></a></li><li class="tocline"><a href="#webvtt-cue-text-dom-construction-rules" class="tocxref"><span class="secno">5.5 </span><span>WebVTT cue text DOM construction rules</span></a></li><li class="tocline"><a href="#webvtt-rules-for-extracting-the-chapter-title" class="tocxref"><span class="secno">5.6 </span>WebVTT rules for extracting the chapter title</a></li></ul></li><li class="tocline"><a href="#rendering" class="tocxref"><span class="secno">6. </span>Rendering</a><ul class="toc"><li class="tocline"><a href="#processing-model" class="tocxref"><span class="secno">6.1 </span>Processing model</a></li><li class="tocline"><a href="#applying-css-properties-to-webvtt-node-objects" class="tocxref"><span class="secno">6.2 </span>Applying CSS properties to <span title="WebVTT Node Object" class="formerLink">WebVTT Node Objects</span></a></li><li class="tocline"><a href="#css-extensions" class="tocxref"><span class="scno">6.3 </span>CSS extensions</a><ul class="toc"><li class="tocline"><a href="#the-cue-pseudo-element" class="tocxref"><span class="secno">6.3.1 </span>The '::cue' pseudo-element</a></li><li class="tocline"><a href="#the-past-and-future-pseudo-classes" class="tocxref"><span class="secno">6.3.2 </span>The ':past' and ':future' pseudo-classes</a></li><li class="tocline"><a href="#the-cue-region-pseudo-element" class="tocxref"><span class="secno">6.3.3 </span>The '::cue-region' pseudo-element</a></li></ul></li></ul></li><li class="tocline"><a href="#api" class="tocxref"><span class="secno">7. </span>API</a><ul class="toc"><li class="tocline"><a href="#the-vttcue-interface" class="tocxref"><span class="secno">7.1 </span>The <span class="formerLink"><code>VTTCue</code></span> interface</a></li><li class="tocline"><a href="#the-vttregion-interface" class="tocxref"><span class="secno">7.2 </span>The <span class="formerLink"><code>VTTRegion</code></span> interface</a></li></ul></li><li class="tocline"><a href="#iaa-considerations" class="tocxref"><span class="secno">8. </span>IANA considerations</a><ul class="toc"><li class="tocline"><a href="#text-vtt" class="tocxref"><span class="secno">8.1 </span><span><code>text/vtt</code></span></a></li></ul></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">9. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">A. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">A.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">A.2 </span>Informative references</a></li></ul></li></ul></section> @@ -834,8 +834,8 @@ display state</dfn></a></li> <li><a href="https://html.spec.whatwg.org/#rules-for-updating-the-text-track-rendering"><dfn id="dfn-rules-for-updating-the-text-track-rendering">Rules for updating the text track rendering</dfn></a></li> - <li><a href="https://html.spec.whatwg.org/#rules-for-rendering-the-cue-in-isolation"><dfn id="dfn-rules-for-rendering-the-cue-in-isolation">Rules - for rendering the cue in isolation</dfn></a></li> + <li><a href="https://html.spec.whatwg.org/multipage/embedded-content.html#text-track-rules-for-extracting-the-chapter-title"><dfn id="dfn-rules-for-extracting-the-chapter-title">Rules + for extracting the chapter title</dfn></a></li> <li><a href="https://html.spec.whatwg.org/#texttrackcue"><dfn id="dfn-texttrackcue"><code>TextTrackCue</code></dfn></a> interface</li> <li><a href="https://html.spec.whatwg.org/#dom-texttrack-addcue"><dfn id="dfn-addcue"><code>addCue()</code></dfn></a> @@ -2415,8 +2415,8 @@ <li><p>Return to the step labeled <i>cue text loop</i>.</p></li> <li><p><i>Cue text processing</i>: Let the <a href="#dfn-text-track-cue-text" class="internalDFN">text track cue text</a> of <var>cue</var> be - <var>cue text</var>, and let the <a href="#dfn-rules-for-rendering-the-cue-in-isolation" class="internalDFN">rules for rendering the cue in isolation</a> be the - <a href="#dfn-rules-for-interpreting-webvtt-cue-text" class="internalDFN">rules for interpreting WebVTT cue text</a>.</p></li> + <var>cue text</var>, and let the <a href="#dfn-rules-for-extracting-the-chapter-title" class="internalDFN">rules for extracting the chapter title</a> be the <a href="#dfn-webvtt-rules-for-extracting-the-chapter-title" class="internalDFN">WebVTT + rules for extracting the chapter title</a>.</p></li> <li><p>Add <var>cue</var> to the <a href="#dfn-text-track-list-of-cues" class="internalDFN">text track list of cues</a> <var>output</var>.</p></li> @@ -3809,16 +3809,10 @@ </section> - </section> - - <section id="rendering"> - <!--OddPage--><h2 role="heading" id="h2_rendering"><span class="secno">6. </span>Rendering</h2> + <section id="webvtt-rules-for-extracting-the-chapter-title"> + <h3 role="heading" id="h3_webvtt-rules-for-extracting-the-chapter-title"><span class="secno">5.6 </span>WebVTT rules for extracting the chapter title</h3> - <section id="cues-in-isolation"> - <h3 role="heading" id="h3_cues-in-isolation"><span class="secno">6.1 </span>Cues in isolation</h3> - - <p>The <dfn id="dfn-rules-for-interpreting-webvtt-cue-text">rules for interpreting WebVTT cue text</dfn> (e.g. for use as chapter titles) are as - follows:</p> + <p>The <dfn id="dfn-webvtt-rules-for-extracting-the-chapter-title">WebVTT rules for extracting the chapter title</dfn> are as follows:</p> <ol> @@ -3826,1228 +3820,1221 @@ <a href="#dfn-webvtt-cue-text-parsing-rules" class="internalDFN">WebVTT cue text parsing rules</a> to the <var>cue</var>'s <a href="#dfn-text-track-cue-text" class="internalDFN">text track cue text</a>.</p></li> - <li><p class="todo">...</p></li> <!-- flatten nodes and return a single string somehow --> + <li><p>Return the concatenation of the values of each <a href="#dfn-webvtt-text-object" class="internalDFN">WebVTT Text Object</a> in + <var>nodes</var>, in a pre-order, depth-first traversal, excluding <a title="WebVTT Ruby Text + Object" href="#dfn-webvtt-ruby-text-object" class="internalDFN">WebVTT Ruby Text Objects</a> and their descendants.</p></li> </ol> </section> - <section id="cues-with-video"> - <h3 role="heading" id="h3_cues-with-video"><span class="secno">6.2 </span>Cues with video</h3> + </section> - <section id="processing-model"> - <h4 role="heading" id="h4_processing-model"><span class="secno">6.2.1 </span>Processing model</h4> + <section id="rendering"> + <!--OddPage--><h2 role="heading" id="h2_rendering"><span class="secno">6. </span>Rendering</h2> - <p>The <dfn id="dfn-rules-for-updating-the-display-of-webvtt-text-tracks">rules for updating the display of WebVTT text tracks</dfn> render the <a title="text track" href="#dfn-text-track" class="internalDFN">text tracks</a> of a <a href="#dfn-media-element" class="internalDFN">media element</a> (specifically, a - <a href="#dfn-video" class="internalDFN"><code>video</code></a> element), or of another playback mechanism, by applying the steps - below. All the <a title="text track" href="#dfn-text-track" class="internalDFN">text tracks</a> that use these rules for a given <a href="#dfn-media-element" class="internalDFN">media - element</a>, or other playback mechanism, are rendered together, to avoid overlapping subtitles - from multiple tracks.</p> - - <p>The output of the steps below is a set of CSS boxes that covers the rendering area of the - <a href="#dfn-media-element" class="internalDFN">media element</a> or other playback mechanism, which user agents are expected to render in a - manner suiting the user.</p> + <section id="processing-model"> + <h3 role="heading" id="h3_processing-model"><span class="secno">6.1 </span>Processing model</h3> - <p>The rules are as follows:</p> + <p>The <dfn id="dfn-rules-for-updating-the-display-of-webvtt-text-tracks">rules for updating the display of WebVTT text tracks</dfn> render the <a title="text + track" href="#dfn-text-track" class="internalDFN">text tracks</a> of a <a href="#dfn-media-element" class="internalDFN">media element</a> (specifically, a <a href="#dfn-video" class="internalDFN"><code>video</code></a> + element), or of another playback mechanism, by applying the steps below. All the <a title="text + track" href="#dfn-text-track" class="internalDFN">text tracks</a> that use these rules for a given <a href="#dfn-media-element" class="internalDFN">media element</a>, or other playback + mechanism, are rendered together, to avoid overlapping subtitles from multiple tracks.</p> + + <p>The output of the steps below is a set of CSS boxes that covers the rendering area of the + <a href="#dfn-media-element" class="internalDFN">media element</a> or other playback mechanism, which user agents are expected to render in a + manner suiting the user.</p> - <ol> + <p>The rules are as follows:</p> - <li><p>If the <a href="#dfn-media-element" class="internalDFN">media element</a> is an <a href="#dfn-audio" class="internalDFN"><code>audio</code></a> element, or is another - playback mechanism with no rendering area, abort these steps. There is nothing to - render.</p></li> + <ol> - <li><p>Let <var>video</var> be the <a href="#dfn-media-element" class="internalDFN">media element</a> or other playback mechanism.</p></li> + <li><p>If the <a href="#dfn-media-element" class="internalDFN">media element</a> is an <a href="#dfn-audio" class="internalDFN"><code>audio</code></a> element, or is another + playback mechanism with no rendering area, abort these steps. There is nothing to + render.</p></li> - <li><p>Let <var>output</var> be an empty list of absolutely positioned CSS block - boxes.</p></li> + <li><p>Let <var>video</var> be the <a href="#dfn-media-element" class="internalDFN">media element</a> or other playback mechanism.</p></li> - <li><p>If the user agent is <a title="expose a user interface to the user" href="#dfn-expose-a-user-interface-to-the-user" class="internalDFN">exposing a user - interface</a> for <var>video</var>, add to <var>output</var> one or more completely - transparent positioned CSS block boxes that cover the same region as the user - interface.</p></li> + <li><p>Let <var>output</var> be an empty list of absolutely positioned CSS block + boxes.</p></li> - <li><p>If the last time these rules were run, the user agent was not <a title="expose a user - interface to the user" href="#dfn-expose-a-user-interface-to-the-user" class="internalDFN">exposing a user interface</a> for <var>video</var>, but now it is, - optionally let <var>reset</var> be true. Otherwise, let <var>reset</var> be false.</p></li> + <li><p>If the user agent is <a title="expose a user interface to the user" href="#dfn-expose-a-user-interface-to-the-user" class="internalDFN">exposing a user + interface</a> for <var>video</var>, add to <var>output</var> one or more completely transparent + positioned CSS block boxes that cover the same region as the user interface.</p></li> - <li><p>Let <var>tracks</var> be the subset of <var>video</var>'s <a href="#dfn-list-of-text-tracks" class="internalDFN">list of text tracks</a> - that have as their <a href="#dfn-rules-for-updating-the-text-track-rendering" class="internalDFN">rules for updating the text track rendering</a> these <a href="#dfn-rules-for-updating-the-display-of-webvtt-text-tracks" class="internalDFN">rules for - updating the display of WebVTT text tracks</a>, and whose <a href="#dfn-text-track-mode" class="internalDFN">text track mode</a> is <a title="text track showing" href="#dfn-text-track-showing" class="internalDFN">showing</a>.</p></li> + <li><p>If the last time these rules were run, the user agent was not <a title="expose a user + interface to the user" href="#dfn-expose-a-user-interface-to-the-user" class="internalDFN">exposing a user interface</a> for <var>video</var>, but now it is, + optionally let <var>reset</var> be true. Otherwise, let <var>reset</var> be false.</p></li> - <li><p>Let <var>cues</var> be an empty list of <a title="text track cue" href="#dfn-text-track-cue" class="internalDFN">text track - cues</a>.</p></li> + <li><p>Let <var>tracks</var> be the subset of <var>video</var>'s <a href="#dfn-list-of-text-tracks" class="internalDFN">list of text tracks</a> + that have as their <a href="#dfn-rules-for-updating-the-text-track-rendering" class="internalDFN">rules for updating the text track rendering</a> these <a href="#dfn-rules-for-updating-the-display-of-webvtt-text-tracks" class="internalDFN">rules for + updating the display of WebVTT text tracks</a>, and whose <a href="#dfn-text-track-mode" class="internalDFN">text track mode</a> is <a title="text track showing" href="#dfn-text-track-showing" class="internalDFN">showing</a>.</p></li> - <li><p>For each track <var>track</var> in <var>tracks</var>, append to <var>cues</var> all the - <a title="text track cue" href="#dfn-text-track-cue" class="internalDFN">cues</a> from <var>track</var>'s <a title="text track list of - cues" href="#dfn-text-track-list-of-cues" class="internalDFN">list of cues</a> that have their <a href="#dfn-text-track-cue-active-flag" class="internalDFN">text track cue active flag</a> set.</p></li> + <li><p>Let <var>cues</var> be an empty list of <a title="text track cue" href="#dfn-text-track-cue" class="internalDFN">text track + cues</a>.</p></li> - <li><p>Let <var>regions</var> be an empty list of <a title="text track region" href="#dfn-text-track-region" class="internalDFN">text track - regions</a>.</p></li> + <li><p>For each track <var>track</var> in <var>tracks</var>, append to <var>cues</var> all the + <a title="text track cue" href="#dfn-text-track-cue" class="internalDFN">cues</a> from <var>track</var>'s <a title="text track list of + cues" href="#dfn-text-track-list-of-cues" class="internalDFN">list of cues</a> that have their <a href="#dfn-text-track-cue-active-flag" class="internalDFN">text track cue active flag</a> set.</p></li> - <li><p>For each track <var>track</var> in <var>tracks</var>, append to <var>regions</var> all - the <a title="text track region" href="#dfn-text-track-region" class="internalDFN">regions</a> from <var>track</var>'s <a title="text track list - of regions" href="#dfn-text-track-list-of-regions" class="internalDFN">list of regions</a>.</p></li> + <li><p>Let <var>regions</var> be an empty list of <a title="text track region" href="#dfn-text-track-region" class="internalDFN">text track + regions</a>.</p></li> - <li><p>If <var>reset</var> is false, then, for each <a href="#dfn-text-track-region" class="internalDFN">text track region</a> <var>region</var> - in <var>regions</var> let <var>regionNode</var> be a <a href="#dfn-webvtt-region-object" class="internalDFN">WebVTT region object</a>.</p></li> + <li><p>For each track <var>track</var> in <var>tracks</var>, append to <var>regions</var> all + the <a title="text track region" href="#dfn-text-track-region" class="internalDFN">regions</a> from <var>track</var>'s <a title="text track list + of regions" href="#dfn-text-track-list-of-regions" class="internalDFN">list of regions</a>.</p></li> - <li> - <p>Apply the following steps for each <var>regionNode</var>:</p> + <li><p>If <var>reset</var> is false, then, for each <a href="#dfn-text-track-region" class="internalDFN">text track region</a> <var>region</var> + in <var>regions</var> let <var>regionNode</var> be a <a href="#dfn-webvtt-region-object" class="internalDFN">WebVTT region object</a>.</p></li> - <ol> - <li> - <p>Prepare some variables for the application of CSS properties to <var>regionNode</var> as - follows:</p> - - <ul> - <li><p>Let <var>regionWidth</var> be the <a href="#dfn-text-track-region-width" class="internalDFN">text track region width</a>. Let - <var>width</var> be '<var>regionWidth</var> vw' ('vw' is a CSS unit). - [<cite><a class="bibref" href="#bib-CSSVALUES">CSSVALUES</a></cite>]</p></li> - - <li><p>Let <var>lineHeight</var> be '5.33vh' ('vh' is a CSS unit) [<cite><a class="bibref" href="#bib-CSSVALUES">CSSVALUES</a></cite>] and - <var>regionHeight</var> be the <a href="#dfn-text-track-region-lines" class="internalDFN">text track region lines</a>. Let <var>lines</var> be - '<var>lineHeight</var> multiplied by <var>regionHeight</var>.</p></li> - - <li><p>Let <var>viewportAnchorX</var> be the x dimension of the <a href="#dfn-text-track-region-viewport-anchor" class="internalDFN">text track region - viewport anchor</a> and <var>regionAnchorX</var> be the x dimension of the <a href="#dfn-text-track-region-anchor" class="internalDFN">text track - region anchor</a>. Let <var>leftOffset</var> be <var>regionAnchorX</var> multiplied by - <var>width</var> divided by 100.0. Let <var>left</var> be <var>leftOffset</var> subtracted - from '<var>viewportAnchorX</var> vw'.</p></li> - - <li><p>Let <var>viewportAnchorY</var> be the y dimension of the <a href="#dfn-text-track-region-viewport-anchor" class="internalDFN">text track region - viewport anchor</a> and <var>regionAnchorY</var> be the y dimension of the <a href="#dfn-text-track-region-anchor" class="internalDFN">text track - region anchor</a>. Let <var>topOffset</var> be <var>regionAnchorY</var> multiplied by - <var>lines</var> divided by 100.0. Let <var>top</var> be <var>topOffset</var> subtracted - from '<var>viewportAnchorY</var> vh'.</p></li> - </ul> - </li> - - <li> - <p>Apply the terms of the CSS specifications to <var>regionNode</var> within the following - constraints, thus obtaining a CSS box <var>box</var> positioned relative to an initial - containing block:</p> - <ol> - <li><p>No style sheets are associated with <var>regionNode</var>. (The regionNodes are - subsequently restyled using style sheets after their boxes are generated, as described - below.)</p></li> - <li><p>Properties on <var>regionNode</var> 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.)</p></li> - <li><p>The viewport (and initial containing block) is video's rendering area.</p></li> - </ol> - </li> + <li> + <p>Apply the following steps for each <var>regionNode</var>:</p> - <li><p>Add the CSS box <var>box</var> to <var>output</var>.</p></li> - </ol> - </li> + <ol> + <li> + <p>Prepare some variables for the application of CSS properties to <var>regionNode</var> as + follows:</p> - <li> - <p>If <var>reset</var> is false, then, for each <a href="#dfn-text-track-cue" class="internalDFN">text track cue</a> <var>cue</var> in - <var>cues</var>: if <var>cue</var>'s <a href="#dfn-text-track-cue-display-state" class="internalDFN">text track cue display state</a> has a set of CSS - boxes, then:</p> + <ul> + <li><p>Let <var>regionWidth</var> be the <a href="#dfn-text-track-region-width" class="internalDFN">text track region width</a>. Let + <var>width</var> be '<var>regionWidth</var> vw' ('vw' is a CSS unit). + [<cite><a class="bibref" href="#bib-CSSVALUES">CSSVALUES</a></cite>]</p></li> + + <li><p>Let <var>lineHeight</var> be '5.33vh' ('vh' is a CSS unit) [<cite><a class="bibref" href="#bib-CSSVALUES">CSSVALUES</a></cite>] and + <var>regionHeight</var> be the <a href="#dfn-text-track-region-lines" class="internalDFN">text track region lines</a>. Let <var>lines</var> be + '<var>lineHeight</var> multiplied by <var>regionHeight</var>.</p></li> + + <li><p>Let <var>viewportAnchorX</var> be the x dimension of the <a href="#dfn-text-track-region-viewport-anchor" class="internalDFN">text track region + viewport anchor</a> and <var>regionAnchorX</var> be the x dimension of the <a href="#dfn-text-track-region-anchor" class="internalDFN">text track + region anchor</a>. Let <var>leftOffset</var> be <var>regionAnchorX</var> multiplied by + <var>width</var> divided by 100.0. Let <var>left</var> be <var>leftOffset</var> subtracted + from '<var>viewportAnchorX</var> vw'.</p></li> + + <li><p>Let <var>viewportAnchorY</var> be the y dimension of the <a href="#dfn-text-track-region-viewport-anchor" class="internalDFN">text track region + viewport anchor</a> and <var>regionAnchorY</var> be the y dimension of the <a href="#dfn-text-track-region-anchor" class="internalDFN">text track + region anchor</a>. Let <var>topOffset</var> be <var>regionAnchorY</var> multiplied by + <var>lines</var> divided by 100.0. Let <var>top</var> be <var>topOffset</var> subtracted + from '<var>viewportAnchorY</var> vh'.</p></li> + </ul> + </li> - <ul> - <li><p>If <var>cue</var>'s <a href="#dfn-text-track-cue-region" class="internalDFN">text track cue region</a> is not null, add those boxes to that - region's <var>box</var> and remove <var>cue</var> from <var>cues</var>.</p></li> - <li><p>Otherwise, add those boxes to <var>output</var> and remove <var>cue</var> from - <var>cues</var>.</p></li> - </ul> + <li> + <p>Apply the terms of the CSS specifications to <var>regionNode</var> within the following + constraints, thus obtaining a CSS box <var>box</var> positioned relative to an initial + containing block:</p> + <ol> + <li><p>No style sheets are associated with <var>regionNode</var>. (The regionNodes are + subsequently restyled using style sheets after their boxes are generated, as described + below.)</p></li> + <li><p>Properties on <var>regionNode</var> 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.)</p></li> + <li><p>The viewport (and initial containing block) is video's rendering area.</p></li> + </ol> + </li> - </li> + <li><p>Add the CSS box <var>box</var> to <var>output</var>.</p></li> + </ol> + </li> - <li> + <li> + <p>If <var>reset</var> is false, then, for each <a href="#dfn-text-track-cue" class="internalDFN">text track cue</a> <var>cue</var> in + <var>cues</var>: if <var>cue</var>'s <a href="#dfn-text-track-cue-display-state" class="internalDFN">text track cue display state</a> has a set of CSS + boxes, then:</p> - <p>For each <a href="#dfn-text-track-cue" class="internalDFN">text track cue</a> <var>cue</var> in <var>cues</var> that has not yet had - corresponding CSS boxes added to <var>output</var>, in <a href="#dfn-text-track-cue-order" class="internalDFN">text track cue order</a>, run the - following substeps:</p> + <ul> + <li><p>If <var>cue</var>'s <a href="#dfn-text-track-cue-region" class="internalDFN">text track cue region</a> is not null, add those boxes to that + region's <var>box</var> and remove <var>cue</var> from <var>cues</var>.</p></li> + <li><p>Otherwise, add those boxes to <var>output</var> and remove <var>cue</var> from + <var>cues</var>.</p></li> + </ul> - <ol> + </li> - <li><p>Let <var>nodes</var> be the <a href="#dfn-list-of-webvtt-node-objects" class="internalDFN">list of WebVTT Node Objects</a> obtained by applying - the <a href="#dfn-webvtt-cue-text-parsing-rules" class="internalDFN">WebVTT cue text parsing rules</a> to the <var>cue</var>'s <a href="#dfn-text-track-cue-text" class="internalDFN">text track cue - text</a>.</p></li> - - <li> - <p>If <var>cue</var>'s <a href="#dfn-text-track-cue-region" class="internalDFN">text track cue region</a> is null, run the following - substeps:</p> - - <ol> - - <li><a href="#dfn-apply-webvtt-cue-settings" class="internalDFN">Apply WebVTT cue settings</a> to obtain CSS boxes <var>boxes</var> from - <var>nodes</var>.</li> - - <li><p>Let <var>cue</var>'s <a href="#dfn-text-track-cue-display-state" class="internalDFN">text track cue display state</a> have the CSS boxes in - <var>boxes</var>.</p></li> - - <li><p>Add the CSS boxes in <var>boxes</var> to <var>output</var>.</p></li> - - </ol> - </li> - - <li> - <p>Otherwise, run the following substeps:</p> - <ol> - <li><p>Let <var>region</var> be <var>cue</var>'s <a href="#dfn-text-track-cue-region" class="internalDFN">text track cue region</a>.</p></li> - - <li><p>If <var>region</var>'s <a href="#dfn-text-track-region-scroll" class="internalDFN">text track region scroll</a> setting is '<code>up</code>' - and <var>region</var> already has one child, set <var>region</var>'s 'transition-property' - to 'top' and 'transition-duration' to '0.433s'.</p></li> - - <!-- The following steps are the subpart of the "apply WebVTT cue settings" algorithm that - applies to regions --> - <li> - <p>Apply the Unicode Bidirectional Algorithm's Paragraph Level steps to the concatenation - of the values of each <a href="#dfn-webvtt-text-object" class="internalDFN">WebVTT Text Object</a> in <var>nodes</var>, in a pre-order, - depth-first traversal, excluding <a title="WebVTT Ruby Text Object" href="#dfn-webvtt-ruby-text-object" class="internalDFN">WebVTT Ruby Text - Objects</a> and their descendants, to determine the <i>paragraph embedding level</i> of - the first Unicode paragraph of the cue. [<cite><a class="bibref" href="#bib-BIDI">BIDI</a></cite>]</p> - <div class="note"><div class="note-title" aria-level="3" role="heading" id="h_note_29"><span>Note</span></div><p class="">Within a cue, paragraph boundaries are only denoted by Type B characters, - such as U+000A LINE FEED (LF), U+0085 NEXT LINE (NEL), and U+2029 PARAGRAPH SEPARATOR. - (This means each line of the cue is reordered as if it was a separate paragraph.)</p></div> - </li> - - <li><p>If the <i>paragraph embedding level</i> determined in the previous step is even - (the <i>paragraph direction</i> is left-to-right), let <var>direction</var> be 'ltr', - otherwise, let it be 'rtl'.</p></li> - - <li><p>Let <var>offset</var> be the <a href="#dfn-text-track-cue-computed-text-position" class="internalDFN">text track cue computed text position</a> - multiplied by <var>region</var>'s <a href="#dfn-text-track-region-width" class="internalDFN">text track region width</a> and divided by 100 (i.e. - interpret it as a percentage of the region width).</p></li> - - <li> - <p>Adjust <var>offset</var> using the <a href="#dfn-text-track-cue-computed-text-position-alignment" class="internalDFN">text track cue computed text position - alignment</a> as follows:</p> - <dl class="switch"> - <dt>If the <a href="#dfn-text-track-cue-computed-text-position-alignment" class="internalDFN">text track cue computed text position alignment</a> is <a title="text - track cue text position middle alignment" href="#dfn-text-track-cue-text-position-middle-alignment" class="internalDFN">middle alignment</a></dt> - <dd><p>Subtract half of <var>region</var>'s <a href="#dfn-text-track-region-width" class="internalDFN">text track region width</a> from - <var>offset</var>.</p></dd> - - <dt>If the <a href="#dfn-text-track-cue-computed-text-position-alignment" class="internalDFN">text track cue computed text position alignment</a> is <a title="text - track cue text position end alignment" href="#dfn-text-track-cue-text-position-end-alignment" class="internalDFN">end alignment</a></dt> - <dd><p>Subtract <var>region</var>'s <a href="#dfn-text-track-region-width" class="internalDFN">text track region width</a> from - <var>offset</var>.</p></dd> - </dl> - </li> - - <li><p>Let <var>left</var> be '<var>offset</var> %'. ('%' is a CSS unit.) - [<cite><a class="bibref" href="#bib-CSSVALUES">CSSVALUES</a></cite>]</p></li> - - <li> - <p>Apply the terms of the CSS specifications to <var>nodes</var> with the same - constraints that are used when they are applied to <var>nodes</var> of a <var>cue</var> - that is not part of a region.</p> - - <p>Let <var>boxes</var> be the boxes generated as descendants of the initial containing - block, along with their positions.</p> - </li> - - <li><p>If there are no line boxes in <var>boxes</var>, skip the remainder of these - substeps for <var>cue</var>. The cue is ignored.</p></li> - - <li><p>Let <var>cue</var>'s <a href="#dfn-text-track-cue-display-state" class="internalDFN">text track cue display state</a> have the CSS boxes in - <var>boxes</var>.</p></li> - - <li><p>Add the CSS boxes in <var>boxes</var> to <var>region</var>.</p></li> - [1892 lines skipped]
Received on Sunday, 8 March 2015 03:27:46 UTC