--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ttml-ww-profiles/ttml-ww-profiles.html Wed Aug 28 09:34:54 2013 -0600
@@ -0,0 +1,2549 @@
+<!DOCTYPE html>
+<html lang="en" dir="ltr">
+<head>
+ <meta name="generator" content="HTML Tidy for HTML5 (experimental) for Windows https://github.com/w3c/tidy-html5/tree/c63cc39">
+ <meta charset="utf-8">
+
+ <title>TTML Text and Image Profiles for Internet Media Subtitles and Captions</title>
+
+
+<style>/*****************************************************************
+ * ReSpec 3 CSS
+ * Robin Berjon - http://berjon.com/
+ *****************************************************************/
+
+/* --- INLINES --- */
+em.rfc2119 {
+ text-transform: lowercase;
+ font-variant: small-caps;
+ font-style: normal;
+ color: #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+ border: none;
+}
+
+dfn {
+ font-weight: bold;
+}
+
+a.internalDFN {
+ color: inherit;
+ border-bottom: 1px solid #99c;
+ text-decoration: none;
+}
+
+a.externalDFN {
+ color: inherit;
+ border-bottom: 1px dotted #ccc;
+ text-decoration: none;
+}
+
+a.bibref {
+ text-decoration: none;
+}
+
+cite .bibref {
+ font-style: normal;
+}
+
+code {
+ color: #ff4500;
+}
+
+/* --- TOC --- */
+.toc a, .tof a {
+ text-decoration: none;
+}
+
+a .secno, a .figno {
+ color: #000;
+}
+
+ul.tof, ol.tof {
+ list-style: none outside none;
+}
+
+.caption {
+ margin-top: 0.5em;
+ font-style: italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+ border-spacing: 0;
+ border-collapse: collapse;
+ border-bottom: 3px solid #005a9c;
+}
+
+.simple th {
+ background: #005a9c;
+ color: #fff;
+ padding: 3px 5px;
+ text-align: left;
+}
+
+.simple th[scope="row"] {
+ background: inherit;
+ color: inherit;
+ border-top: 1px solid #ddd;
+}
+
+.simple td {
+ padding: 3px 10px;
+ border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+ background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+ margin-top: 0;
+}
+
+.section dd > p:last-child {
+ margin-bottom: 0;
+}
+
+.section dd {
+ margin-bottom: 1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+ margin-bottom: 0;
+}
+</style><style>/* --- EXAMPLES --- */
+div.example-title {
+ min-width: 7.5em;
+ color: #b9ab2d;
+}
+div.example-title span {
+ text-transform: uppercase;
+}
+aside.example, div.example, div.illegal-example {
+ padding: 0.5em;
+ margin: 1em 0;
+ position: relative;
+ clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+ padding: .5em;
+ border-left-width: .5em;
+ border-left-style: solid;
+ border-color: #e0cb52;
+ background: #fcfaee;
+}
+
+aside.example div.example {
+ border-left-width: .1em;
+ border-color: #999;
+ background: #fff;
+}
+aside.example div.example div.example-title {
+ color: #999;
+}
+</style><style>/* --- ISSUES/NOTES --- */
+div.issue-title, div.note-title {
+ padding-right: 1em;
+ min-width: 7.5em;
+ color: #b9ab2d;
+}
+div.issue-title { color: #e05252; }
+div.note-title { color: #2b2; }
+div.issue-title span, div.note-title span {
+ text-transform: uppercase;
+}
+div.note, div.issue {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+.note > p:first-child, .issue > p:first-child { margin-top: 0 }
+.issue, .note {
+ padding: .5em;
+ border-left-width: .5em;
+ border-left-style: solid;
+}
+div.issue, div.note {
+ padding: 1em 1.2em 0.5em;
+ margin: 1em 0;
+ position: relative;
+ clear: both;
+}
+span.note, span.issue { padding: .1em .5em .15em; }
+
+.issue {
+ border-color: #e05252;
+ background: #fbe9e9;
+}
+.note {
+ border-color: #52e052;
+ background: #e9fbe9;
+}
+
+
+</style><link href="http://www.w3.org/StyleSheets/TR/W3C-Member-SUBM" rel="stylesheet"><!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--><!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--></head>
+
+<body class="h-entry"><div class="head">
+ <p>
+ <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a>
+ <a href="http://www.w3.org/Submission/"><img height="48" width="211" src="http://www.w3.org/Icons/member_subm" alt="W3C Member Submission"/></a>
+ </p>
+ <h1 class="title p-name" id="title">TTML Text and Image Profiles for Internet Media Subtitles and Captions</h1>
+
+ <h2 id="w3c-member-submission-07-june-2013">W3C Member Submission <time class="dt-published" datetime="2013-06-07">07 June 2013</time></h2>
+ <dl>
+
+ <dt>This version:</dt>
+ <dd><a class="u-url" href="http://www.w3.org/Submission/2013/SUBM-ttml-ww-profiles-20130607/">http://www.w3.org/Submission/2013/SUBM-ttml-ww-profiles-20130607/</a></dd>
+ <dt>Latest published version:</dt>
+ <dd><a href="http://www.w3.org/Submission/ttml-ww-profiles/">http://www.w3.org/Submission/ttml-ww-profiles/</a></dd>
+
+
+
+
+
+
+ <dt>Previous version:</dt>
+ <dd><a href=""></a></dd>
+
+
+ <dt>Editor:</dt>
+ <dd class="p-author h-card vcard"><span class="p-name fn">Pierre Lemieux</span>, <span class="ed_mailto"><a class="u-email email" href="mailto:pal@sandflow.com">pal@sandflow.com</a></span></dd>
+
+
+
+ </dl>
+
+
+
+
+
+ <p class="copyright">Copyright © 2013 Motion Picture Laboratories, Inc. Derived from the Common File Format & Media Formats Specification 1.0.6 and Common File Format Timed Text XML Schemas 1.0.6 posted at http://www.uvvuwiki.com, © Digital Entertainment Content Ecosystem (DECE) LLC and used with permission.This document is available under the <a href="http://www.w3.org/Consortium/Legal/copyright-documents">W3C Document License</a>. See the <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">W3C Intellectual Rights Notice and Legal Disclaimers</a>for additional information.</p>
+
+
+ <hr>
+</div>
+ <section class="introductory" id="abstract"><h2>Abstract</h2>
+ <p>This submission specifies two profiles of the Timed Text Markup Language (TTML) Version 2.0: a text-only profile and an
+ image-only profile. These profiles are intended to be used across subtitle and caption delivery applications worldwide, thereby
+ simplifying interoperability, consistent rendering and conversion to other subtitling and captioning formats.</p>
+
+ <p>Both profiles are based on the <a href="http://www.uvvuwiki.com/">Common File Format & Media Formats Specification
+ (CFF)</a> developed by <a href="http://www.uvvu.com/partners.php">Digital Entertainment Content Ecosystem (DECE)</a>, and
+ benefit from the technical consensus, conformance testing and implementation experience gathered there. The text
+ profile is intended as a superset of <a href="http://www.w3.org/TR/ttml10-sdp-us/">SDP-US</a>, which is a subset of CFF. The
+ image profile extends a subset of TTML with <a href="https://www.smpte.org/sites/default/files/st2052-1-2010.pdf">SMPTE
+ Timed Text (SMPTE-TT)</a> image support.</p>
+
+ <p>DECE is an industry forum with more than 80 members across the content and consumer electronics communities.</p>
+ </section><section id="sotd" class="introductory"><h2>Status of This Document</h2>
+
+
+ <p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
+
+ <p>By publishing this document, W3C acknowledges that the <a href="http://www.w3.org/Submission/2013/02">Submitting Members</a> have made a formal Submission request to W3C for discussion. Publication of this document by W3C indicates no endorsement of its content by W3C, nor that W3C has, is, or will be allocating any resources to the issues addressed by it. This document is not the product of a chartered W3C group, but is published as potential input to the <a href="http://www.w3.org/Consortium/Process">W3C Process</a>. A <a href="http://www.w3.org/Submission/2013/02/Comment/">W3C Team Comment</a> has been published in conjunction with this Member Submission. Publication of acknowledged Member Submissions at the W3C site is one of the benefits of <a href="http://www.w3.org/Consortium/Prospectus/Joining">W3C Membership</a>. Please consult the requirements associated with Member Submissions of <a href="http://www.w3.org/Consortium/Patent-Policy-20030520.html#sec-submissions">section 3.3 of the W3C Patent Policy</a>. Please consult the complete <a href="http://www.w3.org/Submission">list of acknowledged W3C Member Submissions</a>.</p>
+
+
+
+
+</section><section id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a class="tocxref" href="#scope"><span class="secno">1. </span>Scope</a></li><li class="tocline"><a class="tocxref" href="#conformance"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a class="tocxref" href="#profiles"><span class="secno">3. </span>Profiles</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#general"><span class="secno">3.1 </span>General</a></li><li class="tocline"><a class="tocxref" href="#text-profile"><span class="secno">3.2 </span>Text Profile</a></li><li class="tocline"><a class="tocxref" href="#image-profile"><span class="secno">3.3 </span>Image Profile</a></li></ul></li><li class="tocline"><a class="tocxref" href="#common-constraints"><span class="secno">4. </span>Common Constraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#document-encoding"><span class="secno">4.1 </span>Document Encoding</a></li><li class="tocline"><a class="tocxref" href="#related-video-object"><span class="secno">4.2 </span>Related Video Object</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#general-1"><span class="secno">4.2.1 </span>General</a></li><li class="tocline"><a class="tocxref" href="#root-container"><span class="secno">4.2.2 </span>Root Container</a></li><li class="tocline"><a class="tocxref" href="#synchronization"><span class="secno">4.2.3 </span>Synchronization</a></li></ul></li><li class="tocline"><a class="tocxref" href="#language"><span class="secno">4.3 </span>Language</a></li><li class="tocline"><a class="tocxref" href="#region"><span class="secno">4.4 </span>Region</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#presented-region"><span class="secno">4.4.1 </span>Presented Region</a></li><li class="tocline"><a class="tocxref" href="#dimensions-and-position"><span class="secno">4.4.2 </span>Dimensions and Position</a></li><li class="tocline"><a class="tocxref" href="#maximum-number"><span class="secno">4.4.3 </span>Maximum number</a></li></ul></li><li class="tocline"><a class="tocxref" href="#hypothetical-render-model"><span class="secno">4.5 </span>Hypothetical Render Model</a></li><li class="tocline"><a class="tocxref" href="#features"><span class="secno">4.6 </span>Features</a></li></ul></li><li class="tocline"><a class="tocxref" href="#text-profile-constraints"><span class="secno">5. </span>Text Profile Constraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#document-conformance"><span class="secno">5.1 </span>Document Conformance</a></li><li class="tocline"><a class="tocxref" href="#features-1"><span class="secno">5.2 </span>Features</a></li></ul></li><li class="tocline"><a class="tocxref" href="#image-profile-constraints"><span class="secno">6. </span>Image Profile Constraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#document-conformance-1"><span class="secno">6.1 </span>Document Conformance</a></li><li class="tocline"><a class="tocxref" href="#features-2"><span class="secno">6.2 </span>Features</a></li></ul></li><li class="tocline"><a class="tocxref" href="#hypothetical-render-model-1"><span class="secno">7. </span>Hypothetical Render Model</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#overview"><span class="secno">7.1 </span>Overview</a></li><li class="tocline"><a class="tocxref" href="#model"><span class="secno">7.2 </span>Model</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#general-2"><span class="secno">7.2.1 </span>General</a></li><li class="tocline"><a class="tocxref" href="#paint-regions"><span class="secno">7.2.2 </span>Paint Regions</a></li><li class="tocline"><a class="tocxref" href="#paint-images"><span class="secno">7.2.3 </span>Paint Images</a></li><li class="tocline"><a class="tocxref" href="#paint-text"><span class="secno">7.2.4 </span>Paint Text</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#recommended-unicode-code-points-per-language"><span class="secno">A. </span>Recommended Unicode Code Points per Language</a></li><li class="tocline"><a class="tocxref" href="#typical-practice-for-subtitles-per-region-informative"><span class="secno">B. </span>Typical Practice for Subtitles per Region (Informative)</a></li><li class="tocline"><a class="tocxref" href="#schema"><span class="secno">C. </span>Schema</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="secno">D. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">D.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">D.2 </span>Informative references</a></li></ul></li></ul></section>
+
+ <section id="scope">
+ <!--OddPage--><h2><span class="secno">1. </span>Scope</h2>
+
+ <p>This document specifies two profiles of [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>]: a text-only profile and an image-only
+ profile. These profiles are intended for subtitle and caption delivery worldwide, including dialog language translation,
+ content description, captions for deaf and hard of hearing, etc.</p>
+ </section>
+
+ <section id="conformance"><!--OddPage--><h2><span class="secno">2. </span>Conformance</h2>
+<p>
+ As well as sections marked as non-normative, all authoring guidelines, diagrams, examples,
+ and notes in this specification are non-normative. Everything else in this specification is
+ normative.
+</p>
+<p>
+ The keywords <em title="MUST" class="rfc2119">MUST</em>, <em title="MUST NOT" class="rfc2119">MUST NOT</em>, <em title="SHALL" class="rfc2119">SHALL</em>, <em title="SHALL NOT" class="rfc2119">SHALL NOT</em>, <em title="REQUIRED" class="rfc2119">REQUIRED</em>, <em title="SHOULD" class="rfc2119">SHOULD</em>, <em title="SHOULD NOT" class="rfc2119">SHOULD NOT</em>, <em title="RECOMMENDED" class="rfc2119">RECOMMENDED</em>, <em title="MAY" class="rfc2119">MAY</em>,
+ and <em title="OPTIONAL" class="rfc2119">OPTIONAL</em> in this specification are to be interpreted as described in [<cite><a href="#bib-RFC2119" class="bibref">RFC2119</a></cite>].
+</p>
+
+ <p>A subtitle document <em title="SHALL" class="rfc2119">SHALL</em> conform to a profile defined herein if it meets all normative provisions associated with the
+ profile.</p>
+
+ <p>A TTML presentation processor <em title="SHALL" class="rfc2119">SHALL</em> conform to a profile if it is capable of presenting any subtitle document conforming to
+ the profile, i.e. if it implements all features and provisions of the profile</p>
+ </section>
+
+ <section id="profiles">
+ <!--OddPage--><h2><span class="secno">3. </span>Profiles</h2>
+
+ <section id="general">
+ <h3><span class="secno">3.1 </span>General</h3>
+
+ <p>A subtitle document <em title="SHALL NOT" class="rfc2119">SHALL NOT</em> conform to the Text and Image Profiles simultaneously.</p>
+ </section>
+
+ <section id="text-profile">
+ <h3><span class="secno">3.2 </span>Text Profile</h3>
+
+ <p>A subtitle document conforming to the Text Profile <em title="SHALL" class="rfc2119">SHALL</em> conform to Sections <a class="sec-ref" href="#common-constraints"><span class="secno">4.</span> <span class="sec-title">Common Constraints</span></a> and
+ <a class="sec-ref" href="#text-profile-constraints"><span class="secno">5.</span> <span class="sec-title">Text Profile Constraints</span></a>.</p>
+ </section>
+
+ <section id="image-profile">
+ <h3><span class="secno">3.3 </span>Image Profile</h3>
+
+ <p>A subtitle document conforming to the Image Profile <em title="SHALL" class="rfc2119">SHALL</em> conform to Sections <a class="sec-ref" href="#common-constraints"><span class="secno">4.</span> <span class="sec-title">Common Constraints</span></a> and
+ <a class="sec-ref" href="#image-profile-constraints"><span class="secno">6.</span> <span class="sec-title">Image Profile Constraints</span></a>.</p>
+ </section>
+ </section>
+
+ <section id="common-constraints">
+ <!--OddPage--><h2><span class="secno">4. </span>Common Constraints</h2>
+
+ <section id="document-encoding">
+ <h3><span class="secno">4.1 </span>Document Encoding</h3>
+
+ <p>A subtitle document <em title="SHALL" class="rfc2119">SHALL</em> use UTF-8 character encoding as specified in [<cite><a href="#bib-UNICODE" class="bibref">UNICODE</a></cite>].</p>
+ </section>
+
+ <section id="related-video-object">
+ <h3><span class="secno">4.2 </span>Related Video Object</h3>
+
+ <section id="general-1">
+ <h4><span class="secno">4.2.1 </span>General</h4>
+
+ <p>A subtitle document <em title="MAY" class="rfc2119">MAY</em> be associated with a related video object, which <em title="SHALL" class="rfc2119">SHALL</em> consist of a sequence of frames, each a
+ rectangular array of pixels.</p>
+ </section>
+
+ <section id="root-container">
+ <h4><span class="secno">4.2.2 </span>Root Container</h4>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">The following assumes the addition of a <code>ttp:aspectRatio</code> attribute to [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>].</p></div>
+
+ <p>The root container of a subtitle document <em title="SHALL" class="rfc2119">SHALL</em> be mapped to the related video object frame according to the
+ following:</p>
+
+ <ol>
+ <li>
+ <p>If <code>ttp:aspectRatio</code> is present, the root container <em title="SHALL" class="rfc2119">SHALL</em> be mapped to a rectangular area within the
+ related video object such that:</p>
+
+ <ol style="list-style-type: lower-roman;">
+ <li>the aspect ratio of the rectangular area is equal to <code>ttp:aspectRatio</code>,</li>
+
+ <li>the center of the rectangular area is colocated with the center of the related video object frame,</li>
+
+ <li>the rectangular area is entirely contained within the related video object frame and</li>
+
+ <li>the rectangular area has a height or width equal to that of the related video object frame.</li>
+ </ol>
+ </li>
+
+ <li>
+ <p>Otherwise, the root container of a subtitle document <em title="SHALL" class="rfc2119">SHALL</em> be mapped to the related video object frame in its
+ entirety. If <code>tts:extent</code> is present on the <code>tt</code> element, the extents of the root container <em title="SHALL" class="rfc2119">SHALL</em>
+ be equal to the dimensions of the related video object frame.</p>
+ </li>
+ </ol>
+
+ <p><code>ttp:aspectRatio</code> <em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be present if <code>tts:extent</code> is present.<br></p>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">As specified in Section <a class="sec-ref" href="#features"><span class="secno">4.6</span> <span class="sec-title">Features</span></a>, <code>tts:extent</code> is present if the <code>px</code>
+ length measure is used anywhere within the document.</p></div>
+
+ <p>Integer pixel positions on the related video object frame computed from real percentage length values <em title="SHALL" class="rfc2119">SHALL</em> use half-up
+ rounding, i.e. round(x) = floor(x+0.5).</p>
+ </section>
+
+ <section id="synchronization">
+ <h4><span class="secno">4.2.3 </span>Synchronization</h4>
+
+ <p>Each intermediate synchronic document of the subtitle document is intended to be displayed on a specific frame and
+ removed on a specific frame of the related video object.</p>
+
+ <p>A media time expression M <em title="SHALL" class="rfc2119">SHALL</em> correspond to the frame of the related video object with the presentation time that is
+ the closest to, but not less, than M.</p>
+
+ <p>If <code>ttp:frameRate</code> is specified, then the product of <code>ttp:frameRate</code> and
+ <code>ttp:frameRateMultiplier</code> <em title="SHALL" class="rfc2119">SHALL</em> be the frame rate of the related video object.</p>
+
+ <aside class="example"><div class="example-title"><span>Example 1</span></div>
+ A media time expression of 00:00:05.1 corresponds to frame ceiling(5.1 × ( 1000 / 1001 × 30) = 153 of a related video
+ object with a frame rate of 1000 / 1001 × 30 ≈ 29.97.
+ </aside>
+ </section>
+ </section>
+
+ <section id="language">
+ <h3><span class="secno">4.3 </span>Language</h3>
+
+ <p>All instances of the <code>xml:lang</code> attribute within a subtitle document <em title="SHALL" class="rfc2119">SHALL</em> have identical values.</p>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class=""><code>xml:lang</code> can have a value of "".</p></div>
+ </section>
+
+ <section id="region">
+ <h3><span class="secno">4.4 </span>Region</h3>
+
+ <section id="presented-region">
+ <h4><span class="secno">4.4.1 </span>Presented Region</h4>
+
+ <p>A region, as defined in [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>], <em title="SHALL" class="rfc2119">SHALL</em> be considered presented in a given intermediate synchronic document if both of the
+ following conditions are true:</p>
+
+ <ol>
+ <li>
+ <p><code>tts:opacity</code> is not equal to "0.0" for the region; and</p>
+ </li>
+
+ <li>
+ <p>content is selected into the region or <code>tts:showBackground</code> is equal to "always" for the
+ region.</p>
+ </li>
+ </ol>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">As specified in [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>], the initial value of <code>tts:opacity</code> is "1.0" and the default
+ value of <code>tts:showBackground</code> is "always".</p></div>
+ </section>
+
+ <section id="dimensions-and-position">
+ <h4><span class="secno">4.4.2 </span>Dimensions and Position</h4>
+
+ <p>All regions <em title="SHALL" class="rfc2119">SHALL</em> be entirely contained within the root container.</p>
+
+ <p>No two regions presented in a given intermediate synchronic document <em title="SHALL" class="rfc2119">SHALL</em> overlap</p>
+ </section>
+
+ <section id="maximum-number">
+ <h4><span class="secno">4.4.3 </span>Maximum number</h4>
+
+ <p>The number of presented regions in a given intermediate synchronic document <em title="SHALL" class="rfc2119">SHALL</em> be smaller than or equal to 4.</p>
+ </section>
+ </section>
+
+ <section id="hypothetical-render-model">
+ <h3><span class="secno">4.5 </span>Hypothetical Render Model</h3>
+
+ <p>Any sequence of consecutive intermediate synchronic documents <em title="SHALL" class="rfc2119">SHALL</em> be reproducible without error by the Hypothetical
+ Render Model specified in Section <a class="sec-ref" href="#hypothetical-render-model"><span class="secno">4.5</span> <span class="sec-title">Hypothetical Render Model</span></a>.</p>
+ </section>
+
+ <section id="features">
+ <h3><span class="secno">4.6 </span>Features</h3>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Feature</th>
+
+ <th>Provisions</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td><code>#animation</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#cellResolution</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#clockMode</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#content</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#core</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#display-block</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#display-inline</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#display-region</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#display</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#dropMode</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#extent-region</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. The <code>tts:extent</code> attribute <em title="SHALL" class="rfc2119">SHALL</em> be present on all <code>region</code> elements.</td>
+ </tr>
+
+ <tr>
+ <td><code>#extent-root</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. If the document includes any length value that uses the <code>px</code> expression,
+ <code>tts:extent</code> <em title="SHALL" class="rfc2119">SHALL</em> be present on the <code>tt</code> element.</td>
+ </tr>
+
+ <tr>
+ <td><code>#extent</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#frameRate</code></td>
+
+ <td>If the document includes any time expression that uses the frame field, the <code>ttp:frameRate</code> attribute
+ <em title="SHALL" class="rfc2119">SHALL</em> be present on the <code>tt</code> element.</td>
+ </tr>
+
+ <tr>
+ <td><code>#frameRateMultiplier</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#layout</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-cell</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-integer</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-negative</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-percentage</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-pixel</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-positive</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-real</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#markerMode</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#metadata</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#opacity</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#origin</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#overflow</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#pixelAspectRatio</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#presentation</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#profile</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#showBackground</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#structure</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#styling-chained</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#styling-inheritance-content</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#styling-inheritance-region</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#styling-inline</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#styling-nested</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#styling-referential</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#styling</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#subFrameRate</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#tickRate</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. <code>ttp:tickRate</code> <em title="SHALL" class="rfc2119">SHALL</em> be present on the <code>tt</code> element.</td>
+ </tr>
+
+ <tr>
+ <td><code>#timeBase-clock</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#timeBase-media</code></td>
+
+ <td><em title="SHALL" class="rfc2119">SHALL</em> be used. <code>ttp:timeBase</code> <em title="SHALL" class="rfc2119">SHALL</em> be present on the <code>tt</code> element and <em title="SHALL" class="rfc2119">SHALL</em> be equal to
+ "media".</td>
+ </tr>
+
+ <tr>
+ <td><code>#timeBase-smpte</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#time-clock-with-frames</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#time-clock</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#time-offset-with-frames</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#time-offset-with-ticks</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#time-offset</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#timeBase-media</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#timeContainer</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#timing</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. The same syntax of <code>#clock-time</code> or <code>#offset-time</code> <em title="SHOULD" class="rfc2119">SHOULD</em> be used throughout the
+ subtitle document.</td>
+ </tr>
+
+ <tr>
+ <td><code>#transformation</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#unicodeBidi</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#visibility-block</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#visibility-inline</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#visibility-region</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#visibility</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#writingMode-horizontal-lr</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#writingMode-horizontal-rl</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#writingMode-horizontal</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#writingMode</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#zIndex</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#aspectRatio</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#forcedDisplay</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class="">See <a href="http://www.w3.org/AudioVideo/TT/tracker/issues/230">ISSUE-230</a> for a description of
+ <code>#forcedDisplay</code></p></div>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class="">This initial values specified for <code>tts:color</code>, <code>tts:displayAlign</code> and
+ <code>tts:textAlign</code> are those specified by [<cite><a href="#bib-ST2052-1" class="bibref">ST2052-1</a></cite>].</p></div>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class="">As specified in [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>], a <code>#time-offset-with-frames</code> expression is translated to a media time M
+ according to M = 3600 · hours + 60 · minutes + seconds + (frames ÷ (<code>ttp:frameRateMultiplier</code> ·
+ <code>ttp:frameRate</code>)).</p></div>
+ </section>
+ </section>
+
+ <section id="text-profile-constraints">
+ <!--OddPage--><h2><span class="secno">5. </span>Text Profile Constraints</h2>
+
+ <section id="document-conformance">
+ <h3><span class="secno">5.1 </span>Document Conformance</h3>
+
+ <p>A subtitle document conforming to the Text Profile <em title="SHALL" class="rfc2119">SHALL</em> be designated by the document conformance designator specified
+ below.</p>
+ <pre>http://www.w3.org/ns/ttml/profile/imsc-text
+</pre>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class="">The ttp:profile mechanism of TTML 1.0 allows a document to indicate the profile(s) that a processor <em title="SHALL" class="rfc2119">SHALL</em>
+ support in order to process the document. This mechanism cannot be used to indicate that a processor implementing any of the
+ referenced profiles can process the document. The document conformance concept introduced below extends the TTML 1.0
+ ttp:profile mechanism by allowing a document to signal that it conforms to a specified set of normative provisions.</p></div>
+ </section>
+
+ <section id="features-1">
+ <h3><span class="secno">5.2 </span>Features</h3>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class="">The following assumes, but does not require, the porting of the [<cite><a href="#bib-ST2052-1" class="bibref">ST2052-1</a></cite>]
+ <code>#backgroundImage</code>, <code>#backgroundImageHorizontal</code>, <code>#backgroundImageVertical</code> and
+ <code>#image</code> features to [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>].</p></div>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Feature</th>
+
+ <th>Provisions</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td><code>#backgroundColor-block</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundColor-inline</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundColor-region</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundColor</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundImage</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundImageHorizontal</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundImageVertical</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#bidi</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#color</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. The initial value of <code>tts:color</code> <em title="SHALL" class="rfc2119">SHALL</em> be "white".</td>
+ </tr>
+
+ <tr>
+ <td><code>#direction</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#displayAlign</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. The initial value of <code>tts:displayAlign</code> <em title="SHALL" class="rfc2119">SHALL</em> be "after".</td>
+ </tr>
+
+ <tr>
+ <td><code>#extent-region</code></td>
+
+ <td>The <code>tts:extent</code> attribute when applied to a region element <em title="SHALL" class="rfc2119">SHALL</em> use <code>px</code> units or
+ "percentage" representation, and <em title="SHALL NOT" class="rfc2119">SHALL NOT</em> use <code>em</code> units.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontFamily-generic</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontFamily-non-generic</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontFamily</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontSize-anamorphic</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontSize-isomorphic</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontSize</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontStyle-italic</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontStyle-oblique</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontStyle</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontWeight-bold</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontWeight</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#image</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-em</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#lineBreak-uax14</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#lineHeight</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#nested-div</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#nested-span</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#origin</code></td>
+
+ <td>The <code>tts:origin</code> attribute <em title="SHALL" class="rfc2119">SHALL</em> use <code>px</code> units or "percentage" representation, and
+ <em title="SHALL NOT" class="rfc2119">SHALL NOT</em> use <code>em</code> units.</td>
+ </tr>
+
+ <tr>
+ <td><code>#padding-1</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#padding-2</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#padding-3</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#padding-4</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#padding</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textAlign-absolute</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textAlign-relative</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textAlign</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. The initial value of <code>tts:textAlign</code> <em title="SHALL" class="rfc2119">SHALL</em> be "center".</td>
+ </tr>
+
+ <tr>
+ <td><code>#textDecoration-over</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textDecoration-through</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textDecoration-under</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textDecoration</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textOutline-blurred</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textOutline-unblurred</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textOutline</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. If specified, the border thickness <em title="SHALL" class="rfc2119">SHALL</em> be 10% or less than the associated font size.</td>
+ </tr>
+
+ <tr>
+ <td><code>#wrapOption</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#writingMode-vertical</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used.</td>
+ </tr>
+ </tbody>
+ </table>
+ </section>
+ </section>
+
+ <section id="image-profile-constraints">
+ <!--OddPage--><h2><span class="secno">6. </span>Image Profile Constraints</h2>
+
+ <section id="document-conformance-1">
+ <h3><span class="secno">6.1 </span>Document Conformance</h3>
+
+ <p>The Image Profile <em title="SHALL" class="rfc2119">SHALL</em> be designated by the document conformance designator specified below:</p>
+ <pre>http://www.w3.org/ns/ttml/profile/imsc-image
+</pre>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class="">The ttp:profile mechanism of TTML 1.0 allows a document to indicate the profile(s) that a processor <em title="SHALL" class="rfc2119">SHALL</em>
+ support in order to process the document. This mechanism cannot be used to indicate that a processor implementing any of the
+ referenced profiles can process the document. The document conformance concept introduced below extends the TTML 1.0
+ ttp:profile mechanism by allowing a document to signal that it conforms to a specified set of normative
+ provisions.</p></div>
+ </section>
+
+ <section id="features-2">
+ <h3><span class="secno">6.2 </span>Features</h3>
+
+ <div class="note"><div aria-level="4" class="note-title" role="heading"><span>Note</span></div><p class="">The following assumes, but does not require, the porting of the [<cite><a href="#bib-ST2052-1" class="bibref">ST2052-1</a></cite>]
+ <code>#backgroundImage</code>, <code>#backgroundImageHorizontal</code>, <code>#backgroundImageVertical</code> and
+ <code>#image</code> features to [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>].</p></div>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Feature</th>
+
+ <th>Provisions</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td><code>#backgroundImage</code></td>
+
+ <td><em title="MAY" class="rfc2119">MAY</em> be used. The backgroundImage attribute <em title="SHALL" class="rfc2119">SHALL</em> reference a complete image that conforms to the PNG image coding
+ as specified in Sections 7.1.1.3 and 15.1 of [<cite><a href="#bib-MHP" class="bibref">MHP</a></cite>].<br>
+ If a pHYs chunk is present, it <em title="SHALL" class="rfc2119">SHALL</em> indicate square pixels. Note: If no pixel aspect ratio is carried, the default of
+ square pixels will be assumed.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundImageHorizontal</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used. <code>#backgroundImage</code> remains available for use.</td>
+ </tr>
+
+ <tr>
+ <td><code>#backgroundImageVertical</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used. <code>#backgroundImage</code> remains available for use.</td>
+ </tr>
+
+ <tr>
+ <td><code>#bidi</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#color</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#content</code></td>
+
+ <td>The <code>p</code>, <code>span</code> and <code>br</code> elements <em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be present.</td>
+ </tr>
+
+ <tr>
+ <td><code>#direction</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#displayAlign</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#extent-region</code></td>
+
+ <td>If a <code>tts:backgroundImage</code> attribute is applied to a region, the width and height of the region extent
+ <em title="SHALL" class="rfc2119">SHALL</em> be present and <em title="SHALL" class="rfc2119">SHALL</em> be equal to the width and height of the image source referenced by the
+ <code>tts:backgroundImage</code>.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontFamily</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontSize</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontStyle</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#fontWeight</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#image</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#length-em</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#lineBreak-uax14</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#lineHeight</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#nested-div</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#nested-span</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#padding</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textAlign</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textDecoration</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#textOutline</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#wrapOption</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+
+ <tr>
+ <td><code>#writingMode-vertical</code></td>
+
+ <td><em title="SHALL NOT" class="rfc2119">SHALL NOT</em> be used.</td>
+ </tr>
+ </tbody>
+ </table>
+ </section>
+ </section>
+
+ <section id="hypothetical-render-model-1">
+ <!--OddPage--><h2><span class="secno">7. </span>Hypothetical Render Model</h2>
+
+ <section id="overview">
+ <h3><span class="secno">7.1 </span>Overview</h3>
+
+ <p>This Section specifies the Hypothetical Render Model illustrated in <a class="fig-ref" href="#fig-hypothetical-render-model">Fig. <span class="figno">1</span> <span class="fig-title">
+ Hypothetical Render Model
+ </span></a>.</p>
+
+ <p>The purpose of the model is to limit subtitle document complexity. It is not however intended to serve as basis for
+ implementation. For instance, while the model defines a glyph buffer for the purpose of limiting the number of glyphs
+ displayed at any given point in time, it does not require an implementation to implement such a buffer.</p>
+
+ <figure id="fig-hypothetical-render-model">
+ <img src="hypothetical-render-figure-1.png" alt="Hypothetical Render Model">
+
+ <figcaption>Fig. <span class="figno">1</span> <span class="fig-title">
+ Hypothetical Render Model
+ </span></figcaption>
+ </figure>
+
+ <p>The model operates on successive intermediate synchronic documents obtained from an input subtitle document, and uses a
+ simple double buffering model: while an intermediate synchronic document E<sub>n</sub> is being painted into Presentation
+ Buffer P<sub>n</sub> (the "front buffer" of the model), the previous intermediate synchronic document
+ E<sub>n-1</sub> is available for display in Presentation Buffer P<sub>n-1</sub> (the "back buffer" of the
+ model).</p>
+
+ <p>The model specifies an (hypothetical) time required for completely painting an intermediate synchronic document as a proxy
+ for complexity. Painting includes drawing region backgrounds, rendering and copying glyphs, and decoding and copying images.
+ Complexity is then limited by requiring that painting of intermediate synchronic document E<sub>n</sub> completes before the
+ end of intermediate synchronic document E<sub>n-1</sub>.</p>
+
+ <p>Whenever applicable, constraints are specified relative to root container dimensions, allowing subtitle sequences to be
+ authored independently of related video object resolution.</p>
+
+ <p>To enables scenarios where the same glyphs are used in multiple successive intermediate synchronic documents, e.g. to
+ convey a CEA-608/708-style roll-up (see [<cite><a href="#bib-CEA-608" class="bibref">CEA-608</a></cite>] and [<cite><a href="#bib-CEA-708" class="bibref">CEA-708</a></cite>]), the Glyph Buffers G<sub>n</sub> and G<sub>n-1</sub> store rendered glyphs across
+ intermediate synchronic documents, allowing glyphs to be copied into the Presentation Buffer instead of rendered, a more
+ costly operation.</p>
+
+ <p>Similarly, Decoded Image Buffers D<sub>n</sub> and D<sub>n-1</sub> store decoded images across intermediate synchronic
+ documents, allowing images to be copied into the Presentation Buffer instead of decoded.</p>
+ </section>
+
+ <section id="model">
+ <h3><span class="secno">7.2 </span>Model</h3>
+
+ <section id="general-2">
+ <h4><span class="secno">7.2.1 </span>General</h4>The Presentation Compositor <em title="SHALL" class="rfc2119">SHALL</em> render in Presentation Buffer P<sub>n</sub> each successive intermediate
+ synchronic document E<sub>n</sub> using the following steps in order:
+
+ <ol>
+ <li>clear the pixels, except for the first intermediate synchronic document E<sub>0</sub> for the which the pixels of
+ P<sub>0</sub> <em title="SHALL" class="rfc2119">SHALL</em> be assumed to have been cleared;</li>
+
+ <li>paint, according to stacking order, all background pixels for each region;</li>
+
+ <li>paint all pixels for background colors associated with text or image subtitle content; and</li>
+
+ <li>paint the text or image subtitle content.</li>
+ </ol>
+
+ <p>The Presentation Compositor <em title="SHALL" class="rfc2119">SHALL</em> start rendering E<sub>n</sub>:</p>
+
+ <ul>
+ <li>at the presentation time of E<sub>0</sub> minus Initial Painting Delay (IPD), if n = 0</li>
+
+ <li>at the presentation time of E<sub>n-1</sub>, if n > 0</li>
+ </ul>
+
+ <p>The duration DUR(E<sub>n</sub>) for painting an intermediate synchronic document E<sub>n</sub> in the Presentation
+ Buffer P<sub>n</sub> <em title="SHALL" class="rfc2119">SHALL</em> be:</p>
+
+ <p>DUR(E<sub>n</sub>) = S(E<sub>n</sub>) / BDraw + DUR<sub>T</sub>(E<sub>n</sub>) + DUR<sub>I</sub>(E<sub>n</sub>)</p>
+
+ <p>Where:</p>
+
+ <ul>
+ <li>S(E<sub>n</sub>) is the total normalized drawing area for intermediate synchronic document E<sub>n</sub>, as
+ specified in <a class="sec-ref" href="#paint-regions"><span class="secno">7.2.2</span> <span class="sec-title">Paint Regions</span></a>
+ </li>
+
+ <li>BDraw is the normalized background drawing performance factor.</li>
+
+ <li>DUR<sub>T</sub>(E<sub>n</sub>) is the duration, in seconds, for painting the text subtitle content for intermediate
+ synchronic document E<sub>n</sub>, as specified in Section <a class="sec-ref" href="#paint-text"><span class="secno">7.2.4</span> <span class="sec-title">Paint Text</span></a>
+ </li>
+
+ <li>DUR<sub>I</sub>(E<sub>n</sub>) is the duration, in seconds, for painting the image subtitle content for intermediate
+ synchronic document E<sub>n</sub>, as specified in Section <a class="sec-ref" href="#paint-images"><span class="secno">7.2.3</span> <span class="sec-title">Paint Images</span></a>
+ </li>
+ </ul>
+
+ <p>The contents of the Presentation Buffer P<sub>n</sub> <em title="SHALL" class="rfc2119">SHALL</em> be transferred instantaneously to Presentation Buffer
+ P<sub>n-1</sub> at the presentation time of intermediate synchronic document E<sub>n</sub>, making the latter available for
+ display.</p>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">It is possible for the contents of Presentation Buffer P<sub>n-1</sub> to never be displayed. This can
+ happen if Presentation Buffer P<sub>n</sub> is copied twice to Presentation Buffer P<sub>n-1</sub> between two consecutive
+ video frame boundaries of the related video object.</p></div>
+
+ <p>It <em title="SHALL" class="rfc2119">SHALL</em> be an error for the Presentation Compositor to fail to complete painting pixels for E<sub>n</sub> before the
+ presentation time of E<sub>n</sub>.</p>
+
+ <p>Unless specified otherwise, the following table <em title="SHALL" class="rfc2119">SHALL</em> specify values for IPD and BDraw.</p>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Parameter</th>
+
+ <th>Initial value</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>Initial Painting Delay (IPD)</td>
+
+ <td>1 s</td>
+ </tr>
+
+ <tr>
+ <td>Normalized background drawing performance factor (BDraw)</td>
+
+ <td>12 s<sup>-1</sup></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">BDraw effectively sets a limit on fillings regions - for example, assuming that the root container is
+ ultimately rendered at 1920×1080 resolution, a BDraw of 12 s<sup>-1</sup> would correspond to a fill rate of
+ 1920×1080×12/s=23.7×2<sup>20</sup>pixels s<sup>-1</sup>.</p></div>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">IPD effectively sets a limit on the complexity of any given intermediate synchronic document.</p></div>
+ </section>
+
+ <section id="paint-regions">
+ <h4><span class="secno">7.2.2 </span>Paint Regions</h4>
+
+ <p>The total normalized drawing area S(E<sub>n</sub>) for intermediate synchronic document E<sub>n</sub> <em title="SHALL" class="rfc2119">SHALL</em> be</p>
+
+ <p>S(E<sub>n</sub>) = CLEAR(E<sub>n</sub>) + PAINT(E<sub>n</sub> )</p>
+
+ <p>where CLEAR(E<sub>0</sub>) = 0 and CLEAR(E<sub>n | n > 0</sub>) = 1, i.e. the root container in its entirety.</p>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">To ensure consistency of the Presentation Buffer, a new intermediate synchronic document requires clearing
+ of the root container.</p></div>
+
+ <p>PAINT(E<sub>n</sub>) <em title="SHALL" class="rfc2119">SHALL</em> be the normalized area to be painted for all regions that are used in intermediate synchronic
+ document E<sub>n</sub> according to</p>
+
+ <p>PAINT(E<sub>n</sub>) = ∑<sub>R<sub>i</sub>∈R<sub>p</sub></sub> SIZE(R<sub>i</sub>) ∙ NBG(R<sub>i</sub>)</p>
+
+ <p>where R_p <em title="SHALL" class="rfc2119">SHALL</em> be the set of regions presented in the intermediate synchronic document E<sub>n</sub> – see Section
+ <a class="sec-ref" href="#presented-region"><span class="secno">4.4.1</span> <span class="sec-title">Presented Region</span></a> for the definition of presented region.</p>
+
+ <p>NSIZE(R<sub>i</sub>) <em title="SHALL" class="rfc2119">SHALL</em> be given by:</p>
+
+ <p>NSIZE(R<sub>i</sub>) = (width of R<sub>i</sub> ∙ height of R<sub>i</sub> ) ÷ (root container height ∙ root container
+ width)</p>
+
+ <aside class="example"><div class="example-title"><span>Example 2</span></div>
+ For a region R<sub>i</sub> in with <code>tts:extent="250px 50px"</code> within a root container with
+ <code>tts:extent="1920px 1080px"</code>, NSIZE(R<sub>i</sub>) = 0.603.
+ </aside>
+
+ <p>NBG(R<sub>i</sub>) <em title="SHALL" class="rfc2119">SHALL</em> be the total number of <code>tts:backgroundColor</code> attributes associated with the given
+ region R<sub>i</sub> in the intermediate synchronic document. A <code>tts:backgroundColor</code> attribute is associated
+ with a region when it is explicitly specified (either as an attribute in the element, or by reference to a declared style)
+ in the following circumstances:</p>
+
+ <ul>
+ <li>It is specified on the <code>region</code> layout element that defines the region.</li>
+
+ <li>It is specified on a <code>div</code>, <code>p</code>, <code>span</code> or <code>br</code> content element that is
+ to be flowed into the region for presentation in the intermediate synchronic document (see [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>] for more details on when
+ a content element is followed into a region).</li>
+
+ <li>It is specified on a <code>set</code> animation element that is to be applied to content elements that are to be
+ flowed into the region for presentation in the intermediate synchronic document (see [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>] for more details on when a
+ <code>set</code> animation element is applied to content elements).</li>
+ </ul>
+
+ <p>Even if a specified <code>tts:backgroundColor</code> is the same as specified on the nearest ancestor content element or
+ animation element, specifying any <code>tts:backgroundColor</code> <em title="SHALL" class="rfc2119">SHALL</em> require an additional fill operation for all
+ region pixels.</p>
+ </section>
+
+ <section id="paint-images">
+ <h4><span class="secno">7.2.3 </span>Paint Images</h4>
+
+ <p>The Presentation Compositor <em title="SHALL" class="rfc2119">SHALL</em> paint into the Presentation Buffer P<sub>n</sub> all visible pixels of presented
+ images of intermediate synchronic document E<sub>n</sub>.</p>
+
+ <p>A presented image <em title="SHALL" class="rfc2119">SHALL</em> be a <code>div</code> element with a smpte:backgroundImage attribute that is contained within a
+ presented region.</p>
+
+ <p>For each presented image, the Presentation Compositor <em title="SHALL" class="rfc2119">SHALL</em> either:</p>
+
+ <ul>
+ <li>if an identical image is present in Decoded Image Buffer D<sub>n</sub>, copy the image from Decoded Image Buffer
+ D<sub>n</sub> to the Presentation Buffer P<sub>n</sub> using the Image Copier; or</li>
+
+ <li>if an identical image is present in Decoded Image Buffer D<sub>n-1</sub>, i.e. an identical image was present in
+ intermediate synchronic document E<sub>n-1</sub>, copy using the Image Copier the glyph from Decoded Image Buffer
+ D<sub>n-1</sub> to both the Decoded Image Buffer D<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or</li>
+
+ <li>Otherwise, decode the image using the Image Decoder the image into the Presentation Buffer P<sub>n</sub> and Decoded
+ Image Buffer D<sub>n</sub>.</li>
+ </ul>
+
+ <p>Two images <em title="SHALL" class="rfc2119">SHALL</em> be identical if and only if they reference the same encoded image source.</p>
+
+ <p>The duration DUR<sub>I</sub>(E<sub>n</sub>) for painting images of an intermediate synchronic document E<sub>n</sub> in
+ the Presentation Buffer <em title="SHALL" class="rfc2119">SHALL</em> be as follows:</p>
+
+ <p>DUR<sub>I</sub>(E<sub>n</sub>) = ∑<sub>I<sub>i</sub> ∈ I<sub>c</sub></sub> NRGA(I<sub>i</sub>) / ICpy +
+ ∑<sub>I<sub>j</sub> ∈ I<sub>d</sub></sub> NSIZ(I<sub>j</sub>) / IDec</p>
+
+ <p>where</p>
+
+ <ul>
+ <li>I<sub>c</sub> is the set of images copied when painting intermediate synchronic document E<sub>n</sub></li>
+
+ <li>I<sub>d</sub> is the set of images decoded when painting intermediate synchronic document E<sub>n</sub></li>
+
+ <li>IDec is the image decoding rate</li>
+
+ <li>ICpy is the normalized image copy performance factor.</li>
+ </ul>
+
+ <p>NRGA(I<sub>i</sub>) is the Normalized Image Area of presented image I<sub>i</sub> and <em title="SHALL" class="rfc2119">SHALL</em> be equal to:</p>
+
+ <p>NRGA(I<sub>i</sub>)= (width of I<sub>i</sub> ) ∙ height of I<sub>i</sub> ) ÷ ( root container height ∙ root container
+ width )</p>
+
+ <p>NSIZ(I<sub>i</sub>) <em title="SHALL" class="rfc2119">SHALL</em> be the number of pixels of presented image I<sub>i</sub>.</p>
+
+ <p>The contents of the Decoded Image Buffer D<sub>n</sub> <em title="SHALL" class="rfc2119">SHALL</em> be transferred instantaneously to Decoded Image Buffer
+ D<sub>n-1</sub> at the presentation time of intermediate synchronic document E<sub>n</sub>.</p>
+
+ <p>The total size occupied by images stored in Decoded Image Buffers D<sub>n</sub> or D<sub>n-1</sub> <em title="SHALL" class="rfc2119">SHALL</em> be the sum of
+ their Normalized Image Area.</p>
+
+ <p>The size of Decoded Image Buffers D<sub>n</sub> or D<sub>n-1</sub> <em title="SHALL" class="rfc2119">SHALL</em> be the Normalized Decoded Image Buffer Size
+ (NDIBS).</p>
+
+ <p>Unless specified otherwise, the following table <em title="SHALL" class="rfc2119">SHALL</em> specify ICpy, Idec, and NDBIS.</p>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Parameter</th>
+
+ <th>Initial value</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>Normalized image copy performance factor (ICpy)</td>
+
+ <td>6</td>
+ </tr>
+
+ <tr>
+ <td>Image Decoding rate (Idec)</td>
+
+ <td>1 × 2<sup>20</sup> pixels s<sup>-1</sup></td>
+ </tr>
+
+ <tr>
+ <td>Normalized Decoded Image Buffer Size (NDIBS)</td>
+
+ <td>0.9885</td>
+ </tr>
+ </tbody>
+ </table>
+ </section>
+
+ <section id="paint-text">
+ <h4><span class="secno">7.2.4 </span>Paint Text</h4>
+
+ <p>For each glyph displayed in intermediate synchronic document E<sub>n</sub>, the Presentation Compositor <em title="SHALL" class="rfc2119">SHALL</em>:</p>
+
+ <ul>
+ <li>if an identical glyph is present in Glyph Buffer G<sub>n</sub>, copy the glyph from Glyph Buffer G<sub>n</sub> to the
+ Presentation Buffer P<sub>n</sub> using the Glyph Copier; or</li>
+
+ <li>if an identical glyph is present in Glyph Buffer G<sub>n-1</sub>, i.e. an identical glyph was present in intermediate
+ synchronic document E<sub>n-1</sub>, copy using the Glyph Copier the glyph from Glyph Buffer G<sub>n-1</sub> to both the
+ Glyph Buffer G<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or</li>
+
+ <li>Otherwise render using the Glyph Renderer the glyph into the Presentation Buffer P<sub>n</sub> and Glyph Buffer
+ G<sub>n</sub> using the corresponding style information.</li>
+ </ul>
+
+ <p>Two glyphs are identical if and only if the following [<cite><a href="#bib-TTML2" class="bibref">TTML2</a></cite>] styles are identical:</p>
+
+ <ul>
+ <li><code>tts:color</code></li>
+
+ <li><code>tts:fontFamily</code></li>
+
+ <li><code>tts:fontSize</code></li>
+
+ <li><code>tts:fontStyle</code></li>
+
+ <li><code>tts:fontWeight</code></li>
+
+ <li><code>tts:textDecoration</code></li>
+
+ <li><code>tts:textOutline</code></li>
+ </ul>
+
+ <figure id="fig-example-of-presentation-compositor-behavior-for-text-rendering">
+ <img src="text-render-example-figure-2.png" alt="Example of Presentation Compositor Behavior for Text Rendering">
+
+ <figcaption>Fig. <span class="figno">2</span> <span class="fig-title">
+ Example of Presentation Compositor Behavior for Text Rendering
+ </span></figcaption>
+ </figure>
+
+ <p>The duration DUR<sub>T</sub>(E<sub>n</sub>) for painting the text of an intermediate synchronic document E<sub>n</sub>
+ in the Presentation Buffer is as follows:</p>
+
+ <p>DUR<sub>T</sub>(E<sub>n</sub>) = ∑<sub>G<sub>i</sub> ∈ G<sub>r</sub></sub> NRGA(G<sub>i</sub>) / Ren(G<sub>i</sub>) +
+ ∑<sub>G<sub>j</sub> ∈ G<sub>c</sub></sub> NRGA(G<sub>j</sub>) / GCpy</p>
+
+ <p>Where:</p>
+
+ <ul>
+ <li>G<sub>r</sub> is the set of glyphs rendered into the Presentation Buffer P<sub>n</sub> using the Glyph Renderer in
+ intermediate synchronic document E<sub>n</sub>.</li>
+
+ <li>G<sub>c</sub> is the set of glyphs copied to the Presentation Buffer P<sub>n</sub> using the Glyph Copier in
+ intermediate synchronic document E<sub>n</sub>.</li>
+
+ <li>Ren(G<sub>i</sub>) is the text rendering performance factor glyph G<sub>i</sub></li>
+
+ <li>GCpy is the normalized glyph copy performance factor</li>
+ </ul>
+
+ <p>G<sub>r</sub> and G<sub>c</sub> <em title="SHALL" class="rfc2119">SHALL</em> include only glyphs in presented regions and <em title="SHALL NOT" class="rfc2119">SHALL NOT</em> include a [<cite><a href="#bib-UNICODE" class="bibref">UNICODE</a></cite>] Code
+ Point if it does not result in a change to presentation, e.g. the Code Point is ignored.</p>
+
+ <p>The Normalized Rendered Glyph Area NRGA(G<sub>i</sub>) of a glyph G<sub>i</sub> <em title="SHALL" class="rfc2119">SHALL</em> be equal to:</p>
+
+ <p>NRGA(G<sub>i</sub>)= (fontSize of G<sub>i</sub> as percentage of root container height)<sup>2</sup></p>
+
+ <p>The contents of the Glyph Buffer G<sub>n</sub> <em title="SHALL" class="rfc2119">SHALL</em> be copied instantaneously to Glyph Buffer G<sub>n-1</sub> at the
+ presentation time of intermediate synchronic document E<sub>n</sub>.</p>
+
+ <p>The total size occupied by the glyphs stored in Glyph Buffers G<sub>n</sub> or G<sub>n-1</sub> <em title="SHALL" class="rfc2119">SHALL</em> be the sum of their
+ Normalized Rendered Glyph Area.</p>
+
+ <p>The size of Glyph Buffers G<sub>n</sub> and G<sub>n-1</sub> <em title="SHALL" class="rfc2119">SHALL</em> be the Normalized Glyph Buffer Size (NGBS).</p>
+
+ <p>Unless specified otherwise, the following table <em title="SHALL" class="rfc2119">SHALL</em> specify GCpy, Ren and NGBS, and <em title="SHALL" class="rfc2119">SHALL</em> apply to all
+ supported font styles (including provision of outline border).</p>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Parameter</th>
+
+ <th>Initial value</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>Normalized glyph copy performance factor (GCpy)</td>
+
+ <td>12</td>
+ </tr>
+
+ <tr>
+ <td>Text rendering performance factor Ren(G<sub>i</sub> if G<sub>i</sub> is not a CJK Unified Ideograph as specified
+ in [<cite><a href="#bib-UNICODE" class="bibref">UNICODE</a></cite>].</td>
+
+ <td>1.2</td>
+ </tr>
+
+ <tr>
+ <td>Text rendering performance factor Ren(G<sub>i</sub>) if G<sub>i</sub> is a CJK Unified Ideograph as specified in
+ [<cite><a href="#bib-UNICODE" class="bibref">UNICODE</a></cite>].</td>
+
+ <td>0.6</td>
+ </tr>
+
+ <tr>
+ <td>Normalized Glyph Buffer Size (NGBS)</td>
+
+ <td>1</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note"><div aria-level="5" class="note-title" role="heading"><span>Note</span></div><p class="">NRGA(G<sub>i</sub>) does not take into account glyph decorations (e.g. underline), glyph effects (e.g.
+ outline) or actual glyph aspect ratio. An implementation can determine an actual buffer size needs based on worst-case
+ glyph size complexity.</p></div>
+
+ <aside class="example"><div class="example-title"><span>Example 3</span></div>
+ Setting a Glyph Buffer Normalized Size effectively sets a limit on the total number of distinct glyphs present in any
+ given intermediate synchronic document E<sub>n</sub>. For example, assuming a maximum Normalized Glyph Buffer Size of 1
+ and the default tts:fontSize of 1c are used, the glyph's height as percentage of root container height is 1/15 , and
+ the maximum number of distinct glyphs that can be buffered is 1÷(1÷15)^2=225 glyphs. In this example, an implementation
+ rendering at 1920x1080 would need to allocate a glyph buffer no smaller than (1920÷32)×(1080÷15)×225=~1 Mpixels.
+ </aside>
+
+ <aside class="example"><div class="example-title"><span>Example 4</span></div>
+ GCpy effectively sets a limit on animating glyphs. For example, assuming that the root container is ultimately rendered
+ at 1920×1080 resolution and no regions need to have background color painted (so only a CLEAR(E<sub>n</sub>) operation is
+ required for the normalized drawing area for the intermediate synchronic document), a GCpy and BDraw of 12 s-1 would mean
+ that a group of 160 glyphs with a tts:fontSize equal to 5% of the root container height could be moved at most
+ approximately 12 s<sup>-1</sup> ÷ (1 + ( 160 × 0.05<sup>2</sup> )) = 8.6 times per second.
+ </aside>
+
+ <aside class="example"><div class="example-title"><span>Example 5</span></div>
+ Ren(G<sub>i</sub>) effectively sets a limit on the glyph rendering rate. For example, assuming that the root container is
+ ultimately rendered at a 1920×1080 resolution, a Ren(G<sub>i</sub>) of 1.2 s-1 would mean that at most 120 glyphs with a
+ fontSize of 108 px (10% of 1080 px and NRGA(G<sub>i</sub>) = 0.01) could be rendered every second.
+ </aside>
+ </section>
+ </section>
+ </section>
+
+ <section id="recommended-unicode-code-points-per-language" class="appendix">
+ <!--OddPage--><h2><span class="secno">A. </span>Recommended Unicode Code Points per Language</h2>
+
+ <p>The following table lists common code points (see [<cite><a href="#bib-UNICODE" class="bibref">UNICODE</a></cite>]) definitions used in this Appendix:</p>
+
+ <table class="simple">
+ <tbody><tr>
+ <th>(Basic Latin)</th>
+ </tr>
+
+ <tr>
+ <td>U+0020 - U+007E (Letterlike Symbols)</td>
+ </tr>
+
+ <tr>
+ <td>U+2103 : DEGREES CELSIUS</td>
+ </tr>
+
+ <tr>
+ <td>U+2109 : DEGREES FAHRENHEIT</td>
+ </tr>
+
+ <tr>
+ <td>U+2120 : SERVICE MARK SIGN</td>
+ </tr>
+
+ <tr>
+ <td>U+2122 : TRADE MARK SIGN</td>
+ </tr>
+
+ <tr>
+ <th>(Latin-1 Supplement)</th>
+ </tr>
+
+ <tr>
+ <td>U+00A0 - U+00FF (Number Forms)</td>
+ </tr>
+
+ <tr>
+ <td>U+2153 – U+215F : Fractions</td>
+ </tr>
+
+ <tr>
+ <th>(Latin Extended-A)</th>
+ </tr>
+
+ <tr>
+ <td>U+0152 : LATIN CAPITAL LIGATURE OE</td>
+ </tr>
+
+ <tr>
+ <td>U+0153 : LATIN SMALL LIGATURE OE</td>
+ </tr>
+
+ <tr>
+ <td>U+0160 : LATIN CAPITAL LETTER S WITH CARON</td>
+ </tr>
+
+ <tr>
+ <td>U+0161 : LATIN SMALL LETTER S WITH CARON</td>
+ </tr>
+
+ <tr>
+ <td>U+0178 : LATIN CAPITAL LETTER Y WITH DIAERESIS</td>
+ </tr>
+
+ <tr>
+ <td>U+017D : LATIN CAPITAL LETTER Z WITH CARON</td>
+ </tr>
+
+ <tr>
+ <td>U+017E : LATIN SMALL LETTER Z WITH CARON (Box Drawing)</td>
+ </tr>
+
+ <tr>
+ <td>U+2500 : BOX DRAWINGS LIGHT HORIZONTAL</td>
+ </tr>
+
+ <tr>
+ <td>U+2502 : BOX DRAWINGS LIGHT VERTICAL</td>
+ </tr>
+
+ <tr>
+ <td>U+250C : BOX DRAWINGS LIGHT DOWN AND RIGHT</td>
+ </tr>
+
+ <tr>
+ <td>U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT</td>
+ </tr>
+
+ <tr>
+ <td>U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT</td>
+ </tr>
+
+ <tr>
+ <td>U+2518 : BOX DRAWINGS LIGHT UP AND LEFT</td>
+ </tr>
+
+ <tr>
+ <th>(Latin Extended-B)</th>
+ </tr>
+
+ <tr>
+ <td>U+0192 : LATIN SMALL LETTER F WITH HOOK (Block Elements)</td>
+ </tr>
+
+ <tr>
+ <td>U+2588 : FULL BLOCK</td>
+ </tr>
+
+ <tr>
+ <th>(Spacing Modifier Letters)</th>
+ </tr>
+
+ <tr>
+ <td>U+02DC : SMALL TILDE (Geometric Shapes)</td>
+ </tr>
+
+ <tr>
+ <td>U+25A1 : WHITE SQUARE</td>
+ </tr>
+
+ <tr>
+ <th>(General Punctuation)</th>
+ </tr>
+
+ <tr>
+ <td>U+2010 - U+2015 : Dashes</td>
+ </tr>
+
+ <tr>
+ <td>U+2016 - U+2027 : General punctuation</td>
+ </tr>
+
+ <tr>
+ <td>U+2030 - U+203A : General punctuation (Musical Symbols)</td>
+ </tr>
+
+ <tr>
+ <td>U+2669 : QUARTER NOTE</td>
+ </tr>
+
+ <tr>
+ <td>U+266A : EIGHTH NOTE</td>
+ </tr>
+
+ <tr>
+ <td>U+266B : BEAMED EIGHTH NOTES</td>
+ </tr>
+
+ <tr>
+ <th>(Currency symbols)</th>
+ </tr>
+
+ <tr>
+ <td>U+20AC : EURO SIGN</td>
+ </tr>
+ </tbody></table>
+
+ <p>The following table specifies the [<cite><a href="#bib-UNICODE" class="bibref">UNICODE</a></cite>] code points that <em title="SHOULD" class="rfc2119">SHOULD</em> be used in a document's textual content if
+ <code>xml:lang</code> is present (Primary language subtag is as defined in IETF RFC 5646).</p>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Languages</th>
+
+ <th>Primary language subtag of<br>
+ <code>xml:lang</code></th>
+
+ <th>[<cite><a href="#bib-UNICODE" class="bibref">UNICODE</a></cite>] Code Points</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <th colspan="3">Albanian Languages</th>
+ </tr>
+
+ <tr>
+ <td>Albanian</td>
+
+ <td>"sq"</td>
+
+ <td>As defined in the table above</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Baltic Languages</th>
+ </tr>
+
+ <tr>
+ <td>Latvian, Lithuanian</td>
+
+ <td>"lv", "lt"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined below<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Finnic Languages</th>
+ </tr>
+
+ <tr>
+ <td>Finish</td>
+
+ <td>"fi"</td>
+
+ <td>As defined in the table above</td>
+ </tr>
+
+ <tr>
+ <td>Estonian</td>
+
+ <td>"et"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined below<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Germanic Languages</th>
+ </tr>
+
+ <tr>
+ <td>Danish, Dutch/Flemish, English, German, Icelandic, Norwegian, Swedish</td>
+
+ <td>"da", "nl", "en", "de", "is", "no", "sv"</td>
+
+ <td>As defined in the table above.</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Greek Languages</th>
+ </tr>
+
+ <tr>
+ <td>Greek</td>
+
+ <td>"el"</td>
+
+ <td>As defined in the table above<br>
+ (Greek and Coptic)<br>
+ U+0386 : GREEK CAPITAL LETTER ALPHA WITH TONOS<br>
+ U+0387 : GREEK ANO TELEIA<br>
+ U+0388 – U+03CE : Letters</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Romanic Languages</th>
+ </tr>
+
+ <tr>
+ <td>Catalan, French, Italian</td>
+
+ <td>"ca", "fr", "it"</td>
+
+ <td>As defined in the table above</td>
+ </tr>
+
+ <tr>
+ <td>Portuguese, Spanish</td>
+
+ <td>"pt", "es"</td>
+
+ <td>(Currency symbols)<br>
+ U+20A1 : COLON SIGN<br>
+ U+20A2 : CRUZEIRO SIGN<br>
+ U+20B3 : AUSTRAL SIGN</td>
+ </tr>
+
+ <tr>
+ <td>Romanian</td>
+
+ <td>"ro"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined below<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Semitic Languages</th>
+ </tr>
+
+ <tr>
+ <td>Arabic</td>
+
+ <td>"ar"</td>
+
+ <td>As defined in the table above<br>
+ U+060C – U+060D : Punctuation<br>
+ U+061B : ARABIC SEMICOLON<br>
+ U+061E : ARABIC TRIPLE DOT PUNCTUATION MARK<br>
+ U+061F : ARABIC QUESTION MARK<br>
+ U+0621 – U+063A : Based on ISO 8859-6<br>
+ U+0640 – U+064A : Based on ISO 8859-6<br>
+ U+064B – U+0652 : Points from ISO 5559-6<br>
+ U+0660 – U+0669 : Arabic-Indic digits<br>
+ U+066A – U+066D : Punctuation</td>
+ </tr>
+
+ <tr>
+ <td>Hebrew</td>
+
+ <td>"he"</td>
+
+ <td>As defined in the table above<br>
+ (Hebrew)<br>
+ U+05B0 – U+05C3 : Points and punctuation<br>
+ U+05D0 – U+05EA : Based on ISO 8859-8<br>
+ U+05F3 – U+05F4 : Additional punctuation</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Slavic Languages</th>
+ </tr>
+
+ <tr>
+ <td>Croatian, Czech, Polish, Slovenian, Slovak</td>
+
+ <td>"hr", "cs", "pl", "sl", "sk"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined below<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F</td>
+ </tr>
+
+ <tr>
+ <td>Bosnian, Bulgarian, Macedonian, Russian, Serbian, Ukrainian</td>
+
+ <td>"bs", "bg", "mk", "ru", "sr", "uk"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined below<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F<br>
+ (Cyrillic)<br>
+ U+0400 – U+040F : Cyrillic extensions<br>
+ U+0410 – U+044F : Basic Russian alphabet<br>
+ U+0450 – U+045F : Cyrillic extensions</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Turkic Languages</th>
+ </tr>
+
+ <tr>
+ <td>Turkish</td>
+
+ <td>"tr"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F</td>
+ </tr>
+
+ <tr>
+ <td>Kazakh</td>
+
+ <td>"kk"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F<br>
+ (Cyrillic)<br>
+ U+0400 – U+040F : Cyrillic extensions<br>
+ U+0410 – U+044F : Basic Russian alphabet<br>
+ U+0450 – U+045F : Cyrillic extensions</td>
+ </tr>
+
+ <tr>
+ <th colspan="3">Ugric Languages</th>
+ </tr>
+
+ <tr>
+ <td>Hungarian</td>
+
+ <td>"hu"</td>
+
+ <td>As defined in the table above, except for "(Latin Extended-A)" which is re-defined below<br>
+ (Latin Extended-A)<br>
+ U+0100 - U+017F</td>
+ </tr>
+ </tbody>
+ </table>
+ </section>
+
+ <section id="typical-practice-for-subtitles-per-region-informative" class="appendix informative">
+ <!--OddPage--><h2><span class="secno">B. </span>Typical Practice for Subtitles per Region (Informative)</h2><p><em>This section is non-normative.</em></p>
+
+ <p>The following table summarizes subtitle languages commonly used in the listed regions. The Language Tag is as specified in
+ RFC 5646.</p>
+
+ <table class="simple">
+ <tbody><tr>
+ <th>Region</th>
+
+ <th>Subtitle Languages (Language Tag)</th>
+ </tr>
+
+ </tbody><tbody>
+ <tr>
+ <td>ALL (worldwide)</td>
+
+ <td>English ("en")</td>
+ </tr>
+
+ <tr>
+ <th colspan="2">America (North)</th>
+ </tr>
+
+ <tr>
+ <td>ALL</td>
+
+ <td>French ("fr") [Québécois ("fr-CA") or Parisian ("fr-FR")]</td>
+ </tr>
+
+ <tr>
+ <td>United States</td>
+
+ <td>Spanish ("es") [Latin American ("es-419")]</td>
+ </tr>
+
+ <tr>
+ <th colspan="2">America (Central and South)</th>
+ </tr>
+
+ <tr>
+ <td>ALL</td>
+
+ <td>Spanish ("es") [Latin American ("es-419")]</td>
+ </tr>
+
+ <tr>
+ <td>Brazil</td>
+
+ <td>Portuguese ("pt") [Brazilian ("pt-BR")]</td>
+ </tr>
+
+ <tr>
+ <th colspan="2">Asia, Middle East, and Africa</th>
+ </tr>
+
+ <tr>
+ <td>China</td>
+
+ <td>Chinese ("zh") [Simplified Mandarin ("zh-cmn-Hans")]</td>
+ </tr>
+
+ <tr>
+ <td>Egypt</td>
+
+ <td>Arabic ("ar")</td>
+ </tr>
+
+ <tr>
+ <td>Hong Kong</td>
+
+ <td>Chinese ("zh") [Cantonese ("zh-yue")]</td>
+ </tr>
+
+ <tr>
+ <td>India</td>
+
+ <td>Hindi ("hi")<br>
+ Tamil ("ta")<br>
+ Telugu ("te")</td>
+ </tr>
+
+ <tr>
+ <td>Indonesia</td>
+
+ <td>Indonesian ("id")</td>
+ </tr>
+
+ <tr>
+ <td>Israel</td>
+
+ <td>Hebrew ("he")</td>
+ </tr>
+
+ <tr>
+ <td>Japan</td>
+
+ <td>Japanese ("ja")</td>
+ </tr>
+
+ <tr>
+ <td>Kazakhstan</td>
+
+ <td>Kazakh ("kk")</td>
+ </tr>
+
+ <tr>
+ <td>Malaysia</td>
+
+ <td>Standard Malay ("zsm")</td>
+ </tr>
+
+ <tr>
+ <td>South Korea</td>
+
+ <td>Korean ("ko")</td>
+ </tr>
+
+ <tr>
+ <td>Taiwan</td>
+
+ <td>Chinese ("zh") [Traditional Mandarin ("zh-cmn-Hant")]</td>
+ </tr>
+
+ <tr>
+ <td>Thailand</td>
+
+ <td>Thai ("th")</td>
+ </tr>
+
+ <tr>
+ <td>Vietnam</td>
+
+ <td>Vietnamese ("vi")</td>
+ </tr>
+
+ <tr>
+ <th colspan="2">Europe</th>
+ </tr>
+
+ <tr>
+ <td>Benelux (Belgium, Netherlands, and Luxembourg)</td>
+
+ <td>French ("fr") [Parisian ("fr-FR")]<br>
+ Dutch/Flemish ("nl")</td>
+ </tr>
+
+ <tr>
+ <td>Denmark</td>
+
+ <td>Danish ("da")</td>
+ </tr>
+
+ <tr>
+ <td>Finland</td>
+
+ <td>Finnish ("fi")</td>
+ </tr>
+
+ <tr>
+ <td>France</td>
+
+ <td>French ("fr") [Parisian ("fr-FR")]<br>
+ Arabic ("ar")</td>
+ </tr>
+
+ <tr>
+ <td>Germany</td>
+
+ <td>German ("de")<br>
+ Turkish ("tr")</td>
+ </tr>
+
+ <tr>
+ <td>Italy</td>
+
+ <td>Italian ("it")</td>
+ </tr>
+
+ <tr>
+ <td>Norway</td>
+
+ <td>Norwegian ("no")</td>
+ </tr>
+
+ <tr>
+ <td>Spain</td>
+
+ <td>Spanish ("sp") [Castilian ("sp-ES")]<br>
+ Catalan ("ca")</td>
+ </tr>
+
+ <tr>
+ <td>Sweden</td>
+
+ <td>Swedish ("sv")</td>
+ </tr>
+
+ <tr>
+ <td>Switzerland</td>
+
+ <td>French ("fr") ["fr-CH" or "fr-FR"]<br>
+ German ("de") ["de-CH"]<br>
+ Italian ("it") ["it-CH"]</td>
+ </tr>
+
+ <tr>
+ <td>Albania</td>
+
+ <td>Albanian ("sq")</td>
+ </tr>
+
+ <tr>
+ <td>Bulgaria</td>
+
+ <td>Bulgarian ("bg")</td>
+ </tr>
+
+ <tr>
+ <td>Croatia</td>
+
+ <td>Croatian ("hr")</td>
+ </tr>
+
+ <tr>
+ <td>Czech Republic</td>
+
+ <td>Czech ("cs")</td>
+ </tr>
+
+ <tr>
+ <td>Estonia</td>
+
+ <td>Estonian ("et")</td>
+ </tr>
+
+ <tr>
+ <td>Greece</td>
+
+ <td>Greek ("el")</td>
+ </tr>
+
+ <tr>
+ <td>Hungary</td>
+
+ <td>Hungarian ("hu")</td>
+ </tr>
+
+ <tr>
+ <td>Iceland</td>
+
+ <td>Icelandic ("is")</td>
+ </tr>
+
+ <tr>
+ <td>Latvia</td>
+
+ <td>Latvian ("lv")</td>
+ </tr>
+
+ <tr>
+ <td>Lithuania</td>
+
+ <td>Lithuanian ("lt")</td>
+ </tr>
+
+ <tr>
+ <td>Macedonia</td>
+
+ <td>Macedonian ("mk")</td>
+ </tr>
+
+ <tr>
+ <td>Poland</td>
+
+ <td>Polish ("pl")</td>
+ </tr>
+
+ <tr>
+ <td>Portugal</td>
+
+ <td>Portuguese ("pt") [Iberian ("pt-PT")]</td>
+ </tr>
+
+ <tr>
+ <td>Romania</td>
+
+ <td>Romanian ("ro")</td>
+ </tr>
+
+ <tr>
+ <td>Russia</td>
+
+ <td>Russian ("ru")</td>
+ </tr>
+
+ <tr>
+ <td>Serbia</td>
+
+ <td>Serbian ("sr")</td>
+ </tr>
+
+ <tr>
+ <td>Slovakia</td>
+
+ <td>Slovak ("sk")</td>
+ </tr>
+
+ <tr>
+ <td>Slovenia</td>
+
+ <td>Slovenian ("sl")</td>
+ </tr>
+
+ <tr>
+ <td>Turkey</td>
+
+ <td>Turkish ("tr")</td>
+ </tr>
+
+ <tr>
+ <td>Ukraine</td>
+
+ <td>Ukrainian ("uk")</td>
+ </tr>
+ </tbody>
+ </table>
+ </section>
+
+ <section id="schema" class="appendix">
+ <!--OddPage--><h2><span class="secno">C. </span>Schema</h2>
+ <p><em>TBD</em></p>
+ </section>
+
+
+<section class="appendix" id="references"><!--OddPage--><h2><span class="secno">D. </span>References</h2><section id="normative-references"><h3><span class="secno">D.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-MHP">[MHP]</dt><dd>ETSI TS 101 812 V1.3.1, Digital Video Broadcasting (DVB); Multimedia Home
+</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119. URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
+</dd><dt id="bib-TTML2">[TTML2]</dt><dd>World Wide Web Consortium (W3C). Timed Text Markup Language (TTML) 2.0.
+</dd><dt id="bib-UNICODE">[UNICODE]</dt><dd><a href="http://www.unicode.org/versions/latest/"><cite>The Unicode Standard</cite></a>. URL: <a href="http://www.unicode.org/versions/latest/">http://www.unicode.org/versions/latest/</a>
+</dd></dl></section><section id="informative-references"><h3><span class="secno">D.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-CEA-608">[CEA-608]</dt><dd><a href="http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/Line-21-Data-Service.aspx">Line-21 Data Services</a>, ANSI/CEA Standard.
+</dd><dt id="bib-CEA-708">[CEA-708]</dt><dd><a href="http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/CEA-708-D.aspx">Digital Television (DTV) Closed Captioning</a>, ANSI/CEA Standard.
+</dd><dt id="bib-ST2052-1">[ST2052-1]</dt><dd>SMPTE ST 2052-1, Timed Text Format (SMPTE-TT)
+</dd></dl></section></section></body></html>
\ No newline at end of file
--- a/ttml2/spec/ttml2.html Tue Aug 27 12:31:16 2013 -0600
+++ b/ttml2/spec/ttml2.html Wed Aug 28 09:34:54 2013 -0600
@@ -80,9 +80,9 @@
.strong { font-weight: bold }
.reqattr { font-weight: bold }
.optattr { font-style: italic }
-</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2013/08/27 18:30:56 $<div id="revisions"></div><div class="head">
+</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date$<div id="revisions"></div><div class="head">
<h1><a id="title"></a>Timed Text Markup Language 2 (TTML2)</h1>
-<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2013/08/27 18:30:56 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
+<h2><a id="w3c-doctype"></a>Editors' copy $Date$ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
<a href="ttml2.html">ttml2.html</a>
</dd><dt>Latest version:</dt><dd><a href="http://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html?content-type=text/html;charset=utf-8">http://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html?content-type=text/html;charset=utf-8</a></dd><dt>Previous version:</dt><dd>
<a href="http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/">http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/</a>
@@ -414,11 +414,11 @@
H <a href="#other-references">Other References</a> (Non-Normative)<br>
I <a href="#requirements">Requirements</a> (Non-Normative)<br>
J <a href="#derivation">Vocabulary Derivation</a> (Non-Normative)<br>
- J.1 <a href="#d3e20178">Element Derivation</a><br>
- J.2 <a href="#d3e20695">Attribute Derivation</a><br>
+ J.1 <a href="#d3e20209">Element Derivation</a><br>
+ J.2 <a href="#d3e20726">Attribute Derivation</a><br>
K <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br>
- K.1 <a href="#d3e21675">Requirements</a><br>
- K.2 <a href="#d3e21839">Guidelines</a><br>
+ K.1 <a href="#d3e21706">Requirements</a><br>
+ K.2 <a href="#d3e21870">Guidelines</a><br>
L <a href="#streaming">Streaming TTML Content</a> (Non-Normative)<br>
M <a href="#concrete-encoding">Concrete Encoding</a><br>
N <a href="#time-expression-semantics">Time Expression Semantics</a><br>
@@ -1066,6 +1066,10 @@
<a href="#content-vocabulary-span">br</a> |
<code>#PCDATA</code>
</td></tr><tr><td>
+Layout.class
+</td><td>
+<a href="#layout-vocabulary-region">region</a>
+</td></tr><tr><td>
Metadata.class
</td><td>
<a href="#metadata-vocabulary-metadata">metadata</a> |
@@ -1916,6 +1920,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
+followed by zero or more
+elements in the <code>Layout.class</code> element group,
followed by
zero or more <code>div</code> elements.</p><p>Any metadata specified by children in the <code>Metadata.class</code>
element group applies semantically to the <code>body</code> element and its descendants as a whole.</p><p>Any animation elements specified by children in the <code>Animation.class</code>
@@ -1934,7 +1940,7 @@
{<em>any attribute in TT Metadata namespace</em>}
{<em>any attribute in TT Style namespace</em>}
{<em>any attribute not in default or any TT namespace</em>}>
- <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a href="#element-vocab-group-table">Animation.class</a>*, <a href="#content-vocabulary-div">div</a>*
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a href="#element-vocab-group-table">Animation.class</a>*, <a href="#element-vocab-group-table">Layout.class</a>*, <a href="#content-vocabulary-div">div</a>*
</body>
</pre></div>
</td></tr></tbody></table><p>An author may specify a temporal interval for a <code>body</code> element using
@@ -1973,6 +1979,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
+followed by zero or more
+elements in the <code>Layout.class</code> element group,
followed by
zero or more
<code>div</code> or
@@ -1993,7 +2001,7 @@
{<em>any attribute in TT Metadata namespace</em>}
{<em>any attribute in TT Style namespace</em>}
{<em>any attribute not in default or any TT namespace</em>}>
- <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a href="#element-vocab-group-table">Animation.class</a>*, <a href="#element-vocab-group-table">Block.class</a>*
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a href="#element-vocab-group-table">Animation.class</a>*, <a href="#element-vocab-group-table">Layout.class</a>*, <a href="#element-vocab-group-table">Block.class</a>*
</div>
</pre></div>
</td></tr></tbody></table><p>An author may associate a set of style properties with a <code>div</code> element by means of either
@@ -2012,6 +2020,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
+followed by zero or more
+elements in the <code>Layout.class</code> element group,
followed by
zero or more intermixed
<code>span</code> elements,
@@ -2033,7 +2043,7 @@
{<em>any attribute in TT Metadata namespace</em>}
{<em>any attribute in TT Style namespace</em>}
{<em>any attribute not in default or any TT namespace</em>}>
- <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a href="#element-vocab-group-table">Animation.class</a>*, <a href="#element-vocab-group-table">Inline.class</a>*
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a href="#element-vocab-group-table">Animation.class</a>*, <a href="#element-vocab-group-table">Layout.class</a>*, <a href="#element-vocab-group-table">Inline.class</a>*
</p>
</pre></div>
</td></tr></tbody></table><p>An author may associate a set of style properties with a
@@ -6953,7 +6963,7 @@
<h2><a id="derivation"></a>J Vocabulary Derivation (Non-Normative)</h2><p>This appendix provides information about the derivation of TTML
vocabulary, separately describing derivation of elements and
attributes.</p><div class="div2">
-<h3><a id="d3e20178"></a>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
+<h3><a id="d3e20209"></a>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
specifies a TTML element vocabulary item; the second column specifies the
syntactic and/or semantic model on which the vocabulary item is based;
the third column specifies the reference that defines
@@ -7010,7 +7020,7 @@
and <code>@version</code> on the <code>svg:svg</code> element.</p></li><li><p>Conceptually derived from existing <code>tt:layout</code> element,
which is a generic container for layout specifications, but for use
in defining animation specifications that apply to targetted elements.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e20695"></a>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table J-2 – Attributes</b></a>
+<h3><a id="d3e20726"></a>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table J-2 – Attributes</b></a>
specifies a TTML attribute vocabulary item; the second column specifies the
syntactic and/or semantic model on which the vocabulary item is based;
the third column specifies the reference that defines
@@ -7102,9 +7112,9 @@
<h2><a id="qa"></a>K QA Framework Compliance (Non-Normative)</h2><p>This appendix specifies the compliance of this specification with the
requirements and guidelines defined by <a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/">QA
Framework Specifications Guidelines</a> <a href="#qaf-sg">[QAF SG]</a>.</p><div class="div2">
-<h3><a id="d3e21675"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
+<h3><a id="d3e21706"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
clause</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-scope-principle">Requirement 02: Define the scope.</a></td><td><a href="#intro">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#implement-principle">Requirement 03: Identify who or what will implement the specification.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-norm-principle">Requirement 04: Make a list of normative references.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-principle">Requirement 05: Define the terms used in the normative parts of the specification.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conf-label-principle">Requirement 06: Create conformance labels for each part of the conformance model.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#consistent-style-principle">Requirement 07: Use a consistent style for conformance requirements and explain how to distinguish them.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#req-opt-conf-principle">Requirement 08: Indicate which conformance requirements are mandatory, which are recommended, and which are optional.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-mandatory-principle">Requirement 09: If the technology is subdivided, then indicate which subdivisions are mandatory for conformance.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdiv-constraints-principle">Requirement 10: If the technology is subdivided, then address subdivision constraints.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#likehood-extension-principle">Requirement 11: Address Extensibility.</a></td><td><a href="#doctypes">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#deprecated-feature-principle">Requirement 12: Identify deprecated features.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#degree-support-principle">Requirement 13: Define how each class of product handles each deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>No feature is deprecated by this version of this specification.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e21839"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
+<h3><a id="d3e21870"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
specific clauses or sections are cited.</p></li><li><p>See also <a href="#derivation"><b>J Vocabulary Derivation</b></a>.</p></li><li><p>Test assertions and test suites will be provided prior to entering
Proposed Recommendation (PR) phase.</p></li><li><p>See criterion #3 in <a href="#conformance-processor"><b>3.2 Processor Conformance</b></a> and definition of
TTML <a href="#doctypes">Abstract Document Instance</a>.</p></li><li><p>No feature is deprecated or obsoleted by this version of this specification.</p></li></ol></div></div></div><div class="div1">
--- a/ttml2/spec/ttml2.xml Tue Aug 27 12:31:16 2013 -0600
+++ b/ttml2/spec/ttml2.xml Wed Aug 28 09:34:54 2013 -0600
@@ -1572,6 +1572,14 @@
</tr>
<tr>
<td>
+Layout.class
+</td>
+<td>
+<loc href="#layout-vocabulary-region">region</loc>
+</td>
+</tr>
+<tr>
+<td>
Metadata.class
</td>
<td>
@@ -2988,6 +2996,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
+followed by zero or more
+elements in the <code>Layout.class</code> element group,
followed by
zero or more <el>div</el> elements.</p>
<p>Any metadata specified by children in the <code>Metadata.class</code>
@@ -3013,7 +3023,11 @@
{<emph>any attribute in TT Metadata namespace</emph>}
{<emph>any attribute in TT Style namespace</emph>}
{<emph>any attribute not in default or any TT namespace</emph>}>
- <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#element-vocab-group-table">Animation.class</loc>*, <loc href="#content-vocabulary-div">div</loc>*
+ <emph>Content:</emph> <loc
+ href="#element-vocab-group-table">Metadata.class</loc>*, <loc
+ href="#element-vocab-group-table">Animation.class</loc>*, <loc
+ href="#element-vocab-group-table">Layout.class</loc>*, <loc
+ href="#content-vocabulary-div">div</loc>*
</body>
</eg>
</td>
@@ -3074,6 +3088,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
+followed by zero or more
+elements in the <code>Layout.class</code> element group,
followed by
zero or more
<el>div</el> or
@@ -3104,6 +3120,7 @@
<emph>Content:</emph> <loc
href="#element-vocab-group-table">Metadata.class</loc>*, <loc
href="#element-vocab-group-table">Animation.class</loc>*, <loc
+ href="#element-vocab-group-table">Layout.class</loc>*, <loc
href="#element-vocab-group-table">Block.class</loc>*
</div>
</eg>
@@ -3135,6 +3152,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
+followed by zero or more
+elements in the <code>Layout.class</code> element group,
followed by
zero or more intermixed
<code>span</code> elements,
@@ -3166,6 +3185,7 @@
<emph>Content:</emph> <loc
href="#element-vocab-group-table">Metadata.class</loc>*, <loc
href="#element-vocab-group-table">Animation.class</loc>*, <loc
+ href="#element-vocab-group-table">Layout.class</loc>*, <loc
href="#element-vocab-group-table">Inline.class</loc>*
</p>
</eg>