--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ttml10/spec/PER-ttaf1-dfxp-201307DD.html Thu Jun 27 03:45:20 2013 -0600
@@ -0,0 +1,21377 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html lang="en-us">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+ <title>Timed Text Markup Language (TTML) 1.0 (Second Edition)</title>
+ <style type="text/css">
+ code { font-family: monospace; }
+
+ div.constraint,
+ div.issue,
+ div.note,
+ div.notice { margin-left: 2em; }
+
+ ol.enumar { list-style-type: decimal; }
+ ol.enumla { list-style-type: lower-alpha; }
+ ol.enumlr { list-style-type: lower-roman; }
+ ol.enumua { list-style-type: upper-alpha; }
+ ol.enumur { list-style-type: upper-roman; }
+
+
+ div.exampleInner pre { margin-left: 1em;
+ margin-top: 0em; margin-bottom: 0em}
+ div.exampleOuter {border: 4px double gray;
+ margin: 0em; padding: 0em}
+ div.exampleInner { background-color: #d5dee3;
+ border-top-width: 4px;
+ border-top-style: double;
+ border-top-color: #d3d3d3;
+ border-bottom-width: 4px;
+ border-bottom-style: double;
+ border-bottom-color: #d3d3d3;
+ padding: 4px; margin: 0em }
+ div.exampleWrapper { margin: 4px }
+ div.exampleHeader { font-weight: bold;
+ margin: 4px}
+
+ li p { margin-top: 0.3em; margin-bottom: 0.3em; }
+ div.issue { border: 2px solid black; background-color: #ffff66; padding: 0em 1em; margin: 0em 0em }
+ table.ednote { border-collapse: collapse; border: 2px solid black; width: 85% }
+ table.ednote td { background-color: #ddaa66; border: 2px solid black }
+ table.acronyms td.label { width: 15% }
+ table.acronyms td.def { width: 65% }
+ table.graphic { border: 0px none black; width: 100%; border-collapse: collapse }
+ table.graphic caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+ table.graphic td { border: 0px none black; text-align: center }
+ table.common { border: 2px solid black; width: 85%; border-collapse: collapse }
+ table.common caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+ table.common th { padding: 0em 0.5em; border: 2px solid black; text-align: left }
+ table.common td { padding: 0em 0.5em; border: 2px solid black }
+ table.syntax { border: 0px solid black; width: 85%; border-collapse: collapse }
+ table.syntax caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+ table.syntax th { border: 0px solid black; text-align: left }
+ table.syntax td { border: 0px solid black }
+ table.syntax div { background-color: #ffffc8 }
+ table.semantics { border: 0px solid black; width: 85%; border-collapse: collapse }
+ table.semantics caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+ table.semantics th { border: 0px solid black; text-align: left }
+ table.semantics td {
+ border-left: 0px solid black;
+ border-right: 0px solid black;
+ border-top: 4px double #d3d3d3;
+ border-bottom: 4px double #d3d3d3;
+ background-color: #ccffcc
+ }
+ table.semantics code.formulae {
+ padding: 1em;
+ border: 1px dashed #005a9c;
+ line-height: 1.1em;
+ background-color: #fdfdfd;
+ }
+ table.example { border: 0px solid black; width: 85%; border-collapse: collapse }
+ table.example caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+ table.example th { border: 0px solid black; text-align: left }
+ table.example td { border: 0px solid black; }
+ table.example div { background-color: #c8ffff }
+ table.example-images { text-align: center; border: 0px solid black; width: 85%; border-collapse: collapse }
+ table.example-images caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+ table.example-images td { border: 0px solid black; text-align: center }
+ table.example-images-bordered { text-align: center; border: 0px solid black; width: 85%; border-collapse: collapse }
+ table.example-images-bordered caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+ table.example-images-bordered td { border: 1px solid red; text-align: left }
+ .tbd { background-color: #ffff33; border: 2px solid black; width: 85% }
+ .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-PER.css">
+</head>
+
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home"
+ alt="W3C" height="48" width="72"></a></p>
+
+ <h1><a id="title" name="title"></a>Timed Text Markup Language (TTML) 1.0
+ (Second Edition)</h1>
+
+ <h2><a id="w3c-doctype" name="w3c-doctype"></a>W3C Proposed Edited
+ Recommendation DD July 2013</h2>
+
+ <dl>
+ <dt>This version:</dt>
+
+ <dd><a href=
+ "http://www.w3.org/TR/2013/PER-ttaf1-dfxp-201307DD/">http://www.w3.org/TR/2013/PER-ttaf1-dfxp-201307DD/</a></dd>
+
+ <dt>Latest version:</dt>
+
+ <dd><a href=
+ "http://www.w3.org/TR/ttaf1-dfxp/">http://www.w3.org/TR/ttaf1-dfxp/</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></dd>
+
+ <dt>Editor:</dt>
+
+ <dd>Glenn Adams, Cox Communications, Inc.</dd>
+
+ <dt>Contributing Authors:</dt>
+
+ <dd>Mike Dolan, Invited Expert</dd>
+
+ <dd>Geoff Freed, WGBH National Center for Accessible Media</dd>
+
+ <dd>Sean Hayes, Microsoft</dd>
+
+ <dd>Erik Hodge, RealNetworks</dd>
+
+ <dd>David Kirby, British Broadcasting Corporation (BBC)</dd>
+
+ <dd>Thierry Michel, W3C</dd>
+
+ <dd>Dave Singer, Apple Computer</dd>
+ </dl>
+
+ <p>Please refer to the <a href=
+ "https://dvcs.w3.org/hg/ttml/raw-file/default/ttml10/spec/ttml-issues.html">
+ errata</a> for this document, which may include normative corrections.</p>
+
+ <p>See also <a href=
+ "http://www.w3.org/2003/03/Translations/byTechnology?technology=ttaf1-dfxp">
+ <strong>translations</strong></a>.</p>
+
+ <p class="copyright"><a href=
+ "http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2013 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup>
+ (<a href="http://www.csail.mit.edu/"><acronym title=
+ "Massachusetts Institute of Technology">MIT</acronym></a>, <a href=
+ "http://www.ercim.eu/"><acronym title=
+ "European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
+ <a href="http://www.keio.ac.jp/">Keio</a>, <a href=
+ "http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved. W3C <a href=
+ "http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a href=
+ "http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
+ and <a href=
+ "http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
+ rules apply.</p>
+ </div>
+ <hr>
+
+ <div>
+ <h2><a id="abstract" name="abstract"></a>Abstract</h2>
+
+ <p>This document specifies the Timed Text Markup Language (TTML) in terms
+ of a vocabulary and semantics thereof.</p>
+
+ <p>The Timed Text Markup Language is a content type that represents timed
+ text media for the purpose of interchange among authoring systems. Timed
+ text is textual information that is intrinsically or extrinsically
+ associated with timing information.</p>
+
+ <p>It is intended to be used for the purpose of transcoding or exchanging
+ timed text information among legacy distribution content formats presently
+ in use for subtitling and captioning functions.</p>
+
+ <p>In addition to being used for interchange among legacy distribution
+ content formats, TTML Content may be used directly as a distribution
+ format, for example, providing a standard content format to reference from
+ a <code><track></code> element in an HTML5 document, or a
+ <code><text></code> or <code><textstream></code> media element
+ in a <a href="#smil21">[SMIL 2.1]</a> document.</p>
+ </div>
+
+ <div>
+ <h2><a id="status" name="status"></a>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 and the latest revision of this technical report
+ 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>This document, published on DD July 2013, is a <a href=
+ "http://www.w3.org/2005/10/Process-20051014/tr.html#ProposedEditedRec">Proposed
+ Edited Recommendation</a> of the W3C. This second edition is not a new
+ version of this specification; its purpose is to clarify a number of issues
+ that have become apparent since the first edition was published.</p>
+
+ <p>This document has been produced by the <a href=
+ "http://www.w3.org/AudioVideo/TT/">Timed Text (TT) Working Group</a> as
+ part of the W3C <a href="http://www.w3.org/2008/WebVideo/">Video in the Web
+ Activity</a>, following the procedures set out for the W3C <a href=
+ "http://www.w3.org/Consortium/Process/">Process</a>. The authors of this
+ document are listed in the header of this document.</p>
+
+ <p>Publication as a Proposed Edited Recommendation does not imply
+ endorsement by the W3C Membership. This is a draft document and may be
+ updated, replaced or obsoleted by other documents at any time. It is
+ inappropriate to cite this document as other than work in progress.</p>
+
+ <p>W3C Advisory Committee Members are invited to send formal review
+ comments on this Proposed Edited Recommendation to the W3C Team until DD
+ August 2013. Members of the W3C Advisory Committee will find the
+ appropriate review form for this document by consulting their <a href=
+ "http://www.w3.org/2002/09/wbs/myQuestionnaires">list of WBS
+ questionnaires</a>.</p>
+
+ <p>This document incorporates changes made against the <a href=
+ "http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/">Recommendation</a> of
+ 18 November 2010 that resolve all errata known at the date of publication.
+ A list of the errata that have been applied is provided in <a href=
+ "https://dvcs.w3.org/hg/ttml/raw-file/default/ttml10/spec/ttml-changes.html#change-history-rec-to-2e-per">
+ Changes from Recommendation to Proposed Edited Recommendation (2nd
+ Ed.)</a>.</p>
+
+ <p>Please report errors in and submit comments on this document to the W3C
+ Timed Text public comments mailing list, <a href=
+ "mailto:public-tt-comments@w3.org">public-tt-comments@w3.org</a>. Please
+ include the string <code>[ttml10se]</code> at the beginning of the subject
+ line of your report. Each email message should contain only one error
+ report. Archives of the comments and responses are available at <a href=
+ "http://lists.w3.org/Archives/Public/public-tt-comments/">http://lists.w3.org/Archives/Public/public-tt-comments/</a>.</p>
+
+ <p>An updated <a href=
+ "http://www.w3.org/2009/05/dfxp-results.html">implementation report</a>
+ will be made available, but the decision of the Director to transition this
+ document to Proposed Edited Recommendation did not depend on the existence
+ of that report.</p>
+
+ <p>The Timed Text Working Group plans to submit this specification for
+ consideration as a W3C Recommendation (Second Edition) as soon as the
+ Working Group has responded formally to all issues raised during the PER
+ period against this document.</p>
+
+ <p>This document was produced by a group operating under the <a href=
+ "http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C
+ Patent Policy</a>. W3C maintains a <a href=
+ "http://www.w3.org/2004/01/pp-impl/34314/status#disclosures" rel=
+ "disclosure">public list of any patent disclosures</a> made in connection
+ with the deliverables of the group; that page also includes instructions
+ for disclosing a patent. An individual who has actual knowledge of a patent
+ which the individual believes contains <a href=
+ "http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
+ Claim(s)</a> must disclose the information in accordance with <a href=
+ "http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
+ 6 of the W3C Patent Policy</a>.</p>
+ </div>
+
+ <div class="toc">
+ <h2><a id="contents" name="contents"></a>Table of Contents</h2>
+
+ <p class="toc">1 <a href="#intro">Introduction</a><br>
+ 1.1 <a href="#model">System Model</a><br>
+ 1.2 <a href="#example">Document Example</a><br>
+ 2 <a href="#definitions">Definitions</a><br>
+ 2.1 <a href="#acronyms">Acronyms</a><br>
+ 2.2 <a href="#terms">Terminology</a><br>
+ 2.3 <a href="#conventions">Documentation
+ Conventions</a><br>
+ 3 <a href="#conformance">Conformance</a><br>
+ 3.1 <a href="#conformance-content">Content
+ Conformance</a><br>
+ 3.2 <a href="#conformance-processor">Processor
+ Conformance</a><br>
+ 3.2.1 <a href=
+ "#conformance-generic-processor">Generic Processor Conformance</a><br>
+ 3.2.2 <a href=
+ "#conformance-transformation-processor">Transformation Processor
+ Conformance</a><br>
+ 3.2.3 <a href=
+ "#conformance-presentation-processor">Presentation Processor
+ Conformance</a><br>
+ 3.3 <a href="#claims">Claims</a><br>
+ 4 <a href="#doctypes">Document Types</a><br>
+ 4.1 <a href="#ttml-content-doctype">TTML
+ Content</a><br>
+ 5 <a href="#vocabulary">Vocabulary</a><br>
+ 5.1 <a href=
+ "#vocabulary-namespaces">Namespaces</a><br>
+ 5.2 <a href="#vocabulary-profiles">Profiles</a><br>
+ 5.3 <a href="#vocabulary-overview">Catalog</a><br>
+ 5.3.1 <a href=
+ "#core-vocabulary-overview">Core Catalog</a><br>
+ 5.3.2 <a href=
+ "#extension-vocabulary-overview">Extension Catalog</a><br>
+ 6 <a href="#parameters">Parameters</a><br>
+ 6.1 <a href=
+ "#parameter-element-vocabulary">Parameter Element Vocabulary</a><br>
+ 6.1.1 <a href=
+ "#parameter-vocabulary-profile">ttp:profile</a><br>
+ 6.1.2 <a href=
+ "#parameter-vocabulary-features">ttp:features</a><br>
+ 6.1.3 <a href=
+ "#parameter-vocabulary-feature">ttp:feature</a><br>
+ 6.1.4 <a href=
+ "#parameter-vocabulary-extensions">ttp:extensions</a><br>
+ 6.1.5 <a href=
+ "#parameter-vocabulary-extension">ttp:extension</a><br>
+ 6.2 <a href=
+ "#parameter-attribute-vocabulary">Parameter Attribute Vocabulary</a><br>
+ 6.2.1 <a href=
+ "#parameter-attribute-cellResolution">ttp:cellResolution</a><br>
+ 6.2.2 <a href=
+ "#parameter-attribute-clockMode">ttp:clockMode</a><br>
+ 6.2.3 <a href=
+ "#parameter-attribute-dropMode">ttp:dropMode</a><br>
+ 6.2.4 <a href=
+ "#parameter-attribute-frameRate">ttp:frameRate</a><br>
+ 6.2.5 <a href=
+ "#parameter-attribute-frameRateMultiplier">ttp:frameRateMultiplier</a><br>
+ 6.2.6 <a href=
+ "#parameter-attribute-markerMode">ttp:markerMode</a><br>
+ 6.2.7 <a href=
+ "#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</a><br>
+ 6.2.8 <a href=
+ "#parameter-attribute-profile">ttp:profile</a><br>
+ 6.2.9 <a href=
+ "#parameter-attribute-subFrameRate">ttp:subFrameRate</a><br>
+ 6.2.10 <a href=
+ "#parameter-attribute-tickRate">ttp:tickRate</a><br>
+ 6.2.11 <a href=
+ "#parameter-attribute-timeBase">ttp:timeBase</a><br>
+ 7 <a href="#content">Content</a><br>
+ 7.1 <a href="#content-element-vocabulary">Content
+ Element Vocabulary</a><br>
+ 7.1.1 <a href=
+ "#document-structure-vocabulary-tt">tt</a><br>
+ 7.1.2 <a href=
+ "#document-structure-vocabulary-head">head</a><br>
+ 7.1.3 <a href=
+ "#document-structure-vocabulary-body">body</a><br>
+ 7.1.4 <a href=
+ "#content-vocabulary-div">div</a><br>
+ 7.1.5 <a href=
+ "#content-vocabulary-p">p</a><br>
+ 7.1.6 <a href=
+ "#content-vocabulary-span">span</a><br>
+ 7.1.7 <a href=
+ "#content-vocabulary-br">br</a><br>
+ 7.2 <a href="#content-attribute-vocabulary">Content
+ Attribute Vocabulary</a><br>
+ 7.2.1 <a href=
+ "#content-attribute-id">xml:id</a><br>
+ 7.2.2 <a href=
+ "#content-attribute-lang">xml:lang</a><br>
+ 7.2.3 <a href=
+ "#content-attribute-space">xml:space</a><br>
+ 8 <a href="#styling">Styling</a><br>
+ 8.1 <a href="#styling-element-vocabulary">Styling
+ Element Vocabulary</a><br>
+ 8.1.1 <a href=
+ "#styling-vocabulary-styling">styling</a><br>
+ 8.1.2 <a href=
+ "#styling-vocabulary-style">style</a><br>
+ 8.2 <a href="#styling-attribute-vocabulary">Styling
+ Attribute Vocabulary</a><br>
+ 8.2.1 <a href=
+ "#style-attribute-style">style</a><br>
+ 8.2.2 <a href=
+ "#style-attribute-backgroundColor">tts:backgroundColor</a><br>
+ 8.2.3 <a href=
+ "#style-attribute-color">tts:color</a><br>
+ 8.2.4 <a href=
+ "#style-attribute-direction">tts:direction</a><br>
+ 8.2.5 <a href=
+ "#style-attribute-display">tts:display</a><br>
+ 8.2.6 <a href=
+ "#style-attribute-displayAlign">tts:displayAlign</a><br>
+ 8.2.7 <a href=
+ "#style-attribute-extent">tts:extent</a><br>
+ 8.2.8 <a href=
+ "#style-attribute-fontFamily">tts:fontFamily</a><br>
+ 8.2.9 <a href=
+ "#style-attribute-fontSize">tts:fontSize</a><br>
+ 8.2.10 <a href=
+ "#style-attribute-fontStyle">tts:fontStyle</a><br>
+ 8.2.11 <a href=
+ "#style-attribute-fontWeight">tts:fontWeight</a><br>
+ 8.2.12 <a href=
+ "#style-attribute-lineHeight">tts:lineHeight</a><br>
+ 8.2.13 <a href=
+ "#style-attribute-opacity">tts:opacity</a><br>
+ 8.2.14 <a href=
+ "#style-attribute-origin">tts:origin</a><br>
+ 8.2.15 <a href=
+ "#style-attribute-overflow">tts:overflow</a><br>
+ 8.2.16 <a href=
+ "#style-attribute-padding">tts:padding</a><br>
+ 8.2.17 <a href=
+ "#style-attribute-showBackground">tts:showBackground</a><br>
+ 8.2.18 <a href=
+ "#style-attribute-textAlign">tts:textAlign</a><br>
+ 8.2.19 <a href=
+ "#style-attribute-textDecoration">tts:textDecoration</a><br>
+ 8.2.20 <a href=
+ "#style-attribute-textOutline">tts:textOutline</a><br>
+ 8.2.21 <a href=
+ "#style-attribute-unicodeBidi">tts:unicodeBidi</a><br>
+ 8.2.22 <a href=
+ "#style-attribute-visibility">tts:visibility</a><br>
+ 8.2.23 <a href=
+ "#style-attribute-wrapOption">tts:wrapOption</a><br>
+ 8.2.24 <a href=
+ "#style-attribute-writingMode">tts:writingMode</a><br>
+ 8.2.25 <a href=
+ "#style-attribute-zIndex">tts:zIndex</a><br>
+ 8.3 <a href=
+ "#styling-style-value-expressions">Style Value Expressions</a><br>
+ 8.3.1 <a href=
+ "#style-value-alpha"><alpha></a><br>
+ 8.3.2 <a href=
+ "#style-value-color"><color></a><br>
+ 8.3.3 <a href=
+ "#style-value-digit"><digit></a><br>
+ 8.3.4 <a href=
+ "#style-value-duration">Deleted</a><br>
+ 8.3.5 <a href=
+ "#style-value-familyName"><familyName></a><br>
+ 8.3.6 <a href=
+ "#style-value-genericFamilyName"><genericFamilyName></a><br>
+ 8.3.7 <a href=
+ "#style-value-hexDigit"><hexDigit></a><br>
+ 8.3.8 <a href=
+ "#style-value-integer"><integer></a><br>
+ 8.3.9 <a href=
+ "#style-value-length"><length></a><br>
+ 8.3.10 <a href=
+ "#style-value-namedColor"><namedColor></a><br>
+ 8.3.11 <a href=
+ "#style-value-quotedString">Deleted</a><br>
+ 8.3.12 <a href=
+ "#style-value-string">Deleted</a><br>
+ 8.4 <a href="#semantics-style-resolution">Style
+ Resolution</a><br>
+ 8.4.1 <a href=
+ "#semantics-style-association">Style Association</a><br>
+ 8.4.1.1
+ <a href="#semantics-style-association-inline">Inline Styling</a><br>
+ 8.4.1.2
+ <a href="#semantics-style-association-referential">Referential
+ Styling</a><br>
+ 8.4.1.3
+ <a href="#semantics-style-association-chained-referential">Chained
+ Referential Styling</a><br>
+ 8.4.1.4
+ <a href="#semantics-style-association-nested">Nested Styling</a><br>
+ 8.4.2 <a href=
+ "#semantics-style-inheritance">Style Inheritance</a><br>
+ 8.4.2.1
+ <a href="#semantics-style-inheritance-content">Content Style
+ Inheritance</a><br>
+ 8.4.2.2
+ <a href="#semantics-style-inheritance-region">Region Style
+ Inheritance</a><br>
+ 8.4.3 <a href=
+ "#semantics-style-resolution-value-categories">Style Resolution Value
+ Categories</a><br>
+ 8.4.3.1
+ <a href="#semantics-style-resolved-value-category-specified">Specified
+ Values</a><br>
+ 8.4.3.2
+ <a href="#semantics-style-resolved-value-category-computed">Computed
+ Values</a><br>
+ 8.4.3.3
+ <a href="#semantics-style-resolved-value-category-actual">Actual
+ Values</a><br>
+ 8.4.4 <a href=
+ "#semantics-style-resolution-processing">Style Resolution
+ Processing</a><br>
+ 8.4.4.1
+ <a href="#semantics-style-resolution-processing-definitions">Conceptual
+ Definitions</a><br>
+ 8.4.4.2
+ <a href="#semantics-style-resolution-processing-sss">Specified Style Set
+ Processing</a><br>
+ 8.4.4.3
+ <a href="#semantics-style-resolution-processing-css">Computed Style Set
+ Processing</a><br>
+ 8.4.4.4
+ <a href="#semantics-style-resolution-process-overall">Style Resolution
+ Process</a><br>
+ 9 <a href="#layout">Layout</a><br>
+ 9.1 <a href="#layout-element-vocabulary">Layout
+ Element Vocabulary</a><br>
+ 9.1.1 <a href=
+ "#layout-vocabulary-layout">layout</a><br>
+ 9.1.2 <a href=
+ "#layout-vocabulary-region">region</a><br>
+ 9.2 <a href="#layout-attribute-vocabulary">Layout
+ Attribute Vocabulary</a><br>
+ 9.2.1 <a href=
+ "#layout-attribute-region">region</a><br>
+ 9.3 <a href="#semantics-region-layout">Region
+ Layout and Presentation</a><br>
+ 9.3.1 <a href=
+ "#semantics-default-region">Default Region</a><br>
+ 9.3.2 <a href=
+ "#semantics-region-layout-step-1">Intermediate Synchronic Document
+ Construction</a><br>
+ 9.3.3 <a href=
+ "#semantics-region-layout-step-2">Synchronic Flow Processing</a><br>
+ 9.3.4 <a href=
+ "#semantics-region-layout-example">Elaborated Example (Informative)</a><br>
+ 9.4 <a href="#semantics-line-layout">Line
+ Layout</a><br>
+ 10 <a href="#timing">Timing</a><br>
+ 10.1 <a href="#timing-element-vocabulary">Timing
+ Element Vocabulary</a><br>
+ 10.2 <a href="#timing-attribute-vocabulary">Timing
+ Attribute Vocabulary</a><br>
+ 10.2.1 <a href=
+ "#timing-attribute-begin">begin</a><br>
+ 10.2.2 <a href=
+ "#timing-attribute-end">end</a><br>
+ 10.2.3 <a href=
+ "#timing-attribute-dur">dur</a><br>
+ 10.2.4 <a href=
+ "#timing-attribute-timeContainer">timeContainer</a><br>
+ 10.3 <a href="#timing-time-value-expressions">Time
+ Value Expressions</a><br>
+ 10.3.1 <a href=
+ "#timing-value-timeExpression"><timeExpression></a><br>
+ 10.4 <a href="#timing-time-intervals">Time
+ Intervals</a><br>
+ 11 <a href="#animation">Animation</a><br>
+ 11.1 <a href=
+ "#animation-element-vocabulary">Animation Element Vocabulary</a><br>
+ 11.1.1 <a href=
+ "#animation-vocabulary-set">set</a><br>
+ 11.2 <a href=
+ "#animation-attribute-vocabulary">Animation Attribute Vocabulary</a><br>
+ 12 <a href="#metadata">Metadata</a><br>
+ 12.1 <a href=
+ "#metadata-element-vocabulary">Metadata Element Vocabulary</a><br>
+ 12.1.1 <a href=
+ "#metadata-vocabulary-metadata">metadata</a><br>
+ 12.1.2 <a href=
+ "#metadata-vocabulary-title">ttm:title</a><br>
+ 12.1.3 <a href=
+ "#metadata-vocabulary-desc">ttm:desc</a><br>
+ 12.1.4 <a href=
+ "#metadata-vocabulary-copyright">ttm:copyright</a><br>
+ 12.1.5 <a href=
+ "#metadata-vocabulary-agent">ttm:agent</a><br>
+ 12.1.6 <a href=
+ "#metadata-vocabulary-name">ttm:name</a><br>
+ 12.1.7 <a href=
+ "#metadata-vocabulary-actor">ttm:actor</a><br>
+ 12.2 <a href=
+ "#metadata-attribute-vocabulary">Metadata Attribute Vocabulary</a><br>
+ 12.2.1 <a href=
+ "#metadata-attribute-agent">ttm:agent</a><br>
+ 12.2.2 <a href=
+ "#metadata-attribute-role">ttm:role</a><br></p>
+
+ <h3><a id="appendices" name="appendices"></a>Appendices</h3>
+
+ <p class="toc">A <a href="#reduced-infoset">Reduced XML Infoset</a><br>
+ A.1 <a href="#reduced-infoset-document">Document
+ Information Item</a><br>
+ A.2 <a href="#reduced-infoset-element">Element
+ Information Item</a><br>
+ A.3 <a href="#reduced-infoset-attribute">Attribute
+ Information Item</a><br>
+ A.4 <a href="#reduced-infoset-character">Character
+ Information Item</a><br>
+ B <a href="#schemas">Schemas</a><br>
+ B.1 <a href="#ttml-schema-rnc">Relax NG Compact
+ (RNC) Schema</a><br>
+ B.2 <a href="#ttml-schema-xsd">XML Schema
+ Definition (XSD) Schema</a><br>
+ C <a href="#media-types-registration">Media Type Registration</a><br>
+ D <a href="#features">Features</a><br>
+ D.1 <a href="#feature-designations">Feature
+ Designations</a><br>
+ D.1.1 <a href=
+ "#feature-animation">#animation</a><br>
+ D.1.2 <a href=
+ "#feature-backgroundColor">#backgroundColor</a><br>
+ D.1.3 <a href=
+ "#feature-backgroundColor-block">#backgroundColor-block</a><br>
+ D.1.4 <a href=
+ "#feature-backgroundColor-inline">#backgroundColor-inline</a><br>
+ D.1.5 <a href=
+ "#feature-backgroundColor-region">#backgroundColor-region</a><br>
+ D.1.6 <a href=
+ "#feature-bidi">#bidi</a><br>
+ D.1.7 <a href=
+ "#feature-cellResolution">#cellResolution</a><br>
+ D.1.8 <a href=
+ "#feature-clockMode">#clockMode</a><br>
+ D.1.9 <a href=
+ "#feature-clockMode-gps">#clockMode-gps</a><br>
+ D.1.10 <a href=
+ "#feature-clockMode-local">#clockMode-local</a><br>
+ D.1.11 <a href=
+ "#feature-clockMode-utc">#clockMode-utc</a><br>
+ D.1.12 <a href=
+ "#feature-color">#color</a><br>
+ D.1.13 <a href=
+ "#feature-content">#content</a><br>
+ D.1.14 <a href=
+ "#feature-core">#core</a><br>
+ D.1.15 <a href=
+ "#feature-direction">#direction</a><br>
+ D.1.16 <a href=
+ "#feature-display">#display</a><br>
+ D.1.17 <a href=
+ "#feature-display-block">#display-block</a><br>
+ D.1.18 <a href=
+ "#feature-display-inline">#display-inline</a><br>
+ D.1.19 <a href=
+ "#feature-display-region">#display-region</a><br>
+ D.1.20 <a href=
+ "#feature-displayAlign">#displayAlign</a><br>
+ D.1.21 <a href=
+ "#feature-dropMode">#dropMode</a><br>
+ D.1.22 <a href=
+ "#feature-dropMode-dropNTSC">#dropMode-dropNTSC</a><br>
+ D.1.23 <a href=
+ "#feature-dropMode-dropPAL">#dropMode-dropPAL</a><br>
+ D.1.24 <a href=
+ "#feature-dropMode-nonDrop">#dropMode-nonDrop</a><br>
+ D.1.25 <a href=
+ "#feature-extent">#extent</a><br>
+ D.1.26 <a href=
+ "#feature-extent-region">#extent-region</a><br>
+ D.1.27 <a href=
+ "#feature-extent-root">#extent-root</a><br>
+ D.1.28 <a href=
+ "#feature-fontFamily">#fontFamily</a><br>
+ D.1.29 <a href=
+ "#feature-fontFamily-generic">#fontFamily-generic</a><br>
+ D.1.30 <a href=
+ "#feature-fontFamily-non-generic">#fontFamily-non-generic</a><br>
+ D.1.31 <a href=
+ "#feature-fontSize">#fontSize</a><br>
+ D.1.32 <a href=
+ "#feature-fontSize-anamorphic">#fontSize-anamorphic</a><br>
+ D.1.33 <a href=
+ "#feature-fontSize-isomorphic">#fontSize-isomorphic</a><br>
+ D.1.34 <a href=
+ "#feature-fontStyle">#fontStyle</a><br>
+ D.1.35 <a href=
+ "#feature-fontStyle-italic">#fontStyle-italic</a><br>
+ D.1.36 <a href=
+ "#feature-fontStyle-oblique">#fontStyle-oblique</a><br>
+ D.1.37 <a href=
+ "#feature-fontWeight">#fontWeight</a><br>
+ D.1.38 <a href=
+ "#feature-fontWeight-bold">#fontWeight-bold</a><br>
+ D.1.39 <a href=
+ "#feature-frameRate">#frameRate</a><br>
+ D.1.40 <a href=
+ "#feature-frameRateMultiplier">#frameRateMultiplier</a><br>
+ D.1.41 <a href=
+ "#feature-layout">#layout</a><br>
+ D.1.42 <a href=
+ "#feature-length">#length</a><br>
+ D.1.43 <a href=
+ "#feature-length-cell">#length-cell</a><br>
+ D.1.44 <a href=
+ "#feature-length-em">#length-em</a><br>
+ D.1.45 <a href=
+ "#feature-length-integer">#length-integer</a><br>
+ D.1.46 <a href=
+ "#feature-length-negative">#length-negative</a><br>
+ D.1.47 <a href=
+ "#feature-length-percentage">#length-percentage</a><br>
+ D.1.48 <a href=
+ "#feature-length-pixel">#length-pixel</a><br>
+ D.1.49 <a href=
+ "#feature-length-positive">#length-positive</a><br>
+ D.1.50 <a href=
+ "#feature-length-real">#length-real</a><br>
+ D.1.51 <a href=
+ "#feature-lineBreak-uax14">#lineBreak-uax14</a><br>
+ D.1.52 <a href=
+ "#feature-lineHeight">#lineHeight</a><br>
+ D.1.53 <a href=
+ "#feature-markerMode">#markerMode</a><br>
+ D.1.54 <a href=
+ "#feature-markerMode-continuous">#markerMode-continuous</a><br>
+ D.1.55 <a href=
+ "#feature-markerMode-discontinuous">#markerMode-discontinuous</a><br>
+ D.1.56 <a href=
+ "#feature-metadata">#metadata</a><br>
+ D.1.57 <a href=
+ "#feature-nested-div">#nested-div</a><br>
+ D.1.58 <a href=
+ "#feature-nested-span">#nested-span</a><br>
+ D.1.59 <a href=
+ "#feature-opacity">#opacity</a><br>
+ D.1.60 <a href=
+ "#feature-origin">#origin</a><br>
+ D.1.61 <a href=
+ "#feature-overflow">#overflow</a><br>
+ D.1.62 <a href=
+ "#feature-overflow-visible">#overflow-visible</a><br>
+ D.1.63 <a href=
+ "#feature-padding">#padding</a><br>
+ D.1.64 <a href=
+ "#feature-padding-1">#padding-1</a><br>
+ D.1.65 <a href=
+ "#feature-padding-2">#padding-2</a><br>
+ D.1.66 <a href=
+ "#feature-padding-3">#padding-3</a><br>
+ D.1.67 <a href=
+ "#feature-padding-4">#padding-4</a><br>
+ D.1.68 <a href=
+ "#feature-pixelAspectRatio">#pixelAspectRatio</a><br>
+ D.1.69 <a href=
+ "#feature-presentation">#presentation</a><br>
+ D.1.70 <a href=
+ "#feature-profile">#profile</a><br>
+ D.1.71 <a href=
+ "#feature-showBackground">#showBackground</a><br>
+ D.1.72 <a href=
+ "#feature-structure">#structure</a><br>
+ D.1.73 <a href=
+ "#feature-styling">#styling</a><br>
+ D.1.74 <a href=
+ "#feature-styling-chained">#styling-chained</a><br>
+ D.1.75 <a href=
+ "#feature-styling-inheritance-content">#styling-inheritance-content</a><br>
+ D.1.76 <a href=
+ "#feature-styling-inheritance-region">#styling-inheritance-region</a><br>
+ D.1.77 <a href=
+ "#feature-styling-inline">#styling-inline</a><br>
+ D.1.78 <a href=
+ "#feature-styling-nested">#styling-nested</a><br>
+ D.1.79 <a href=
+ "#feature-styling-referential">#styling-referential</a><br>
+ D.1.80 <a href=
+ "#feature-subFrameRate">#subFrameRate</a><br>
+ D.1.81 <a href=
+ "#feature-textAlign">#textAlign</a><br>
+ D.1.82 <a href=
+ "#feature-textAlign-absolute">#textAlign-absolute</a><br>
+ D.1.83 <a href=
+ "#feature-textAlign-relative">#textAlign-relative</a><br>
+ D.1.84 <a href=
+ "#feature-textDecoration">#textDecoration</a><br>
+ D.1.85 <a href=
+ "#feature-textDecoration-over">#textDecoration-over</a><br>
+ D.1.86 <a href=
+ "#feature-textDecoration-through">#textDecoration-through</a><br>
+ D.1.87 <a href=
+ "#feature-textDecoration-under">#textDecoration-under</a><br>
+ D.1.88 <a href=
+ "#feature-textOutline">#textOutline</a><br>
+ D.1.89 <a href=
+ "#feature-textOutline-blurred">#textOutline-blurred</a><br>
+ D.1.90 <a href=
+ "#feature-textOutline-unblurred">#textOutline-unblurred</a><br>
+ D.1.91 <a href=
+ "#feature-tickRate">#tickRate</a><br>
+ D.1.92 <a href=
+ "#feature-timeBase-clock">#timeBase-clock</a><br>
+ D.1.93 <a href=
+ "#feature-timeBase-media">#timeBase-media</a><br>
+ D.1.94 <a href=
+ "#feature-timeBase-smpte">#timeBase-smpte</a><br>
+ D.1.95 <a href=
+ "#feature-timeContainer">#timeContainer</a><br>
+ D.1.96 <a href=
+ "#feature-time-clock">#time-clock</a><br>
+ D.1.97 <a href=
+ "#feature-time-clock-with-frames">#time-clock-with-frames</a><br>
+ D.1.98 <a href=
+ "#feature-time-offset">#time-offset</a><br>
+ D.1.99 <a href=
+ "#feature-time-offset-with-frames">#time-offset-with-frames</a><br>
+ D.1.100 <a href=
+ "#feature-time-offset-with-ticks">#time-offset-with-ticks</a><br>
+ D.1.101 <a href=
+ "#feature-timing">#timing</a><br>
+ D.1.102 <a href=
+ "#feature-transformation">#transformation</a><br>
+ D.1.103 <a href=
+ "#feature-unicodeBidi">#unicodeBidi</a><br>
+ D.1.104 <a href=
+ "#feature-visibility">#visibility</a><br>
+ D.1.105 <a href=
+ "#feature-visibility-block">#visibility-block</a><br>
+ D.1.106 <a href=
+ "#feature-visibility-inline">#visibility-inline</a><br>
+ D.1.107 <a href=
+ "#feature-visibility-region">#visibility-region</a><br>
+ D.1.108 <a href=
+ "#feature-wrapOption">#wrapOption</a><br>
+ D.1.109 <a href=
+ "#feature-writingMode">#writingMode</a><br>
+ D.1.110 <a href=
+ "#feature-writingMode-vertical">#writingMode-vertical</a><br>
+ D.1.111 <a href=
+ "#feature-writingMode-horizontal">#writingMode-horizontal</a><br>
+ D.1.112 <a href=
+ "#feature-writingMode-horizontal-lr">#writingMode-horizontal-lr</a><br>
+ D.1.113 <a href=
+ "#feature-writingMode-horizontal-rl">#writingMode-horizontal-rl</a><br>
+ D.1.114 <a href=
+ "#feature-zIndex">#zIndex</a><br>
+ D.2 <a href="#feature-support">Feature
+ Support</a><br>
+ E <a href="#extensions">Extensions</a><br>
+ E.1 <a href="#extension-designations">Extension
+ Designations</a><br>
+ F <a href="#profiles">Profiles</a><br>
+ F.1 <a href="#profile-dfxp-transformation">DFXP
+ Transformation Profile</a><br>
+ F.2 <a href="#profile-dfxp-presentation">DFXP
+ Presentation Profile</a><br>
+ F.3 <a href="#profile-dfxp-full">DFXP Full
+ Profile</a><br>
+ G <a href="#references">References</a><br>
+ 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="#d3e18638">Element Derivation</a><br>
+ J.2 <a href="#d3e19117">Attribute
+ Derivation</a><br>
+ K <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br>
+ K.1 <a href="#d3e20003">Requirements</a><br>
+ K.2 <a href="#d3e20167">Guidelines</a><br>
+ L <a href="#streaming">Streaming TTML Content</a> (Non-Normative)<br>
+ M <a href="#concrete-encoding">Concrete Encoding</a> (Non-Normative)<br>
+ N <a href="#time-expression-semantics">Time Expression Semantics</a>
+ (Non-Normative)<br>
+ N.1 <a href=
+ "#time-expression-semantics-clock">Clock Time Base</a><br>
+ N.2 <a href=
+ "#time-expression-semantics-media">Media Time Base</a><br>
+ N.3 <a href=
+ "#time-expression-semantics-smpte">SMPTE Time Base</a><br>
+ O <a href="#common-styling">Common Caption Style Examples</a>
+ (Non-Normative)<br>
+ O.1 <a href="#pop-on-example">Pop-On Caption
+ Example</a><br>
+ O.2 <a href="#roll-up-example">Roll-Up Caption
+ Example</a><br>
+ O.3 <a href="#paint-on-example">Paint-On Caption
+ Example</a><br>
+ P <a href="#acknowledgments">Acknowledgments</a> (Non-Normative)<br></p>
+ </div>
+ <hr>
+
+ <div class="body">
+ <div class="div1">
+ <h2><a id="intro" name="intro"></a>1 Introduction</h2>
+
+ <p><em>Unless specified otherwise, this section and its sub-sections are
+ non-normative.</em></p>
+
+ <p>The Timed Text Markup Language (TTML) 1.0 provides a standardized
+ representation of a particular subset of textual information with which
+ stylistic, layout, and timing semantics are associated by an author or an
+ authoring system for the purpose of interchange and processing.</p>
+
+ <p>TTML is expressly designed to meet only a limited set of requirements
+ established by <a href="#ttaf1-req">[TTAF1-REQ]</a>, and summarized in
+ <a href="#requirements"><b>I Requirements</b></a>. In particular, only
+ those requirements which service the need of performing interchange with
+ existing, legacy distribution systems are satisfied.</p>
+
+ <p>In addition to being used for interchange among legacy distribution
+ content formats, TTML Content may be used directly as a distribution
+ format (as implied by the acronym DFXP), providing, for example, a
+ standard content format to reference from a <code><track></code>
+ element in an HTML5 document, or a <code><text></code> or
+ <code><textstream></code> media element in a <a href=
+ "#smil21">[SMIL 2.1]</a> document. Certain properties of TTML support
+ streamability of content, as described in <a href="#streaming"><b>L
+ Streaming TTML Content</b></a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>While TTML was not expressly designed for direct (embedded)
+ integration into an HTML or a SMIL document instance, such integration
+ is not precluded.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In some contexts of use, it may be appropriate to employ animated
+ content to depict sign language representations of the same content as
+ expressed by a Timed Text <em>Document Instance</em>. This use case is
+ not explicitly addressed by TTML mechanisms, but may be addressed by
+ some external multimedia integration technology, such as SMIL.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In previous drafts of this specification, TTML was referred to as
+ DFXP (Distribution Format Exchange Profile). This latter term is
+ retained for historical reasons in certain contexts, such as profile
+ names and designators, and the short name <code>ttaf1-dfxp</code> used
+ in URLs to refer to this specification.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="model" name="model"></a>1.1 System Model</h3>
+
+ <p>Use of TTML is intended to function in a wider context of Timed Text
+ Authoring and Distribution mechanisms that are based upon the system
+ model depicted in <a href="#model-graphic"><b>Figure 1 – System
+ Model</b></a>, wherein the Timed Text Markup Language serves as a
+ bidirectional interchange format among a heterogeneous collection of
+ authoring systems, and as a unidirectional interchange format to a
+ heterogeneous collection of distribution formats after undergoing
+ transcoding or compilation to the target distribution formats as
+ required, and where one particular distribution format is TTML (labeled
+ as "DFXP" in the figure).</p><a id="model-graphic" name=
+ "model-graphic"></a>
+
+ <table class="example-images">
+ <caption>
+ Figure 1 – System Model
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/model.png" alt="System Model"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div2">
+ <h3><a id="example" name="example"></a>1.2 Document Example</h3>
+
+ <p>A TTML <em>Document Instance</em> consists of a <code>tt</code>
+ document element that contains a header and a body, where the header
+ specifies document level metadata, styling definitions and layout
+ definitions, and the body specifies text content intermixed with
+ references to style and layout information and inline styling and
+ timing information.</p><a id="ttml-example-document-structure" name=
+ "ttml-example-document-structure"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – TTML Document Structure
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head>
+ <metadata/>
+ <styling/>
+ <layout/>
+ </head>
+ <body/>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Document level metadata may specify a document title, description,
+ and copyright information. In addition, arbitrary metadata drawn from
+ other namespaces may be specified.</p><a id="ttml-example-metadata"
+ name="ttml-example-metadata"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – TTML Metadata
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
+ <ttm:title>Timed Text TTML Example</ttm:title>
+ <ttm:copyright>The Authors (c) 2006</ttm:copyright>
+</metadata>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Styling information may be specified in the form of style
+ specification definitions that are referenced by layout and content
+ information, specified inline with content information, or both.</p>
+
+ <p>In <a href="#ttml-example-styling"><b>Example Fragment – TTML
+ Styling</b></a>, four style sets of specifications are defined, with
+ one set serving as a collection of default styles.</p><a id=
+ "ttml-example-styling" name="ttml-example-styling"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – TTML Styling
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<styling xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <!-- s1 specifies default color, font, and text alignment -->
+ <style xml:id="s1"
+ tts:color="white"
+ tts:fontFamily="proportionalSansSerif"
+ tts:fontSize="22px"
+ tts:textAlign="center"
+ />
+ <!-- alternative using yellow text but otherwise the same as style s1 -->
+ <style xml:id="s2" style="s1" tts:color="yellow"/>
+ <!-- a style based on s1 but justified to the right -->
+ <style xml:id="s1Right" style="s1" tts:textAlign="end" />
+ <!-- a style based on s2 but justified to the left -->
+ <style xml:id="s2Left" style="s2" tts:textAlign="start" />
+</styling>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Layout information defines one or more regions into which content is
+ intended to be presented. A region definition may reference one or more
+ sets of style specifications in order to permit content flowed in the
+ region to inherit from these styles. In <a href=
+ "#ttml-example-layout"><b>Example Fragment – TTML Layout</b></a>, the
+ region definition makes reference to style specification
+ <code>s1</code> augmented by specific inline styles which, together,
+ allow content flowed into the region to inherit from the region's
+ styles (in the case that a style is not already explicitly specified on
+ content or inherited via the content hierarchy.)</p><a id=
+ "ttml-example-layout" name="ttml-example-layout"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – TTML Layout
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<layout xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <region xml:id="subtitleArea"
+ style="s1"
+ tts:extent="560px 62px"
+ tts:padding="5px 3px"
+ tts:backgroundColor="black"
+ tts:displayAlign="after"
+ />
+</layout>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The content of a <em>Document Instance</em> is expressed in its
+ body, which is organized in terms of block and inline text elements.
+ The hierarchical organization of content elements serves a primary role
+ in determining both spatial and temporal relationships. For example, in
+ <a href="#ttml-example-body"><b>Example Fragment – TTML Body</b></a>,
+ each paragraph (<code>p</code> element) is flowed into its target
+ region in the specified lexical order; furthermore, the active time
+ interval of each paragraph is timed in accordance to its parent or
+ sibling according to the applicable time containment semantics — in
+ this case, the division parent is interpreted (by default) as a
+ parallel time container.</p><a id="ttml-example-body" name=
+ "ttml-example-body"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – TTML Body
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<body region="subtitleArea">
+ <div>
+ <p xml:id="subtitle1" begin="0.76s" end="3.45s">
+ It seems a paradox, does it not,
+ </p>
+ <p xml:id="subtitle2" begin="5.0s" end="10.0s">
+ that the image formed on<br/>
+ the Retina should be inverted?
+ </p>
+ <p xml:id="subtitle3" begin="10.0s" end="16.0s" style="s2">
+ It is puzzling, why is it<br/>
+ we do not see things upside-down?
+ </p>
+ <p xml:id="subtitle4" begin="17.2s" end="23.0s">
+ You have never heard the Theory,<br/>
+ then, that the Brain also is inverted?
+ </p>
+ <p xml:id="subtitle5" begin="23.0s" end="27.0s" style="s2">
+ No indeed! What a beautiful fact!
+ </p>
+ <p xml:id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
+ But how is it proved?
+ </p>
+ <p xml:id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
+ Thus: what we call
+ </p>
+ <p xml:id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
+ the vertex of the Brain<br/>
+ is really its base
+ </p>
+ <p xml:id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
+ and what we call its base<br/>
+ is really its vertex,
+ </p>
+ <p xml:id="subtitle9a" begin="53.5s" end="58.7s">
+ it is simply a question of nomenclature.
+ </p>
+ <p xml:id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
+ How truly delightful!
+ </p>
+ </div>
+</body>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The first subtitle <a href="#ttml-example-subtitle-1"><b>Subtitle 1
+ – Time Interval [0.76, 3.45)</b></a> is presented during the time
+ interval 0.76 to 3.45 seconds. This subtitle inherits its font family,
+ font size, foreground color, and text alignment from the region into
+ which it is presented. Since no region is explicitly specified on the
+ paragraph, the nearest ancestor that specifies a region determines the
+ targeted region. Note also that content is presented at the bottom
+ (after edge) of the containing region due to the
+ <code>tts:displayAlign="after"</code> being specified on the region
+ definition.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The notation "[<em>X</em>,<em>Y</em>]" denotes a closed interval
+ from <em>X</em> to <em>Y</em>, including <em>X</em> and <em>Y</em>;
+ "[<em>X</em>,<em>Y</em>)" denotes a right half-open interval from
+ <em>X</em> to <em>Y</em>, including <em>X</em> but not including
+ <em>Y</em>; "(<em>X</em>,<em>Y</em>]" denotes a left half-open
+ interval from <em>X</em> to <em>Y</em>, not including <em>X</em> but
+ including <em>Y</em>; "(<em>X</em>,<em>Y</em>)" denotes an open
+ interval from <em>X</em> to <em>Y</em>, not including <em>X</em> or
+ <em>Y</em>.</p>
+ </div><a id="ttml-example-subtitle-1" name=
+ "ttml-example-subtitle-1"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitle 1 – Time Interval [0.76, 3.45)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle1.png" alt="Subtitle 1"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The second subtitle continues with the default style, except that it
+ contains two lines of text with an intervening author-specified line
+ break. Note the effects of the use of
+ <code>tts:textAlign="center"</code> to specify the paragraph's
+ alignment in the inline progression direction.</p><a id=
+ "ttml-example-subtitle-2" name="ttml-example-subtitle-2"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitle 2 – Time Interval [5.0, 10.0)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle2.png" alt="Subtitle 2"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The third subtitle continues, using a variant style which overrides
+ the default style's foreground color with a different color.</p><a id=
+ "ttml-example-subtitle-3" name="ttml-example-subtitle-3"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitle 3 – Time Interval [10.0, 16.0)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle3.png" alt="Subtitle 3"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The fourth subtitle reverts to the default style.</p><a id=
+ "ttml-example-subtitle-4" name="ttml-example-subtitle-4"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitle 4 – Time Interval [17.2, 23.0)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle4.png" alt="Subtitle 4"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The fifth subtitle continues, again using a variant style which
+ overrides the default style's foreground color with a different
+ color.</p><a id="ttml-example-subtitle-5" name=
+ "ttml-example-subtitle-5"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitle 5 – Time Interval [23.0, 27.0)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle5.png" alt="Subtitle 5"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>During the next active time interval, two distinct subtitles are
+ simultaneously active, with the paragraphs expressing each subtitle
+ using different styles that override color and paragraph text alignment
+ of the default style. Note that the flow order is determined by the
+ lexical order of elements as they appear in the content
+ hierarchy.</p><a id="ttml-example-subtitle-6" name=
+ "ttml-example-subtitle-6"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitles 6a and 6b – Time Interval [28.0, 34.6)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle6.png" alt=
+ "Subtitles 6a and 6b"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The next subtitle is specified in a similar manner using a style
+ override to give the paragraph right (end) justification in the inline
+ progression direction.</p><a id="ttml-example-subtitle-7" name=
+ "ttml-example-subtitle-7"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitle 7 – Time Interval [34.6, 45.0)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle7.png" alt=
+ "Subtitles 7a and 7b"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The eighth subtitle uses the same style override as the previous
+ subtitle in order to maintain the right (end) justification of the
+ paragraph.</p><a id="ttml-example-subtitle-8" name=
+ "ttml-example-subtitle-8"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitle 8 – Time Interval [47.3, 49.0)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle8.png" alt="Subtitle 8"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>During the final (ninth) active time interval, two distinct
+ subtitles are again simultaneously active, but with a different style
+ applied to the second paragraph to override the default color. Note
+ that the flow order is determined by the lexical order of elements as
+ they appear in the content hierarchy.</p><a id=
+ "ttml-example-subtitle-9" name="ttml-example-subtitle-9"></a>
+
+ <table class="example-images">
+ <caption>
+ Subtitles 9a and 9b – Time Interval [53.5, 58.7)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/subtitle9.png" alt=
+ "Subtitles 9a and 9b"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The examples shown above demonstrate the primary types of
+ information that may be authored using TTML: metadata, styling, layout,
+ timing, and content. In typical cases, styling and layout information
+ are separately specified in a <em>Document Instance</em>. Content
+ information is expressed in a hierarchical fashion that embodies the
+ organization of both spatial (flow) and timing information. Content
+ makes direct or indirect references to styling and layout information
+ and may specify inline overrides to styling.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="definitions" name="definitions"></a>2 Definitions</h2>
+
+ <div class="div2">
+ <h3><a id="acronyms" name="acronyms"></a>2.1 Acronyms</h3>
+
+ <table class="acronyms" summary="Glossary List">
+ <tr>
+ <td class="label"><b>DFXP</b></td>
+
+ <td class="def">
+ <p>Distribution Format Exchange Profile</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="label"><b>TT</b></td>
+
+ <td class="def">
+ <p>Timed Text</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="label"><b>TTML</b></td>
+
+ <td class="def">
+ <p>Timed Text Markup Language</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="label"><b>TTAF</b></td>
+
+ <td class="def">
+ <p>Timed Text Authoring Format</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="label"><b>TTWG</b></td>
+
+ <td class="def">
+ <p>Timed Text Working Group</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="div2">
+ <h3><a id="terms" name="terms"></a>2.2 Terminology</h3>
+
+ <dl>
+ <dt class="label">Abstract Document Instance</dt>
+
+ <dd>
+ <p>An instance of an abstract data set as represented by a
+ <em>Reduced XML Infoset</em>.</p>
+ </dd>
+
+ <dt class="label">Abstract Document Type</dt>
+
+ <dd>
+ <p>A set of constraints that defines a class of <em>XML Information
+ Sets</em> <a href="#infoset">[XML InfoSet]</a>.</p>
+ </dd>
+
+ <dt class="label">Attribute Information Item</dt>
+
+ <dd>
+ <p>Each specified or defaulted attribute of an XML document
+ corresponds with an attribute information item as defined by
+ <a href="#infoset">[XML InfoSet]</a>, §2.3.</p>
+ </dd>
+
+ <dt class="label">Character Information Item</dt>
+
+ <dd>
+ <p>Each data character appearing in an XML document corresponds
+ with a character information item as defined by <a href=
+ "#infoset">[XML InfoSet]</a>, §2.6.</p>
+ </dd>
+
+ <dt class="label">Computed Cell Size</dt>
+
+ <dd>
+ <p>The size (extent) of a cell computed by dividing the width of
+ the <em>Root Container Region</em> (in pixels) by the column count,
+ i.e., the number of cells in the horizontal axis, and by dividing
+ the height of the <em>Root Container Region</em> (in pixels) by the
+ row count, i.e., the number of cells in the vertical axis, where
+ the column and row counts are determined by the
+ <code>ttp:cellResolution</code> parameter attribute.</p>
+ </dd>
+
+ <dt class="label">Content Processor</dt>
+
+ <dd>
+ <p>A processing system capable of importing (receiving) Timed Text
+ Markup Language content for the purpose of transforming,
+ presenting, or otherwise processing the content.</p>
+ </dd>
+
+ <dt class="label">Content Profile</dt>
+
+ <dd>
+ <p>A collection of features and extensions that are (or may be)
+ employed by Timed Text Markup Language content.</p>
+ </dd>
+
+ <dt class="label">Content Region</dt>
+
+ <dd>
+ <p>A logical region into which rendered content is placed when
+ modeling or performing presentation processing.</p>
+ </dd>
+
+ <dt class="label">Document Instance</dt>
+
+ <dd>
+ <p>A concrete realization of a Timed Text Markup Language document,
+ where the concrete form is specific to the context of reference.
+ For example, a sequence of bytes that represents an XML
+ serialization of a Timed Text document, an internal, parsed
+ representation of such a Timed Text document, etc.</p>
+ </dd>
+
+ <dt class="label">Document Interchange Context</dt>
+
+ <dd>
+ <p>The implied context or environment external to a <em>Content
+ Processor</em> in which document interchange occurs, and in which
+ out-of-band protocols or specifications may define certain
+ behavioral defaults, such as an implied <em>Content
+ Profile</em>.</p>
+ </dd>
+
+ <dt class="label">Document Processing Context</dt>
+
+ <dd>
+ <p>The implied context or environment internal to a <em>Content
+ Processor</em> in which document processing occurs, and in which
+ out-of-band protocols or specifications may define certain
+ behavioral defaults, such as the establishment or creation of a
+ <em>Synthetic Document Syncbase</em>.</p>
+ </dd>
+
+ <dt class="label">Element Information Item</dt>
+
+ <dd>
+ <p>Each element appearing in an XML document corresponds with an
+ element information item as defined by <a href="#infoset">[XML
+ InfoSet]</a>, §2.2.</p>
+ </dd>
+
+ <dt class="label">Exchange Profile</dt>
+
+ <dd>
+ <p>A content profile that serves a set of needs for content
+ interchange.</p>
+ </dd>
+
+ <dt class="label">Extension</dt>
+
+ <dd>
+ <p>A syntactic or semantic expression or capability that is defined
+ and labeled (using a extension designation) in another (public or
+ private) specification.</p>
+ </dd>
+
+ <dt class="label">Feature</dt>
+
+ <dd>
+ <p>A syntactic or semantic expression or capability that is defined
+ and labeled (using a feature designation) in this specification (or
+ a future revision of this specification).</p>
+ </dd>
+
+ <dt class="label">Presentation Processor</dt>
+
+ <dd>
+ <p>A <em>Content Processor</em> which purpose is to layout, format,
+ and render, i.e., to present, <em>Timed Text Markup Language</em>
+ content by applying the presentation semantics defined in this
+ specification.</p>
+ </dd>
+
+ <dt class="label">Processor</dt>
+
+ <dd>
+ <p>See <em>Content Processor</em>.</p>
+ </dd>
+
+ <dt class="label">Processor Profile</dt>
+
+ <dd>
+ <p>A collection of features and extensions that must or may be
+ implemented (supported) by a content processor.</p>
+ </dd>
+
+ <dt class="label">Profile Definition Document</dt>
+
+ <dd>
+ <p>A document that defines a specific collection of features and
+ extensions for which support is required or optional in a recipient
+ content processor.</p>
+ </dd>
+
+ <dt class="label">Region</dt>
+
+ <dd>
+ <p>A logical construct that models authorial intention regarding
+ desired or potential presentation processing, and which is
+ represented as a rectangular area of a presentation surface into
+ which content is composed and rendered during presentation
+ processing.</p>
+ </dd>
+
+ <dt class="label">Reduced XML Infoset</dt>
+
+ <dd>
+ <p>An XML Information Set <a href="#infoset">[XML InfoSet]</a> that
+ satisfies the constraints specify by <a href=
+ "#reduced-infoset"><b>A Reduced XML Infoset</b></a>.</p>
+ </dd>
+
+ <dt class="label">Related Media Object</dt>
+
+ <dd>
+ <p>A (possibly null) media object associated with or otherwise
+ related to a <em>Document Instance</em>. For example, an aggregate
+ audio/video media object for which a <em>Document Instance</em>
+ provides caption or subtitle information, and with which that
+ <em>Document Instance</em> is associated.</p>
+ </dd>
+
+ <dt class="label">Related Media Object Region</dt>
+
+ <dd>
+ <p>When a non-null <em>Related Media Object</em> exists, the region
+ in which a presentation processor presents this media object.</p>
+ </dd>
+
+ <dt class="label">Root Container Region</dt>
+
+ <dd>
+ <p>A logical region that establishes a coordinate system into which
+ <em>Document Instance</em> content regions are placed and
+ optionally clipped.</p>
+ </dd>
+
+ <dt class="label">Root Temporal Extent</dt>
+
+ <dd>
+ <p>The temporal extent (interval) defined by the temporal beginning
+ and ending of a <em>Document Instance</em> in relationship with
+ some external application or presentation context.</p>
+ </dd>
+
+ <dt class="label">SMPTE Time Code</dt>
+
+ <dd>
+ <p>A time code whose format and semantics are established by
+ <a href="#smpte12m">[SMPTE 12M]</a>, which may be embedded into or
+ otherwise associated with media content, such as a broadcast
+ audio/video stream.</p>
+ </dd>
+
+ <dt class="label">Synthetic Document Syncbase</dt>
+
+ <dd>
+ <p>A document level <a href=
+ "http://www.w3.org/TR/2005/REC-SMIL2-20051213/smil-timing.html#Timing-Syncbases">
+ syncbase</a> <a href="#smil21">[SMIL 2.1]</a>, § 10.7.1,
+ synthesized or otherwise established by the <em>Document Processing
+ Context</em> in accordance with the <em>Related Media Object</em>
+ or other processing criteria.</p>
+ </dd>
+
+ <dt class="label">Synthetic SMPTE Document Syncbase</dt>
+
+ <dd>
+ <p>A <em>Synthetic Document Syncbase</em> constructed from
+ <em>SMPTE Time Code</em> values embedded in or associated with the
+ <em>Related Media Object</em> or otherwise determined by the
+ <em>Document Processing Context</em>.</p>
+ </dd>
+
+ <dt class="label">Timed Text</dt>
+
+ <dd>
+ <p>Textual information that is intrinsically or extrinsically
+ associated with timing information.</p>
+ </dd>
+
+ <dt class="label">Timed Text Markup Language</dt>
+
+ <dd>
+ <p>A content type that represents timed text media for the purpose
+ of interchange among authoring systems.</p>
+ </dd>
+
+ <dt class="label">Timed Text Authoring System</dt>
+
+ <dd>
+ <p>A content authoring system capable of importing and exporting
+ Timed Text Markup Language content.</p>
+ </dd>
+
+ <dt class="label">Transformation Processor</dt>
+
+ <dd>
+ <p>A <em>Content Processor</em> which purpose is to transform or
+ otherwise rewrite <em>Timed Text Markup Language</em> content to
+ either <em>Timed Text Markup Language</em> or to another
+ (arbitrary) content format. An example of the first is a processor
+ that removes or rewrites TTML features so as to conform to a
+ profile of TTML. An example of the latter is a processor that
+ translates TTML into a completely different timed text format.
+ Because this specification does not otherwise define a target
+ profile or format for transformation processing, no further
+ transformation semantics are defined by this specification.</p>
+ </dd>
+
+ <dt class="label">Valid Abstract Document Instance</dt>
+
+ <dd>
+ <p>An <em>Abstract Document Instance</em> which has been assessed
+ for validity and found to be valid as defined by <a href=
+ "#doctypes"><b>4 Document Types</b></a>.</p>
+ </dd>
+ </dl>
+ </div>
+
+ <div class="div2">
+ <h3><a id="conventions" name="conventions"></a>2.3 Documentation
+ Conventions</h3>
+
+ <p>Within normative prose in this specification, the words
+ <em>may</em>, <em>should</em>, and <em>must</em> are defined as
+ follows:</p>
+
+ <dl class="conformance-keywords">
+ <dt class="label">may</dt>
+
+ <dd>
+ <p>Conforming documents and/or TTML processors are permitted to,
+ but need not behave as described.</p>
+ </dd>
+
+ <dt class="label">should</dt>
+
+ <dd>
+ <p>Conforming documents and/or TTML processors are strongly
+ recommended to, but need not behave as described.</p>
+ </dd>
+
+ <dt class="label">must</dt>
+
+ <dd>
+ <p>Conforming documents and/or TTML processors are required to
+ behave as described; otherwise, they are in error.</p>
+ </dd>
+ </dl>
+
+ <p>If normative specification language takes an imperative form, then
+ it is to be treated as if the term <span class="strong">must</span>
+ applies. Furthermore, if normative language takes a declarative form,
+ and this language is governed by <span class="strong">must</span>, then
+ it is also to be treated as if the term <span class=
+ "strong">must</span> applies.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>For example, the phrases "treat X as an error" and "consider X as
+ an error" are to be read as mandatory requirements in the context of
+ use. Similarly, if the specification prose is "X must apply", "X
+ applies", or "X is mandatory", and "X" is further defined as "X is Y
+ and Z", then, by transitive closure, this last declarative phrase is
+ to be read as "Y is mandatory" and "Z is mandatory" in the context of
+ use.</p>
+ </div>
+
+ <p>All normative syntactic definitions of XML representations and other
+ related terms are depicted with a light yellow-orange background color
+ and labeled as "XML Representation" or "Syntax Representation", such as
+ in the following:</p><a id="elt-syntax-example" name=
+ "elt-syntax-example"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: example
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<example
+ <span class="reqattr">count</span> = integer
+ size = (<em>large</em>|<em>medium</em>|<em>small</em>) : medium>
+ <em>Content:</em> (all | any*)
+</example>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>In an XML representation, bold-face attribute names (e.g.
+ <span class="strong">count</span> above) indicate a required attribute
+ information item, and the rest are optional. Where an attribute
+ information item has an enumerated type definition, the values are
+ shown separated by vertical bars, as for <code>size</code> above; if
+ there is a default value, it is shown following a colon. Where an
+ attribute information item has a built-in simple type definition
+ defined in <a href="#xsd-2">[XML Schema Part 2]</a>, a hyperlink to its
+ definition therein is given.</p>
+
+ <p>The allowed content of the information item is shown as a grammar
+ fragment, using the Kleene operators <code>?</code>, <code>*</code> and
+ <code>+</code>. Each element name therein is a hyperlink to its own
+ illustration.</p>
+
+ <p>The term linear white-space (LWSP) is to be interpreted as a
+ non-empty sequence of SPACE (U+0020), TAB (U+0009), CARRIAGE RETURN
+ (U+000D), or LINE FEED (U+000A), which corresponds to production [3]
+ <code>S</code> as defined by <a href="#xml10">[XML 1.0]</a>.</p>
+
+ <p>All content of this specification that is not explicitly marked as
+ non-normative is considered to be normative. If a section or appendix
+ header contains the expression "Non-Normative", then the entirety of
+ the section or appendix is considered non-normative.</p>
+
+ <p>All paragraphs marked as a <span class="strong">Note</span> are
+ considered non-normative.</p>
+
+ <p>Example code fragments are depicted with a light blue-green
+ background color and labeled as "Example Fragment", such as in the
+ following:</p><a id="example-fragment-1" name="example-fragment-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Sample
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head>
+ <metadata/>
+ <styling/>
+ <layout/>
+ </head>
+ <body/>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="conformance" name="conformance"></a>3 Conformance</h2>
+
+ <p>This section specifies the general conformance requirements for TTML
+ Content and processors.</p>
+
+ <div class="div2">
+ <h3><a id="conformance-content" name="conformance-content"></a>3.1
+ Content Conformance</h3>
+
+ <p>A TTML <em>Document Instance</em> conforms to this specification if
+ the following criteria are satisfied:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>When transporting a <em>Document Instance</em> in a <em>Document
+ Interchange Context</em> in which a Media Type <a href=
+ "#media-types">[Media Types]</a> identifies the content type of the
+ interchanged <em>Document Instance</em>, then the specified media
+ type is <code>application/ttml+xml</code> in conformance with
+ <a href="#xml-media">[XML Media Types]</a> § 7, with which an
+ optional <code>profile</code> parameter may appear, the value of
+ which conforms to a profile designator as defined by <a href=
+ "#vocabulary-profiles"><b>5.2 Profiles</b></a>.</p>
+ </li>
+
+ <li>
+ <p>The <em>Document Instance</em> is or can be represented as a
+ Reduced XML Infoset as defined by <a href="#reduced-infoset"><b>A
+ Reduced XML Infoset</b></a>.</p>
+ </li>
+
+ <li>
+ <p>The Reduced XML Infoset that corresponds to the <em>Document
+ Instance</em> is or can be associated with one of the <em>Abstract
+ Document Types</em> defined by <a href="#doctypes"><b>4 Document
+ Types</b></a>.</p>
+ </li>
+
+ <li>
+ <p>The <em>Reduced XML Infoset</em> that corresponds to the
+ <em>Document Instance</em> is a <em>Valid Abstract Document
+ Instance</em> of the associated <em>Abstract Document
+ Type</em>.</p>
+ </li>
+
+ <li>
+ <p>The <em>Reduced XML Infoset</em> satisfies all additional
+ mandatory syntactic and semantic constraints defined by this
+ specification. In addition, this Infoset should satisfy the web
+ content accessibility guidelines specified by <a href=
+ "#wcag">[WCAG]</a>.</p>
+ </li>
+ </ol>
+ </div>
+
+ <div class="div2">
+ <h3><a id="conformance-processor" name="conformance-processor"></a>3.2
+ Processor Conformance</h3>
+
+ <div class="div3">
+ <h4><a id="conformance-generic-processor" name=
+ "conformance-generic-processor"></a>3.2.1 Generic Processor
+ Conformance</h4>
+
+ <p>A TTML <em>Content Processor</em> conforms to this specification
+ if the following generic processor criteria are satisfied:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>The processor provides at least one mechanism for notionally
+ instantiating a Reduced XML Infoset representation of a
+ conformant <em>Document Instance</em>.</p>
+ </li>
+
+ <li>
+ <p>If a process does or can perform validation of a candidate
+ <em>Document Instance</em>, then it provides at least one
+ mechanism to implicitly or explicitly associate the <em>Reduced
+ XML Infoset</em> representation of a conformant <em>Document
+ Instance</em> with one of the <em>Abstract Document Types</em>
+ defined by <a href="#doctypes"><b>4 Document Types</b></a>.</p>
+ </li>
+
+ <li>
+ <p>The processor does not <em>a priori</em> reject or abort the
+ processing of a conformant <em>Document Instance</em> unless the
+ processor does not support some required (mandatory) feature
+ specified or implied by a TTML Content profile declared to apply
+ to the <em>Document Instance</em>.</p>
+ </li>
+
+ <li>
+ <p>The processor supports all mandatory processing semantics
+ defined by this specification.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The phrase <em>mandatory semantics</em> refers to all
+ explicit use of the conformance key phrases <span class=
+ "strong">must</span> and <span class="strong">must not</span>
+ as well as any declarative statement that can be reasonably
+ inferred from such key phrases. For example, these mandatory
+ semantics include support for all features marked as mandatory
+ in <a href="#feature-support"><b>D.2 Feature
+ Support</b></a>.</p>
+ </div>
+ </li>
+
+ <li>
+ <p>If the processor supports some optional processing semantics
+ defined by this specification, then it does so in a manner
+ consistent with the defined semantics.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The phrase <em>optional semantics</em> refers to all
+ explicit use of the conformance key phrases <span class=
+ "strong">should</span>, <span class="strong">should not</span>,
+ <span class="strong">may</span>, and <span class="strong">may
+ not</span>, as well as any declarative statement that can be
+ reasonably inferred from such key phrases. For example, these
+ optional semantics include support for all features marked as
+ optional in <a href="#feature-support"><b>D.2 Feature
+ Support</b></a>.</p>
+ </div>
+ </li>
+ </ol>
+ </div>
+
+ <div class="div3">
+ <h4><a id="conformance-transformation-processor" name=
+ "conformance-transformation-processor"></a>3.2.2 Transformation
+ Processor Conformance</h4>
+
+ <p>A TTML <em>Content Processor</em> is a conformant TTML
+ <em>Transformation Processor</em> if the following criteria are
+ satisfied:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>The processor satisfies all requirements specified by <a href=
+ "#conformance-generic-processor"><b>3.2.1 Generic Processor
+ Conformance</b></a>.</p>
+ </li>
+
+ <li>
+ <p>The processor supports the DFXP Transformation profile as
+ specified by <a href="#profile-dfxp-transformation"><b>F.1 DFXP
+ Transformation Profile</b></a>.</p>
+ </li>
+ </ol>
+ </div>
+
+ <div class="div3">
+ <h4><a id="conformance-presentation-processor" name=
+ "conformance-presentation-processor"></a>3.2.3 Presentation Processor
+ Conformance</h4>
+
+ <p>A TTML <em>Content Processor</em> is a conformant TTML
+ <em>Presentation Processor</em> if the following criteria are
+ satisfied:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>The processor satisfies all requirements specified by <a href=
+ "#conformance-generic-processor"><b>3.2.1 Generic Processor
+ Conformance</b></a>.</p>
+ </li>
+
+ <li>
+ <p>The processor supports the DFXP Presentation profile as
+ specified by <a href="#profile-dfxp-presentation"><b>F.2 DFXP
+ Presentation Profile</b></a>.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="claims" name="claims"></a>3.3 Claims</h3>
+
+ <p>Any claim of compliance with respect to the conformance of a TTML
+ <em>Document Instance</em> or <em>Content Processor</em> must make
+ reference to an implementation compliance statement (ICS).</p>
+
+ <p>An implementation compliance statement must identify all mandatory
+ and optional features of this specification that are satisfied by the
+ document instance or the content processor implementation. In
+ particular, the statement must identify the utilized or supported TTML
+ vocabulary profile(s) as defined by <a href=
+ "#vocabulary-profiles"><b>5.2 Profiles</b></a>, and, if a subset or
+ superset profile is used or supported, then what features are excluded
+ or included in the subset or superset profile.</p>
+
+ <p>A <em>Document Instance</em> for which a compliance claim is made
+ must specify either (1) a <code>ttp:profile</code> attribute on its
+ root <code>tt</code> element as defined by <a href=
+ "#parameter-attribute-profile"><b>6.2.8 ttp:profile</b></a> or (2) a
+ <code>ttp:profile</code> element as a child of the <code>head</code>
+ element as defined by <a href="#parameter-vocabulary-profile"><b>6.1.1
+ ttp:profile</b></a>.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="doctypes" name="doctypes"></a>4 Document Types</h2>
+
+ <p>This section defines the following TTML <em>Abstract Document
+ Types</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#ttml-content-doctype"><b>4.1 TTML Content</b></a></p>
+ </li>
+ </ul>
+
+ <p>Each <em>Abstract Document Type</em> consists of the following
+ constraints:</p>
+
+ <ul>
+ <li>
+ <p>a non-empty collection of element types, where each element type
+ consists of a name, a (possibly empty) collection of attributes, and
+ a content specification</p>
+ </li>
+
+ <li>
+ <p>a non-empty collection of element types that may appear as the
+ document element</p>
+ </li>
+ </ul>
+
+ <p>An <em>Abstract Document Instance</em> may be assessed in terms of
+ validity, and is considered to be a <em>Valid Abstract Document
+ Instance</em> if it satisfies the following condition: if after</p>
+
+ <ol class="enumar">
+ <li>
+ <p>pruning all element information items whose names are not members
+ of the collection of element types defined by the associated
+ <em>Abstract Document Type</em>, then</p>
+ </li>
+
+ <li>
+ <p>pruning character information item children from any remaining
+ element in case that all character children of the element denote XML
+ whitespace characters and the element's type is defined as empty in
+ the associated <em>Abstract Document Type</em>, and then</p>
+ </li>
+
+ <li>
+ <p>pruning all attribute information items having expanded names such
+ that the namespace URI of the expanded names are not listed in
+ <a href="#namespace-vocab-table"><b>Table 1 – Namespaces</b></a>,</p>
+ </li>
+ </ol>
+
+ <p>then the document element is one of the document element types
+ permitted by the associated <em>Abstract Document Type</em>, the
+ descendants of the document element satisfy their respective element
+ type's content specifications, all required attributes are present, and
+ the declared value of each attribute satisfies the type declared by the
+ associated <em>Abstract Document Type</em>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>While a conformant processor may not <em>a priori</em> reject a
+ conformant <em>Document Instance</em> that adheres to a supported
+ content profile, a given <em>Document Instance</em> may be constrained
+ by the author or authoring tool to satisfy a more restrictive
+ definition of validity.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="ttml-content-doctype" name="ttml-content-doctype"></a>4.1
+ TTML Content</h3>
+
+ <p>TTML Content is an <em>Abstract Document Type</em> of a profile of
+ the Timed Text Markup Language intended to be used for interchange
+ among distribution systems. This document type is defined in terms of
+ the element and attribute vocabulary specified in <a href=
+ "#vocabulary"><b>5 Vocabulary</b></a>.</p>
+
+ <p>This specification references two types of schemas that may be used
+ to validate a superset/subset of conformant TTML Content <em>Document
+ Instances</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#ttml-schema-rnc"><b>B.1 Relax NG Compact (RNC)
+ Schema</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#ttml-schema-xsd"><b>B.2 XML Schema Definition (XSD)
+ Schema</b></a></p>
+ </li>
+ </ul>
+
+ <p>The (root) document element of a TTML Content <em>Document
+ Instance</em> must be a <code>tt</code> element, as defined by <a href=
+ "#document-structure-vocabulary-tt"><b>7.1.1 tt</b></a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The schemas referenced by this specification do not validate all
+ syntactic constraints defined by this specification, and, as such,
+ represent a superset of conformant TTML Content. In particular,
+ performing validation with one of the above referenced schemas may
+ result in a <em>false positive</em> indication of validity. For
+ example, both the RNC and XSD schemas specify that a
+ <code>tts:fontFamily</code> attribute must satisfy the
+ <code>xs:string</code> XSD data type; however, this data type is a
+ superset of the values permitted to be used with the
+ <code>tts:fontFamily</code> attribute.</p>
+
+ <p>In addition, the RNC schema may produce a <em>false negative</em>
+ indication of validity when using the <code>xml:id</code> attribute
+ with an element in a foreign namespace, thus representing a subset of
+ conformant TTML Content. This is due to a specific limitation in
+ expressing wildcard patterns involving <code>xsd:ID</code> typed
+ attributes in Relax NG schemas. Note that this specification defines
+ the formal validity of a <em>Document Instance</em> to be based on an
+ <em>Abstract Document Instance</em> from which all foreign namespace
+ elements and attributes have been removed. Therefore, the exceptional
+ reporting of this false negative does not impact the formal
+ assessment of <em>Document Instance</em> validity.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="vocabulary" name="vocabulary"></a>5 Vocabulary</h2>
+
+ <p>This section defines the namespaces, profiles, and vocabulary (as an
+ element and attribute catalog) of the Timed Text Markup Language (TTML)
+ as follows:</p>
+
+ <ul>
+ <li>
+ <p><a href="#vocabulary-namespaces"><b>5.1 Namespaces</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#vocabulary-profiles"><b>5.2 Profiles</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#vocabulary-overview"><b>5.3 Catalog</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div2">
+ <h3><a id="vocabulary-namespaces" name="vocabulary-namespaces"></a>5.1
+ Namespaces</h3>
+
+ <p>The Timed Text Markup Language (TTML) employs a number of XML
+ Namespaces <a href="#xmlns10">[XML Namespaces 1.0]</a> for elements and
+ certain global attributes. The following table specifies this set of
+ namespaces and indicates the default prefix used within this
+ specification and the normative URI that denotes each namespace.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In a specific <em>Document Instance</em>, it is not required that
+ the default prefixes shown below are used. Any prefix or namespace
+ binding that satisfies the constraints of XML Namespaces <a href=
+ "#xmlns10">[XML Namespaces 1.0]</a> may be used that is associated
+ with the specified namespace URI.</p>
+ </div><a id="namespace-vocab-table" name="namespace-vocab-table"></a>
+
+ <table class="common">
+ <caption>
+ Table 1 – Namespaces
+ </caption>
+ <col width="30%" span="1">
+ <col span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <th>Name</th>
+
+ <th>Prefix</th>
+
+ <th>Value</th>
+ </tr>
+
+ <tr>
+ <td>TT</td>
+
+ <td><code>tt:</code></td>
+
+ <td><code>http://www.w3.org/ns/ttml</code></td>
+ </tr>
+
+ <tr>
+ <td>TT Parameter</td>
+
+ <td><code>ttp:</code></td>
+
+ <td><code>http://www.w3.org/ns/ttml#parameter</code></td>
+ </tr>
+
+ <tr>
+ <td>TT Style</td>
+
+ <td><code>tts:</code></td>
+
+ <td><code>http://www.w3.org/ns/ttml#styling</code></td>
+ </tr>
+
+ <tr>
+ <td>TT Metadata</td>
+
+ <td><code>ttm:</code></td>
+
+ <td><code>http://www.w3.org/ns/ttml#metadata</code></td>
+ </tr>
+
+ <tr>
+ <td>TT Profile</td>
+
+ <td><em>none</em></td>
+
+ <td><code>http://www.w3.org/ns/ttml/profile/</code></td>
+ </tr>
+
+ <tr>
+ <td>TT Feature</td>
+
+ <td><em>none</em></td>
+
+ <td><code>http://www.w3.org/ns/ttml/feature/</code></td>
+ </tr>
+
+ <tr>
+ <td>TT Extension</td>
+
+ <td><em>none</em></td>
+
+ <td><code>http://www.w3.org/ns/ttml/extension/</code></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>If a reference to an element type is used in this specification
+ and the name of the element type is not namespace qualified, then the
+ TT Namespace applies.</p>
+
+ <p>For certain namespaces defined above, the default prefix is
+ specified as <em>none</em> if no XML vocabulary is defined in the
+ namespace by this specification (nor expected to be defined in a
+ future version of this specification). In such cases, the use of the
+ namespace URI is for purposes other than defining XML vocabulary,
+ e.g., for designating profiles, features, extensions and for
+ dereferencing standard profile definitions.</p>
+ </div>
+
+ <p>All TTML Namespaces are <a href=
+ "http://www.w3.org/2001/tag/doc/namespaceState#namespacedef"><em>mutable</em></a>
+ <a href="#nsstate">[NSState]</a>; all undefined names in these
+ namespaces are reserved for future standardization by the W3C.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="vocabulary-profiles" name="vocabulary-profiles"></a>5.2
+ Profiles</h3>
+
+ <p>The Timed Text Markup Language (TTML) employs a number of standard,
+ predefined profiles of its vocabulary and associated semantics. The
+ following table specifies this set of profiles, indicating a normative
+ name and designator for each predefined profile, and where each of
+ these profiles is formally elaborated in <a href="#profiles"><b>F
+ Profiles</b></a> or in another TTWG specification.</p><a id=
+ "profile-vocab-table" name="profile-vocab-table"></a>
+
+ <table class="common">
+ <caption>
+ Table 2 – Profiles
+ </caption>
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <th>Name</th>
+
+ <th>Designator</th>
+ </tr>
+
+ <tr>
+ <td>DFXP Transformation</td>
+
+ <td>
+ <code>http://www.w3.org/ns/ttml/profile/dfxp-transformation</code></td>
+ </tr>
+
+ <tr>
+ <td>DFXP Presentation</td>
+
+ <td>
+ <code>http://www.w3.org/ns/ttml/profile/dfxp-presentation</code></td>
+ </tr>
+
+ <tr>
+ <td>DFXP Full</td>
+
+ <td><code>http://www.w3.org/ns/ttml/profile/dfxp-full</code></td>
+ </tr>
+
+ <tr>
+ <td>SDP US</td>
+
+ <td><code>http://www.w3.org/ns/ttml/profile/sdp-us</code></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>A profile designator must adhere to the <code>xsd:anyURI</code> data
+ type defined by <a href="#xsd-2">[XML Schema Part 2]</a>, §3.2.17. If
+ the profile designator is expressed as a relative URI, then it must be
+ absolutized by using the TT Profile Namespace value as the base
+ URI.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>For example, if a profile designator is expressed as
+ <code>dfxp-presentation</code>, then the absolutized profile
+ designator would be
+ <code>http://www.w3.org/ns/ttml/profile/dfxp-presentation</code>.</p>
+ </div>
+
+ <p>All profile designators which have the TT Profile Namespace as a
+ prefix but are otherwise not listed in <a href=
+ "#profile-vocab-table"><b>Table 2 – Profiles</b></a> are reserved for
+ future standardization, and must not be appear in a conformant
+ <em>Document Instance</em>. Nothwithstanding this constraint, a profile
+ designator is not restricted to the set of designators enumerated in
+ <a href="#profile-vocab-table"><b>Table 2 – Profiles</b></a>, but may
+ be any URI that feasibly dereferences a TTML <em>Profile Definition
+ Document</em> provided it does not use the TT Profile Namespace as a
+ prefix.</p>
+
+ <p>The profile of TTML that must be supported by a TTML <em>Content
+ Processor</em> in order to process a <em>Document Instance</em> is
+ determined either (1) by specifying a <code>ttp:profile</code>
+ attribute on the root <code>tt</code> element, as defined by <a href=
+ "#parameter-attribute-profile"><b>6.2.8 ttp:profile</b></a>, or (2) by
+ including one or more <code>ttp:profile</code> elements in the
+ <code>head</code> element, in accordance with <a href=
+ "#parameter-vocabulary-profile"><b>6.1.1 ttp:profile</b></a>.</p>
+
+ <p>If a <code>ttp:profile</code> element appears as a descendant of the
+ <code>tt</code> element, then the <a href=
+ "#parameter-attribute-profile"><code>ttp:profile</code></a> attribute
+ should not be specified on the <code>tt</code> element. If both a
+ <code>ttp:profile</code> element and a <code>ttp:profile</code>
+ attribute are present (in a given <em>Document Instance</em>), then the
+ <code>ttp:profile</code> attribute must be ignored for the purpose of
+ determining the declared profile requirements.</p>
+
+ <p>If more than one <code>ttp:profile</code> element appears in a
+ <em>Document Instance</em>, then all specified profiles apply
+ simultaneously. In such a case, if some feature or some extension is
+ specified by one profile to be used (mandatory and enabled) and by
+ another profile to be required (mandatory) or optional (voluntary),
+ then that feature or extension must be considered to be used (mandatory
+ and enabled); if some feature or some extension is specified by one
+ profile to be merely required (mandatory) and by another profile to be
+ optional (voluntary), then that feature or extension must be considered
+ to be required (mandatory).</p>
+
+ <p>If neither <a href=
+ "#parameter-attribute-profile"><code>ttp:profile</code></a> attribute
+ nor <a href=
+ "#parameter-vocabulary-profile"><code>ttp:profile</code></a> element is
+ present in a <em>Document Instance</em>, and if the <em>Document
+ Interchange Context</em> does not make an implicit or explicit
+ reference to a pre-defined Content Profile or does not specify a
+ <em>Profile Definition Document</em> or another equivalent set of
+ feature designations, then the DFXP Transformation profile applies.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>It is not a requirement on a conformant <em>Document Instance</em>
+ that a <em>Content Profile</em> be internally defined by use of a
+ <code>ttp:profile</code> element or internally referenced by a
+ <code>ttp:profile</code> attribute. More specifically, it is
+ permitted that the <em>Document Interchange Context</em> determines
+ the applicable <em>Content Profile</em> through private agreement,
+ out-of-band protocol, or common use (between sender and receiver) of
+ a profile defined by an external specification.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>It is intended that the <code>ttp:profile</code> attribute be used
+ when the author wishes to reference one of the standard, predefined
+ profiles of TTML Content, and does not wish to modify (by
+ supersetting or subsetting) that profile. This attribute may also be
+ used by an author to indicate the use of a non-standard profile, in
+ which case the specified profile designator expresses a URI that
+ denotes an externally defined <em>Profile Definition Document</em>.
+ However, it is not required that a conformant TTML Content processor
+ be able to dereference such an externally specified profile
+ definition.</p>
+
+ <p>In contrast, it is intended that the <code>ttp:profile</code>
+ element be used when the author wishes to make use of a modified
+ predefined profile or wishes to include in the <em>Document
+ Instance</em> a non-standard profile definition not based upon one of
+ the predefined profiles.</p>
+
+ <p>A predefined profile is supersetted by specifying some feature or
+ extension to be required (mandatory) that was either not specified in
+ the underlying, baseline profile or was specified as optional
+ (voluntary) in the baseline profile. A predefined profile is
+ subsetted by specifying some feature or extension to be optional
+ (voluntary) that was specified as required in the underlying,
+ baseline profile.</p>
+
+ <p>When a baseline profile is modified by subsetting, the resulting,
+ derived profile is referred to as a <em>subtractive</em> profile;
+ when modified by supersetting, the result is referred to as an
+ <em>additive</em> profile. It is also possible to define a derived
+ profile that is simultaneously subtractive and additive.</p>
+ </div>
+
+ <p>If a <em>Document Instance</em> makes use of a feature defined by
+ <a href="#feature-designations"><b>D.1 Feature Designations</b></a> and
+ if the intended use of the document requires the recognition and
+ processing of that feature, then the document must include a
+ <em>required feature</em> or a <em>used feature</em> specification in
+ one of its declared or referenced profiles. If a <em>Document
+ Instance</em> makes use of an extension designatable by <a href=
+ "#extension-designations"><b>E.1 Extension Designations</b></a> and if
+ the intended use of the document requires the recognition and
+ processing of that extension, then the document must include a
+ <em>required extension</em> or a <em>used extension</em> specification
+ in one of its declared or referenced profiles.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A required or used feature specification is expressed directly (or
+ indirectly by referring to a profile) by means of a <a href=
+ "#parameter-vocabulary-feature"><code>ttp:feature</code></a> element
+ where the value of its <code>value</code> attribute is
+ <code>required</code> or <code>use</code>, respectively. A required
+ or used extension specification is expressed directly (or indirectly
+ by referring to a profile) by means of a <a href=
+ "#parameter-vocabulary-extension"><code>ttp:extension</code></a>
+ element where the value of its <code>value</code> attribute is
+ <code>required</code> or <code>use</code>, respectively.</p>
+ </div>
+
+ <p>An example of an author defined additive, derived profile of the
+ DFXP Presentation profile is shown below in <a href=
+ "#ttml-example-sub-profile"><b>Example Fragment – DFXP Additive
+ Profile</b></a>.</p><a id="ttml-example-sub-profile" name=
+ "ttml-example-sub-profile"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – DFXP Additive Profile
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head>
+ <profile use="dfxp-presentation" xmlns="http://www.w3.org/ns/ttml#parameter">
+ <features xml:base="http://www.w3.org/ns/ttml/feature/">
+ <feature value="required">#fontStyle-italic</feature>
+ </features>
+ </profile>
+ </head>
+ <body/>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the baseline profile is declared to be the
+ DFXP Presentation profile, which is then additively modified by
+ making the <code>#fontStyle-italic</code> feature required (rather
+ than optional as it is defined in <a href=
+ "#profile-dfxp-presentation"><b>F.2 DFXP Presentation
+ Profile</b></a>). Note also the resetting of the default XMLNS
+ binding on the <code>profile</code> element to the TT Parameter
+ Namespace.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="vocabulary-overview" name="vocabulary-overview"></a>5.3
+ Catalog</h3>
+
+ <p>The vocabulary of the Timed Text Markup Language (TTML) is defined
+ in the following major catalogs (divisions of vocabulary):</p>
+
+ <ul>
+ <li>
+ <p><a href="#core-vocabulary-overview"><b>5.3.1 Core
+ Catalog</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#extension-vocabulary-overview"><b>5.3.2 Extension
+ Catalog</b></a></p>
+ </li>
+ </ul>
+
+ <p>The core catalog defines the baseline, core vocabulary of TTML, and,
+ in particular, the vocabulary of TTML Content. The extension catalog
+ serves as a placeholder for extensions to the core vocabulary defined
+ by TTML.</p>
+
+ <div class="div3">
+ <h4><a id="core-vocabulary-overview" name=
+ "core-vocabulary-overview"></a>5.3.1 Core Catalog</h4>
+
+ <p>The core vocabulary catalog is intended to satisfy the needs of
+ TTML while providing a baseline vocabulary for future profiles. This
+ vocabulary is divided into distinct categories, specified in detail
+ in the following sections:</p>
+
+ <ul>
+ <li>
+ <p><a href="#parameters"><b>6 Parameters</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content"><b>7 Content</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#styling"><b>8 Styling</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#layout"><b>9 Layout</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#timing"><b>10 Timing</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#animation"><b>11 Animation</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#metadata"><b>12 Metadata</b></a></p>
+ </li>
+ </ul>
+
+ <p>The core element vocabulary specified for use with a <em>Document
+ Instance</em> is enumerated in <a href=
+ "#element-vocab-table"><b>Table 3 – Element
+ Vocabulary</b></a>.</p><a id="element-vocab-table" name=
+ "element-vocab-table"></a>
+
+ <table class="common">
+ <caption>
+ Table 3 – Element Vocabulary
+ </caption>
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <th>Module</th>
+
+ <th>Elements</th>
+ </tr>
+
+ <tr>
+ <td>Animation</td>
+
+ <td><a href="#animation-vocabulary-set">set</a></td>
+ </tr>
+
+ <tr>
+ <td>Content</td>
+
+ <td><a href="#document-structure-vocabulary-body">body</a>,
+ <a href="#content-vocabulary-div">div</a>, <a href=
+ "#content-vocabulary-p">p</a>, <a href=
+ "#content-vocabulary-span">span</a>, <a href=
+ "#content-vocabulary-br">br</a></td>
+ </tr>
+
+ <tr>
+ <td>Document</td>
+
+ <td><a href="#document-structure-vocabulary-tt">tt</a></td>
+ </tr>
+
+ <tr>
+ <td>Head</td>
+
+ <td><a href="#document-structure-vocabulary-head">head</a></td>
+ </tr>
+
+ <tr>
+ <td>Layout</td>
+
+ <td><a href="#layout-vocabulary-layout">layout</a>, <a href=
+ "#layout-vocabulary-region">region</a></td>
+ </tr>
+
+ <tr>
+ <td>Metadata</td>
+
+ <td><a href="#metadata-vocabulary-metadata">metadata</a></td>
+ </tr>
+
+ <tr>
+ <td>Metadata Items</td>
+
+ <td><a href="#metadata-vocabulary-actor">ttm:actor</a>,
+ <a href="#metadata-vocabulary-agent">ttm:agent</a>, <a href=
+ "#metadata-vocabulary-copyright">ttm:copyright</a>, <a href=
+ "#metadata-vocabulary-desc">ttm:desc</a>, <a href=
+ "#metadata-vocabulary-name">ttm:name</a>, <a href=
+ "#metadata-vocabulary-title">ttm:title</a></td>
+ </tr>
+
+ <tr>
+ <td>Parameter Items</td>
+
+ <td><a href="#parameter-vocabulary-profile">ttp:profile</a>,
+ <a href="#parameter-vocabulary-features">ttp:features</a>,
+ <a href="#parameter-vocabulary-feature">ttp:feature</a>,
+ <a href="#parameter-vocabulary-extensions">ttp:extensions</a>,
+ <a href=
+ "#parameter-vocabulary-extension">ttp:extension</a></td>
+ </tr>
+
+ <tr>
+ <td>Styling</td>
+
+ <td><a href="#styling-vocabulary-styling">styling</a>, <a href=
+ "#styling-vocabulary-style">style</a></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Element vocabulary groups that are used in defining content models
+ for TTML element types are enumerated in <a href=
+ "#element-vocab-group-table"><b>Table 4 – Element Vocabulary
+ Groups</b></a>.</p><a id="element-vocab-group-table" name=
+ "element-vocab-group-table"></a>
+
+ <table class="common">
+ <caption>
+ Table 4 – Element Vocabulary Groups
+ </caption>
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <th>Group</th>
+
+ <th>Elements</th>
+ </tr>
+
+ <tr>
+ <td>Animation.class</td>
+
+ <td><a href="#animation-vocabulary-set">set</a></td>
+ </tr>
+
+ <tr>
+ <td>Block.class</td>
+
+ <td><a href="#content-vocabulary-div">div</a> | <a href=
+ "#content-vocabulary-p">p</a></td>
+ </tr>
+
+ <tr>
+ <td>Inline.class</td>
+
+ <td><a href="#content-vocabulary-span">span</a> | <a href=
+ "#content-vocabulary-span">br</a> | <code>#PCDATA</code></td>
+ </tr>
+
+ <tr>
+ <td>Metadata.class</td>
+
+ <td><a href="#metadata-vocabulary-metadata">metadata</a> |
+ <a href="#metadata-vocabulary-copyright">ttm:agent</a> |
+ <a href="#metadata-vocabulary-copyright">ttm:copyright</a> |
+ <a href="#metadata-vocabulary-desc">ttm:desc</a> | <a href=
+ "#metadata-vocabulary-title">ttm:title</a></td>
+ </tr>
+
+ <tr>
+ <td>Parameters.class</td>
+
+ <td><a href=
+ "#parameter-vocabulary-profile">ttp:profile</a></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The attribute vocabulary specified for use with the core
+ vocabulary catalog is enumerated in <a href=
+ "#attribute-vocab-table"><b>Table 5 – Attribute
+ Vocabulary</b></a>.</p><a id="attribute-vocab-table" name=
+ "attribute-vocab-table"></a>
+
+ <table class="common">
+ <caption>
+ Table 5 – Attribute Vocabulary
+ </caption>
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <th>Module</th>
+
+ <th>Attributes</th>
+ </tr>
+
+ <tr>
+ <td>Core Attributes</td>
+
+ <td><a href="#content-attribute-id">xml:id</a>, <a href=
+ "#content-attribute-lang">xml:lang</a>, <a href=
+ "#content-attribute-space">xml:space</a></td>
+ </tr>
+
+ <tr>
+ <td>Layout</td>
+
+ <td><a href="#layout-attribute-region">region</a></td>
+ </tr>
+
+ <tr>
+ <td>Metadata Attributes</td>
+
+ <td><a href="#metadata-attribute-agent">ttm:agent</a>, <a href=
+ "#metadata-attribute-role">ttm:role</a></td>
+ </tr>
+
+ <tr>
+ <td>Parameter Attributes</td>
+
+ <td><a href=
+ "#parameter-attribute-cellResolution">ttp:cellResolution</a>,
+ <a href="#parameter-attribute-clockMode">ttp:clockMode</a>,
+ <a href="#parameter-attribute-dropMode">ttp:dropMode</a>,
+ <a href="#parameter-attribute-frameRate">ttp:frameRate</a>,
+ <a href=
+ "#parameter-attribute-frameRateMultiplier">ttp:frameRateMultipler</a>,
+ <a href="#parameter-attribute-markerMode">ttp:markerMode</a>,
+ <a href=
+ "#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</a>,
+ <a href="#parameter-attribute-profile">ttp:profile</a>,
+ <a href="#parameter-attribute-subFrameRate">ttp:subFrameRate</a>,
+ <a href="#parameter-attribute-tickRate">ttp:tickRate</a>,
+ <a href="#parameter-attribute-timeBase">ttp:timeBase</a></td>
+ </tr>
+
+ <tr>
+ <td>Styling</td>
+
+ <td><a href="#style-attribute-style">style</a></td>
+ </tr>
+
+ <tr>
+ <td>Styling Attributes</td>
+
+ <td><a href=
+ "#style-attribute-backgroundColor">tts:backgroundColor</a>,
+ <a href="#style-attribute-color">tts:color</a>, <a href=
+ "#style-attribute-direction">tts:direction</a>, <a href=
+ "#style-attribute-display">tts:display</a>, <a href=
+ "#style-attribute-displayAlign">tts:displayAlign</a>, <a href=
+ "#style-attribute-extent">tts:extent</a>, <a href=
+ "#style-attribute-fontFamily">tts:fontFamily</a>, <a href=
+ "#style-attribute-fontSize">tts:fontSize</a>, <a href=
+ "#style-attribute-fontStyle">tts:fontStyle</a>, <a href=
+ "#style-attribute-fontWeight">tts:fontWeight</a>, <a href=
+ "#style-attribute-lineHeight">tts:lineHeight</a>, <a href=
+ "#style-attribute-opacity">tts:opacity</a>, <a href=
+ "#style-attribute-origin">tts:origin</a>, <a href=
+ "#style-attribute-overflow">tts:overflow</a>, <a href=
+ "#style-attribute-padding">tts:padding</a>, <a href=
+ "#style-attribute-showBackground">tts:showBackground</a>,
+ <a href="#style-attribute-textAlign">tts:textAlign</a>,
+ <a href="#style-attribute-textDecoration">tts:textDecoration</a>,
+ <a href="#style-attribute-textOutline">tts:textOutline</a>,
+ <a href="#style-attribute-unicodeBidi">tts:unicodeBidi</a>,
+ <a href="#style-attribute-visibility">tts:visibility</a>,
+ <a href="#style-attribute-wrapOption">tts:wrapOption</a>,
+ <a href="#style-attribute-writingMode">tts:writingMode</a>,
+ <a href="#style-attribute-zIndex">tts:zIndex</a></td>
+ </tr>
+
+ <tr>
+ <td>Timing Attributes</td>
+
+ <td><a href="#timing-attribute-begin">begin</a>, <a href=
+ "#timing-attribute-dur">dur</a>, <a href=
+ "#timing-attribute-end">end</a>, <a href=
+ "#timing-attribute-timeContainer">timeContainer</a></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Only those attributes defined as either (1) global, i.e.,
+ namespace qualified, or (2) shared element-specific, i.e., not
+ namespace qualified but shared across multiple element types, are
+ listed in <a href="#attribute-vocab-table"><b>Table 5 – Attribute
+ Vocabulary</b></a> above.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>All vocabulary defined by TTML consistently makes use of the
+ so-called <em>lowerCamelCase</em> naming convention. In some cases,
+ this results in the change of a name when the name was based upon
+ another specification that used a different naming convention.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="extension-vocabulary-overview" name=
+ "extension-vocabulary-overview"></a>5.3.2 Extension Catalog</h4>
+
+ <p>The extension vocabulary catalog is intended for use by future
+ profiles of TTML, and is not further defined by this version of this
+ specification.</p>
+
+ <p>In addition to standardized extension vocabulary, a conforming
+ <em>Document Instance</em> may contain arbitrary namespace qualified
+ elements that reside in any namespace other than those namespaces
+ defined for use with this specification. Furthermore, a conforming
+ <em>Document Instance</em> may contain arbitrary namespace qualified
+ attributes on TTML defined vocabulary where such attributes reside in
+ any namespace other than those defined for use with this
+ specification.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="parameters" name="parameters"></a>6 Parameters</h2>
+
+ <p>This section specifies the <em>parameters</em> matter of the core
+ vocabulary catalog, where parameters are to be understood as information
+ that is either (1) essential or (2) of significant importance for the
+ purpose of interpreting the semantics of other types of information
+ expressed by core vocabulary items or for establishing a <em>Document
+ Processing Context</em> by means of which TTML Content can be related to
+ an external environment.</p>
+
+ <div class="div2">
+ <h3><a id="parameter-element-vocabulary" name=
+ "parameter-element-vocabulary"></a>6.1 Parameter Element
+ Vocabulary</h3>
+
+ <p>The following elements, all defined in the TT Parameter Namespace,
+ specify parametric information that applies to a <em>Document
+ Instance</em> or <em>Content Processor</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#parameter-vocabulary-profile"><b>6.1.1
+ ttp:profile</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-vocabulary-features"><b>6.1.2
+ ttp:features</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-vocabulary-feature"><b>6.1.3
+ ttp:feature</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-vocabulary-extensions"><b>6.1.4
+ ttp:extensions</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-vocabulary-extension"><b>6.1.5
+ ttp:extension</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="parameter-vocabulary-profile" name=
+ "parameter-vocabulary-profile"></a>6.1.1 ttp:profile</h4>
+
+ <p>The <code>ttp:profile</code> element is used to specify a
+ collection of used (mandatory and enabled), required (mandatory), and
+ optional (voluntary) features and extensions that must or may be
+ supported by a <em>Content Processor</em> in order to process a
+ <em>Document Instance</em> that makes (or may make) use of such
+ features and extensions.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The difference between a <em>feature</em> and an
+ <em>extension</em> is where it is defined and how it is labeled: if
+ defined in this specification (or a future revision thereof) and
+ labeled with a feature designation in <a href="#features"><b>D
+ Features</b></a>, then it is considered to be a feature; if defined
+ in another specification and labeled there with an extension
+ designation, then it is considered to be an extension. In general,
+ features are expected to be defined by the W3C standards process,
+ while extensions are expected to be defined by third parties.</p>
+ </div>
+
+ <p>This specification defines two distinct uses of the
+ <code>ttp:profile</code> element:</p>
+
+ <ul>
+ <li>
+ <p>as a child of the <code>head</code> element within a TTML
+ <em>Document Instance</em>;</p>
+ </li>
+
+ <li>
+ <p>as the root element of a TTML <em>Profile Definition
+ Document</em> instance;</p>
+ </li>
+ </ul>
+
+ <p>When a <code>tt:profile</code> element appears within a TTML
+ <em>Document Instance</em>, its purpose is to express authorial
+ intentions about which features and extensions must or may be
+ supported by a recipient content processor. In addition, the element
+ indirectly expresses information about the set of features or
+ extensions that are (or may expected to be) used by the <em>Document
+ Instance</em>.</p>
+
+ <p>When a <code>tt:profile</code> element is used by a TTML
+ <em>Profile Definition Document</em> instance, it serves to publish a
+ machine readable specification of a specific TTML Content profile, of
+ which this specification defines three such <em>Profile Definition
+ Documents</em> in <a href="#profiles"><b>F Profiles</b></a>.</p>
+
+ <p>The <code>ttp:profile</code> element accepts as its children zero
+ or more elements in the <code>Metadata.class</code> element group,
+ followed by zero or more <code>ttp:features</code> elements, followed
+ by zero or more <code>ttp:extensions</code> elements.</p><a id=
+ "elt-syntax-parameter-profile" name=
+ "elt-syntax-parameter-profile"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttp:profile
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:profile
+ use = string
+ <a href="#content-attribute-id">xml:id</a> = ID
+ {<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=
+"#parameter-vocabulary-features">ttp:features</a>*, <a href=
+"#parameter-vocabulary-extensions">ttp:extensions</a>*
+</ttp:profile>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If specified, the <code>use</code> attribute must adhere to the
+ <code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML
+ Schema Part 2]</a>, §3.2.17, and, furthermore, must denote a profile
+ designator in accordance with <a href="#vocabulary-profiles"><b>5.2
+ Profiles</b></a>. In this case, the profile designator must refer to
+ (1) a standard, predefined <em>Profile Definition Document</em> as
+ defined by <a href="#profiles"><b>F Profiles</b></a>, or (2) a
+ feasibly dereferenceable resource representing a valid <em>Profile
+ Definition Document</em> instance. In either case, the referenced
+ profile serves as the baseline profile of the specifying
+ <code>ttp:profile</code> element.</p>
+
+ <p>If the <code>use</code> attribute is not specified, then the
+ baseline profile of the <code>ttp:profile</code> element must be
+ considered to be the empty (null) profile, i.e., a profile definition
+ containing no feature or extension specifications.</p>
+
+ <p>The collection of features and extensions of a profile are
+ determined according to the following ordered rules:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>initialize the features and extensions of the profile to the
+ empty set;</p>
+ </li>
+
+ <li>
+ <p>if a <code>use</code> attribute is present, then augment the
+ profile with the set of features and extensions specified by the
+ referenced baseline profile;</p>
+ </li>
+
+ <li>
+ <p>for each <code>ttp:feature</code> and
+ <code>ttp:extension</code> element descendant of the
+ <code>ttp:profile</code> element, using a post-order traversal,
+ merge the specified feature or extension with the features and
+ extensions of the profile, where merging a feature or extension
+ entails replacing an existing feature or extension specification,
+ if it already exists, or adding a new feature or extension
+ specification, if it does not yet exist in the profile;</p>
+ </li>
+ </ol>
+
+ <p>A conformant TTML processor is not required to be able to
+ dereference a <em>Profile Definition Document</em> that is not one of
+ the standard, predefined profiles defined by <a href="#profiles"><b>F
+ Profiles</b></a>. Furthermore, a conformant TTML processor may make
+ use of a built-in, static form of each standard, predefined profile
+ so as not to require dereferencing a network resource.</p>
+
+ <p>If a TTML processor is unable to dereference a non-standard
+ <em>Profile Definition Document</em>, then it must not further
+ process the document without the presence of an explicit override
+ from an end-user or some implementation specific parameter traceable
+ to an end-user or to a user or system configuration setting. If a
+ TTML processor aborts processing of a <em>Document Instance</em> due
+ to the inability to reference a non-standard <em>Profile Definition
+ Document</em>, then some end-user notification should be given unless
+ the end-user or system has disabled such a notification, or if the
+ processor does not permit or entail the intervention of an
+ end-user.</p>
+
+ <p>The <code>ttp:profile</code> element is illustrated by the
+ following example.</p><a id="parameter-vocabulary-profile-example-1"
+ name="parameter-vocabulary-profile-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – ttp:profile
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:profile use="dfxp-presentation">
+ <ttp:features xml:base="http://www.w3.org/ns/ttml/feature/">
+ <ttp:feature>#text-outline</ttp:feature>
+ </ttp:features>
+</ttp:profile>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the DFXP presentation profile is used as
+ the baseline profile. This baseline profile is then supersetted
+ (thus creating an additive derived profile) by requiring support
+ for <code>#text-outline</code> feature.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-vocabulary-features" name=
+ "parameter-vocabulary-features"></a>6.1.2 ttp:features</h4>
+
+ <p>The <code>ttp:features</code> element is a container element used
+ to group infomation about feature support requirements.</p>
+
+ <p>The <code>ttp:features</code> element accepts as its children zero
+ or more elements in the <code>Metadata.class</code> element group,
+ followed by zero or more <code>ttp:feature</code> elements.</p><a id=
+ "elt-syntax-parameter-features" name=
+ "elt-syntax-parameter-features"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttp:features
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:features
+ xml:base = string : <em>TT Feature Namespace</em>
+ <a href="#content-attribute-id">xml:id</a> = ID
+ {<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=
+"#parameter-vocabulary-feature">ttp:feature</a>*
+</ttp:features>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If specified, the <code>xml:base</code> attribute must (1) adhere
+ to the <code>xsd:anyURI</code> data type defined by <a href=
+ "#xsd-2">[XML Schema Part 2]</a>, §3.2.17, (2) express an absolute
+ URI that adheres to <a href="#xmlbase">[XML Base]</a> and, (3)
+ express a feature namespace as defined by <a href=
+ "#feature-designations"><b>D.1 Feature Designations</b></a>. If not
+ specified, the <code>xml:base</code> attribute's default value
+ applies, which is the TT Feature Namespace.</p>
+
+ <p>The <code>xml:base</code> attribute is used to permit the
+ abbreviation of feature designation URIs expressed by child
+ <code>ttp:feature</code> elements.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-vocabulary-feature" name=
+ "parameter-vocabulary-feature"></a>6.1.3 ttp:feature</h4>
+
+ <p>The <code>ttp:feature</code> element is used to specify infomation
+ about support requirements for a particular feature.</p>
+
+ <p>The children of the <code>ttp:feature</code> element must express
+ a non-empty sequence of character information items that adheres to
+ the <code>xsd:anyURI</code> data type defined by <a href=
+ "#xsd-2">[XML Schema Part 2]</a>, §3.2.17.</p><a id=
+ "elt-syntax-parameter-feature" name=
+ "elt-syntax-parameter-feature"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttp:feature
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:feature
+ value = (optional|required|use) : required
+ <a href="#content-attribute-id">xml:id</a> = ID
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> #PCDATA
+</ttp:feature>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the URI expressed by the content of the
+ <code>ttp:feature</code> element is a relative URI, then, when
+ combined with the feature namespace value expressed by the
+ <code>xml:base</code> attribute of the nearest ancestor
+ <code>ttp:features</code> element, it must express an absolute URI.
+ In either case (original absolute URI or resulting absolutized URI),
+ the URI expressed by the <code>ttp:feature</code> element must
+ further adhere to the syntax of a feature designation as defined by
+ <a href="#feature-designations"><b>D.1 Feature Designations</b></a>,
+ and, furthermore, the specific designation that appears in this URI,
+ i.e., the portion of the feature designation that starts with the
+ fragment identifier separator '#', must be defined by this
+ specification or some published version thereof (that has achieved
+ REC status).</p>
+
+ <p>If the URI expressed by the content of the
+ <code>ttp:feature</code> element is a relative URI, then an
+ <code>xml:base</code> attribute should be specified on the nearest
+ ancestor <code>ttp:features</code> element.</p>
+
+ <p>The <code>value</code> attribute specifies whether a conforming
+ TTML processor must or may implement the designated feature in order
+ to process the document. If the value of the <code>value</code>
+ attribute is <code>optional</code>, then the processor need not
+ implement or otherwise support the feature in order to process the
+ document; if the value is <code>required</code>, then the processor
+ must implement or otherwise support the feature, irrespective of
+ whether the feature is enabled or disabled, in order to process the
+ document; if the value is <code>use</code>, then the processor must
+ both (1) implement or otherwise support the feature and (2) have
+ enabled (activated) use of the feature.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The default value of the <code>value</code> attribute is
+ <code>required</code>, as indicated in the above element
+ information item definition. Therefore, if a <code>value</code>
+ attribute is not specified on a <code>ttp:feature</code> element,
+ it is equivalent to specifying that support for the feature is
+ required.</p>
+ </div>
+
+ <p>If the value of the <code>value</code> attribute is
+ <code>required</code> or <code>use</code> and the TTML processor
+ implementation does not support the feature, or if the
+ <code>value</code> attribute is <code>use</code> and the TTML
+ processor implementation supports but has disabled that feature, then
+ it must not further process the document without the presence of an
+ explicit override from an end-user or some implementation specific
+ parameter traceable to an end-user or to a user or system
+ configuration setting. If a TTML processor aborts processing of a
+ <em>Document Instance</em> due to the specification of a required,
+ but unsupported feature by this element, then some end-user
+ notification should be given unless the end-user or system has
+ disabled such a notification, or if the processor does not permit or
+ entail the intervention of an end-user.</p>
+
+ <p>If the value of the <code>value</code> attribute is
+ <code>optional</code>, and if the TTML processor implementation does
+ not support the feature, then it may further process the document
+ even in the case that some use of the feature is present in the
+ document. In the case of actual use of a feature designated as
+ optional, the default semantics associated with that feature apply;
+ that is, the processor may behave as if the feature were not actually
+ used or referenced by the document. Notwithstanding the above, the
+ syntactic presence or reference to an optional feature by a document
+ must not be considered to be a violation of document validity or a
+ barrier to further processing if the syntactic expression is
+ well-formed and valid.</p>
+
+ <p>If some defined (i.e., standardized) or otherwise well known
+ feature is not specified by a <code>ttp:feature</code> element in a
+ given profile, then it must be interpreted as if the feature were
+ specified with the <code>value</code> attribute equal to
+ <code>optional</code>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In particular, if some feature is not present in a profile
+ definition, then it is not to be interpreted as meaning the use of
+ that feature (in a <em>Document Instance</em>) is disallowed or
+ otherwise prohibited.</p>
+ </div>
+
+ <p>The <code>ttp:feature</code> element is illustrated by the
+ following example.</p><a id="parameter-vocabulary-feature-example-1"
+ name="parameter-vocabulary-feature-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – ttp:feature
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:profile use="http://www.w3.org/ns/ttml/profile/dfxp-presentation">
+ <ttp:features xml:base="http://www.w3.org/ns/ttml/feature/">
+ <span class=
+"strong"><ttp:feature value="required">#fontStyle-italic</ttp:feature></span>
+ <span class=
+"strong"><ttp:feature value="required">#textDecoration-under</ttp:feature></span>
+ </ttp:features>
+</ttp:profile>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the DFXP presentation profile is used as
+ the baseline profile. This baseline profile is then modified by two
+ <code>ttp:feature</code> elements in order to superset the baseline
+ profile (since neither <code>#fontStyle-italic</code> nor
+ <code>#textDecoration-under</code> are required by the DFXP
+ presentation profile).</p>
+
+ <p>The effect of this example is to express authorial intentions
+ that italic font style and text underlining must be supported.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-vocabulary-extensions" name=
+ "parameter-vocabulary-extensions"></a>6.1.4 ttp:extensions</h4>
+
+ <p>The <code>ttp:extensions</code> element is a container element
+ used to group infomation about extension support requirements.</p>
+
+ <p>The <code>ttp:extensions</code> element accepts as its children
+ zero or more elements in the <code>Metadata.class</code> element
+ group, followed by zero or more <code>ttp:extension</code>
+ elements.</p><a id="elt-syntax-parameter-extensions" name=
+ "elt-syntax-parameter-extensions"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttp:extensions
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:extensions
+ xml:base = string : <em>TT Extension Namespace</em>
+ <a href="#content-attribute-id">xml:id</a> = ID
+ {<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=
+"#parameter-vocabulary-extension">ttp:extension</a>*
+</ttp:extensions>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If specified, the <code>xml:base</code> attribute must (1) adhere
+ to the <code>xsd:anyURI</code> data type defined by <a href=
+ "#xsd-2">[XML Schema Part 2]</a>, §3.2.17, (2) express an absolute
+ URI that adheres to <a href="#xmlbase">[XML Base]</a> and, (3)
+ express an extension namespace as defined by <a href=
+ "#extension-designations"><b>E.1 Extension Designations</b></a>. If
+ not specified, the <code>xml:base</code> attribute's default value
+ applies, which is the TT Extension Namespace.</p>
+
+ <p>The <code>xml:base</code> attribute is used to permit the
+ abbreviation of feature designation URIs expressed by child
+ <code>ttp:extension</code> elements.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-vocabulary-extension" name=
+ "parameter-vocabulary-extension"></a>6.1.5 ttp:extension</h4>
+
+ <p>The <code>ttp:extension</code> element is used to specify
+ infomation about support requirements for a particular extension.</p>
+
+ <p>The children of the <code>ttp:extension</code> element must
+ express a non-empty sequence of character information items that
+ adheres to the <code>xsd:anyURI</code> data type defined by <a href=
+ "#xsd-2">[XML Schema Part 2]</a>, §3.2.17.</p><a id=
+ "elt-syntax-parameter-extension" name=
+ "elt-syntax-parameter-extension"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttp:extension
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:extension
+ value = (optional|required|use) : required
+ <a href="#content-attribute-id">xml:id</a> = ID
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> #PCDATA
+</ttp:extension>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the URI expressed by the content of the
+ <code>ttp:extension</code> element is a relative URI, then, when
+ combined with the extension namespace value expressed by the
+ <code>xml:base</code> attribute of the nearest ancestor
+ <code>ttp:extensions</code> element, it must express an absolute URI.
+ In either case (original absolute URI or resulting absolutized URI),
+ the URI expressed by the <code>ttp:extension</code> element must
+ further adhere to the syntax of an extension designation as defined
+ by <a href="#extension-designations"><b>E.1 Extension
+ Designations</b></a>.</p>
+
+ <p>If the URI expressed by the content of the
+ <code>ttp:feature</code> element is a relative URI, then an
+ <code>xml:base</code> attribute should be specified on the nearest
+ ancestor <code>ttp:extensions</code> element.</p>
+
+ <p>The <code>value</code> attribute specifies whether a conforming
+ TTML processor must or may implement the designated extension in
+ order to process the document. If the value of the <code>value</code>
+ attribute is <code>optional</code>, then the processor need not
+ implement or otherwise support the extension in order to process the
+ document; if the value is <code>required</code>, then the processor
+ must implement or otherwise support the extension in order to process
+ the document; if the value is <code>use</code>, then the processor
+ must both (1) implement or otherwise support the extension and (2)
+ enable (activate) use of the extension.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The default value of the <code>value</code> attribute is
+ <code>required</code>, as indicated in the above element
+ information item definition. Therefore, if a <code>value</code>
+ attribute is not specified on a <code>ttp:extension</code> element,
+ it is equivalent to specifying that support for the extension is
+ required.</p>
+ </div>
+
+ <p>If the value of the <code>value</code> attribute is
+ <code>required</code> or <code>use</code> and the TTML processor
+ implementation does not support the extension, or if the
+ <code>value</code> attribute is <code>use</code> and the TTML
+ processor implementation supports but has disabled that extension,
+ then it must not further process the document without the presence of
+ an explicit override from an end-user or some implementation specific
+ parameter traceable to an end-user or to a user or system
+ configuration setting. If a TTML processor aborts processing of a
+ <em>Document Instance</em> due to the specification of a required,
+ but unsupported extension by this element, then some end-user
+ notification should be given unless the end-user or system has
+ disabled such a notification, or if the processor does not permit or
+ entail the intervention of an end-user.</p>
+
+ <p>If the value of the <code>value</code> attribute is
+ <code>optional</code>, and if the TTML processor implementation does
+ not support the extension, then it may further process the document
+ even in the case that some use of the extension is present in the
+ document. In the case of actual use of an extension designated as
+ optional, the default semantics associated with that extension apply;
+ that is, the processor may behave as if the extension were not
+ actually used or referenced by the document. Notwithstanding the
+ above, the syntactic presence or reference to an optional extension
+ by a document must not be considered to be a violation of document
+ validity or a barrier to further processing if the syntactic
+ expression is well-formed and valid.</p>
+
+ <p>If some well known extension is not specified by a
+ <code>ttp:extension</code> element in a given profile, then it must
+ be interpreted as if the extension were specified with the
+ <code>value</code> attribute equal to <code>optional</code>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In particular, if some extension is not present in a profile
+ definition, then it is not to be interpreted as meaning the use of
+ that extension (in a <em>Document Instance</em>) is disallowed or
+ otherwise prohibited.</p>
+ </div>
+
+ <p>The <code>ttp:extension</code> element is illustrated by the
+ following example.</p><a id=
+ "parameter-vocabulary-extension-example-1" name=
+ "parameter-vocabulary-extension-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – ttp:extension
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttp:profile use="http://www.w3.org/ns/ttml/profile/dfxp-transformation">
+ <ttp:extensions xml:base="http://example.org/ttml/extension/">
+ <span class=
+"strong"><ttp:extension value="use">#prefilter-by-language</ttp:extension></span>
+ </ttp:extensions>
+</ttp:profile>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the DFXP transformation profile is used as
+ the baseline profile. This baseline profile is then supersetted by
+ specifying that support and use is required for a private extension
+ defined in a third party namespace.</p>
+
+ <p>The effect of this example is to express authorial intentions
+ that a recipient processor must support the DFXP transformation
+ profile and must also support and enable an extension defined by a
+ third party.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="parameter-attribute-vocabulary" name=
+ "parameter-attribute-vocabulary"></a>6.2 Parameter Attribute
+ Vocabulary</h3>
+
+ <p>The following attributes are defined in the TT Parameter
+ Namespace.</p>
+
+ <ul>
+ <li>
+ <p><a href="#parameter-attribute-cellResolution"><b>6.2.1
+ ttp:cellResolution</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-clockMode"><b>6.2.2
+ ttp:clockMode</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-dropMode"><b>6.2.3
+ ttp:dropMode</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-frameRate"><b>6.2.4
+ ttp:frameRate</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-frameRateMultiplier"><b>6.2.5
+ ttp:frameRateMultiplier</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-markerMode"><b>6.2.6
+ ttp:markerMode</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-pixelAspectRatio"><b>6.2.7
+ ttp:pixelAspectRatio</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-profile"><b>6.2.8
+ ttp:profile</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-subFrameRate"><b>6.2.9
+ ttp:subFrameRate</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-tickRate"><b>6.2.10
+ ttp:tickRate</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#parameter-attribute-timeBase"><b>6.2.11
+ ttp:timeBase</b></a></p>
+ </li>
+ </ul>
+
+ <p>Unless explicitly stated otherwise, linear white-space (LWSP) must
+ appear between adjacent non-terminal components of a TT Parameter value
+ unless some other delimiter is permitted and used.</p>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-cellResolution" name=
+ "parameter-attribute-cellResolution"></a>6.2.1
+ ttp:cellResolution</h4>
+
+ <p>The <code>ttp:cellResolution</code> attribute may be used by an
+ author to express the number of horizontal and vertical cells into
+ which the <em>Root Container Region</em> area is divided for the
+ purpose of expressing presentation semantics in terms of a uniform
+ grid.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id=
+ "parameter-attribute-cellResolution-syntax" name=
+ "parameter-attribute-cellResolution-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:cellResolution
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:cellResolution
+ : columns rows // <em>columns</em> != 0; <em>rows</em> != 0
+
+columns | rows
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If not specified, the number of columns and rows must be
+ considered to be 32 and 15, respectively. If specified, then columns
+ or rows must not be zero (0).</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The choice of values 32 and 15 are based on this being the
+ maximum number of columns and rows defined by <a href=
+ "#cea608c">[CEA-608-C]</a>.</p>
+ </div>
+
+ <p>A <code>ttp:cellResolution</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The use of a uniform grid is employed only for the purpose of
+ measuring lengths and expressing coordinates. In particular, it is
+ not assumed that the presentation of text or the alignment of
+ individual glyph areas is coordinated with this grid. Such
+ alignment is possible, but requires the use of a monospaced font
+ and a font size whose EM square exactly matches the cell size.</p>
+ </div>
+
+ <p>Except where indicated otherwise, when a <a href=
+ "#style-value-length"><length></a> expressed in cells denotes a
+ dimension parallel to the inline or block progression dimension, the
+ cell's dimension in the inline or block progression dimension
+ applies, respectively.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>For example, if padding (on all four edges) is specified as
+ 0.1c, the cell resolution is 20 by 10, and the extent of the
+ <em>Root Container Region</em> is 640 by 480, then, assuming top to
+ bottom, left to right writing mode, the start and end padding will
+ be (640 / 20) * 0.1 pixels and the before and after padding will be
+ (480 / 10) * 0.1 pixels.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-clockMode" name=
+ "parameter-attribute-clockMode"></a>6.2.2 ttp:clockMode</h4>
+
+ <p>The <code>ttp:clockMode</code> attribute is used to specify the
+ interpretation of time expressions as real-time time coordinates when
+ operating with time base of <code>clock</code> as defined by <a href=
+ "#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See <a href="#timing-time-value-expressions"><b>10.3 Time Value
+ Expressions</b></a> for the specification of time expression syntax
+ and semantics.</p>
+ </div>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id="parameter-attribute-clockMode-syntax"
+ name="parameter-attribute-clockMode-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:clockMode
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:clockMode
+ : "local"
+ | "gps"
+ | "utc"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the time base, defined by <a href=
+ "#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>, is
+ designated as <code>clock</code>, then this parameter applies as
+ follows: if the parameter's value is <code>local</code>, then time
+ expressions are interpreted as local wall-clock time coordinates; if
+ <code>utc</code>, then time expressions are interpreted as UTC time
+ coordinates <a href="#utc">[UTC]</a>; if <code>gps</code>, then time
+ expressions are interpreted as GPS time coordinates <a href=
+ "#gps">[GPS]</a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The primary difference between GPS time and UTC time is that GPS
+ time is not adjusted for leap seconds, while UTC time is adjusted
+ as follows: UTC = TAI (<em>Temp Atomique International</em>) +
+ <em>leap seconds accumulated since 1972</em>. TAI is maintained by
+ the <em>Bureau International des Poids et Mesures</em> (BIPM) in
+ Sevres, France. The GPS system time is steered to a Master Clock
+ (MC) at the US Naval Observatory which is kept within a close but
+ unspecified tolerance of TAI.</p>
+ </div>
+
+ <p>If not specified, the value of this parameter must be considered
+ to be <code>utc</code>.</p>
+
+ <p>A <code>ttp:clockMode</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-dropMode" name=
+ "parameter-attribute-dropMode"></a>6.2.3 ttp:dropMode</h4>
+
+ <p>The <code>ttp:dropMode</code> attribute is used to specify
+ constraints on the interpretation and use of frame counts that
+ correspond with <a href="#smpte12m">[SMPTE 12M]</a> time coordinates
+ when operating with time base of <code>smpte</code> as defined by
+ <a href="#parameter-attribute-timeBase"><b>6.2.11
+ ttp:timeBase</b></a>.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id="parameter-attribute-dropMode-syntax"
+ name="parameter-attribute-dropMode-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:dropMode
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:dropMode
+ : "dropNTSC"
+ | "dropPAL"
+ | "nonDrop"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the time base, defined by <a href=
+ "#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>, is
+ designated as <code>smpte</code>, then this parameter applies as
+ follows: if the parameter's value is <code>nonDrop</code>, then,
+ within any given second of a time expression, frames count from 0 to
+ <em>N−1</em>, where <em>N</em> is the value specified by the
+ <code>ttp:frameRate</code> parameter, but while ignoring any value
+ specified by the <code>ttp:frameRateMultiplier</code> parameter.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When operating in <code>nonDrop</code> mode, a second of a time
+ expression may or may not be equal to a second of real time during
+ normal (1x speed) forward playback. If the
+ <code>ttp:frameRateMultiplier</code> parameter is specified and is
+ not equal to 1:1, then a second of a time expression will either be
+ shorter or longer than a second of elapsed play in real time.</p>
+ </div>
+
+ <p>If this parameter's value is <code>dropNTSC</code>, then, within
+ any given second of a time expression except the second
+ <code>00</code>, frames count from 0 to <em>N−1</em>, where
+ <em>N</em> is the value specified by the <code>ttp:frameRate</code>
+ parameter, but while ignoring any value specified by the
+ <code>ttp:frameRateMultiplier</code> parameter. If the second of a
+ time expression is <code>00</code> and the minute of the time
+ expression is not <code>00</code>, <code>10</code>, <code>20</code>,
+ <code>30</code>, <code>40</code>, or <code>50</code>, then frame
+ codes <code>00</code> and <code>01</code> are dropped during that
+ second; otherwise, these frame codes are not dropped.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>For example, when operating in <code>dropNTSC</code> mode with
+ <code>ttp:frameRate</code> of <code>30</code>, a discontinuity in
+ frame count occurs between consecutive frames as shown in the
+ following sequence of time expressions: <code>01:08:59:28</code>,
+ <code>01:08:59:29</code>, <code>01:09:00:02</code>,
+ <code>01:09:00:03</code>.</p>
+ </div>
+
+ <p>If this parameter's value is <code>dropPAL</code>, then, within
+ any given second of a time expression except the second
+ <code>00</code>, frames count from 0 to <em>N−1</em>, where
+ <em>N</em> is the value specified by the <code>ttp:frameRate</code>
+ parameter, but while ignoring any value specified by the
+ <code>ttp:frameRateMultiplier</code> parameter. If the second of a
+ time expression is <code>00</code> and the minute of the time
+ expression is even but not <code>00</code>, <code>20</code>, or
+ <code>40</code>, then frame codes <code>00</code> through
+ <code>03</code> are dropped during that second; otherwise, these
+ frame codes are not dropped.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>For example, when operating in <code>dropPAL</code> mode with
+ <code>ttp:frameRate</code> of <code>30</code>, a discontinuity in
+ frame count occurs between consecutive frames as shown in the
+ following sequence of time expressions: <code>01:09:59:28</code>,
+ <code>01:09:59:29</code>, <code>01:10:00:04</code>,
+ <code>01:10:00:05</code>.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The <code>dropPAL</code> mode is also known as the
+ <em>M/PAL</em> or <em>PAL (M)</em> drop-frame code, which uses PAL
+ modulation with the NTSC frame rate of ~29.97 frames/second. The
+ M/PAL system is used primarily in Brazil.</p>
+ </div>
+
+ <p>If not specified, then <code>nonDrop</code> must be assumed to
+ apply.</p>
+
+ <p>A <code>ttp:dropMode</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-frameRate" name=
+ "parameter-attribute-frameRate"></a>6.2.4 ttp:frameRate</h4>
+
+ <p>The <code>ttp:frameRate</code> attribute is used to specify the
+ frame rate of a related media object or the intrinsic frame rate of a
+ <em>Document Instance</em> in case it is intended to function as an
+ independent media object.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id="parameter-attribute-frameRate-syntax"
+ name="parameter-attribute-frameRate-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:frameRate
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:frameRate
+ : <a href=
+"#style-value-digit"><digit></a>+ // <em>value</em> > 0
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The frame rate that applies to a <em>Document Instance</em> is
+ used to interpret time expressions that are expressed in
+ <em>frames</em> as defined by <a href=
+ "#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+
+ <p>If the <code>media</code> time base applies and the effective
+ frame rate is integral, then a frame is interpreted as a division of
+ a second of media time, such that if the frame rate is specified as
+ <em>F</em>, then a second of media time is divided into <em>F</em>
+ intervals of equal duration, where each interval is labeled as frame
+ <em>f</em>, with <em>f</em> ∈ [0…<em>F−1</em>].</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See <a href="#time-expression-semantics-media"><b>N.2 Media Time
+ Base</b></a> for further details on the interpretation of time
+ expressions for the <code>media</code> time base.</p>
+ </div>
+
+ <p>If not specified, the frame rate must be considered to be equal to
+ some application defined frame rate, or if no application defined
+ frame rate applies, then thirty (30) frames per second. If specified,
+ then the frame rate must be greater than zero (0).</p>
+
+ <p>A <code>ttp:frameRate</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-frameRateMultiplier" name=
+ "parameter-attribute-frameRateMultiplier"></a>6.2.5
+ ttp:frameRateMultiplier</h4>
+
+ <p>The <code>ttp:frameRateMultiplier</code> attribute is used to
+ specify a multiplier to be applied to the frame rate specified by a
+ <code>ttp:frameRate</code> attribute in order to compute the
+ effective frame rate.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id=
+ "parameter-attribute-frameRateMultiplier-syntax" name=
+ "parameter-attribute-frameRateMultiplier-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:frameRateMultiplier
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:frameRateMultiplier
+ : numerator denominator // <em>numerator</em> != 0; <em>denominator</em> != 0
+
+numerator | denominator
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>A frame rate multiplier is used when the desired frame rate cannot
+ be expressed as an integral number of frames per second.</p>
+
+ <p>If not specified, the frame rate multiplier must be considered to
+ be equal to one (1:1). Both numerator and denominator must be
+ non-zero.</p>
+
+ <p>A <code>ttp:frameRateMultiplier</code> attribute is considered to
+ be significant only when specified on the <code>tt</code>
+ element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The frame rate multiplier used for synchronizing with NTSC
+ <a href="#smpte170m">[SMPTE 170M]</a> formatted video objects at 30
+ frames per second is nominally 1000:1001. The nominal frame rate of
+ NTSC video is defined as the chrominance sub-carrier frequency of
+ 3,579,545.45…Hz (= 5.0MHz × 63/88) times the ratio 2/455 divided by
+ the number of horizontal lines per frame of 525, which yields a
+ frame rate of 29.970029970029… (= 30 × 1000/1001) frames per
+ second. Other frame rate multipliers apply to different regions of
+ usage and video format standards.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Except in the case of PAL/M, the frame rate multiplier used for
+ synchronizing with PAL formatted video objects at 25 frames per
+ second is nominally 1:1.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-markerMode" name=
+ "parameter-attribute-markerMode"></a>6.2.6 ttp:markerMode</h4>
+
+ <p>The <code>ttp:markerMode</code> attribute is used to specify
+ constraints on the interpretation and use of time expressions that
+ correspond with <a href="#smpte12m">[SMPTE 12M]</a> time coordinates
+ when operating with time base of <code>smpte</code> as defined by
+ <a href="#parameter-attribute-timeBase"><b>6.2.11
+ ttp:timeBase</b></a>.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id="parameter-attribute-markerMode-syntax"
+ name="parameter-attribute-markerMode-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:markerMode
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:markerMode
+ : "continuous"
+ | "discontinuous"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the time base, defined by <a href=
+ "#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>, is
+ designated as <code>smpte</code>, then this parameter applies as
+ follows: if the parameter's value is <code>continuous</code>, then
+ <a href="#smpte12m">[SMPTE 12M]</a> time coordinates may be assumed
+ to be linear and either monotonically increasing or decreasing;
+ however, if <code>discontinuous</code>, then any assumption must not
+ be made regarding linearity or monotonicity of time coordinates.</p>
+
+ <p>If not specified, the value of this parameter must be considered
+ to be <code>discontinuous</code>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The default value for this parameter was originally specified
+ (in <a href=
+ "http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/">TTML 1.0 First
+ Edition</a>) as <code>continuous</code>; however, further
+ evaluation of the state of the industry indicates this choice was
+ incorrect, and that the most common default is
+ <code>discontinuous</code>.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Due to lack of industry consensus on the utility and
+ interpretation of the <code>continuous</code> marker mode, authors
+ are advised to avoid its use. Furthermore, the
+ <code>ttp:markerMode</code> is being considered for deprecation in
+ the next revision of this specification.</p>
+ </div>
+
+ <p>A <code>ttp:markerMode</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+
+ <p>If a value of <code>continuous</code> applies, then time
+ expressions may be converted to real time coordinates by taking into
+ account the computed frame rate and drop mode as expressed by the
+ <code>ttp:dropMode</code> parameter. In this case, the <em>Content
+ Processor</em> must create and maintain a <em>Synthetic SMPTE
+ Document Syncbase</em> within which these time expressions are
+ interpreted as further described in <a href=
+ "#timing-time-intervals"><b>10.4 Time Intervals</b></a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When operating with <code>smpte</code> time base and
+ <code>continuous</code> marker mode, there is an implied time
+ coordinate space, the <em>Synthetic SMPTE Document Syncbase</em>,
+ defined by the monotonically increasing (or decreasing) <a href=
+ "#smpte12m">[SMPTE 12M]</a> time coordinates, while taking into
+ account the computed frame rate and drop mode. All time expressions
+ are interpreted in relationship to this time coordinate space based
+ upon <em>SMPTE Time Code</em> synchronization events (markers),
+ where the <em>Document Processing Context</em> emits these events
+ with implied constraints regarding time coordinate monoticity and
+ resynchronization in the presence of dropped frames.</p>
+
+ <p>Use of <code>continuous</code> marker mode with the
+ <code>smpte</code> time base is different from using the
+ <code>media</code> time base because (1) the semantics of the
+ <code>ttp:dropMode</code> parameter apply to the former, but not
+ the latter, and (2) <a href="#smpte12m">[SMPTE 12M]</a> time
+ coordinates may be applied monotonically to media which has been
+ subjected to dilation in time, constriction in time, or reversal in
+ time.</p>
+ </div>
+
+ <p>If a value of <code>discontinuous</code> applies, then time
+ expressions must not be converted to real time coordinates,
+ arithmetical operators (addition, multiplication) are not defined on
+ time expressions, and, consequently, any (well-formed) expression of
+ a duration must be considered to be invalid.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When operating with <code>smpte</code> time base and
+ <code>discontinuous</code> marker mode, there is no effective time
+ coordinate space; rather, all time expressions are interpreted as
+ labeled synchronization events (markers), where the <em>Document
+ Processing Context</em> emits these events, which, when they
+ correspond with time expressions that denote the same label, cause
+ a temporal interval to begin or end accordingly.</p>
+
+ <p>An additional side-effect of operating in
+ <code>discontinuous</code> mode is that time expressions of
+ children have no necessary relationship with time expressions of
+ their temporal container; that is, temporal containers and children
+ of these containers are temporally activated and inactivated
+ independently based on the occurrence of a labeled synchronization
+ (marker) event.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The notion of marker discontinuity as captured by this parameter
+ is logically independent from the method used to count frames as
+ expressed by the <code>ttp:dropMode</code> parameter. In
+ particular, even if the <code>ttp:dropMode</code> parameter is
+ specified as <code>dropNTSC</code> or <code>dropPAL</code>, the
+ marker mode may be specified as <code>continuous</code>, even in
+ the presence of frame count discontinuities induced by the frame
+ counting method, unless there were some other non-linearity or
+ discontinuity in marker labeling, for example, two consecutive
+ frames labeled as <code>10:00:00:00</code> and
+ <code>10:00:01:00</code>.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-pixelAspectRatio" name=
+ "parameter-attribute-pixelAspectRatio"></a>6.2.7
+ ttp:pixelAspectRatio</h4>
+
+ <p>The <code>ttp:pixelAspectRatio</code> attribute may be used by a
+ content author to express the aspect ratio of non-square pixels in
+ the production of content that makes use of pixel coordinates.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id=
+ "parameter-attribute-pixelAspectRatio-syntax" name=
+ "parameter-attribute-pixelAspectRatio-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:pixelAspectRatio
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:pixelAspectRatio
+ : width height // <em>width</em> != 0; <em>height</em> != 0
+
+width | height
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If not specified, then square pixels (i.e., aspect ratio 1:1) must
+ be assumed to apply. If specified, then both width and height must be
+ non-zero.</p>
+
+ <p>A <code>ttp:pixelAspectRatio</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>This parameter may be used by a content transcoder or translator
+ in order to convert pixel measurements between different pixel
+ aspect ratios while still maintaining authorial layout
+ intentions.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-profile" name=
+ "parameter-attribute-profile"></a>6.2.8 ttp:profile</h4>
+
+ <p>The <code>ttp:profile</code> attribute may be used by a content
+ author to express the profile of the Timed Text Markup Language
+ (TTML) used in a <em>Document Instance</em>.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ <code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML
+ Schema Part 2]</a>, §3.2.17, and, further, must specify a profile
+ designator in accordance with <a href="#vocabulary-profiles"><b>5.2
+ Profiles</b></a>.</p>
+
+ <p>A <code>ttp:profile</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-subFrameRate" name=
+ "parameter-attribute-subFrameRate"></a>6.2.9 ttp:subFrameRate</h4>
+
+ <p>The <code>ttp:subFrameRate</code> attribute is used to specify the
+ sub-frame rate of a related media object or the intrinsic sub-frame
+ rate of a <em>Document Instance</em> in case it is intended to
+ function as an independent media object.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id="parameter-attribute-subFrameRate-syntax"
+ name="parameter-attribute-subFrameRate-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:subFrameRate
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:subFrameRate
+ : <a href=
+"#style-value-digit"><digit></a>+ // <em>value</em> > 0
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The sub-frame rate that applies to a <em>Document Instance</em> is
+ used to interpret time expressions that are expressed in
+ <em>sub-frames</em> as defined by <a href=
+ "#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+
+ <p>If the <code>media</code> time base applies and the effective
+ frame rate is integral, a sub-frame is interpreted as a division of a
+ frame of media time, such that if the sub-frame rate is specified as
+ <em>S</em>, then a frame of media time is divided into <em>S</em>
+ intervals of equal duration, where each interval is labeled as
+ sub-frame <em>s</em>, with <em>s</em> ∈ [0…<em>S−1</em>].</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See <a href="#time-expression-semantics-media"><b>N.2 Media Time
+ Base</b></a> for further details on the interpretation of time
+ expressions for the <code>media</code> time base.</p>
+ </div>
+
+ <p>If not specified, the sub-frame rate must be considered to be
+ equal to one (1). If specified, then the sub-frame rate must be
+ greater than zero (0).</p>
+
+ <p>A <code>ttp:subFrameRate</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The sub-frame is sometimes referred to as a <em>field</em> in
+ the context of synchronization with an interlaced video media
+ object.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-tickRate" name=
+ "parameter-attribute-tickRate"></a>6.2.10 ttp:tickRate</h4>
+
+ <p>The <code>ttp:tickRate</code> attribute is used to specify the
+ tick rate of a related media object or the intrinsic tick rate of
+ content of a <em>Document Instance</em> in case it is intended to
+ function as an independent media object.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id="parameter-attribute-tickRate-syntax"
+ name="parameter-attribute-tickRate-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:tickRate
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:tickRate
+ : <a href=
+"#style-value-digit"><digit></a>+ // <em>value</em> > 0
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The tick rate that applies to a <em>Document Instance</em> is used
+ to interpret time expressions that are expressed in <em>ticks</em> by
+ using the <code>t</code> metric as defined by <a href=
+ "#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+
+ <p>If the <code>media</code> time base applies, a tick is interpreted
+ as an integral division of a second of media time, such that if the
+ tick rate is specified as <em>T</em>, then a second of media time is
+ divided into <em>T</em> intervals of equal duration, where each
+ interval is labeled as tick <em>t</em>, with <em>t</em> ∈
+ [0…<em>T−1</em>].</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See <a href="#time-expression-semantics-media"><b>N.2 Media Time
+ Base</b></a> for further details on the interpretation of time
+ expressions for the <code>media</code> time base.</p>
+ </div>
+
+ <p>If not specified, then if a frame rate is specified, the tick rate
+ must be considered to be the effective frame rate multiplied by the
+ sub-frame rate (i.e., ticks are interpreted as sub-frames); or, if no
+ frame rate is specified, the tick rate must be considered to be one
+ (1) tick per second of media time. If specified, then the tick rate
+ must not be zero (0).</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>There is no predefined relationship between ticks and frames or
+ sub-frames. Ticks are an arbitrary division of seconds that permit
+ use of fixed point arithmetic rather than fractional (and
+ potentially inexact) expressions of seconds.</p>
+ </div>
+
+ <p>A <code>ttp:tickRate</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="parameter-attribute-timeBase" name=
+ "parameter-attribute-timeBase"></a>6.2.11 ttp:timeBase</h4>
+
+ <p>The <code>ttp:timeBase</code> attribute is used to specify the
+ temporal coordinate system by means of which time expressions are
+ interpreted in a <em>Document Instance</em>.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax:</p><a id="parameter-attribute-timeBase-syntax"
+ name="parameter-attribute-timeBase-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttp:timeBase
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttp:timeBase
+ : "media"
+ | "smpte"
+ | "clock"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the time base is designated as <code>media</code>, then a time
+ expression denotes a coordinate in some media object's time line,
+ where the media object may be an external media object with which the
+ content of a <em>Document Instance</em> is to be synchronized, or it
+ may be the content of a <em>Document Instance</em> itself in a case
+ where the timed text content is intended to establish an independent
+ time line.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When using a media time base, if that time base is paused or
+ scaled positively or negatively, i.e., the media play rate is not
+ unity, then it is expected that the presentation of associated
+ Timed Text content will be similarly paused, accelerated, or
+ decelerated, respectively. The means for controlling an external
+ media time base is outside the scope of this specification.</p>
+ </div>
+
+ <p>If the time base is designated as <code>smpte</code>, then a time
+ expression denotes a <a href="#smpte12m">[SMPTE 12M]</a> time
+ coordinate with which the content of a <em>Document Instance</em> is
+ to be synchronized. In this case, the value of the
+ <code>ttp:markerMode</code> and <code>ttp:dropMode</code> parameters
+ apply, as defined by <a href=
+ "#parameter-attribute-markerMode"><b>6.2.6 ttp:markerMode</b></a> and
+ <a href="#parameter-attribute-dropMode"><b>6.2.3
+ ttp:dropMode</b></a>, respectively.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When the time base is designated as <code>smpte</code>, every
+ time expression denotes a media marker value akin to that defined
+ by <a href="#smil21">[SMIL 2.1]</a>, § 10.4.1, except instead of
+ using an opaque marker name, a structured <a href=
+ "#smpte12m">[SMPTE 12M]</a> time coordinate serves as the marker
+ name.</p>
+ </div>
+
+ <p>If the time base is designated as <code>clock</code>, then the
+ time expression denotes a coordinate in some real-world time line as
+ established by some real-time clock, such as the local wall-clock
+ time or UTC (Coordinated Universal Time) or GPS (Global Positioning
+ System) time lines.</p>
+
+ <p>If not specified, the default time base must be considered to be
+ <code>media</code>.</p>
+
+ <p>A <code>ttp:timeBase</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+
+ <p>When operating with either <code>media</code> or
+ <code>smpte</code> time bases, a diachronic presentation of a
+ <em>Document Instance</em> may be subject to transformations of the
+ controlling time line, such as temporal reversal, dilation
+ (expansion), or constriction (compression); however, when operating
+ with the <code>clock</code> time base, no transformations are
+ permitted, and diachronic presentation proceeds on a linear,
+ monotonically increasing time line based on the passage of real
+ time.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Due to there being only one time base parameter that applies to
+ a given <em>Document Instance</em>, the interpretation of time
+ expressions is uniform throughout the <em>Document
+ Instance</em>.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See <a href="#time-expression-semantics"><b>N Time Expression
+ Semantics</b></a> for further details on the interpretation of time
+ expressions according to the designated time base.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="content" name="content"></a>7 Content</h2>
+
+ <p>This section specifies the <em>content</em> matter of the core
+ vocabulary catalog.</p>
+
+ <div class="div2">
+ <h3><a id="content-element-vocabulary" name=
+ "content-element-vocabulary"></a>7.1 Content Element Vocabulary</h3>
+
+ <p>The following elements specify the structure and principal content
+ aspects of a <em>Document Instance</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#document-structure-vocabulary-tt"><b>7.1.1
+ tt</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#document-structure-vocabulary-head"><b>7.1.2
+ head</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#document-structure-vocabulary-body"><b>7.1.3
+ body</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-div"><b>7.1.4 div</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-p"><b>7.1.5 p</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-span"><b>7.1.6 span</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-br"><b>7.1.7 br</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="document-structure-vocabulary-tt" name=
+ "document-structure-vocabulary-tt"></a>7.1.1 tt</h4>
+
+ <p>The <code>tt</code> element serves as the root document element of
+ a <em>Document Instance</em>.</p>
+
+ <p>The <code>tt</code> element accepts as its children zero or one
+ <code>head</code> element followed by zero or one <code>body</code>
+ element.</p><a id="elt-syntax-tt" name="elt-syntax-tt"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: tt
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt
+ <a href="#style-attribute-extent">tts:extent</a> = string
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang"><span class=
+"reqattr">xml:lang</span></a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>) : default
+ {<em>any attribute in TT Parameter namespace</em>}
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> <a href=
+"#document-structure-vocabulary-head">head</a>?, <a href=
+"#document-structure-vocabulary-body">body</a>?
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The <em>Root Temporal Extent</em>, i.e., the time interval over
+ which a <em>Document Instance</em> is active, has an implicit
+ duration that is equal to the implicit duration of the
+ <code>body</code> element of the document, if the <code>body</code>
+ element is present, or zero, if the <code>body</code> element is
+ absent.</p>
+
+ <p>If the <code>tts:extent</code> attribute is specified on the
+ <code>tt</code> element, then it must adhere to <a href=
+ "#style-attribute-extent"><b>8.2.7 tts:extent</b></a>, in which case
+ it specifies the spatial extent of the <em>Root Container Region</em>
+ in which content regions are located and presented. If no
+ <code>tts:extent</code> attribute is specified, then the spatial
+ extent of the <em>Root Container Region</em> is considered to be
+ determined by the <em>Document Processing Context</em>. The origin of
+ the <em>Root Container Region</em> is determined by the <em>Document
+ Processing Context</em>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the absence of other requirements, and if a <em>Related Media
+ Object</em> exists, then it is recommended that the <em>Document
+ Processing Context</em> determine that:</p>
+
+ <ul>
+ <li>
+ <p>if no <code>tts:extent</code> is specified on the root
+ <code>tt</code> element, the extent of the <em>Root Container
+ Region</em> be established as equal to the extent of the
+ <em>Related Media Object Region</em>; and</p>
+ </li>
+
+ <li>
+ <p>the origin of the <em>Root Container Region</em> be
+ established so that this region is centered in the <em>Related
+ Media Object Region</em>.</p>
+ </li>
+ </ul>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>If an author desires to signal the (storage or image) aspect
+ ratio of the <em>Root Container Region</em> without specifying its
+ resolution, then this may be accomplished by using metadata
+ specified in an external namespace, such as
+ <code>m708:aspectRatio</code> as defined in <a href=
+ "#smpte2052">[SMPTE 2052-11]</a>, §5.4.4. This would permit, for
+ example, the interchange of information that reflects the the
+ semantics of <a href="#cea708d">[CEA-708-D]</a> , §4.5 “Caption
+ Service Metadata”, “ASPECT RATIO”.</p>
+ </div>
+
+ <p>An <code>xml:lang</code> attribute must be specified on the
+ <code>tt</code> element. If the attribute value is empty, it
+ signifies that there is no default language that applies to the text
+ contained within the <em>Document Instance</em>.</p>
+
+ <p>If no <code>xml:space</code> attribute is specified upon the
+ <code>tt</code> element, then it must be considered as if the
+ attribute had been specified with a value of
+ <code>default</code>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="document-structure-vocabulary-head" name=
+ "document-structure-vocabulary-head"></a>7.1.2 head</h4>
+
+ <p>The <code>head</code> element is a container element used to group
+ header matter, including metadata, profile, styling, and layout
+ information.</p>
+
+ <p>The <code>head</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group, followed
+ by zero or more elements in the <code>Parameters.class</code> element
+ group, followed by zero or one <code>styling</code> element, followed
+ by zero or one <code>layout</code> element.</p>
+
+ <p>Any metadata specified by children in the
+ <code>Metadata.class</code> element group applies semantically to the
+ <em>Document Instance</em> as a whole, and not just the
+ <code>head</code> element.</p>
+
+ <p>Any parameters specified by children in the
+ <code>Parameters.class</code> element group applies semantically to
+ the <em>Document Instance</em> as a whole, and not just the
+ <code>head</code> element.</p>
+
+ <p>A <code>styling</code> child element is used to specify style
+ constructs that are referenced from other style constructs, by layout
+ constructs, and by content elements.</p>
+
+ <p>A <code>layout</code> child element is used to specify layout
+ constructs that are referenced by content elements.</p><a id=
+ "elt-syntax-head" name="elt-syntax-head"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: head
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<head
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</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">Parameters.class</a>*, <a href=
+"#styling-vocabulary-styling">styling</a>?, <a href=
+"#layout-vocabulary-layout">layout</a>?
+</head>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>To the extent that time semantics apply to the content of the
+ <code>head</code> element, the implied time interval of this element
+ is defined to be coterminous with the <em>Root Temporal
+ Extent</em>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="document-structure-vocabulary-body" name=
+ "document-structure-vocabulary-body"></a>7.1.3 body</h4>
+
+ <p>The <code>body</code> element functions as a logical container and
+ a temporal structuring element for a sequence of textual content
+ units represented as logical divisions.</p>
+
+ <p>The <code>body</code> element accepts as its children zero or more
+ 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 <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> element group apply semantically to the
+ <code>body</code> element.</p><a id="elt-syntax-body" name=
+ "elt-syntax-body"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: body
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<body
+ <a href="#timing-attribute-begin">begin</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href=
+"#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<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>*
+</body>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>An author may specify a temporal interval for a <code>body</code>
+ element using the <code>begin</code>, <code>dur</code>, and
+ <code>end</code> attributes. If the begin point of this interval
+ remains unspecified, then the begin point is interpreted as the
+ beginning point of the <em>Root Temporal Extent</em>. Similarly, if
+ the end point of this interval remains unspecified, then the end
+ point is interpreted as the ending point of the <em>Root Temporal
+ Extent</em>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A <em>Document Instance</em> referenced from a SMIL presentation
+ is expected to follow the same timing rules as apply to other SMIL
+ media objects.</p>
+ </div>
+
+ <p>If relative begin or end times are specified on the
+ <code>body</code> element, then these times are resolved by reference
+ to the beginning and ending time of the <em>Root Temporal
+ Extent</em>.</p>
+
+ <p>If the <em>Root Temporal Extent</em> is shorter than the computed
+ duration of the <code>body</code> element, then the active time
+ interval of a <code>body</code> element is truncated to the active
+ end point of the <em>Root Temporal Extent</em>.</p>
+
+ <p>An author may associate a set of style properties with a
+ <code>body</code> element by means of either the <code>style</code>
+ attribute or inline style attributes or a combination thereof.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Style properties that are associated with a <code>body</code>
+ element in a <em>Document Instance</em> are available for style
+ inheritance by descendant content elements such as
+ <code>div</code>, <code>p</code>, <code>span</code> and
+ <code>br</code>.</p>
+ </div>
+
+ <p>If no <code>timeContainer</code> attribute is specified on a
+ <code>body</code> element, then it must be interpreted as having
+ <em>parallel</em> time containment semantics.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="content-vocabulary-div" name=
+ "content-vocabulary-div"></a>7.1.4 div</h4>
+
+ <p>The <code>div</code> element functions as a logical container and
+ a temporal structuring element for a sequence of textual content
+ units represented as logical sub-divisions or paragraphs.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When rendered on a continuous (non-paged) visual presentation
+ medium, a <code>div</code> element is expected to generate one or
+ more block areas that contain zero or more child block areas
+ generated by the <code>div</code> element's descendant
+ <code>p</code> elements.</p>
+
+ <p>If some block area generated by a <code>div</code> element does
+ not contain any child areas, then it is not expected to be
+ presented.</p>
+ </div>
+
+ <p>The <code>div</code> element accepts as its children zero or more
+ 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 <code>div</code> or <code>p</code>
+ elements.</p>
+
+ <p>Any metadata specified by children in the
+ <code>Metadata.class</code> element group applies semantically to the
+ <code>div</code> element and its descendants as a whole.</p>
+
+ <p>Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>div</code> element.</p><a id="elt-syntax-div" name=
+ "elt-syntax-div"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: div
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<div
+ <a href="#timing-attribute-begin">begin</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href=
+"#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<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>*
+</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 the <code>style</code>
+ attribute or inline style attributes or a combination thereof.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Style properties that are associated with a <code>div</code>
+ element in a <em>Document Instance</em> are available for style
+ inheritance by descendant content elements such as
+ <code>div</code>, <code>p</code>, <code>span</code>, and
+ <code>br</code>.</p>
+ </div>
+
+ <p>If no <code>timeContainer</code> attribute is specified on a
+ <code>div</code> element, then it must be interpreted as having
+ <em>parallel</em> time containment semantics.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="content-vocabulary-p" name=
+ "content-vocabulary-p"></a>7.1.5 p</h4>
+
+ <p>A <code>p</code> element represents a logical paragraph, serving
+ as a transition between block level and inline level formatting
+ semantics.</p>
+
+ <p>The <code>p</code> element accepts as its children zero or more
+ 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 intermixed <code>span</code>
+ elements, <code>br</code> elements, or text nodes interpreted as an
+ anonymous spans.</p>
+
+ <p>Any metadata specified by children in the
+ <code>Metadata.class</code> element group applies semantically to the
+ <code>p</code> element and its descendants as a whole.</p>
+
+ <p>Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>p</code> element.</p><a id="elt-syntax-p" name=
+ "elt-syntax-p"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: p
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<p
+ <a href="#timing-attribute-begin">begin</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href=
+"#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<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>*
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>An author may associate a set of style properties with a
+ <code>p</code> element by means of either the <code>style</code>
+ attribute or inline style attributes or a combination thereof.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Style properties that are associated with a <code>p</code>
+ element in a <em>Document Instance</em> are available for style
+ inheritance by descendant content elements such as
+ <code>span</code> and <code>br</code>.</p>
+ </div>
+
+ <p>If no <code>timeContainer</code> attribute is specified on a
+ <code>p</code> element, then it must be interpreted as having
+ <em>parallel</em> time containment semantics.</p>
+
+ <p>If a sequence of children of a <code>p</code> element consists
+ solely of character information items, then that sequence must be
+ considered to be an <em>anonymous span</em> for the purpose of
+ applying style properties that apply to <code>span</code>
+ elements.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The presentation semantics of TTML effectively implies that a
+ <code>p</code> element constitutes a line break. In particular, it
+ is associated with a block-stacking constraint both before the
+ first generated line area and after the last generated line area.
+ See <a href="#semantics-region-layout-step-2"><b>9.3.3 Synchronic
+ Flow Processing</b></a> for further details.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="content-vocabulary-span" name=
+ "content-vocabulary-span"></a>7.1.6 span</h4>
+
+ <p>The <code>span</code> element functions as a logical container and
+ a temporal structuring element for a sequence of textual content
+ units having inline level formatting semantics.</p>
+
+ <p>When presented on a visual medium, a <code>span</code> element is
+ intended to generate a sequence of inline areas, each containing one
+ or more glyph areas.</p>
+
+ <p>The <code>span</code> element accepts as its children zero or more
+ 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 intermixed <code>span</code>
+ elements, <code>br</code> elements, or text nodes interpreted as
+ anonymous spans.</p>
+
+ <p>Any metadata specified by children in the
+ <code>Metadata.class</code> element group applies semantically to the
+ <code>span</code> element and its descendants as a whole.</p>
+
+ <p>Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>span</code> element.</p><a id="elt-syntax-span" name=
+ "elt-syntax-span"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: span
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<span
+ <a href="#timing-attribute-begin">begin</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href=
+"#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<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>*
+</span>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>An author may associate a set of style properties with a
+ <code>span</code> element by means of either the <code>style</code>
+ attribute or inline style attributes or a combination thereof.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Style properties that are associated with a <code>span</code>
+ element in a <em>Document Instance</em> are available for style
+ inheritance by descendant content elements such as
+ <code>span</code> and <code>br</code>.</p>
+ </div>
+
+ <p>If no <code>timeContainer</code> attribute is specified on a
+ <code>span</code> element, then it must be interpreted as having
+ <em>parallel</em> time containment semantics.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="content-vocabulary-br" name=
+ "content-vocabulary-br"></a>7.1.7 br</h4>
+
+ <p>The <code>br</code> element denotes an explicit line
+ break.</p><a id="elt-syntax-br" name="elt-syntax-br"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: br
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<br
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<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>*
+</br>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>When presented on a visual medium, the presence of a
+ <code>br</code> element must be interpreted as a forced line
+ break.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The visual presentation of a <code>br</code> element is intended
+ to produce the same effect as the control character <code>CR</code>
+ (U+000D) followed by the control code <code>LF</code> (U+000A) when
+ presented on a teletype device. Therefore, two <code>br</code>
+ elements in sequence will produce a different effect than a single
+ <code>br</code> element.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="content-attribute-vocabulary" name=
+ "content-attribute-vocabulary"></a>7.2 Content Attribute
+ Vocabulary</h3>
+
+ <p>This section defines the following common attributes used with many
+ or all element types in the core vocabulary catalog:</p>
+
+ <ul>
+ <li>
+ <p><a href="#content-attribute-id"><b>7.2.1 xml:id</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-attribute-lang"><b>7.2.2 xml:lang</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-attribute-space"><b>7.2.3
+ xml:space</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="content-attribute-id" name=
+ "content-attribute-id"></a>7.2.1 xml:id</h4>
+
+ <p>The <code>xml:id</code> attribute is used as defined by <a href=
+ "#xmlid">[XML ID]</a>.</p>
+
+ <p>The <code>xml:id</code> attribute may be used with any element in
+ the core vocabulary catalog.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="content-attribute-lang" name=
+ "content-attribute-lang"></a>7.2.2 xml:lang</h4>
+
+ <p>The <code>xml:lang</code> attribute is used as defined by <a href=
+ "#xml10">[XML 1.0]</a>, §2.12, <em>Language Identification</em>.</p>
+
+ <p>The <code>xml:lang</code> attribute must be specified on the
+ <code>tt</code> element and may be specified by an instance of any
+ other element type in the core vocabulary catalog except parameter
+ vocabulary.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="content-attribute-space" name=
+ "content-attribute-space"></a>7.2.3 xml:space</h4>
+
+ <p>The <code>xml:space</code> attribute is used as defined by
+ <a href="#xml10">[XML 1.0]</a>, §2.10, <em>White Space
+ Handling</em>.</p>
+
+ <p>The <code>xml:space</code> attribute may be used with any element
+ in the core vocabulary catalog except parameter vocabulary.</p>
+
+ <p>The semantics of the value <code>default</code> are fixed to mean
+ that when performing presentation processing of a <em>Document
+ Instance</em> as described by <a href=
+ "#semantics-region-layout-step-2"><b>9.3.3 Synchronic Flow
+ Processing</b></a>, processing must occur as if the following
+ properties were specified on the affected elements of an equivalent
+ intermediate XSL-FO document:</p>
+
+ <ul>
+ <li>
+ <p><code>suppress-at-line-break="auto"</code></p>
+ </li>
+
+ <li>
+ <p><code>linefeed-treatment="treat-as-space"</code></p>
+ </li>
+
+ <li>
+ <p><code>white-space-collapse="true"</code></p>
+ </li>
+
+ <li>
+ <p>
+ <code>white-space-treatment="ignore-if-surrounding-linefeed"</code></p>
+ </li>
+ </ul>
+
+ <p>Similarly, the semantics of the value <code>preserve</code> are
+ fixed to mean that when performing presentation processing,
+ processing must occur as if the following properties were specified
+ on the affected elements of an equivalent intermediate XSL-FO
+ document:</p>
+
+ <ul>
+ <li>
+ <p><code>suppress-at-line-break="retain"</code></p>
+ </li>
+
+ <li>
+ <p><code>linefeed-treatment="preserve"</code></p>
+ </li>
+
+ <li>
+ <p><code>white-space-collapse="false"</code></p>
+ </li>
+
+ <li>
+ <p><code>white-space-treatment="preserve"</code></p>
+ </li>
+ </ul>
+
+ <p>When performing other types of processing intended to eventually
+ result in a visual presentation by means other than those described
+ in this specification, the semantics of space collapsing and
+ preservation as described above should be respected. For other types
+ of processing, the treatment of the <code>xml:space</code> attribute
+ is processor dependent, but should respect the semantics described
+ above if possible.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the above four cited XSL-FO properties are
+ defined by by <a href="#xsl11">[XSL 1.1]</a>, § 7.17.3, 7.16.7,
+ 7.16.12, and 7.16.8, respectively.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="styling" name="styling"></a>8 Styling</h2>
+
+ <p>This section specifies the <em>styling</em> matter of the core
+ vocabulary catalog, where styling is to be understood as a separable
+ layer of information that applies to content and that denotes authorial
+ intentions about the presentation of that content.</p>
+
+ <p>Styling attributes are included in TTML to enable authorial intent of
+ presentation to be included within a self-contained document. This
+ section describes the semantics of style presentation in terms of a
+ standard processing model. TTML Processors are not required to present
+ <em>Document Instances</em> in any particular way; but an implementation
+ of this model by a TTML Presentation Processor that provides externally
+ observable results that are consistent with this model is likely to lead
+ to a user experience that closely resembles the experience intended by
+ the documents' authors.</p>
+
+ <p>The semantics of TTML style presentation are described in terms of the
+ model in <a href="#xsl11">[XSL 1.1]</a>. The effects of the attributes in
+ this section are intended to be compatible with the layout and formatting
+ model of XSL; however, Presentation agents may use any technology to
+ satisfy the authorial intent of the document. In particular since
+ <a href="#css2">[CSS2]</a> is a subset of this model, a CSS processor may
+ be used for the features that the models have in common.</p>
+
+ <p>No normative use of an <code><?xml-stylesheet ... ?></code>
+ processing instruction is defined by this specification.</p>
+
+ <div class="div2">
+ <h3><a id="styling-element-vocabulary" name=
+ "styling-element-vocabulary"></a>8.1 Styling Element Vocabulary</h3>
+
+ <p>The following elements specify the structure and principal styling
+ aspects of a <em>Document Instance</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#styling-vocabulary-styling"><b>8.1.1
+ styling</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#styling-vocabulary-style"><b>8.1.2 style</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="styling-vocabulary-styling" name=
+ "styling-vocabulary-styling"></a>8.1.1 styling</h4>
+
+ <p>The <code>styling</code> element is a container element used to
+ group styling matter, including metadata that applies to styling
+ matter.</p>
+
+ <p>The <code>styling</code> element accepts as its children zero or
+ more elements in the <code>Metadata.class</code> element group,
+ followed by zero or more <code>style</code> elements.</p><a id=
+ "elt-syntax-styling" name="elt-syntax-styling"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: styling
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<styling
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</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=
+"#styling-vocabulary-style">style</a>*
+</styling>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>To the extent that time semantics apply to the content of the
+ <code>styling</code> element, the implied time interval of this
+ element is defined to be coterminous with the <em>Root Temporal
+ Extent</em>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="styling-vocabulary-style" name=
+ "styling-vocabulary-style"></a>8.1.2 style</h4>
+
+ <p>The <code>style</code> element is used to define a set of style
+ specifications expressed as a specified style set in accordance with
+ <a href="#semantics-style-resolution-processing-sss"><b>8.4.4.2
+ Specified Style Set Processing</b></a>.</p>
+
+ <p>The <code>style</code> element accepts as its children zero or
+ more <code>metadata</code> elements.</p><a id="elt-syntax-style"
+ name="elt-syntax-style"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: style
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<style
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Style namespace</em>}
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> EMPTY
+</style>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If a <code>style</code> element appears as a descendant of a
+ <code>region</code> element, then the <code>style</code> element must
+ be ignored for the purpose of computing referential styles as defined
+ by <a href="#semantics-style-association-referential"><b>8.4.1.2
+ Referential Styling</b></a> and <a href=
+ "#semantics-style-association-chained-referential"><b>8.4.1.3 Chained
+ Referential Styling</b></a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>That is to say, when referential styling is used by an element
+ to refer to a <code>style</code> element, then the referenced
+ <code>style</code> element must appear as a descendant of the
+ <code>styling</code> element, and not in any other context.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="styling-attribute-vocabulary" name=
+ "styling-attribute-vocabulary"></a>8.2 Styling Attribute
+ Vocabulary</h3>
+
+ <p>This section defines the <a href="#style-attribute-style"><b>8.2.1
+ style</b></a> attribute used with both style definition elements as
+ well as content elements.</p>
+
+ <p>In addition, this section specifies the following attributes in the
+ TT Style Namespace for use with style definition elements, certain
+ layout elements, and content elements that support inline style
+ specifications:</p>
+
+ <ul>
+ <li>
+ <p><a href="#style-attribute-backgroundColor"><b>8.2.2
+ tts:backgroundColor</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-color"><b>8.2.3 tts:color</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-direction"><b>8.2.4
+ tts:direction</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-display"><b>8.2.5
+ tts:display</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-displayAlign"><b>8.2.6
+ tts:displayAlign</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-extent"><b>8.2.7
+ tts:extent</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-fontFamily"><b>8.2.8
+ tts:fontFamily</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-fontSize"><b>8.2.9
+ tts:fontSize</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-fontStyle"><b>8.2.10
+ tts:fontStyle</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-fontWeight"><b>8.2.11
+ tts:fontWeight</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-lineHeight"><b>8.2.12
+ tts:lineHeight</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-opacity"><b>8.2.13
+ tts:opacity</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-origin"><b>8.2.14
+ tts:origin</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-overflow"><b>8.2.15
+ tts:overflow</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-padding"><b>8.2.16
+ tts:padding</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-showBackground"><b>8.2.17
+ tts:showBackground</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-textAlign"><b>8.2.18
+ tts:textAlign</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-textDecoration"><b>8.2.19
+ tts:textDecoration</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-textOutline"><b>8.2.20
+ tts:textOutline</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-unicodeBidi"><b>8.2.21
+ tts:unicodeBidi</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-visibility"><b>8.2.22
+ tts:visibility</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-wrapOption"><b>8.2.23
+ tts:wrapOption</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-writingMode"><b>8.2.24
+ tts:writingMode</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-zIndex"><b>8.2.25
+ tts:zIndex</b></a></p>
+ </li>
+ </ul>
+
+ <p>Unless explicitly stated otherwise, linear white-space (LWSP) must
+ appear between adjacent non-terminal components of a value of a TT
+ Style or TT Style Extension Property value unless some other delimiter
+ is permitted and used.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>This specification makes use of <em>lowerCamelCased</em> local
+ names for style attributes that are based upon like-named properties
+ defined by <a href="#xsl11">[XSL 1.1]</a>. This convention is
+ likewise extended to token values of such properties.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A style property may be expressed as a specified attribute on any
+ content element type independently of whether the property applies to
+ that element type. This capability permits the expression of an
+ inheritable style property on ancestor elements to which the property
+ does not apply.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-style" name=
+ "style-attribute-style"></a>8.2.1 style</h4>
+
+ <p>The <code>style</code> attribute is used by referential style
+ association to reference one or more <code>style</code> elements each
+ of which define a style (property) set.</p>
+
+ <p>The <code>style</code> attribute may be specified by an instance
+ of the following element types:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-div"><code>div</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-p"><code>p</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#layout-vocabulary-region"><code>region</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-span"><code>span</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#styling-vocabulary-style"><code>style</code></a></p>
+ </li>
+ </ul>
+
+ <p>If specified, the value of a <code>style</code> attribute must
+ adhere to the <code>IDREFS</code> data type defined by <a href=
+ "#xsd-2">[XML Schema Part 2]</a>, § 3.3.10, and, furthermore, each
+ IDREF must reference a <code>style</code> element which has a
+ <code>styling</code> element as an ancestor.</p>
+
+ <p>If the same IDREF, <em>ID<sub>1</sub></em>, appears more than one
+ time in the value of a <code>style</code> attribute, then there
+ should be an intervening IDREF, <em>ID<sub>2</sub></em>, where
+ <em>ID<sub>2</sub></em> is not equal to <em>ID<sub>1</sub></em>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>This constraint is intended to discourage the use of redundant
+ referential styling while still allowing the same style to be
+ referenced multiple times in order to potentially override prior
+ referenced styles, e.g., when an intervening, distinct style is
+ referenced in the IDREFS list.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See the specific element type definitions that permit use of the
+ <code>style</code> attribute, as well as <a href=
+ "#semantics-style-association-referential"><b>8.4.1.2 Referential
+ Styling</b></a> and <a href=
+ "#semantics-style-association-chained-referential"><b>8.4.1.3
+ Chained Referential Styling</b></a>, for further information on its
+ semantics.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-backgroundColor" name=
+ "style-attribute-backgroundColor"></a>8.2.2 tts:backgroundColor</h4>
+
+ <p>The <code>tts:backgroundColor</code> attribute is used to specify
+ a style property that defines the background color of a region or an
+ area generated by content flowed into a region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id=
+ "style-property-details-backgroundColor" name=
+ "style-property-details-backgroundColor"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><a href="#style-value-color"><color></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>transparent</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a>,
+ <a href="#content-vocabulary-div"><code>div</code></a>,
+ <a href="#content-vocabulary-p"><code>p</code></a>, <a href=
+ "#layout-vocabulary-region"><code>region</code></a>, <a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>The <code>tts:backgroundColor</code> style is illustrated by the
+ following example.</p><a id=
+ "style-attribute-backgroundColor-example-1" name=
+ "style-attribute-backgroundColor-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Background Color
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="306px 114px"/>
+ <style <span class="strong">tts:backgroundColor="red"</span>/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:padding="3px 40px"/>
+</region>
+...
+<p region="r1" <span class=
+"strong">tts:backgroundColor="purple"</span> tts:textAlign="center">
+ Twinkle, twinkle, little bat!<br/>
+ How <span <span class=
+"strong">tts:backgroundColor="green"</span>>I wonder</span> where you're at!
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-backgroundColor-example-1-images"
+ name="style-attribute-backgroundColor-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Background Color
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/backgroundColor.png" alt=
+ "TTML backgroundColor style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.8.2.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-color" name=
+ "style-attribute-color"></a>8.2.3 tts:color</h4>
+
+ <p>The <code>tts:color</code> attribute is used to specify a style
+ property that defines the foreground color of marks associated with
+ an area generated by content flowed into a region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-color" name=
+ "style-property-details-color"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><a href="#style-value-color"><color></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td>see prose</td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>The initial value of the <code>tts:color</code> property is
+ considered to be implementation dependent. In the absence of end-user
+ preference information, a conformant presentation processor should
+ use an initial value that is highly contrastive to the background
+ color of the <em>Root Container Region</em>.</p>
+
+ <p>The <code>tts:color</code> style is illustrated by the following
+ example.</p><a id="style-attribute-color-example-1" name=
+ "style-attribute-color-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Color
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:backgroundColor="black"/>
+ <style <span class="strong">tts:color="white"</span>/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ In spring, when woods are <span <span class=
+"strong">tts:color="green"</span>>getting green</span>,<br/>
+ I'll try and tell you what I mean.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-color-example-1-images" name=
+ "style-attribute-color-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Color
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/color.png" alt=
+ "TTML color style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.18.1.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-direction" name=
+ "style-attribute-direction"></a>8.2.4 tts:direction</h4>
+
+ <p>The <code>tts:direction</code> attribute is used to specify a
+ style property that defines the directionality of an embedding or
+ override according to the Unicode bidirectional algorithm.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-direction"
+ name="style-property-details-direction"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>ltr</code> | <code>rtl</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>ltr</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href="#content-vocabulary-p"><code>p</code></a>,
+ <a href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must ignore the attribute.</p>
+
+ <p>The <code>tts:direction</code> style is illustrated by the
+ following example.</p><a id="style-attribute-direction-example-1"
+ name="style-attribute-direction-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Direction
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span tts:unicodeBidi="bidiOverride" <span class=
+"strong">tts:direction="rtl"</span>>where the tourists snore.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-direction-example-1-images" name=
+ "style-attribute-direction-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Direction
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/direction.png" alt=
+ "TTML direction style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.29.1.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-display" name=
+ "style-attribute-display"></a>8.2.5 tts:display</h4>
+
+ <p>The <code>tts:display</code> attribute is used to specify a style
+ property that defines whether an element is a candidate for layout
+ and composition in a region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-display" name=
+ "style-property-details-display"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>auto</code> | <code>none</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>auto</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a>,
+ <a href="#content-vocabulary-div"><code>div</code></a>,
+ <a href="#content-vocabulary-p"><code>p</code></a>, <a href=
+ "#layout-vocabulary-region"><code>region</code></a>, <a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If the value of this attribute is <code>auto</code>, then the
+ affected element is a candidate for region layout and presentation;
+ however, if the value is <code>none</code>, then the affected element
+ and its descendants must be considered ineligible for region layout
+ and presentation.</p>
+
+ <p>The <code>tts:display</code> style is illustrated by the following
+ example.</p><a id="style-attribute-display-example-1" name=
+ "style-attribute-display-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Display
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="369px 119px"
+ tts:backgroundColor="black"
+ tts:color="white"
+ tts:displayAlign="before"
+ tts:textAlign="start"/>
+</region>
+...
+<div region="r1">
+ <p dur="5s">
+ [[[
+ <span <span class="strong">tts:display="none"</span>>
+ <set begin="1s" dur="1s" <span class=
+"strong">tts:display="auto"</span>/>
+ Beautiful soup,
+ </span>
+ <span <span class="strong">tts:display="none"</span>>
+ <set begin="2s" dur="1s" <span class=
+"strong">tts:display="auto"</span>/>
+ so rich and green,
+ </span>
+ <span <span class="strong">tts:display="none"</span>>
+ <set begin="3s" dur="1s" <span class=
+"strong">tts:display="auto"</span>/>
+ waiting in a hot tureen!
+ </span>
+ ]]]
+ </p>
+</div>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-display-example-1-images" name=
+ "style-attribute-display-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Display
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/display_0.png" alt=
+ "TTML display style property - [0,1)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/display_1.png" alt=
+ "TTML display style property - [1,2)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/display_2.png" alt=
+ "TTML display style property - [2,3)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/display_3.png" alt=
+ "TTML display style property - [3,4)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/display_4.png" alt=
+ "TTML display style property - [4,5)"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href=
+ "#css2">[CSS2]</a>, § 9.2.4.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-displayAlign" name=
+ "style-attribute-displayAlign"></a>8.2.6 tts:displayAlign</h4>
+
+ <p>The <code>tts:displayAlign</code> attribute is used to specify a
+ style property that defines the alignment of block areas in the block
+ progression direction.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-displayAlign"
+ name="style-property-details-displayAlign"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>before</code> | <code>center</code> |
+ <code>after</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>before</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>before</code> were specified.</p>
+
+ <p>The <code>tts:displayAlign</code> style is illustrated by the
+ following example.</p><a id="style-attribute-displayAlign-example-1"
+ name="style-attribute-displayAlign-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Display Align
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="128px 66px" tts:origin="0px 0px"
+ tts:backgroundColor="black" tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="before"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="192px 66px" tts:origin="128px 66px"/>
+ tts:backgroundColor="green" tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="after"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r3">
+ <style tts:extent="128px 66px"/> style tts:origin="0px 132px"
+ tts:backgroundColor="black" tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="before"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r4">
+ <style tts:extent="192px 66px" tts:origin="128px 198px"/>
+ tts:backgroundColor="green" tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="after"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+...
+<div>
+ <p region="r1">I sent a message to the fish:</p>
+ <p region="r2">I told them<br/> "This is what I wish."</p>
+ <p region="r3">The little fishes of the sea,</p>
+ <p region="r4">They sent an<br/> answer back to me.</p>
+</div>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-displayAlign-example-1-images" name=
+ "style-attribute-displayAlign-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Display Align
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/displayAlign.png" alt=
+ "TTML displayAlign style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.14.4.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-extent" name=
+ "style-attribute-extent"></a>8.2.7 tts:extent</h4>
+
+ <p>The <code>tts:extent</code> attribute is used to specify the
+ <em>width</em> and <em>height</em> of a region area (which may be the
+ <em>Root Container Region</em>).</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-extent" name=
+ "style-property-details-extent"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>auto</code> | <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>auto</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-tt"><code>tt</code></a>,
+ <a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>relative to width and height of <em>Root Container
+ Region</em></td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the value of this attribute consists of two <a href=
+ "#style-value-length"><length></a> specifications, then they
+ must be interpreted as <em>width</em> and <em>height</em>, where the
+ first specification is the <em>width</em>, and the second
+ specification is the <em>height</em>.</p>
+
+ <p>The <a href="#style-value-length"><length></a> value(s) used
+ to express extent must be non-negative.</p>
+
+ <p>If the value of this attribute is <code>auto</code>, then the
+ initial value of the style property must be considered to be the same
+ as the extent of the <em>Root Container Region</em>.</p>
+
+ <p>The extent of the <em>Root Container Region</em> is determined
+ either by a <code>tts:extent</code> specified on the <code>tt</code>
+ element, if present, or as described by <a href=
+ "#document-structure-vocabulary-tt"><b>7.1.1 tt</b></a> if not
+ present. If <code>tts:extent</code> is specified on the
+ <code>tt</code> element, then the width and height must be expressed
+ in terms of two <a href="#style-value-length"><length></a>
+ specifications, and these specifications must be expressed as
+ non-percentage, definite lengths using pixel units.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>auto</code> were specified.</p>
+
+ <p>The <code>tts:extent</code> style is illustrated by the following
+ example.</p><a id="style-attribute-extent-example-1" name=
+ "style-attribute-extent-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Extent
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style <span class="strong">tts:extent="330px 122px"</span>/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ 'Tis the voice of the Lobster:<br/>
+ I heard him declare,<br/>
+ "You have baked me too brown,<br/>
+ I must sugar my hair."
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-extent-example-1-images" name=
+ "style-attribute-extent-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Extent
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/extent.png" alt=
+ "TTML extent style property"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-fontFamily" name=
+ "style-attribute-fontFamily"></a>8.2.8 tts:fontFamily</h4>
+
+ <p>The <code>tts:fontFamily</code> attribute is used to specify a
+ style property that defines the font family from which glyphs are
+ selected for glyph areas generated by content flowed into a
+ region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-fontFamily"
+ name="style-property-details-fontFamily"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td>(<a href="#style-value-familyName"><familyName></a> |
+ <a href=
+ "#style-value-genericFamilyName"><genericFamilyName></a>)
+ (<code>","</code> (<a href=
+ "#style-value-familyName"><familyName></a> | <a href=
+ "#style-value-genericFamilyName"><genericFamilyName></a>))*</td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>default</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The initial value, <code>default</code>, is a generic font
+ family name, and is further described in <a href=
+ "#style-value-genericFamilyName"><b>8.3.6
+ <genericFamilyName></b></a> below.</p>
+ </div>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If a specified font family is not available, then a presentation
+ processor must attempt to map the specified font family to an
+ available font family that has similar typographic characteristics,
+ or, in the absence of such a mapping, it must interpret the font
+ family as if the value <code>default</code> were specified.</p>
+
+ <p>The <code>tts:fontFamily</code> style is illustrated by the
+ following example.</p><a id="style-attribute-fontFamily-example-1"
+ name="style-attribute-fontFamily-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Font Family
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="474px 146px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style <span class=
+"strong">tts:fontFamily="proportionalSansSerif"</span>/>
+</region>
+...
+<div region="r1">
+ <p>
+ "The time has come," the Walrus said,<br/>
+ "to talk of many things:
+ </p>
+ <p tts:textAlign="end" <span class=
+"strong">tts:fontFamily="monospaceSerif"</span>>
+ Of shoes, and ships, and sealing wax,<br/>
+ Of cabbages and kings,
+ </p>
+ <p>
+ And why the sea is boiling hot,<br/>
+ and whether pigs have wings."
+ </p>
+</div>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-fontFamily-example-1-images" name=
+ "style-attribute-fontFamily-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Font Family
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/fontFamily.png" alt=
+ "TTML fontFamily style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.9.2.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-fontSize" name=
+ "style-attribute-fontSize"></a>8.2.9 tts:fontSize</h4>
+
+ <p>The <code>tts:fontSize</code> attribute is used to specify a style
+ property that defines the font size for glyphs that are selected for
+ glyph areas generated by content flowed into a region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-fontSize" name=
+ "style-property-details-fontSize"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><a href="#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a>?</td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>1c</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>relative to parent element's font size, or if no parent
+ element, then relative to the <em>Computed Cell Size</em></td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If a single <a href="#style-value-length"><length></a> value
+ is specified, then this length applies equally to horizontal and
+ vertical scaling of a glyph's EM square; if two <a href=
+ "#style-value-length"><length></a> values are specified, then
+ the first expresses the horizontal scaling and the second expresses
+ vertical scaling.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Use of independent horizontal and vertical font sizes is
+ expected to be used with cell based units in order to denote fonts
+ that are two rows in height and one column in width.</p>
+ </div>
+
+ <p>If horizontal and vertical sizes are expressed independently, then
+ the units of the <a href="#style-value-length"><length></a>
+ values must be the same.</p>
+
+ <p>The <a href="#style-value-length"><length></a> value(s) used
+ to express font size must be non-negative.</p>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the closest
+ supported value were specified.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The expression <code>1c</code> means one cell, where
+ <code>'c'</code> expresses the <em>cell</em> length unit as defined
+ by <a href="#style-value-length"><b>8.3.9 <length></b></a>.
+ When a single <length> is expressed using cell units, then it
+ refers to the height of the <em>Computed Cell Size</em>.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>As specified above, the use of percentage units to express font
+ size are interpreted as relative to <em>Computed Cell Size</em>
+ when there is no parent element. For example, if cell resolution is
+ 32 by 15, and the extent of the <em>Root Container Region</em> is
+ 640 by 480, then the <em>Computed Cell Size</em> is [20px, 32px],
+ i.e., 640px/32 (width) and 480px/15 (height). Consequently, if
+ <code>tts:fontSize</code> were specified as 75% on the root
+ <code>tt</code> element, then this would be equivalent to
+ specifying 24px, i.e., 32px cell height * 75%. If two length
+ expressions (independent horizontal and vertical font scaling) were
+ specified, e.g., "80% 75%", then this would be equivalent to
+ specifying "16px 24px", i.e., 80% of 20px cell width is 16px, and
+ 75% of 32px cell height is 24px.</p>
+ </div>
+
+ <p>The <code>tts:fontSize</code> style is illustrated by the
+ following example.</p><a id="style-attribute-fontSize-example-1"
+ name="style-attribute-fontSize-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Font Size
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="299px 97px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style <span class="strong">tts:fontSize="18px"</span>/>
+</region>
+...
+<p region="r1">
+ Then fill up the glasses<br/>
+ with treacle and ink,<br/>
+ Or anything else<br/>
+ that is <span <span class=
+"strong">tts:fontSize="24px"</span>>pleasant</span> to drink.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-fontSize-example-1-images" name=
+ "style-attribute-fontSize-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Font Size
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/fontSize.png" alt=
+ "TTML fontSize style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.9.4. The addition of a second length component to
+ permit specifying font width and height independently is an
+ extension introduced by TTML.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-fontStyle" name=
+ "style-attribute-fontStyle"></a>8.2.10 tts:fontStyle</h4>
+
+ <p>The <code>tts:fontStyle</code> attribute is used to specify a
+ style property that defines the font style to apply to glyphs that
+ are selected for glyph areas generated by content flowed into a
+ region, where the mapping from font style value to specific font face
+ or style parameterization is not determined by this
+ specification.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-fontStyle"
+ name="style-property-details-fontStyle"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>normal</code> | <code>italic</code> |
+ <code>oblique</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>normal</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>Use of the value <code>oblique</code> denotes a shear
+ transformation (at an unspecified angle) in the inline progression
+ dimension.</p>
+
+ <p>If a specified font style is not available, then a presentation
+ processor must attempt to map the specified font style to an
+ available font style that has similar typographic characteristics,
+ or, in the absence of such a mapping, it must interpret the font
+ style as if the value <code>normal</code> were specified.</p>
+
+ <p>The <code>tts:fontStyle</code> style is illustrated by the
+ following example.</p><a id="style-attribute-fontStyle-example-1"
+ name="style-attribute-fontStyle-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Font Style
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="331px 84px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+...
+<p region="r1">
+ In autumn, when the leaves are brown,<br/>
+ Take pen and ink, and <span <span class=
+"strong">tts:fontStyle="italic"</span>>write it down.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-fontStyle-example-1-images" name=
+ "style-attribute-fontStyle-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Font Style
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/fontStyle.png" alt=
+ "TTML fontStyle style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.9.7.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-fontWeight" name=
+ "style-attribute-fontWeight"></a>8.2.11 tts:fontWeight</h4>
+
+ <p>The <code>tts:fontWeight</code> attribute is used to specify a
+ style property that defines the font weight to apply to glyphs that
+ are selected for glyph areas generated by content flowed into a
+ region, where the mapping from font weight value to specific font
+ face or weight parameterization is not determined by this
+ specification.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-fontWeight"
+ name="style-property-details-fontWeight"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>normal</code> | <code>bold</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>normal</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If a specified font weight is not available, then a presentation
+ processor must attempt to map the specified font weight to an
+ available font weight that has similar typographic characteristics,
+ or, in the absence of such a mapping, it must interpret the font
+ weight as if the value <code>normal</code> were specified.</p>
+
+ <p>The <code>tts:fontWeight</code> style is illustrated by the
+ following example.</p><a id="style-attribute-fontWeight-example-1"
+ name="style-attribute-fontWeight-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Font Weight
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="376px 95px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+...
+<p region="r1">
+ They told me you had been to her,<br/>
+ <span <span class=
+"strong">tts:fontWeight="bold"</span>>and mentioned me to him:</span><br/>
+ She gave me a good character<br/>
+ <span <span class=
+"strong">tts:fontWeight="bold"</span>>but said I could not swim.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-fontWeight-example-1-images" name=
+ "style-attribute-fontWeight-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Font Weight
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/fontWeight.png" alt=
+ "TTML fontWeight style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.9.9.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-lineHeight" name=
+ "style-attribute-lineHeight"></a>8.2.12 tts:lineHeight</h4>
+
+ <p>The <code>tts:lineHeight</code> attribute is used to specify a
+ style property that defines the inter-baseline separation between
+ line areas generated by content flowed into a region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-lineHeight"
+ name="style-property-details-lineHeight"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>normal</code> | <a href=
+ "#style-value-length"><length></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>normal</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href="#content-vocabulary-p"><code>p</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>relative to this element's font size</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the value of this attribute is <code>normal</code>, then the
+ initial value of the style property must be considered to be the same
+ as the largest font size that applies to any descendant element.</p>
+
+ <p>If specified as a <a href=
+ "#style-value-length"><length></a>, then the length must be
+ non-negative.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>normal</code> were specified.</p>
+
+ <p>The <code>tts:lineHeight</code> style is illustrated by the
+ following example.</p><a id="style-attribute-lineHeight-example-1"
+ name="style-attribute-lineHeight-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Line Height
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="255px 190px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="16px"/>
+ <style <span class="strong">tts:lineHeight="32px"</span>/>
+</region>
+...
+<p region="r1">
+ He thought he saw an elephant,<br/>
+ That practised on a fife:<br/>
+ He looked again, and found it was<br/>
+ A letter from his wife.<br/>
+ "At length I realise," he said,<br/>
+ "The bitterness of Life.
+"</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-lineHeight-example-1-images" name=
+ "style-attribute-lineHeight-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Line Height
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/lineHeight.png" alt=
+ "TTML lineHeight style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.16.4. Furthermore, it is the intention of this
+ specification that the allocation rectangle of a line be consistent
+ with the <span class="strong">per-inline-height-rectangle</span> as
+ defined by <a href="#xsl11">[XSL 1.1]</a>, § 4.5, i.e., that a
+ CSS-style line box stacking strategy be used.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-opacity" name=
+ "style-attribute-opacity"></a>8.2.13 tts:opacity</h4>
+
+ <p>The <code>tts:opacity</code> attribute is used to specify a style
+ property that defines the opacity (or conversely, the transparency)
+ of marks associated with a region.</p>
+
+ <p>When presented onto a visual medium, the opacity of the region is
+ applied uniformly and on a linear scale to all marks produced by
+ content targeted to the region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-opacity" name=
+ "style-property-details-opacity"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><a href="#style-value-alpha"><alpha></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>1.0</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The <code>tts:opacity</code> style is illustrated by the following
+ example.</p><a id="style-attribute-opacity-example-1" name=
+ "style-attribute-opacity-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Opacity
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1" dur="5s">
+ <set begin="0s" dur="1s" <span class=
+"strong">tts:opacity="1.00"</span>/>
+ <set begin="1s" dur="1s" <span class=
+"strong">tts:opacity="0.75"</span>/>
+ <set begin="2s" dur="1s" <span class=
+"strong">tts:opacity="0.50"</span>/>
+ <set begin="3s" dur="1s" <span class=
+"strong">tts:opacity="0.25"</span>/>
+ <set begin="4s" dur="1s" <span class=
+"strong">tts:opacity="0.00"</span>/>
+ <style tts:extent="304px 77px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ The sun was shining on the sea
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-opacity-example-1-images" name=
+ "style-attribute-opacity-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Opacity
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/opacity_0.png" alt=
+ "TTML opacity style property - [0,1)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/opacity_1.png" alt=
+ "TTML opacity style property - [1,2)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/opacity_2.png" alt=
+ "TTML opacity style property - [2,3)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/opacity_3.png" alt=
+ "TTML opacity style property - [3,4)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/opacity_4.png" alt=
+ "TTML opacity style property - [4,5)"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href=
+ "#css3-color">[CSS3 Color]</a>, § 3.2.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-origin" name=
+ "style-attribute-origin"></a>8.2.14 tts:origin</h4>
+
+ <p>The <code>tts:origin</code> attribute is used to specify the
+ <em>x</em> and <em>y</em> coordinates of the origin of a region area
+ with respect to the origin of the <em>Root Container Region</em>.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-origin" name=
+ "style-property-details-origin"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>auto</code> | <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>auto</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>relative to width and height of <em>Root Container
+ Region</em></td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the value of this attribute consists of two <a href=
+ "#style-value-length"><length></a> specifications, then they
+ must be interpreted as <em>x</em> and <em>y</em> coordinates, where
+ the first specification is the <em>x</em> coordinate, and the second
+ specification is the <em>y</em> coordinate.</p>
+
+ <p>If the value of this attribute is <code>auto</code>, then the
+ initial value of the style property must be considered to be the same
+ as the origin of the <em>Root Container Region</em>.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>auto</code> were specified.</p>
+
+ <p>The <code>tts:origin</code> style is illustrated by the following
+ example.</p><a id="style-attribute-origin-example-1" name=
+ "style-attribute-origin-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Origin
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style <span class="strong">tts:origin="40px 40px"</span>/>
+ <style tts:extent="308px 92px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ "To dine!" she shrieked in dragon-wrath.<br/>
+ "To swallow wines all foam and froth!<br/>
+ To simper at a table-cloth!"
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-origin-example-1-images" name=
+ "style-attribute-origin-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Origin
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/origin.png" alt=
+ "TTML origin style property"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-overflow" name=
+ "style-attribute-overflow"></a>8.2.15 tts:overflow</h4>
+
+ <p>The <code>tts:overflow</code> attribute is used to specify a style
+ property that defines whether a region area is clipped or not if the
+ descendant areas of the region overflow its extent.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-overflow" name=
+ "style-property-details-overflow"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>visible</code> | <code>hidden</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>hidden</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the value of this attribute is <code>visible</code>, then
+ content should not be clipped outside of the affected region, and
+ region composition and layout must be performed as if the region's
+ width and height were unconstrained, but with a well-defined origin.
+ If the value is <code>hidden</code>, then content should be clipped
+ outside of the affected region.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Unless a manual line break element <code>br</code> is used by
+ the content author, a paragraph of a given region will generate no
+ more than one line area in that region if the value of the
+ <code>tts:overflow</code> style that applies to the region is
+ <code>visible</code> and if the applicable
+ <code>tts:wrapOption</code> style is <code>noWrap</code>.</p>
+ </div>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>hidden</code> were specified.</p>
+
+ <p>The <code>tts:overflow</code> style is illustrated by the
+ following example.</p><a id="style-attribute-overflow-example-1"
+ name="style-attribute-overflow-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Overflow
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style <span class="strong">tts:overflow="visible"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 43px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style <span class="strong">tts:overflow="hidden"</span>/>
+</region>
+...
+<p region="r1">
+ "But wait a bit," the Oysters cried,<br/>
+ "Before we have our chat;
+</p>
+<p region="r2">
+ For some of us are out of breath,<br/>
+ And all of us are fat!"
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-overflow-example-1-images" name=
+ "style-attribute-overflow-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Overflow
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/overflow.png" alt=
+ "TTML overflow style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the <code>tts:noWrap</code> is set to
+ <code>noWrap</code> to prevent automatic line wrapping (breaking);
+ if this were not specified, then overflow would occur in the block
+ progression direction as opposed to the inline progression
+ direction.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.21.2.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-padding" name=
+ "style-attribute-padding"></a>8.2.16 tts:padding</h4>
+
+ <p>The <code>tts:padding</code> attribute is used to specify padding
+ (or inset) space on all sides of a region area.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-padding" name=
+ "style-property-details-padding"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><a href="#style-value-length"><length></a> | <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a> | <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a> | <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>0px</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>relative to width and height of region</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the value of this attribute consists of one <a href=
+ "#style-value-length"><length></a> specification, then that
+ length applies to all edges of the affected areas. If the value
+ consists of two <a href="#style-value-length"><length></a>
+ specifications, then the first applies to the before and after edges,
+ and the second applies to the start and end edges. If three <a href=
+ "#style-value-length"><length></a> specifications are provided,
+ then the first applies to the before edge, the second applies to the
+ start and end edges, and the third applies to the after edge. If four
+ <a href="#style-value-length"><length></a> specifications are
+ provided, then they apply to before, end, after, and start edges,
+ respectively.</p>
+
+ <p>The <a href="#style-value-length"><length></a> value(s) used
+ to express padding must be non-negative.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>0px</code> were specified.</p>
+
+ <p>The <code>tts:padding</code> style is illustrated by the following
+ example.</p><a id="style-attribute-padding-example-1" name=
+ "style-attribute-padding-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Padding
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="446px 104px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style <span class="strong">tts:padding="10px 40px"</span>/>
+</region>
+...
+<p region="r1" tts:backgroundColor="red">
+ Just the place for a Snark! I have said it twice:<br/>
+ That alone should encourage the crew.<br/>
+ Just the place for a Snark! I have said it thrice:<br/>
+ What I tell you three times is true.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>When rendering an area to which padding applies, the background
+ color that applies to the area is rendered into the padded portion of
+ the area.</p><a id="style-attribute-padding-example-1-images" name=
+ "style-attribute-padding-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Padding
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/padding.png" alt=
+ "TTML padding style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.31.15, except that individual shorthand values map to
+ writing mode relative padding values as defined by <a href=
+ "#xsl11">[XSL 1.1]</a>, § 7.8.31, 7.8.32, 7.8.33, and 7.8.34.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-showBackground" name=
+ "style-attribute-showBackground"></a>8.2.17 tts:showBackground</h4>
+
+ <p>The <code>tts:showBackground</code> attribute is used to specify
+ constraints on when the background color of a region is intended to
+ be presented.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-showBackground"
+ name="style-property-details-showBackground"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>always</code> | <code>whenActive</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>always</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If the value of this attribute is <code>always</code>, then the
+ background color of a region is always rendered when performing
+ presentation processing on a visual medium; if the value is
+ <code>whenActive</code>, then the background color of a region is
+ rendered only when some content is flowed into the region.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>always</code> were specified.</p>
+
+ <p>The <code>tts:showBackground</code> style is illustrated by the
+ following example.</p><a id=
+ "style-attribute-showBackground-example-1" name=
+ "style-attribute-showBackground-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Show Background
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="265px 100px"/>
+ <style tts:backgroundColor="black"/>
+ <style <span class="strong">tts:showBackground="always"</span>/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r2">
+ <style tts:origin="205px 60px"/>
+ <style tts:extent="290px 100px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="end"/>
+ <style <span class="strong">tts:showBackground="whenActive"</span>/>
+</region>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#smil21">[SMIL
+ 2.1]</a>, § 5.3.3.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-textAlign" name=
+ "style-attribute-textAlign"></a>8.2.18 tts:textAlign</h4>
+
+ <p>The <code>tts:textAlign</code> attribute is used to specify a
+ style property that defines how inline areas are aligned within a
+ containing block area in the inline progression direction.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-textAlign"
+ name="style-property-details-textAlign"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>left</code> | <code>center</code> |
+ <code>right</code> | <code>start</code> | <code>end</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>start</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href="#content-vocabulary-p"><code>p</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>start</code> were specified.</p>
+
+ <p>The <code>tts:textAlign</code> style is illustrated by the
+ following example.</p><a id="style-attribute-textAlign-example-1"
+ name="style-attribute-textAlign-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Text Align
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:textAlign="start"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 47px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:textAlign="end"</span>/>
+</region>
+...
+<p region="r1">
+ Beware the Jabberwock, my son!<br/>
+ The jaws that bite, the claws that catch!
+</p>
+<p region="r2">
+ Beware the Jubjub bird, and shun<br/>
+ The frumious Bandersnatch!
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-textAlign-example-1-images" name=
+ "style-attribute-textAlign-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Text Align
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/textAlign.png" alt=
+ "TTML textAlign style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.16.9.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-textDecoration" name=
+ "style-attribute-textDecoration"></a>8.2.19 tts:textDecoration</h4>
+
+ <p>The <code>tts:textDecoration</code> attribute is used to specify a
+ style property that defines a text decoration effect to apply to
+ glyph areas or other inline areas that are generated by content
+ flowed into a region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-textDecoration"
+ name="style-property-details-textDecoration"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>none</code> | [ [ <code>underline</code> |
+ <code>noUnderline</code> ] || [ <code>lineThrough</code> |
+ <code>noLineThrough</code> ] || [ <code>overline</code> |
+ <code>noOverline</code> ] ]</td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>none</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>none</code> were specified.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The syntax used above in defining the value of this property is
+ based on the value component syntax defined in <a href=
+ "#css2">[CSS2]</a>, § 1.4.2.1. In essence, one or more of the
+ values separated by <code>||</code> may appear in the property
+ value in any order, such as <code>"noUnderline overline
+ lineThrough"</code>.</p>
+ </div>
+
+ <p>The <code>tts:textDecoration</code> style is illustrated by the
+ following example.</p><a id=
+ "style-attribute-textDecoration-example-1" name=
+ "style-attribute-textDecoration-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Text Decoration
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="385px 82px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:padding="5px 2px"/>
+ <style <span class="strong">tts:textDecoration="underline"</span>/>
+</region>
+...
+<p region="r1">
+ The sea was wet<span <span class=
+"strong">tts:textDecoration="noUnderline"</span>> as </span>wet
+ <span <span class="strong">tts:textDecoration="noUnderline"</span>>
+ could be,<br/>
+ The sand was dry as dry.<br/>
+ <span <span class=
+"strong">tts:textDecoration="lineThrough"</span>>There weren't any</span>
+ You <span <span class=
+"strong">tts:textDecoration="lineThrough"</span>>couldn't</span>
+ could not see a cloud<br/>
+ Because no cloud was in the sky.
+ </span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-textDecoration-example-1-images" name=
+ "style-attribute-textDecoration-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Text Decoration
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/textDecoration.png" alt=
+ "TTML textDecoration style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.17.4.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-textOutline" name=
+ "style-attribute-textOutline"></a>8.2.20 tts:textOutline</h4>
+
+ <p>The <code>tts:textOutline</code> attribute is used to specify a
+ style property that defines a text outline effect to apply to glyphs
+ that are selected for glyph areas generated by content flowed into a
+ region.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-textOutline"
+ name="style-property-details-textOutline"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>none</code> | <a href=
+ "#style-value-color"><color></a>? <a href=
+ "#style-value-length"><length></a> <a href=
+ "#style-value-length"><length></a>?</td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>none</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>relative to this element's font size</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>The value of this attribute consists of an optional <a href=
+ "#style-value-color"><color></a> term followed by one or two
+ <a href="#style-value-length"><length></a> terms. If a
+ <em>color</em> term is present, then it denotes the outline color; if
+ no <em>color</em> term is present, the computed value of the
+ <code>tts:color</code> applies. The first <em>length</em> term
+ denotes the outline thickness and the second length term, if present,
+ indicates the blur radius.</p>
+
+ <p>The <a href="#style-value-length"><length></a> value(s) used
+ to express thickness and blur radius must be non-negative.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When a <a href="#style-value-length"><length></a>
+ expressed in cells is used in a <code>tts:textOutline</code> value,
+ the cell's dimension in the block progression dimension applies.
+ For example, if text outline thickness is specified as 0.1c, the
+ cell resolution is 20 by 10, and the extent of the <em>Root
+ Container Region</em> is 640 by 480, then the outline thickness
+ will be a nominal 480 / 10 * 0.1 pixels, i.e., 4.8px, without
+ taking into account rasterization effects.</p>
+ </div>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>none</code> were specified.</p>
+
+ <p>The <code>tts:textOutline</code> style is illustrated by the
+ following example.</p><a id="style-attribute-textOutline-example-1"
+ name="style-attribute-textOutline-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Text Outline
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:backgroundColor="transparent"/>
+ <style tts:color="yellow"/>
+ <style <span class="strong">tts:textOutline="black 2px 0px"</span>/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="24px"/>
+</region>
+...
+<p>
+ How doth the little crocodile<br/>
+ Improve its shining tail,<br/>
+ And pour the waters of the Nile<br/>
+ On every golden scale!<br/>
+ How cheerfully he seems to grin,<br/>
+ How neatly spreads his claws,<br/>
+ And welcomes little fishes in,<br/>
+ With gently smiling jaws!
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-textOutline-example-1-images" name=
+ "style-attribute-textOutline-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Text Outline
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/textOutline.png" alt=
+ "backgroundColor style property"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-unicodeBidi" name=
+ "style-attribute-unicodeBidi"></a>8.2.21 tts:unicodeBidi</h4>
+
+ <p>The <code>tts:unicodeBidi</code> attribute is used to specify a
+ style property that defines a directional embedding or override
+ according to the Unicode bidirectional algorithm.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-unicodeBidi"
+ name="style-property-details-unicodeBidi"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>normal</code> | <code>embed</code> |
+ <code>bidiOverride</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>normal</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href="#content-vocabulary-p"><code>p</code></a>,
+ <a href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>normal</code> were specified.</p>
+
+ <p>The <code>tts:unicodeBidi</code> style is illustrated by the
+ following example.</p><a id="style-attribute-unicodeBidi-example-1"
+ name="style-attribute-unicodeBidi-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Unicode Bidirectionality
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span <span class=
+"strong">tts:unicodeBidi="bidiOverride"</span> tts:direction="rtl">where the tourists snore.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-unicodeBidi-example-1-images" name=
+ "style-attribute-unicodeBidi-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Unicode Bidirectionality
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/unicodeBidi.png" alt=
+ "TTML unicodeBidi style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.29.6.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-visibility" name=
+ "style-attribute-visibility"></a>8.2.22 tts:visibility</h4>
+
+ <p>The <code>tts:visibility</code> attribute is used to specify a
+ style property that defines whether generated areas are visible or
+ not when rendered on a visual presentation medium.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-visibility"
+ name="style-property-details-visibility"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>visible</code> | <code>hidden</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>visible</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a>,
+ <a href="#content-vocabulary-div"><code>div</code></a>,
+ <a href="#content-vocabulary-p"><code>p</code></a>, <a href=
+ "#layout-vocabulary-region"><code>region</code></a>, <a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>The <code>tts:visibility</code> style has no affect on content
+ layout or composition, but merely determines whether composed content
+ is visible or not.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>visible</code> were specified.</p>
+
+ <p>The <code>tts:visibility</code> style is illustrated by the
+ following example.</p><a id="style-attribute-visibility-example-1"
+ name="style-attribute-visibility-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Visibility
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="398px 121px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style/>
+</region>
+...
+<p region="r1" dur="4s">
+ <span <span class="strong">tts:visibility="hidden"</span>>
+ <set begin="1s" <span class=
+"strong">tts:visibility="visible"</span>/>
+ Curiouser
+ </span>
+ <span <span class="strong">tts:visibility="hidden"</span>>
+ <set begin="2s" <span class=
+"strong">tts:visibility="visible"</span>/>
+ and
+ </span>
+ <span <span class="strong">tts:visibility="hidden"</span>>
+ <set begin="3s" <span class=
+"strong">tts:visibility="visible"</span>/>
+ curiouser!
+ </span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-visibility-example-1-images" name=
+ "style-attribute-visibility-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Visibility
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/visibility_0.png" alt=
+ "TTML visibility style property - [0,1)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/visibility_1.png" alt=
+ "TTML visibility style property - [1,2)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/visibility_2.png" alt=
+ "TTML visibility style property - [2,3)"></td>
+ </tr>
+
+ <tr>
+ <td><img src="images/visibility_3.png" alt=
+ "TTML visibility style property - [3,4)"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.30.17.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-wrapOption" name=
+ "style-attribute-wrapOption"></a>8.2.23 tts:wrapOption</h4>
+
+ <p>The <code>tts:wrapOption</code> attribute is used to specify a
+ style property that defines whether or not automatic line wrapping
+ (breaking) applies within the context of the affected element.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-wrapOption"
+ name="style-property-details-wrapOption"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>wrap</code> | <code>noWrap</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>wrap</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>yes</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the purpose of determining applicability of this style
+ property, each character child of a <code>p</code> element is
+ considered to be enclosed in an anonymous span.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>wrap</code> were specified.</p>
+
+ <p>The <code>tts:wrapOption</code> style is illustrated by the
+ following example.</p><a id="style-attribute-wrapOption-example-1"
+ name="style-attribute-wrapOption-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Wrap Option
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="192px 117px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:overflow="hidden"/>
+ <style <span class="strong">tts:wrapOption="noWrap"</span>/>
+</region>
+...
+<p>
+ I'll tell thee everything I can:<br/>
+ There's little to relate.<br/>
+ I saw an aged aged man,<br/>
+ A-sitting on a gate.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-wrapOption-example-1-images" name=
+ "style-attribute-wrapOption-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Wrap Option
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/wrapOption.png" alt=
+ "TTML wrapOption style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.16.13.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-writingMode" name=
+ "style-attribute-writingMode"></a>8.2.24 tts:writingMode</h4>
+
+ <p>The <code>tts:writingMode</code> attribute is used to specify a
+ style property that defines the block and inline progression
+ directions to be used for the purpose of stacking block and inline
+ areas within a region area.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-writingMode"
+ name="style-property-details-writingMode"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>lrtb</code> | <code>rltb</code> | <code>tbrl</code> |
+ <code>tblr</code> | <code>lr</code> | <code>rl</code> |
+ <code>tb</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>lrtb</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>lrtb</code> were specified.</p>
+
+ <p>The <code>tts:writingMode</code> style is illustrated by the
+ following example.</p><a id="style-attribute-writingMode-example-1"
+ name="style-attribute-writingMode-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Writing Mode
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:extent="50px 570px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:writingMode="tbrl"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="310px 50px"/>
+ <style tts:origin="70px 120px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:writingMode="rltb"</span>/>
+</region>
+...
+<p region="r1">
+ I sometimes dig for buttered rolls,<br/>
+ Or set limed twigs for crabs:
+</p>
+<p region="r2" tts:direction="rtl" tts:unicodeBidi="bidiOverride">
+ I sometimes search the grassy knolls for the wheels of Hansom-cabs.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-writingMode-example-1-images" name=
+ "style-attribute-writingMode-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Writing Mode
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/writingMode.png" alt=
+ "TTML writingMode style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the second paragraph in the above example that targets region
+ <code>r2</code>, the <code>tts:unicodeBidi</code> and
+ <code>tts:direction</code> properties are set to
+ <code>bidiOverride</code> and <code>rtl</code>, respectively, in
+ order to override the normally left-to-right directionality of
+ characters in the Latin script.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.29.7.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-attribute-zIndex" name=
+ "style-attribute-zIndex"></a>8.2.25 tts:zIndex</h4>
+
+ <p>The <code>tts:zIndex</code> attribute is used to specify a style
+ property that defines the front-to-back ordering of region areas in
+ the case that they overlap.</p>
+
+ <p>This attribute may be specified by any element type that permits
+ use of attributes in the TT Style Namespace; however, this attribute
+ applies as a style property only to those element types indicated in
+ the following table.</p><a id="style-property-details-zIndex" name=
+ "style-property-details-zIndex"></a>
+
+ <table class="common">
+ <col width="25%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><em>Values:</em></td>
+
+ <td><code>auto</code> | <a href=
+ "#style-value-integer"><integer></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Initial:</em></td>
+
+ <td><code>auto</code></td>
+ </tr>
+
+ <tr>
+ <td><em>Applies to:</em></td>
+
+ <td><a href=
+ "#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+
+ <tr>
+ <td><em>Inherited:</em></td>
+
+ <td>no</td>
+ </tr>
+
+ <tr>
+ <td><em>Percentages:</em></td>
+
+ <td>N/A</td>
+ </tr>
+
+ <tr>
+ <td><em>Animatable:</em></td>
+
+ <td>discrete</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If two areas are associated with the same Z-index value, then, if
+ those areas overlap in space, the area(s) generated by lexically
+ subsequent elements must be rendered over area(s) generated by
+ lexically prior elements, where lexical order is defined as the
+ postorder traversal of a <em>Document Instance</em>.</p>
+
+ <p>The semantics of the value <code>auto</code> are those defined by
+ <a href="#xsl11">[XSL 1.1]</a>, § 7.30.18, where the <code>tt</code>
+ element is considered to establish the root stacking context.</p>
+
+ <p>If a specified value of this attribute is not supported, then a
+ presentation processor must interpret the attribute as if the value
+ <code>auto</code> were specified.</p>
+
+ <p>The <code>tts:zIndex</code> style is illustrated by the following
+ example.</p><a id="style-attribute-zIndex-example-1" name=
+ "style-attribute-zIndex-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Z Index
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:zIndex="0"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:origin="100px 60px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style <span class="strong">tts:zIndex="1"</span>/>
+</region>
+<region xml:id="r3">
+ <style tts:origin="0px 120px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:zIndex="2"</span>/>
+</region>
+<region xml:id="r4">
+ <style tts:origin="100px 180px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style <span class="strong">tts:zIndex="3"</span>/>
+</region>
+...
+<p region="r1">
+ I passed by his garden, and marked, with one eye,<br/>
+ How the Owl and the Panther were sharing a pie.
+</p>
+<p region="r2">
+ The Panther took pie-crust, and gravy, and meat,<br/>
+ While the Owl had the dish as its share of the treat.
+</p>
+<p region="r3">
+ When the pie was all finished, the Owl, as a boon,<br/>
+ Was kindly permitted to pocket the spoon:
+</p>
+<p region="r4">
+ While the Panther received knife and fork<br/>
+ with a growl,<br/>
+ And concluded the banquet by...
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table><a id="style-attribute-zIndex-example-1-images" name=
+ "style-attribute-zIndex-example-1-images"></a>
+
+ <table class="example-images">
+ <caption>
+ Example Rendition – Z Index
+ </caption>
+
+ <tbody>
+ <tr>
+ <td><img src="images/zIndex.png" alt=
+ "TTML zIndex style property"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the style property represented by this
+ attribute are based upon that defined by <a href="#xsl11">[XSL
+ 1.1]</a>, § 7.30.18.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="styling-style-value-expressions" name=
+ "styling-style-value-expressions"></a>8.3 Style Value Expressions</h3>
+
+ <p>Style property values include the use of the following
+ expressions:</p>
+
+ <ul>
+ <li>
+ <p><a href="#style-value-alpha"><b>8.3.1 <alpha></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-color"><b>8.3.2 <color></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-digit"><b>8.3.3 <digit></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-familyName"><b>8.3.5
+ <familyName></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-genericFamilyName"><b>8.3.6
+ <genericFamilyName></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-hexDigit"><b>8.3.7
+ <hexDigit></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-integer"><b>8.3.8
+ <integer></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-length"><b>8.3.9
+ <length></b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-value-namedColor"><b>8.3.10
+ <namedColor></b></a></p>
+ </li>
+ </ul>
+
+ <p>In the syntax representations defined in this section, no linear
+ whitespace (LWSP) is implied or permitted between tokens unless
+ explicitly specified.</p>
+
+ <div class="div3">
+ <h4><a id="style-value-alpha" name="style-value-alpha"></a>8.3.1
+ <alpha></h4>
+
+ <p>An <alpha> expression is used to express an opacity value,
+ where 0 means fully transparent and 1 means fully opaque.</p><a id=
+ "alpha-style-expression-syntax" name=
+ "alpha-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <alpha>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<alpha>
+ : <em>float</em>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>In the above syntax representation, the syntactic element
+ <em><code>float</code></em> must adhere to the lexical representation
+ defined by <a href="#xsd-2">[XML Schema Part 2]</a> § 3.2.4.1.
+ If the value represented is less than 0.0, then it must be
+ interpreted as equal to 0.0; similarly, if the value represented is
+ greater than 1.0, then it must be interpreted as 1.0. The value NaN
+ must be interpreted as 0.0.</p>
+
+ <p>A specified value for <alpha> should not be
+ <code>NaN</code>, less than 0, or greater than 1.</p>
+
+ <p>If a presentation processor does not support a specific, valid
+ opacity value, then it must interpret it as being equal to the
+ closest supported value.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-color" name="style-value-color"></a>8.3.2
+ <color></h4>
+
+ <p>A <color> expression is used to specify a named color, exact
+ RGB color triple, or exact RGBA color tuple, where the alpha
+ component, if expressed, is maximum (255) at 100% opacity and minimum
+ (0) at 0% opacity, and where the applicable color space is defined by
+ <a href="#srgb">[SRGB]</a>.</p><a id="color-style-expression-syntax"
+ name="color-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <color>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<color>
+ : "#" rrggbb
+ | "#" rrggbbaa
+ | "rgb" "(" r-value "," g-value "," b-value ")"
+ | "rgba" "(" r-value "," g-value "," b-value "," a-value ")"
+ | <a href="#style-value-namedColor"><namedColor></a>
+
+rrggbb
+ : <a href="#style-value-hexDigit"><hexDigit></a>{6}
+
+rrggbbaa
+ : <a href="#style-value-hexDigit"><hexDigit></a>{8}
+
+r-value | g-value | b-value | a-value
+ : component-value
+
+component-value
+ : non-negative-integer // valid range: [0,255]
+
+non-negative-integer
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>When expressing RGB component values, these values are considered
+ to <span class="strong">not</span> be premultiplied by alpha.</p>
+
+ <p>For the purpose of performing presentation processing such that
+ non-opaque or non-transparent alpha or opacity values apply, then the
+ semantics of compositing functions are defined with respect to the
+ use of the <a href="#srgb">[SRGB]</a> color space for both inputs and
+ outputs of the composition function.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The use of <a href="#srgb">[SRGB]</a> for the stated semantics
+ of composition is not meant to prevent an actual processor from
+ using some other color space either for internal or external
+ purposes. For example, a presentation processor may ultimately
+ convert the SRGB values used here to the YUV color space for
+ rendition on a television device.</p>
+ </div>
+
+ <p>If a presentation processor does not support a specific, valid
+ color or alpha value, then it must interpret it as being equal to the
+ closest supported value.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-digit" name="style-value-digit"></a>8.3.3
+ <digit></h4>
+
+ <p>A <digit> is used to express integers and other types of
+ numbers or tokens.</p><a id="digit-style-expression-syntax" name=
+ "digit-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <digit>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<digit>
+ : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-duration" name=
+ "style-value-duration"></a>8.3.4 Deleted</h4>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The information from this section has been removed due to lack
+ of any normative use within this specification. This section is
+ retained in its empty form in order to prevent section
+ renumbering.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-familyName" name=
+ "style-value-familyName"></a>8.3.5 <familyName></h4>
+
+ <p>A <familyName> expression specifies a font family
+ name.</p><a id="familyName-style-expression-syntax" name=
+ "familyName-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <familyName>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<familyName>
+ : unquoted-string
+ | quoted-string
+
+unquoted-string
+ : identifier ( lwsp identifier )*
+
+lwsp
+ : ( ' ' | '\t' | '\n' | '\r' )+
+
+identifier
+ : [-]? identifier-start identifier-following*
+
+identifier-start
+ : [_a-zA-Z]
+ | non-ascii-or-c1
+ | escape
+
+identifier-following
+ : [_a-zA-Z0-9-]
+ | non-ascii-or-c1
+ | escape
+
+non-ascii-or-c1
+ : [^\0-\237]
+
+escape
+ : '\\' <em>char</em>
+
+quoted-string
+ : double-quoted-string
+ | single-quoted-string
+
+double-quoted-string
+ : '"' ( [^"\\] | escape )+ '"'
+
+single-quoted-string
+ : "'" ( [^'\\] | escape )+ "'"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>In addition to adhering to the syntax rules specified above, the
+ following semantic rules apply:</p>
+
+ <ul>
+ <li>
+ <p>the semantic value of a <familyName> expression is the
+ semantic value of its <code>unquoted-string</code> or
+ <code>quoted-string</code> non-terminal, according to whichever
+ applies;</p>
+ </li>
+
+ <li>
+ <p>the semantic value of an <code>unquoted-string</code>
+ non-terminal is a pair <code><</code><em>quoted</em>,
+ <em>content</em><code>></code>, where <em>quoted</em> is a
+ boolean <code>false</code>, and where <em>content</em> is the
+ result of appending the value of each <code>identifier</code>
+ non-terminal, in lexical order, where the value of each
+ identifier is preceded by a single SPACE (U+0020) character if it
+ is not the first identifier;</p>
+ </li>
+
+ <li>
+ <p>the semantic value of a <code>quoted-string</code>
+ non-terminal is a pair <code><</code><em>quoted</em>,
+ <em>content</em><code>></code>, where <em>quoted</em> is a
+ boolean <code>true</code>, and where <em>content</em> is the
+ unquoted content of the quoted string, i.e., the sequence of
+ characters between the delimiting quotes.</p>
+ </li>
+
+ <li>
+ <p>the semantic value of an <code>escape</code> non-terminal is
+ the value of the escaped <code>char</code>;</p>
+ </li>
+
+ <li>
+ <p>a <familyName> that takes the form of an
+ <code>unquoted-string</code> that contains an
+ <code>identifier</code> that starts with two <code>-</code>
+ HYPHEN-MINUS (U+002D) characters must be considered to be
+ invalid;</p>
+ </li>
+
+ <li>
+ <p>a <familyName> that takes the form of an
+ <code>unquoted-string</code> that contains a single
+ <code>identifier</code> that matches (by case sensitive
+ comparison) a <genericFamilyName> must be interpreted as
+ that <genericFamilyName>;</p>
+ </li>
+
+ <li>
+ <p>a <familyName> that takes the form of a
+ <code>quoted-string</code> whose content (unquoted value) matches
+ (by case sensitive comparison) a <genericFamilyName> must
+ not be interpreted as that <genericFamilyName>, but as the
+ actual name of a non-generic font family.</p>
+ </li>
+ </ul>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The syntactic element <em><code>char</code></em> is to be
+ interpreted according to the <code>Char</code> production defined
+ by <a href="#xml10">[XML 1.0]</a> §2.2.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The <code>{unicode}</code> escape mechanism defined by <a href=
+ "#css2">[CSS2]</a> §4.1.1 is not supported by this syntax;
+ rather, authors are expected to either (1) directly encode the
+ character using the document encoding or (2) use an XML character
+ reference according to <a href="#xml10">[XML 1.0]</a> §4.1.
+ When a syntactically significant character needs to be used without
+ its normal syntactic interpretation, it may be be escaped using the
+ backslash (reverse solidus) <code>escape</code> non-terminal
+ specified above.</p>
+
+ <p>When using the backslash (reverse solidus) <code>escape</code>
+ non-terminal, the above syntax does not place any restriction on
+ what character may be escaped, e.g., <code>\\[\n\r\f0-9a-f]</code>
+ are permitted. If one of these latter escapes appears in a
+ <familyName> expression, then it will need to be converted to
+ a <code>{unicode}</code> escape if it is to be used with a standard
+ XSL-FO or CSS parser. In particular, a backslash followed by a
+ newline is ignored by CSS, while it is not ignored by the above
+ syntax. Such an unignored escaped newline would need to be
+ represented using an equivalent <code>{unicode}</code> escape, such
+ as <code>\a</code>, to order to express in CSS.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-genericFamilyName" name=
+ "style-value-genericFamilyName"></a>8.3.6
+ <genericFamilyName></h4>
+
+ <p>A <genericFamilyName> expression specifies a font family
+ using a general token that indicates a class of font families.</p>
+
+ <p>The resolution of a generic family name to a concrete font
+ instance is considered to be implementation dependent, both in the
+ case of content authoring and content interpretation.</p><a id=
+ "genericFamilyName-style-expression-syntax" name=
+ "genericFamilyName-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <genericFamilyName>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<genericFamilyName>
+ : "default"
+ | "monospace"
+ | "sansSerif"
+ | "serif"
+ | "monospaceSansSerif"
+ | "monospaceSerif"
+ | "proportionalSansSerif"
+ | "proportionalSerif"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The mapping between a generic (font) family name and an actual
+ font is not determined by this specification; however, the
+ distinction of monospace versus proportional and serif versus
+ sans-serif should be maintained if possible when performing
+ presentation.</p>
+
+ <p>If a generic (font) family name of <code>monospace</code> is
+ specified, then it may be interpreted as equivalent to either
+ <code>monospaceSansSerif</code> or <code>monospaceSerif</code>. The
+ generic family names <code>sansSerif</code> and <code>serif</code>
+ are to be interpreted as equivalent to
+ <code>proportionalSansSerif</code> and
+ <code>proportionalSerif</code>, respectively.</p>
+
+ <p>If the generic family name <code>default</code> is specified (or
+ implied by an initial value), then its typographic characteristics
+ are considered to be implementation dependent; however, it is
+ recommended that this default font family be mapped to an monospaced,
+ sans-serif font.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-hexDigit" name=
+ "style-value-hexDigit"></a>8.3.7 <hexDigit></h4>
+
+ <p>A <hexDigit> is used to express integers and other types of
+ numbers or tokens that employ base 16 arithmetic.</p>
+
+ <p>For the purpose of parsing, a distinction must not be made between
+ lower and upper case.</p><a id="hexDigit-style-expression-syntax"
+ name="hexDigit-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <hexDigit>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<hexDigit>
+ : <a href="#style-value-digit"><digit></a>
+ | "a" | "b" | "c" | "d" | "e" | "f"
+ | "A" | "B" | "C" | "D" | "E" | "F"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-integer" name="style-value-integer"></a>8.3.8
+ <integer></h4>
+
+ <p>An <integer> expression is used to express an arbitrary,
+ signed integral value.</p><a id="integer-style-expression-syntax"
+ name="integer-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <integer>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<integer>
+ : ( "+" | "-" )? <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-length" name="style-value-length"></a>8.3.9
+ <length></h4>
+
+ <p>A <length> expression is used to express either a coordinate
+ component of point in a cartesian space or a distance between two
+ points in a cartesian space.</p><a id=
+ "length-style-expression-syntax" name=
+ "length-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <length>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<length>
+ : scalar
+ | percentage
+
+scalar
+ : number units
+
+percentage
+ : number "%"
+
+sign
+ : "+" | "-"
+
+number
+ : sign? non-negative-number
+
+non-negative-number
+ : non-negative-integer
+ | non-negative-real
+
+non-negative-integer
+ : <a href="#style-value-digit"><digit></a>+
+
+non-negative-real
+ : <a href="#style-value-digit"><digit></a>* "." <a href=
+"#style-value-digit"><digit></a>+
+
+units
+ : "px"
+ | "em"
+ | "c" // abbreviation of "cell"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>It is an error to omit the units component of a scalar length
+ value.</p>
+
+ <p>The semantics of the unit of measure <code>px</code> (pixel) are
+ as defined by <a href="#xsl11">[XSL 1.1]</a>, § 5.9.13.</p>
+
+ <p>When specified relative to a font whose size is expressed as a
+ single length measure or as two length measures of equal length, the
+ unit of measure <code>em</code> is considered to be identical to that
+ defined by <a href="#xsl11">[XSL 1.1]</a>, § 5.9.13; however, when
+ specified relative to a font whose size is expressed as two length
+ measures of non-equal lengths, then one <code>em</code> is equal to
+ the inline progression dimension of the anamorphically scaled font
+ when used to specify lengths in the inline progression direction and
+ equal to the block progression dimension of the scaled font when used
+ to specify lengths in the block progression direction.</p>
+
+ <p>The semantics of the unit of measure <code>c</code> (cell) are
+ defined by the parameter <a href=
+ "#parameter-attribute-cellResolution"><b>6.2.1
+ ttp:cellResolution</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-namedColor" name=
+ "style-value-namedColor"></a>8.3.10 <namedColor></h4>
+
+ <p>A <namedColor> is used to express an RGBA color with a
+ convenient name, and where the applicable color space is defined by
+ <a href="#srgb">[SRGB]</a>.</p>
+
+ <p>For the purpose of parsing, a distinction must not be made between
+ lower and upper case.</p><a id="namedColor-style-expression-syntax"
+ name="namedColor-style-expression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <namedColor>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<namedColor>
+ : "transparent" // #00000000
+ | "black" // #000000ff
+ | "silver" // #c0c0c0ff
+ | "gray" // #808080ff
+ | "white" // #ffffffff
+ | "maroon" // #800000ff
+ | "red" // #ff0000ff
+ | "purple" // #800080ff
+ | "fuchsia" // #ff00ffff
+ | "magenta" // #ff00ffff (= fuchsia)
+ | "green" // #008000ff
+ | "lime" // #00ff00ff
+ | "olive" // #808000ff
+ | "yellow" // #ffff00ff
+ | "navy" // #000080ff
+ | "blue" // #0000ffff
+ | "teal" // #008080ff
+ | "aqua" // #00ffffff
+ | "cyan" // #00ffffff (= aqua)
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Except for <code>transparent</code>, the set of named colors
+ specified above constitutes a proper subset of the set of named
+ colors specified by <a href="#svg11">[SVG 1.1]</a>, § 4.2.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-quotedString" name=
+ "style-value-quotedString"></a>8.3.11 Deleted</h4>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The information from this section has been incorporated into
+ <a href="#style-value-familyName"><b>8.3.5
+ <familyName></b></a>. This section is retained in its empty
+ form in order to prevent section renumbering.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="style-value-string" name="style-value-string"></a>8.3.12
+ Deleted</h4>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The information from this section has been incorporated into
+ <a href="#style-value-familyName"><b>8.3.5
+ <familyName></b></a>. This section is retained in its empty
+ form in order to prevent section renumbering.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="semantics-style-resolution" name=
+ "semantics-style-resolution"></a>8.4 Style Resolution</h3>
+
+ <p>This section defines the semantics of style resolution in terms of a
+ standard processing model as follows:</p>
+
+ <ul>
+ <li>
+ <p><a href="#semantics-style-association"><b>8.4.1 Style
+ Association</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-style-inheritance"><b>8.4.2 Style
+ Inheritance</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-style-resolution-value-categories"><b>8.4.3
+ Style Resolution Value Categories</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-style-resolution-processing"><b>8.4.4 Style
+ Resolution Processing</b></a></p>
+ </li>
+ </ul>
+
+ <p>Any implementation of this model is permitted provided that the
+ externally observable results are consistent with the results produced
+ by this model.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of style resolution employed here are based upon
+ <a href="#xsl11">[XSL 1.1]</a>, § 5.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="semantics-style-association" name=
+ "semantics-style-association"></a>8.4.1 Style Association</h4>
+
+ <p>Style association is a sub-process of <a href=
+ "#semantics-style-resolution-processing"><b>8.4.4 Style Resolution
+ Processing</b></a> used to determine the specified style set of each
+ content and layout element.</p>
+
+ <p>Style matter may be associated with content and layout matter in a
+ number of ways:</p>
+
+ <ul>
+ <li>
+ <p><a href="#semantics-style-association-inline">inline
+ styling</a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-style-association-referential">referential
+ styling</a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#semantics-style-association-chained-referential">chained
+ referential styling</a></p>
+ </li>
+ </ul>
+
+ <p>In addition to the above, style matter may be associated with
+ layout matter using:</p>
+
+ <ul>
+ <li>
+ <p><a href="#semantics-style-association-nested">nested
+ styling</a></p>
+ </li>
+ </ul>
+
+ <div class="div4">
+ <h5><a id="semantics-style-association-inline" name=
+ "semantics-style-association-inline"></a>8.4.1.1 Inline
+ Styling</h5>
+
+ <p>Style properties may be expressed in an inline manner by direct
+ specification of an attribute from the TT Style Namespace on the
+ affected element. When expressed in this manner, the association of
+ style information is referred to as <em>inline styling</em>.</p>
+
+ <p>Style properties associated by inline styling are afforded a
+ higher priority than all other forms of style
+ association.</p><a id="style-association-example-1" name=
+ "style-association-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example – Inline Styling
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<p <span class=
+"strong">tts:color="white"</span>>White 1 <span <span class=
+"strong">tts:color="yellow"</span>>Yellow</span> White 2</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the two text fragments <code>"White 1
+ "</code> and <code>" White 2"</code>, which are interpreted as
+ anonymous spans, are not associated with a color style property;
+ rather, they inherit their color style from their parent
+ <code>p</code> element as described in <a href=
+ "#semantics-style-inheritance-content"><b>8.4.2.1 Content Style
+ Inheritance</b></a> below.</p>
+ </div>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-association-referential" name=
+ "semantics-style-association-referential"></a>8.4.1.2 Referential
+ Styling</h5>
+
+ <p>Style properties may be expressed in an out-of-line manner and
+ referenced by the affected element using the <code>style</code>
+ attribute. When expressed in this manner, the association of style
+ information is referred to as <em>referential styling</em>.</p>
+
+ <p>If a <code>style</code> attribute specifies multiple references,
+ then those references are evaluated in the specified order, and
+ that order applies to resolution of the value of a style property
+ in the case that it is specified along multiple reference
+ paths.</p>
+
+ <p>The use of referential styling is restricted to making reference
+ to <code>style</code> element descendants of a <code>styling</code>
+ element. It is considered an error to reference a
+ <code>style</code> element that is a descendant of a
+ <code>layout</code> element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The use of referential styling encourages the reuse of style
+ specifications while sacrificing locality of reference.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A single content element may be associated with style
+ properties by a hybrid mixture of inline and referential styling,
+ in which case inline styling is given priority as described above
+ by <a href="#semantics-style-association-inline"><b>8.4.1.1
+ Inline Styling</b></a>.</p>
+ </div><a id="style-association-example-2" name=
+ "style-association-example-2"></a>
+
+ <table class="example">
+ <caption>
+ Example – Referential Styling
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<style <span class="strong">xml:id="s1"</span> tts:color="white"/>
+<style <span class="strong">xml:id="s2"</span> tts:color="yellow"/>
+...
+<p <span class="strong">style="s1"</span>>White 1 <span <span class=
+"strong">style="s2"</span>>Yellow</span> White 2</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the two text fragments <code>"White 1
+ "</code> and <code>" White 2"</code>, which are interpreted as
+ anonymous spans, are not associated with a color style property;
+ rather, they inherit their color style from their parent
+ <code>p</code> element as described in <a href=
+ "#semantics-style-inheritance-content"><b>8.4.2.1 Content Style
+ Inheritance</b></a> below.</p>
+ </div>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-association-chained-referential" name=
+ "semantics-style-association-chained-referential"></a>8.4.1.3
+ Chained Referential Styling</h5>
+
+ <p>Style properties may be expressed in an out-of-line manner and
+ may themselves reference other out-of-line style properties, thus
+ creating a chain of references starting at the affected element.
+ When expressed in this manner, the association of style information
+ is referred to as <em>chained referential styling</em>.</p>
+
+ <p>If the same style property is specified in more than one
+ referenced style set, then the last referenced style set applies,
+ where the order of application starts from the affected element and
+ proceeds to referenced style sets, and, in turn, to subsequent
+ referenced style sets.</p>
+
+ <p>A loop in a sequence of chained style references must be
+ considered an error.</p>
+
+ <p>The use of referential styling is restricted to making reference
+ to <code>style</code> element descendants of a <code>styling</code>
+ element. It is considered an error to reference a
+ <code>style</code> element that is a descendant of a
+ <code>layout</code> element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The use of chained referential styling encourages the grouping
+ of style specifications into general and specific sets, which
+ further aids in style specification reuse.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A single content element may be associated with style
+ properties by a hybrid mixture of inline, referential styling,
+ and chained referential styling, in which case inline styling is
+ given priority as described above by <a href=
+ "#semantics-style-association-inline"><b>8.4.1.1 Inline
+ Styling</b></a>.</p>
+ </div><a id="style-association-example-3" name=
+ "style-association-example-3"></a>
+
+ <table class="example">
+ <caption>
+ Example – Chained Referential Styling
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<style <span class=
+"strong">xml:id="s1"</span> tts:color="white" tts:fontFamily="monospaceSerif"/>
+<style <span class="strong">xml:id="s2"</span> <span class=
+"strong">style="s1"</span> tts:color="yellow"/>
+...
+<p <span class="strong">style="s1"</span>>White Monospace</p>
+<p <span class="strong">style="s2"</span>>Yellow Monospace</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-association-nested" name=
+ "semantics-style-association-nested"></a>8.4.1.4 Nested
+ Styling</h5>
+
+ <p>Style properties may be expressed in a nested manner by direct
+ specification of one or more <code>style</code> element children of
+ the affected element. When expressed in this manner, the
+ association of style information is referred to as <em>nested
+ styling</em>.</p>
+
+ <p>Style properties associated by nested styling are afforded a
+ lower priority than inline styling but with higher priority than
+ referential styling.</p><a id="style-association-example-4" name=
+ "style-association-example-4"></a>
+
+ <table class="example">
+ <caption>
+ Example – Nested Styling
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region xml:id="r1">
+ <span class="strong"><style tts:extent="128px 66px"/></span>
+ <span class="strong"><style tts:origin="0px 0px"/></span>
+ <span class="strong"><style tts:displayAlign="center"/></span>
+</region>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In this version of this specification, nested styling applies
+ only to the <code>region</code> element.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="semantics-style-inheritance" name=
+ "semantics-style-inheritance"></a>8.4.2 Style Inheritance</h4>
+
+ <p>Style inheritance is a sub-process of <a href=
+ "#semantics-style-resolution-processing"><b>8.4.4 Style Resolution
+ Processing</b></a> used to determine the specified style set of each
+ content and layout element.</p>
+
+ <p>Styles are further propagated to content matter using:</p>
+
+ <ul>
+ <li>
+ <p><a href="#semantics-style-inheritance-content">content style
+ inheritance</a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-style-inheritance-content">region style
+ inheritance</a></p>
+ </li>
+ </ul>
+
+ <p>For the purpose of determining inherited styles, the element
+ hierarchy of an intermediate synchronic document form of a
+ <em>Document Instance</em> must be used, where such intermediate
+ forms are defined by <a href=
+ "#semantics-region-layout-step-1"><b>9.3.2 Intermediate Synchronic
+ Document Construction</b></a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The intermediate synchronic document form is utilized rather
+ than the original form in order to facilitate region inheritance
+ processing.</p>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-inheritance-content" name=
+ "semantics-style-inheritance-content"></a>8.4.2.1 Content Style
+ Inheritance</h5>
+
+ <p>Style properties are inherited from ancestor content elements
+ within an intermediate synchronic document if a style property is
+ not associated with a content element (or an anonymous span) and
+ the style property is designated as inheritable.</p>
+
+ <p>If a style property is determined to require inheritance, then
+ the inherited value must be the value of the same named style
+ property in the computed style set of the element's immediate
+ ancestor element within the applicable intermediate synchronic
+ document.</p><a id="style-inheritance-example-2" name=
+ "style-inheritance-example-2"></a>
+
+ <table class="example">
+ <caption>
+ Example – Content Style Inheritance
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<p <span class="strong">tts:fontFamily="monospaceSansSerif"</span>>
+ <span tts:color="yellow">Yellow Monospace</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the <code>span</code> element that
+ encloses the character items <code>Yellow Monospace</code> is not
+ associated with a <code>tts:fontFamily</code> style property and
+ this property is inheritable; therefore, the value of the
+ <code>tts:fontFamily</code> style is inherited from the computed
+ style set of the ancestor <code>p</code> element, and is added to
+ the specified style set of the <code>span</code> element.</p>
+ </div>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-inheritance-region" name=
+ "semantics-style-inheritance-region"></a>8.4.2.2 Region Style
+ Inheritance</h5>
+
+ <p>Style properties are inherited from a region element in the
+ following case:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>if a style property <em>P</em> is not associated with a
+ content element or an anonymous span <em>E</em> and the style
+ property is designated as inheritable, and</p>
+ </li>
+
+ <li>
+ <p>if that style property <em>P</em> is in the computed style
+ set of region <em>R</em>, and</p>
+ </li>
+
+ <li>
+ <p>if that element <em>E</em> is flowed into (presented within)
+ region <em>R</em>.</p>
+ </li>
+ </ol><a id="style-inheritance-example-3" name=
+ "style-inheritance-example-3"></a>
+
+ <table class="example">
+ <caption>
+ Example – Region Style Inheritance
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region <span class="strong">xml:id="r1"</span>>
+ <style tts:color="yellow"/>
+ <style tts:fontFamily="monospaceSerif"/>
+</region>
+...
+<p <span class="strong">region="r1"</span>>Yellow Monospace</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the anonymous span that encloses the
+ character items <code>Yellow Monospace</code> effectively
+ inherits the <code>tts:color</code> and
+ <code>tts:fontFamily</code> styles specified on the
+ <code>region</code> element into which the <code>p</code> element
+ is flowed (presented).</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="semantics-style-resolution-value-categories" name=
+ "semantics-style-resolution-value-categories"></a>8.4.3 Style
+ Resolution Value Categories</h4>
+
+ <p>During style resolution, layout, and presentation processing,
+ three categories of style property values are distinguished as
+ follows:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#semantics-style-resolved-value-category-specified">specified
+ values</a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#semantics-style-resolved-value-category-computed">computed
+ values</a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#semantics-style-resolved-value-category-actual">actual
+ values</a></p>
+ </li>
+ </ul>
+
+ <div class="div4">
+ <h5><a id="semantics-style-resolved-value-category-specified" name=
+ "semantics-style-resolved-value-category-specified"></a>8.4.3.1
+ Specified Values</h5>
+
+ <p>Values of style properties that are associated with or inherited
+ by an element or anonymous span are referred to as <em>specified
+ values</em>. The set of all specified style properties of a given
+ element is referred to as the <em>specified style set</em> of that
+ element.</p>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-resolved-value-category-computed" name=
+ "semantics-style-resolved-value-category-computed"></a>8.4.3.2
+ Computed Values</h5>
+
+ <p>When style properties are specified using relative value
+ expressions, such as a named color, a relative unit (e.g., cell),
+ or a percentage, then they need to be further resolved into
+ absolute units, such as an RGB triple, pixels, etc.</p>
+
+ <p>During the style resolution process, all specified style values
+ are reinterpreted (or recalculated) in absolute terms, and then
+ recorded as <em>computed values</em>. The set of all computed style
+ properties of a given element is referred to as the <em>computed
+ style set</em> of that element.</p>
+
+ <p>When a style value is inherited, either explicitly or
+ implicitly, it is the computed value of the style that is inherited
+ from an ancestor element. This is required since the resolution of
+ certain relative units, such as percentage, require evaluating the
+ expression in the immediate (local) context of reference, and not
+ in a distant (remote) context of reference where the related
+ (resolving) expression is not available.</p>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-resolved-value-category-actual" name=
+ "semantics-style-resolved-value-category-actual"></a>8.4.3.3 Actual
+ Values</h5>
+
+ <p>During the actual presentation process, other transformations
+ occur that map some value expressions to concrete, physical values.
+ For example, the colors of computed style values are further
+ subjected to closest color approximation and gamma correction
+ during the display process. In addition, length value expressions
+ that use pixels in computed style values are considered to express
+ logical rather than physical (device) pixels. Consequently, these
+ logical pixels are subject to being further transformed or mapped
+ to physical (device) pixels during presentation.</p>
+
+ <p>The final values that result from the logical to device mapping
+ process are referred to as <em>actual values</em>. The set of all
+ actual style properties of a given element is referred to as the
+ <em>actual style set</em> of that element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>More than one set of actual values may be produced during the
+ process of presentation. For example, a TTML presentation
+ processor device may output an RGBA component video signal which
+ is then further transformed by an NTSC or PAL television to
+ produce a final image. In this case, both color and dimensions
+ may further be modified prior to presentation.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In general, a TTML presentation processor will not have access
+ to actual style set values; as a consequence, no further use or
+ reference to actual values is made below when formally describing
+ the style resolution process.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="semantics-style-resolution-processing" name=
+ "semantics-style-resolution-processing"></a>8.4.4 Style Resolution
+ Processing</h4>
+
+ <p>The process of style resolution is defined herein as the procedure
+ (and results thereof) for resolving (determining) the computed values
+ of all style properties that apply to content and layout
+ elements:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#semantics-style-resolution-processing-definitions"><b>8.4.4.1
+ Conceptual Definitions</b></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#semantics-style-resolution-processing-sss"><b>8.4.4.2 Specified
+ Style Set Processing</b></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#semantics-style-resolution-processing-css"><b>8.4.4.3 Computed
+ Style Set Processing</b></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#semantics-style-resolution-process-overall"><b>8.4.4.4 Style
+ Resolution Process</b></a></p>
+ </li>
+ </ul>
+
+ <p>The process described here forms an integral sub-process of
+ <a href="#semantics-region-layout"><b>9.3 Region Layout and
+ Presentation</b></a>.</p>
+
+ <div class="div4">
+ <h5><a id="semantics-style-resolution-processing-definitions" name=
+ "semantics-style-resolution-processing-definitions"></a>8.4.4.1
+ Conceptual Definitions</h5>
+
+ <p>For the purpose of interpreting the style resolution processing
+ model specified below, the following conceptual definitions
+ apply:</p>
+
+ <dl>
+ <dt class="label">[style property]</dt>
+
+ <dd>
+ <p>a style property, <em>P</em>, is considered to consist of a
+ tuple <code>[name, value]</code>, where the name of the
+ property is a tuple <code>[namespace value, unqualified
+ name]</code> and the value of the property is a tuple
+ <code>[category, type, value expression]</code></p><a id=
+ "conceptual-definition-example-style-property" name=
+ "conceptual-definition-example-style-property"></a>
+
+ <table class="example">
+ <caption>
+ Example – conceptual style property
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+[
+ ["http://www.w3.org/ns/ttml#styling", "color"],
+ ["specified", <em>color</em>, "red"]
+]
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </dd>
+
+ <dt class="label">[style (property) set]</dt>
+
+ <dd>
+ <p>a style (property) set consists of an unordered collection
+ of style properties, where no two style properties within the
+ set have an identical name, where by "identical name" is meant
+ equality of namespace value of name tuple and unqualified name
+ of name tuple;</p>
+
+ <p>in a specified style (property) set, the category of each
+ style property is "specified"; a specified style (property) set
+ of an element <em>E</em> is referred to as
+ <em>SSS(E)</em>;</p><a id=
+ "conceptual-definition-example-specified-style-set" name=
+ "conceptual-definition-example-specified-style-set"></a>
+
+ <table class="example">
+ <caption>
+ Example – conceptual (specified) style (property) set
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+{
+ [
+ ["http://www.w3.org/ns/ttml#styling", "backgroundColor"],
+ ["specified", <em>color</em>, 0x00FF00 ]
+ ],
+ [
+ ["http://www.w3.org/ns/ttml#styling", "color"],
+ ["specified", <em>color</em>, "red" ]
+ ],
+ [
+ ["http://www.w3.org/ns/ttml#styling", "fontSize"],
+ ["specified", <em>length</em>, "1c" ]
+ ],
+ [
+ ["http://www.w3.org/ns/ttml#styling", "lineHeight"],
+ ["specified", <em>length</em>, "117%" ]
+ ]
+}
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>in a computed style (property) set, the category of each
+ style property is either "specified" or "computed"; a computed
+ style (property) set of an element <em>E</em> is referred to as
+ <em>CSS(E)</em>;</p><a id=
+ "conceptual-definition-example-computed-style-set" name=
+ "conceptual-definition-example-computed-style-set"></a>
+
+ <table class="example">
+ <caption>
+ Example – conceptual (computed) style (property) set
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+{
+ [
+ ["http://www.w3.org/ns/ttml#styling", "backgroundColor"],
+ ["specified", <em>color</em>, 0x00FF00 ]
+ ],
+ [
+ ["http://www.w3.org/ns/ttml#styling", "color"],
+ ["computed", <em>color</em>, 0xFF0000 ]
+ ],
+ [
+ ["http://www.w3.org/ns/ttml#styling", "fontSize"],
+ ["computed", <em>length</em>, "24px" ]
+ ],
+ [
+ ["http://www.w3.org/ns/ttml#styling", "lineHeight"],
+ ["computed", <em>length</em>, "28px" ]
+ ]
+}
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </dd>
+
+ <dt class="label">[style (property) merging]</dt>
+
+ <dd>
+ <p>a style property <em>P<sub>new</sub></em> is merged into a
+ style (property) set, <em>SS</em>, as follows: if a style
+ property <em>P<sub>old</sub></em> is already present in
+ <em>SS</em> where the name of <em>P<sub>new</sub></em> is
+ identical to the name of <em>P<sub>old</sub></em>, then replace
+ <em>P<sub>old</sub></em> in <em>SS</em> with
+ <em>P<sub>new</sub></em>; otherwise, add
+ <em>P<sub>new</sub></em> to <em>SS</em>;</p>
+ </dd>
+
+ <dt class="label">[style (property) set merging]</dt>
+
+ <dd>
+ <p>a style (property) set <em>SS<sub>new</sub></em> is merged
+ into an existing style (property) set <em>SS<sub>old</sub></em>
+ as follows: for each style property <em>P<sub>new</sub></em> in
+ <em>SS<sub>new</sub></em>, merge <em>P<sub>new</sub></em> into
+ <em>SS<sub>old</sub></em>;</p>
+ </dd>
+ </dl>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-resolution-processing-sss" name=
+ "semantics-style-resolution-processing-sss"></a>8.4.4.2 Specified
+ Style Set Processing</h5>
+
+ <p>The specified style set <em>SSS</em> of an element or anonymous
+ span <em>E</em>, <em>SSS(E)</em>, is determined according to the
+ following ordered rules:</p>
+
+ <ol class="enumar">
+ <li>
+ <p><span class="strong">[initialization]</span> initialize the
+ specified style set <em>SSS</em> of <em>E</em> to the empty
+ set;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[referential and chained referential
+ styling]</span> for each <code>style</code> element
+ <em>S<sub>REF</sub></em> referenced by a <code>style</code>
+ attribute specified on <em>E</em>, and in the order specified
+ in the <code>style</code> attribute, then, if
+ <em>S<sub>REF</sub></em> is a descendant of a
+ <code>styling</code> element, merge the specified style set of
+ <em>S<sub>REF</sub></em>, <em>SSS(S<sub>REF</sub>)</em>, into
+ the specified style set of <em>E</em>, <em>SSS(E)</em>;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[nested styling]</span> for each nested
+ <code>style</code> element child <em>S<sub>NEST</sub></em> of
+ <em>E</em>, and in the specified order of child elements, merge
+ the specified style set of <em>S<sub>NEST</sub></em>,
+ <em>SSS(S<sub>NEST</sub>)</em>, into the specified style set of
+ <em>E</em>, <em>SSS(E)</em>;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[inline styling]</span> for each style
+ property <em>P</em> expressed as a specified styling attribute
+ of <em>E</em>, merge <em>P</em> into the specified style set of
+ <em>E</em>, <em>SSS(E)</em>;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[animation styling]</span> for each
+ style property <em>P</em> expressed as a specified styling
+ attribute of an immediate animation (<code>set</code>) element
+ child of element <em>E</em>, merge <em>P</em> into the
+ specified style set of <em>E</em>, <em>SSS(E)</em>;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[implicit inheritance]</span> if the
+ element type of <em>E</em> is not the styling element type
+ <code>style</code>, then for each inheritable style property
+ <em>P<sub>INH</sub></em> in the set of style properties defined
+ above in <a href="#styling-attribute-vocabulary"><b>8.2 Styling
+ Attribute Vocabulary</b></a>, perform the following ordered
+ sub-steps:</p>
+
+ <ol class="enumla">
+ <li>
+ <p>if <em>P<sub>INH</sub></em> is present in the specified
+ style set of <em>E</em>, <em>SSS(E)</em>, then continue to
+ the next inheritable style property;</p>
+ </li>
+
+ <li>
+ <p>if the element type of <em>E</em> is the layout element
+ type <code>region</code>, then set <em>P′</em> to the
+ initial value of property <em>P</em>, where the initial
+ value of a property is determined according to the specific
+ property definition found above in <a href=
+ "#styling-attribute-vocabulary"><b>8.2 Styling Attribute
+ Vocabulary</b></a>;</p>
+ </li>
+
+ <li>
+ <p>if the element type of <em>E</em> is a content element
+ type or anonymous span, then set <em>P′</em> to the result
+ of looking up the value of <em>P</em> in the computed style
+ set of the immediate ancestor element of <em>E</em>, i.e.,
+ <em>CSS(PARENT(E))</em>;</p>
+ </li>
+
+ <li>
+ <p>if the value of <em>P′</em> is not undefined, then merge
+ <em>P′</em> into the specified style set of <em>E</em>,
+ <em>SSS(E)</em>.</p>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-resolution-processing-css" name=
+ "semantics-style-resolution-processing-css"></a>8.4.4.3 Computed
+ Style Set Processing</h5>
+
+ <p>The computed style set <em>CSS</em> of an element or anonymous
+ span <em>E</em>, <em>CSS(E)</em>, is determined according to the
+ following ordered rules:</p>
+
+ <ol class="enumar">
+ <li>
+ <p><span class="strong">[resolve specified styles]</span>
+ determine (obtain) the specified style set <em>SSS</em> of
+ <em>E</em>, namely, <em>SSS(E)</em>, in accordance with
+ <a href="#semantics-style-resolution-processing-sss"><b>8.4.4.2
+ Specified Style Set Processing</b></a>;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[initialization]</span> initialize
+ <em>CSS(E)</em> to a (deep) copy of <em>SSS(E)</em>;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[filter]</span> if <em>E</em> is a
+ <code>style</code> element, then return <em>CSS(E)</em> as the
+ resulting computed style set without further resolution;
+ otherwise, continue with the next rule;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[relative value resolution]</span> for
+ each style property <em>P</em> in <em>CSS(E)</em>, where the
+ value type of <em>P</em> is relative, perform the following
+ ordered sub-steps:</p>
+
+ <ol class="enumla">
+ <li>
+ <p>replace the relative value of <em>P</em> with an
+ equivalent, non-relative (computed) value;</p>
+ </li>
+
+ <li>
+ <p>set the category of <em>P</em> to "computed";</p>
+ </li>
+ </ol>
+ </li>
+ </ol>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>As a result of the filtering rule above, the computed style
+ set of a <code>style</code> element includes only specified
+ values, in which case relative value expressions remain relative;
+ consequently, the resolution of relative value expressions (that
+ may be assigned by means of referential style association) always
+ takes place in the context of a layout or content element which
+ has a presentation context, and not in the non-presentation,
+ declaration context of a referentiable <code>style</code>
+ element.</p>
+ </div>
+ </div>
+
+ <div class="div4">
+ <h5><a id="semantics-style-resolution-process-overall" name=
+ "semantics-style-resolution-process-overall"></a>8.4.4.4 Style
+ Resolution Process</h5>
+
+ <p>The top-level style resolution process is defined as follows:
+ using a preorder traversal of each element and anonymous span,
+ <em>E</em>, of an intermediate synchronic document,
+ <em>DOC<sub>inter</sub></em>, perform the following ordered
+ sub-steps:</p>
+
+ <ol class="enumar">
+ <li>
+ <p><span class="strong">[filter]</span> if the element type of
+ <em>E</em> is not the styling element type <code>style</code>,
+ is not the layout element type <code>region</code>, and is not
+ one of the content element types <code>body</code>,
+ <code>div</code>, <code>p</code>, <code>span</code>,
+ <code>br</code>, or anonymous span, then continue to the next
+ element in the preorder traversal;</p>
+ </li>
+
+ <li>
+ <p><span class="strong">[resolve computed styles]</span>
+ determine (obtain) the computed style set <em>CSS</em> of
+ <em>E</em>, namely, <em>CSS(E)</em>, in accordance with
+ <a href="#semantics-style-resolution-processing-css"><b>8.4.4.3
+ Computed Style Set Processing</b></a>.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="layout" name="layout"></a>9 Layout</h2>
+
+ <p>This section specifies the <em>layout</em> matter of the core
+ vocabulary catalog, where layout is to be understood as a separable layer
+ of information that applies to content and that denotes authorial
+ intentions about the presentation of that content.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The two layers of layout and style matter are considered to be
+ independently separable. Layout matter specifies one or more spaces or
+ areas into which content is intended to be presented, while style
+ matter specifies the manner in which presentation occurs within the
+ layout.</p>
+
+ <p>In certain cases, a content author may choose to embed (inline)
+ style matter directly into layout or content matter. In such cases, an
+ alternative exists – use of referential styling – in which the style
+ matter is not embedded (inlined).</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="layout-element-vocabulary" name=
+ "layout-element-vocabulary"></a>9.1 Layout Element Vocabulary</h3>
+
+ <p>The following elements specify the structure and principal layout
+ aspects of a <em>Document Instance</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#layout-vocabulary-layout"><b>9.1.1 layout</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#layout-vocabulary-region"><b>9.1.2 region</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="layout-vocabulary-layout" name=
+ "layout-vocabulary-layout"></a>9.1.1 layout</h4>
+
+ <p>The <code>layout</code> element is a container element used to
+ group layout matter, including metadata that applies to layout
+ matter.</p>
+
+ <p>The <code>layout</code> element accepts as its children zero or
+ more elements in the <code>Metadata.class</code> element group,
+ followed by zero or more <code>region</code> elements.</p><a id=
+ "elt-syntax-layout" name="elt-syntax-layout"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: layout
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<layout
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</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=
+"#layout-vocabulary-region">region</a>*
+</layout>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>To the extent that time semantics apply to the content of the
+ <code>layout</code> element, the implied time interval of this
+ element is defined to be coterminous with the <em>Root Temporal
+ Extent</em>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="layout-vocabulary-region" name=
+ "layout-vocabulary-region"></a>9.1.2 region</h4>
+
+ <p>The <code>region</code> element is used to define a rectangular
+ space or area into which content is to be flowed for the purpose of
+ presentation.</p>
+
+ <p>In addition, and in accordance with <a href=
+ "#semantics-style-inheritance-region"><b>8.4.2.2 Region Style
+ Inheritance</b></a>, the <code>region</code> element may be used to
+ specify inheritable style properties to be inherited by content that
+ is flowed into it.</p>
+
+ <p>The <code>region</code> element accepts as its children zero or
+ more 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 <code>style</code>
+ elements.</p>
+
+ <p>Any metadata specified by children in the
+ <code>Metadata.class</code> element group applies semantically to the
+ <code>region</code> element and its descendants as a whole. Any
+ animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>region</code> element. Any <code>style</code> child element
+ must be considered a local style definition that applies only to the
+ containing <code>region</code> element, i.e., does not apply for
+ resolving referential styling (but does apply for region style
+ inheritance).</p><a id="elt-syntax-region" name=
+ "elt-syntax-region"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: region
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<region
+ <a href="#timing-attribute-begin">begin</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href=
+"#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#metadata-attribute-role">ttm:role</a> = string
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</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=
+"#styling-vocabulary-style">style</a>*
+</region>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If <code>begin</code> and (or) <code>end</code> attributes are
+ specified on a <code>region</code> element, then they specify the
+ beginning and (or) ending points of a time interval during which the
+ region is eligible for activation and with respect to which animation
+ child elements of the region are timed. If specified, these begin and
+ end points are relative to the time interval of the nearest ancestor
+ element associated with a time interval, irregardless of whether that
+ interval is explicit or implied.</p>
+
+ <p>The nearest ancestor element of a <code>region</code> element that
+ is associated with a time interval is the <code>layout</code>
+ element.</p>
+
+ <p>If a <code>dur</code> attribute is specified on the
+ <code>region</code> element, then it specifies the simple duration of
+ the region.</p>
+
+ <p>For the purpose of determining the semantics of presentation
+ processing, a region that is temporally inactive must not produce any
+ visible marks when presented on a visual medium.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A <code>region</code> element may be associated with a time
+ interval for two purposes: (1) in order to temporally bound the
+ presentation of the region and its content, and (2) to provide a
+ temporal context in which animations of region styles may be
+ effected.</p>
+
+ <p>For example, an author may wish to specify a region that is
+ otherwise empty, but may have a visible background color to be
+ presented starting at some time and continuing over the region's
+ duration. The simple duration of the region serves additionally to
+ scope the presentation effects of content that is targeted to the
+ region. An author may also wish to move a region within the
+ <em>Root Container Region</em> or change a region's background
+ color by means of animation effects. In both of these cases, it is
+ necessary to posit an active time interval for a region.</p>
+ </div>
+
+ <p>If no <code>timeContainer</code> attribute is specified on a
+ <code>region</code> element, then it must be interpreted as having
+ <em>parallel</em> time containment semantics.</p>
+
+ <p>If a <a href="#metadata-attribute-role"><code>ttm:role</code></a>
+ attribute is specified on a <code>region</code> element, then it must
+ adhere to the value syntax defined by <a href=
+ "#metadata-attribute-role-syntax"><b>Syntax Representation –
+ ttm:role</b></a>, and where the roles identified by this attribute
+ express the semantic roles of the region independently from the
+ semantic roles of any content targeted to (associated with) the
+ region.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="layout-attribute-vocabulary" name=
+ "layout-attribute-vocabulary"></a>9.2 Layout Attribute Vocabulary</h3>
+
+ <p>This section defines the <a href="#layout-attribute-region"><b>9.2.1
+ region</b></a> attribute used with content elements.</p>
+
+ <div class="div3">
+ <h4><a id="layout-attribute-region" name=
+ "layout-attribute-region"></a>9.2.1 region</h4>
+
+ <p>The <code>region</code> attribute is used to reference a
+ <code>region</code> element which defines a space or area into which
+ a content element is intended to be flowed.</p>
+
+ <p>If specified, the value of a <code>region</code> attribute must
+ adhere to the <code>IDREF</code> data type defined by <a href=
+ "#xsd-2">[XML Schema Part 2]</a>, § 3.3.9, and, furthermore, this
+ IDREF must reference a <code>region</code> element which has a
+ <code>layout</code> element as an ancestor.</p>
+
+ <p>The <code>region</code> attribute may be specified by an instance
+ of the following element types:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-div"><code>div</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-p"><code>p</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-span"><code>span</code></a></p>
+ </li>
+ </ul>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See <a href="#semantics-region-layout"><b>9.3 Region Layout and
+ Presentation</b></a> below for further information on content flow
+ in a region.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="semantics-region-layout" name=
+ "semantics-region-layout"></a>9.3 Region Layout and Presentation</h3>
+
+ <p>This section defines the semantics of region layout and presentation
+ in terms of a standard processing model as follows:</p>
+
+ <ul>
+ <li>
+ <p><a href="#semantics-default-region"><b>9.3.1 Default
+ Region</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-region-layout-step-1"><b>9.3.2 Intermediate
+ Synchronic Document Construction</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-region-layout-step-2"><b>9.3.3 Synchronic
+ Flow Processing</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#semantics-region-layout-example"><b>9.3.4 Elaborated
+ Example (Informative)</b></a></p>
+ </li>
+ </ul>
+
+ <p>Any implementation is permitted provided that the externally
+ observable results are consistent with the results produced by this
+ model.</p>
+
+ <div class="div3">
+ <h4><a id="semantics-default-region" name=
+ "semantics-default-region"></a>9.3.1 Default Region</h4>
+
+ <p>If a <em>Document Instance</em> does not specify a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element, then a
+ <em>default region</em> is implied with the following
+ characteristics:</p>
+
+ <ul>
+ <li>
+ <p>the identity of the default region is considered to be
+ anonymous;</p>
+ </li>
+
+ <li>
+ <p>the extent of the default region is the same as the extent of
+ the <em>Root Container Region</em>;</p>
+ </li>
+
+ <li>
+ <p>the temporal interval of the default region is the same as the
+ interval defined by the <em>Root Temporal Extent</em>;</p>
+ </li>
+ </ul>
+
+ <p>Furthermore, if no <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element is
+ specified, then the <a href=
+ "#layout-attribute-region"><code>region</code></a> attribute must not
+ be specified on any content element in the <em>Document
+ Instance</em>.</p>
+
+ <p>If a default region is implied for a given <em>Document
+ Instance</em>, then the <a href=
+ "#document-structure-vocabulary-body"><code>body</code></a> element
+ is implicitly targeted to (associated with) the default region.</p>
+
+ <p>When implying a default region, the <em>Document Instance</em> is
+ to be treated as if a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element and its
+ parent <a href="#layout-vocabulary-layout"><code>layout</code></a>
+ element were specified in a <a href=
+ "#document-structure-vocabulary-head"><code>head</code></a> element,
+ and a matching <a href=
+ "#layout-attribute-region"><code>region</code></a> attribute were
+ specified on the <a href=
+ "#document-structure-vocabulary-body"><code>body</code></a> element
+ as shown in the following example:</p><a id=
+ "semantics-default-region-example" name=
+ "semantics-default-region-example"></a>
+
+ <table class="example">
+ <caption>
+ Example – Implied Default Region
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head>
+ <span class="strong"><layout>
+ <region xml:id="anonymous"/>
+ </layout></span>
+ </head>
+ <body <span class="strong">region="anonymous"</span>/>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, a default <code>region</code> element and
+ <code>region</code> attribute are implied. In addition, a
+ <code>layout</code> container element is implied for the implied
+ <code>region</code> element.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="semantics-region-layout-step-1" name=
+ "semantics-region-layout-step-1"></a>9.3.2 Intermediate Synchronic
+ Document Construction</h4>
+
+ <p>For the purposes of performing presentation processing, the active
+ time duration of a <em>Document Instance</em> is divided into a
+ sequence of time coordinates where at each time coordinate, some
+ element becomes temporally active or inactive, then, at each such
+ time coordinate, a <em>Document Instance</em> is mapped from its
+ original, source form, <em>DOC<sub>source</sub></em> , to an
+ intermediate synchronic document form, <em>DOC<sub>inter</sub></em> ,
+ according to the <span class="strong">[construct intermediate
+ document]</span> procedure:</p>
+
+ <dl>
+ <dt class="label">[construct intermediate document]</dt>
+
+ <dd>
+ <ol class="enumar">
+ <li>
+ <p>for each temporally active region <em>R</em>, replicate
+ the sub-tree of <em>DOC<sub>source</sub></em> headed by the
+ <code>body</code> element;</p>
+ </li>
+
+ <li>
+ <p>evaluating this sub-tree in a postorder traversal, prune
+ elements if they are not a content element, if they are
+ temporally inactive, if they are empty, or if they aren't
+ associated with region <em>R</em> according to the
+ <span class="strong">[associate region]</span> procedure;</p>
+ </li>
+
+ <li>
+ <p>if the pruned sub-tree is non-empty, then reparent it to
+ the <em>R</em> element;</p>
+ </li>
+
+ <li>
+ <p>finally, after completing the above steps, prune the
+ original <code>body</code> element from the intermediate
+ document, then prune all <code>region</code>,
+ <code>begin</code>, <code>end</code>, and <code>dur</code>
+ attributes, which are no longer semantically relevant;</p>
+ </li>
+ </ol>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In this section, the term <em>prune</em>, when used in
+ reference to an element, means that the element is to be
+ removed from its parent's children, which, in turn, implies
+ that the descendants of the pruned element will no longer be
+ descendants of the element's parent. When <em>prune</em> is
+ used in reference to an attribute, it means that attribute is
+ to be removed from its associated (owning) element node.</p>
+ </div>
+ </dd>
+
+ <dt class="label">[associate region]</dt>
+
+ <dd>
+ <p>A content element is associated with a region according to the
+ following ordered rules, where the first rule satisfied is used
+ and remaining rules are skipped:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>if the element specifies a <a href=
+ "#layout-attribute-region"><code>region</code></a> attribute,
+ then the element is associated with the region referenced by
+ that attribute;</p>
+ </li>
+
+ <li>
+ <p>if some ancestor of that element specifies a <a href=
+ "#layout-attribute-region"><code>region</code></a> attribute,
+ then the element is associated with the region referenced by
+ the most immediate ancestor that specifies this
+ attribute;</p>
+ </li>
+
+ <li>
+ <p>if the element contains a descendant element that
+ specifies a <a href=
+ "#layout-attribute-region"><code>region</code></a> attribute,
+ then the element is associated with the region referenced by
+ that attribute;</p>
+ </li>
+
+ <li>
+ <p>if a default region was implied (due to the absence of any
+ <a href="#layout-vocabulary-region"><code>region</code></a>
+ element), then the element is associated with the default
+ region;</p>
+ </li>
+
+ <li>
+ <p>the element is not associated with any region.</p>
+ </li>
+ </ol>
+ </dd>
+ </dl>
+
+ <p>The result of performing the processing described above will be a
+ sequence of <em>N</em> intermediate synchronic <em>Document
+ Instances</em>, <em>DOC<sub><span>inter<sub>0</sub></span></sub></em>
+ … <em>DOC<sub><span>inter<sub>N−1</sub></span></sub></em>.</p>
+
+ <div class="note" id="semantics-smooth-scrolling-recommendation">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Where an implementation is able to detect significant similarity
+ between two adjacent synchronic <em>Document Instances</em>,
+ <em>DOC<sub><span>inter<sub>N</sub></span></sub></em>
+ <em>DOC<sub><span>inter<sub>N−1</sub></span></sub></em>, then it is
+ preferred that the implementation make the transition between
+ presenting the two instances as smooth as possible, e.g., as
+ described by <a href="#cea608c">[CEA-608-C]</a>, § C.3.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="semantics-region-layout-step-2" name=
+ "semantics-region-layout-step-2"></a>9.3.3 Synchronic Flow
+ Processing</h4>
+
+ <p>Subsequent to performing a temporal (synchronic) slice and
+ subsequent remapping of regionally selected content hierarchy, the
+ resulting intermediate synchronic document is subjected to a flow
+ transformation step that produces a rooted flow object tree
+ represented as an XSL FO document instance as defined by <a href=
+ "#xsl11">[XSL 1.1]</a>, and semantically extended by TTML specific
+ style properties that have no XSL FO counterpart.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In this section, the use of XSL FO is intended to be conceptual
+ only, employed solely for the purpose of defining the normative
+ presentation semantics of TTML. An actual implementation of this
+ algorithm is not required to create or process XSL-FO
+ representations. In particular, it is possible to implement these
+ semantics using alternative presentation models, such as Cascading
+ Style Sheets (CSS).</p>
+ </div>
+
+ <p>Each intermediate synchronic document produced by <a href=
+ "#semantics-region-layout-step-1"><b>9.3.2 Intermediate Synchronic
+ Document Construction</b></a> is mapped to an XSL FO document
+ instance, <em>F</em>, as follows:</p>
+
+ <ol class="enumar">
+ <li>
+ <p>perform the following ordered sub-steps to create anonymous
+ spans:</p>
+
+ <ol class="enumla">
+ <li>
+ <p>for each significant text node in a content element,
+ synthesize an anonymous span to enclose the text node,
+ substituting the new anonymous span for the original text
+ node child in its sibling and parent hierarchy;</p>
+ </li>
+
+ <li>
+ <p>for each contiguous sequence of anonymous spans, replace
+ the sequence with a single anonymous span which contains a
+ sequence of text nodes representing the individual text node
+ children of the original sequence of anonymous spans;</p>
+ </li>
+
+ <li>
+ <p>for each span element whose child is a single anonymous
+ span, replace the anonymous span with its sequence of child
+ text nodes;</p>
+ </li>
+ </ol>
+ </li>
+
+ <li>
+ <p>resolve styles according to <a href=
+ "#semantics-style-resolution-process-overall"><b>8.4.4.4 Style
+ Resolution Process</b></a>;</p>
+ </li>
+
+ <li>
+ <p>map the <code>tt</code> element to an <code>fo:root</code>
+ element, populated initially with an
+ <code>fo:layout-master-set</code> element that contains a valid
+ <code>fo:simple-page-master</code> that, in turn, contains an
+ <code>fo:region-body</code> child, where the extent of the
+ <em>Root Container Region</em> expressed on the <code>tt</code>
+ element is mapped to <code>page-width</code> and
+ <code>page-height</code> attributes on the
+ <code>fo:simple-page-master</code> element;</p>
+ </li>
+
+ <li>
+ <p>map the <code>layout</code> element to an
+ <code>fo:page-sequence</code> element and a child
+ <code>fo:flow</code> element that reference the page master and
+ page region defined by the simple page master produced above;</p>
+ </li>
+
+ <li>
+ <p>map each non-empty <code>region</code> element to an
+ <code>fo:block-container</code> element with an
+ <code>absolute-position</code> attribute with value
+ <code>absolute</code>, with <code>top</code>, <code>left</code>,
+ <code>bottom</code>, and <code>right</code> attributes that
+ express a rectangle equivalent to the region's origin and extent,
+ and with a <code>line-stacking-strategy</code> attribute with
+ value <code>line-height</code>;</p>
+ </li>
+
+ <li>
+ <p>for each <code>body</code>, <code>div</code>, and
+ <code>p</code> element that is not associated with a
+ <code>tts:display</code> style property with the value
+ <code>none</code>, map the element to a distinct
+ <code>fo:block</code> element, populating the style properties of
+ <code>fo:block</code> by using the computed style set associated
+ with each original TTML Content element;</p>
+ </li>
+
+ <li>
+ <p>for the resulting <code>fo:block</code> formatting object
+ produced in the previous step that corresponds to the
+ <code>body</code> element, perform the following ordered
+ sub-steps:</p>
+
+ <ol class="enumla">
+ <li>
+ <p>if the <code>display-align</code> style property of this
+ <code>fo:block</code> has the value <code>center</code> or
+ <code>after</code>, then synthesize and insert as the first
+ child of this <code>fo:block</code> an empty
+ <code>fo:block</code> with the following attributes:
+ <code>space-after.optimum</code>,
+ <code>space-after.maximum</code>, and
+ <code>space-after.conditionality</code>, where the value of
+ the former two attributes is the height or width of the
+ containing <code>fo:block-container</code> element, whichever
+ of these is designated as the block progression dimension,
+ and where the value of the last is <code>retain</code>;</p>
+ </li>
+
+ <li>
+ <p>if the <code>display-align</code> style property of this
+ <code>fo:block</code> has the value <code>center</code> or
+ <code>before</code>, then synthesize and insert as the last
+ child of this <code>fo:block</code> an empty
+ <code>fo:block</code> with the following attributes:
+ <code>space-after.optimum</code>,
+ <code>space-after.maximum</code>, and
+ <code>space-after.conditionality</code>, where the value of
+ the former two attributes is the height or width of the
+ containing <code>fo:block-container</code> element, whichever
+ of these is designated as the block progression dimension,
+ and where the value of the last is <code>retain</code>;</p>
+ </li>
+ </ol>
+ </li>
+
+ <li>
+ <p>for each <code>span</code> element that is not associated with
+ a <code>tts:display</code> style property with the value
+ <code>none</code> and for each anonymous span that is a child of
+ a <code>p</code> or <code>span</code> element, map the element or
+ sequence of character items to a distinct <code>fo:inline</code>
+ element, populating the style properties of
+ <code>fo:inline</code> by using the computed style set associated
+ with each original TTML Content element or anonymous span;</p>
+ </li>
+
+ <li>
+ <p>for each <code>br</code> element that is not associated with a
+ <code>tts:display</code> style property with the value
+ <code>none</code>, map the element to a distinct
+ <code>fo:character</code> element having the following
+ properties:</p>
+
+ <ul>
+ <li>
+ <p><code>character="&#x000A;"</code></p>
+ </li>
+
+ <li>
+ <p><code>suppress-at-line-break="retain"</code></p>
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ <p>for each TTML style property attribute in some computed style
+ set that has no counterpart in <a href="#xsl11">[XSL 1.1]</a>,
+ map that attribute directly through to the relevant formatting
+ object produced by the input TTML Content element to which the
+ style property applies;</p>
+ </li>
+
+ <li>
+ <p>optionally, synthesize a unique <code>id</code> attribute on
+ each resulting formatting object element that relates that
+ element to the input element that resulted in that formatting
+ object element;</p>
+ </li>
+ </ol>
+
+ <p>For each resulting document instance F, if processing requires
+ presentation on a visual medium, then apply formatting and rendering
+ semantics consistent with that prescribed by <a href="#xsl11">[XSL
+ 1.1]</a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In an XSL FO area tree produced by formatting <em>F</em> using
+ an <a href="#xsl11">[XSL 1.1]</a> formatting processor, the
+ <code>page-viewport-area</code>, which is generated by
+ <code>fo:page-sequence</code> element by reference to the sole
+ generated <code>fo:simple-page-master</code> element, would
+ correspond to the <em>Root Container Region</em> defined above in
+ <a href="#definitions"><b>2 Definitions</b></a>.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Due to the possible presence of TTML style properties or style
+ property values in a given <em>Document Instance</em> for which
+ there is no <a href="#xsl11">[XSL 1.1]</a> counterpart,
+ Implementors should recognize that it is the layout model of
+ <a href="#xsl11">[XSL 1.1]</a> that is being referenced by this
+ specification, not the requirement to use a compliant <a href=
+ "#xsl11">[XSL 1.1]</a> formatting processor, since such would not
+ necessarily be sufficient to satisfy the full presentation
+ semantics defined by this specification, and would contain a large
+ number of features not needed to implement the presentation
+ semantics of TTML.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The purpose of inserting additional, collapsible space in the
+ block progression dimension of the <code>fo:block</code> that
+ corresponds with the <code>body</code> element is to ensure that
+ the before and after edges of this <code>fo:block</code> are
+ coincident with the before and after edges of the
+ <code>fo:block-container</code> that corresponds to the containing
+ <code>region</code>, while simultaneously taking into account the
+ needs to satisfy alignment in the block progression dimension. For
+ example, this assures that the background color associated with the
+ <code>body</code> element, if not <code>transparent</code>, will
+ fill the containing region wholly.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="semantics-region-layout-example" name=
+ "semantics-region-layout-example"></a>9.3.4 Elaborated Example
+ (Informative)</h4>
+
+ <p>An example of the processing steps described above is elaborated
+ below, starting with <a href="#region-mapping-example-1-s"><b>Example
+ – Sample Source Document</b></a>.</p><a id=
+ "region-mapping-example-1-s" name="region-mapping-example-1-s"></a>
+
+ <table class="example">
+ <caption>
+ Example – Sample Source Document
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt tts:extent="640px 480px" xml:lang="en"
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ </layout>
+ </head>
+ <body xml:id="b1">
+ <div xml:id="d1" begin="0s" dur="2s">
+ <p xml:id="p1" region="r1">Text 1</p>
+ <p xml:id="p2" region="r2">Text 2</p>
+ </div>
+ <div xml:id="d2" begin="1s" dur="2s">
+ <p xml:id="p3" region="r2">Text 3</p>
+ <p xml:id="p4" region="r1">Text 4</p>
+ </div>
+ </body>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>In the above document, the content hierarchy consists of two
+ divisions, each containing two paragraphs. This content is targeted
+ (associated with) one of two non-overlapping regions that are styled
+ identically except for their position and their foreground colors,
+ the latter of which is inherited by and applies to the (and, in this
+ case, anonymous) spans reparented into the regions.</p>
+
+ <p>The following, first intermediate document shows the synchronic
+ state for time interval [0,1), during which time only division
+ <code>d1</code> is temporally active, and where paragraphs
+ <code>p1</code> and <code>p2</code> (and their ancestors) are
+ associated with regions <code>r1</code> and <code>r2</code>,
+ respectively.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The intermediate documents shown below are not valid
+ <em>Document Instances</em>, but rather, are representations of
+ possible internal processing states used for didactic purposes.</p>
+ </div><a id="region-mapping-example-1-i0" name=
+ "region-mapping-example-1-i0"></a>
+
+ <table class="example">
+ <caption>
+ Example – Intermediate Document – [0s,1s)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt tts:extent="640px 480px" xml:lang="en"
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>An XSL FO document instance that would yield rendering consistent
+ with TTML, and which may be produced by performing flow processing
+ upon the first intermediate document is illustrated below.</p><a id=
+ "region-mapping-example-1-f0" name="region-mapping-example-1-f0"></a>
+
+ <table class="example">
+ <caption>
+ Example – XSL FO Document – [0s,1s)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="m1"
+ page-width="640px" page-height="480px">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="m1">
+ <fo:flow flow-name="xsl-region-body">
+ <!-- region (r1) -->
+ <fo:block-container id="r1" absolute-position="absolute"
+ left="10px" top="100px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-1">
+ <!-- body's space (before) filler -->
+ <fo:block
+ space-after.optimum="96px"
+ space-after.maximum="96px"
+ space-after.conditionality="retain"/>
+ <!-- div (d1) -->
+ <fo:block id="d1-1">
+ <!-- p (p1) -->
+ <fo:block id="p1" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="red">Text 1</fo:inline>
+ </fo:block>
+ </fo:block>
+ <!-- body's space (after) filler -->
+ <fo:block
+ space-after.optimum="96px"
+ space-after.maximum="96px"
+ space-after.conditionality="retain"/>
+ </fo:block>
+ </fo:block-container>
+ <!-- region (r2) -->
+ <fo:block-container id="r2" absolute-position="absolute"
+ left="10px" top="300px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-2">
+ <!-- body's space (before) filler -->
+ <fo:block
+ space-after.optimum="96px"
+ space-after.maximum="96px"
+ space-after.conditionality="retain"/>
+ <!-- div (d1) -->
+ <fo:block id="d1-2">
+ <!-- p (p2) -->
+ <fo:block id="p2" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="yellow">Text 2</fo:inline>
+ </fo:block>
+ </fo:block>
+ <!-- body's space (after) filler -->
+ <fo:block
+ space-after.optimum="96px"
+ space-after.maximum="96px"
+ space-after.conditionality="retain"/>
+ </fo:block>
+ </fo:block-container>
+ </fo:flow>
+ </fo:page-sequence>
+</fo:root>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The following, second intermediate document shows the synchronic
+ state for time interval [1,2), during which time both divisions
+ <code>d1</code> and <code>d2</code> are temporally active, and where
+ paragraphs <code>p1</code> and <code>p4</code> (and their ancestors)
+ are associated with region <code>r1</code> and paragraphs
+ <code>p2</code> and <code>p3</code> (and their ancestors) are
+ associated with region <code>r2</code>.</p><a id=
+ "region-mapping-example-1-i1" name="region-mapping-example-1-i1"></a>
+
+ <table class="example">
+ <caption>
+ Example – Intermediate Document – [1s,2s)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt tts:extent="640px 480px" xml:lang="en"
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The following, third intermediate document shows the synchronic
+ state for time interval [2,3), during which time only division
+ <code>d2</code> is temporally active, and where paragraphs
+ <code>p4</code> and <code>p3</code> (and their ancestors) are
+ associated with regions <code>r1</code> and <code>r2</code>,
+ respectively.</p><a id="region-mapping-example-1-i2" name=
+ "region-mapping-example-1-i2"></a>
+
+ <table class="example">
+ <caption>
+ Example – Intermediate Document – [2s,3s)
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt tts:extent="640px 480px" xml:lang="en"
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body xml:id="b1-1">
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body xml:id="b1-2">
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="semantics-line-layout" name="semantics-line-layout"></a>9.4
+ Line Layout</h3>
+
+ <p>If a profile that applies to a <em>Document Instance</em> requires
+ use of the <a href="#feature-lineBreak-uax14">#lineBreak-uax14</a>
+ feature (i.e., the value attribute for the feature is specified as
+ <code>use</code>), then the recommendations defined by <a href=
+ "http://www.unicode.org/reports/tr14/#Algorithm">Line Breaking
+ Algorithm</a> <a href="#uax14">[UAX14]</a> apply when performing line
+ layout on the content of the <em>Document Instance</em>.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="timing" name="timing"></a>10 Timing</h2>
+
+ <p>This section specifies the <em>timing</em> matter of the core
+ vocabulary catalog, where timing is to be understood as a separable layer
+ of information that applies to content and that denotes authorial
+ intentions about the temporal presentation of that content.</p>
+
+ <div class="div2">
+ <h3><a id="timing-element-vocabulary" name=
+ "timing-element-vocabulary"></a>10.1 Timing Element Vocabulary</h3>
+
+ <p>No timing related element vocabulary is defined for use in the core
+ vocabulary catalog.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="timing-attribute-vocabulary" name=
+ "timing-attribute-vocabulary"></a>10.2 Timing Attribute Vocabulary</h3>
+
+ <p>This section defines the following basic timing attributes for use
+ with timed elements:</p>
+
+ <ul>
+ <li>
+ <p><a href="#timing-attribute-begin"><b>10.2.1 begin</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#timing-attribute-end"><b>10.2.2 end</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#timing-attribute-dur"><b>10.2.3 dur</b></a></p>
+ </li>
+ </ul>
+
+ <p>In addition, this section defines the <a href=
+ "#timing-attribute-timeContainer"><b>10.2.4 timeContainer</b></a>
+ attribute for use with timed elements that serve simultaneously as
+ timing containers.</p>
+
+ <div class="div3">
+ <h4><a id="timing-attribute-begin" name=
+ "timing-attribute-begin"></a>10.2.1 begin</h4>
+
+ <p>The <code>begin</code> attribute is used to specify the begin
+ point of a temporal interval associated with a timed element. If
+ specified, the value of a <code>begin</code> attribute must adhere to
+ a <timeExpression> specification as defined by <a href=
+ "#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+
+ <p>The begin point of a temporal interval is included in the
+ interval; i.e., the interval is left-wise closed.</p>
+
+ <p>The semantics of the <code>begin</code> attribute are those
+ defined by <a href="#smil21">[SMIL 2.1]</a>, § 10.4.1, while taking
+ into account any overriding semantics defined by this
+ specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="timing-attribute-end" name=
+ "timing-attribute-end"></a>10.2.2 end</h4>
+
+ <p>The <code>end</code> attribute is used to specify the ending point
+ of a temporal interval associated with a timed element. If specified,
+ the value of an <code>end</code> attribute must adhere to a
+ <timeExpression> specification as defined by <a href=
+ "#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+
+ <p>The ending point of a temporal interval is not included in the
+ interval; i.e., the interval is right-wise open.</p>
+
+ <p>The presentation effects of a non-empty active temporal interval
+ include the frame immediately prior to the frame (or tick) equal to
+ or immediately following the time specified by the ending point, but
+ do not extend into this latter frame (or tick).</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>For example, if an active interval is [10s,10.33333s), and the
+ frame rate is 30 frames per second, then the presentation effects
+ of the interval are limited to frames 300 through 309 only
+ (assuming that 0s corresponds with frame 0). The same holds if the
+ active interval is specified as [300f,310f).</p>
+ </div>
+
+ <p>The semantics of the <code>end</code> attribute are those defined
+ by <a href="#smil21">[SMIL 2.1]</a>, § 10.4.1, while taking into
+ account any overriding semantics defined by this specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="timing-attribute-dur" name=
+ "timing-attribute-dur"></a>10.2.3 dur</h4>
+
+ <p>The <code>dur</code> attribute is used to specify the duration of
+ a temporal interval associated with a timed element. If specified,
+ the value of a <code>dur</code> attribute must adhere to a
+ <timeExpression> specification as defined by <a href=
+ "#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>When the <code>clock-time</code> form of a
+ <timeExpression> specification is used with a
+ <code>dur</code> attribute, it is intended to be interpreted as a
+ difference between two implied clock time expressions.</p>
+ </div>
+
+ <p>When a <em>Document Instance</em> specifies the use of the
+ <code>smpte</code> time base and <code>discontinuous</code> marker
+ mode, a (well-formed) <code>dur</code> attribute must not be
+ specified on any element.</p>
+
+ <p>The semantics of the <code>dur</code> attribute are those defined
+ by <a href="#smil21">[SMIL 2.1]</a>, § 10.4.1, while taking into
+ account any overriding semantics defined by this specification.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the context of the subset of <a href="#smil21">[SMIL 2.1]</a>
+ semantics supported by this specification, the active duration of
+ an element that specifies both <code>end</code> and
+ <code>dur</code> attributes is equal to the lesser of the value of
+ the <code>dur</code> attribute and the difference between the value
+ of the <code>end</code> attribute and the element's begin time.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="timing-attribute-timeContainer" name=
+ "timing-attribute-timeContainer"></a>10.2.4 timeContainer</h4>
+
+ <p>The <code>timeContainer</code> attribute is used to specify a
+ local temporal context by means of which timed child elements are
+ temporally situated.</p>
+
+ <p>If specified, the value of a <code>timeContainer</code> attribute
+ must be one of the following:</p>
+
+ <ul>
+ <li>
+ <p><code>par</code></p>
+ </li>
+
+ <li>
+ <p><code>seq</code></p>
+ </li>
+ </ul>
+
+ <p>If the time container semantics of an element instance is
+ <code>par</code>, then the temporal intervals of child elements are
+ considered to apply in parallel, i.e., simultaneously in time.
+ Furthermore, the specification of the time interval of each child
+ element is considered to be relative to the temporal interval of the
+ container element instance. For the purpose of determining the
+ <a href="#smil21">[SMIL 2.1]</a> <code>endsync</code> semantics of a
+ <code>par</code> time container, a default value of <code>all</code>
+ applies.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The use of a default value of <code>all</code> for the
+ <code>endsync</code> behavior is distinct from <a href=
+ "#smil21">[SMIL 2.1]</a> which uses a default value of
+ <code>last</code>.</p>
+ </div>
+
+ <p>If the time container semantics of an element instance is
+ <code>seq</code>, then the temporal intervals of child elements are
+ considered to apply in sequence, i.e., sequentially in time.
+ Furthermore, the specification of the time interval of each child
+ element is considered to be relative to the temporal interval of its
+ sibling elements, unless it is the first child element, in which case
+ it is considered to be relative to the temporal interval of the
+ container element instance.</p>
+
+ <p>Each time container is considered to constitute an independent
+ time base, i.e., time coordinate system.</p>
+
+ <p>If a <code>timeContainer</code> attribute is not specified on an
+ element that has time container semantics, then <code>par</code> time
+ container semantics must apply.</p>
+
+ <p>Time container semantics applies only to the following element
+ types:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-div"><code>div</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-p"><code>p</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#layout-vocabulary-region"><code>region</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-span"><code>span</code></a></p>
+ </li>
+ </ul>
+
+ <p>The semantics of parallel and sequential time containment are
+ those defined by <a href="#smil21">[SMIL 2.1]</a>, § 10.4.2, while
+ taking into account any overriding semantics defined by this
+ specification.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="timing-time-value-expressions" name=
+ "timing-time-value-expressions"></a>10.3 Time Value Expressions</h3>
+
+ <p>Timing attribute values include the use of the following
+ expressions:</p>
+
+ <ul>
+ <li>
+ <p><a href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="timing-value-timeExpression" name=
+ "timing-value-timeExpression"></a>10.3.1 <timeExpression></h4>
+
+ <p>A <timeExpression> is used to specify a coordinate within
+ some time base, where the applicable time base is determined by the
+ <code>ttp:timeBase</code> parameter, and where the semantics defined
+ by <a href="#time-expression-semantics"><b>N Time Expression
+ Semantics</b></a> apply.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>See <a href="#parameter-attribute-frameRate"><b>6.2.4
+ ttp:frameRate</b></a>, <a href=
+ "#parameter-attribute-subFrameRate"><b>6.2.9
+ ttp:subFrameRate</b></a>, <a href=
+ "#parameter-attribute-tickRate"><b>6.2.10 ttp:tickRate</b></a>, and
+ <a href="#parameter-attribute-timeBase"><b>6.2.11
+ ttp:timeBase</b></a> for further information on explicit
+ specification of frame rate, sub-frame rate, tick rate, and time
+ base.</p>
+ </div><a id="timeExpression-syntax" name="timeExpression-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – <timeExpression>
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<timeExpression>
+ : clock-time
+ | offset-time
+
+clock-time
+ : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?
+
+offset-time
+ : time-count fraction? metric
+
+hours
+ : <a href="#style-value-digit"><digit></a> <a href=
+"#style-value-digit"><digit></a>
+ | <a href="#style-value-digit"><digit></a> <a href=
+"#style-value-digit"><digit></a> <a href=
+"#style-value-digit"><digit></a>+
+
+minutes | seconds
+ : <a href="#style-value-digit"><digit></a> <a href=
+"#style-value-digit"><digit></a>
+
+frames
+ : <a href="#style-value-digit"><digit></a> <a href=
+"#style-value-digit"><digit></a>
+ | <a href="#style-value-digit"><digit></a> <a href=
+"#style-value-digit"><digit></a> <a href=
+"#style-value-digit"><digit></a>+
+
+sub-frames
+ : <a href="#style-value-digit"><digit></a>+
+
+fraction
+ : "." <a href="#style-value-digit"><digit></a>+
+
+time-count
+ : <a href="#style-value-digit"><digit></a>+
+
+metric
+ : "h" // hours
+ | "m" // minutes
+ | "s" // seconds
+ | "ms" // milliseconds
+ | "f" // frames
+ | "t" // ticks
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>If a <timeExpression> is expressed in terms of a
+ <em>clock-time</em>, then leading zeroes are used when expressing
+ hours, minutes, seconds, and frames less than 10. Minutes are
+ constrained to [0…59], while seconds (including any fractional part)
+ are constrained to the closed interval [0,60], where the value 60
+ applies only to leap seconds.</p>
+
+ <p>If a <timeExpression> is expressed in terms of a
+ <em>clock-time</em> and a <em>frames</em> term is specified, then the
+ value of this term must be constrained to the interval
+ [0…<em>F-1</em>], where <em>F</em> is the frame rate determined by
+ the <code>ttp:frameRate</code> parameter as defined by <a href=
+ "#parameter-attribute-frameRate"><b>6.2.4 ttp:frameRate</b></a>. It
+ is considered an error if a <em>frames</em> term or <code>f</code>
+ (frames) metric is specified when the <code>clock</code> time base
+ applies.</p>
+
+ <p>If a <timeExpression> is expressed in terms of a
+ <em>clock-time</em> and a <em>sub-frames</em> term is specified, then
+ the value of this term must be constrained to the interval
+ [0…<em>S-1</em>], where <em>S</em> is the sub-frame rate determined
+ by the <code>ttp:subFrameRate</code> parameter as defined by <a href=
+ "#parameter-attribute-subFrameRate"><b>6.2.9
+ ttp:subFrameRate</b></a>. It is considered an error if a
+ <em>sub-frames</em> term is specified when the <code>clock</code>
+ time base applies.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="timing-time-intervals" name="timing-time-intervals"></a>10.4
+ Time Intervals</h3>
+
+ <p>The semantics of time containment, durations, and intervals defined
+ by <a href="#smil21">[SMIL 2.1]</a> apply to the interpretation of
+ like-named timed elements and timing vocabulary defined by this
+ specification, given the following constraints:</p>
+
+ <ul>
+ <li>
+ <p>The implicit duration of an anonymous span is defined as
+ follows: if the anonymous span's parent time container is a
+ parallel time container, then the implicit duration is equivalent
+ to the <code>indefinite</code> duration value as defined by
+ <a href="#smil21">[SMIL 2.1]</a>; if the anonymous span's parent
+ time container is a sequential time container, then the implicit
+ duration is equivalent to zero.</p>
+ </li>
+
+ <li>
+ <p>The implicit duration of a <code>body</code>, <code>div</code>,
+ <code>p</code>, or <code>span</code> element is determined in
+ accordance to (1) whether the element is a parallel or sequential
+ time container, (2) the default <code>endsync</code> semantics
+ defined above by <a href=
+ "#timing-attribute-timeContainer"><b>10.2.4 timeContainer</b></a>,
+ and (3) the semantics of <a href="#smil21">[SMIL 2.1]</a> as
+ applied to these time containers.</p>
+ </li>
+
+ <li>
+ <p>The implicit duration of the <code>region</code> element is
+ defined to be equivalent to the <code>indefinite</code> duration
+ value as defined by <a href="#smil21">[SMIL 2.1]</a>.</p>
+ </li>
+
+ <li>
+ <p>If the governing time base is <code>clock</code>, then time
+ expressions are considered to be equivalent to wall-clock based
+ timing in <a href="#smil21">[SMIL 2.1]</a>, where the specific
+ semantics of <a href="#time-expression-semantics-clock"><b>N.1
+ Clock Time Base</b></a> apply.</p>
+ </li>
+
+ <li>
+ <p>If the governing time base is <code>media</code>, then time
+ expressions are considered to be equivalent to offset based timing
+ in <a href="#smil21">[SMIL 2.1]</a>, where the specific semantics
+ of <a href="#time-expression-semantics-media"><b>N.2 Media Time
+ Base</b></a> apply.</p>
+ </li>
+
+ <li>
+ <p>If the governing time base is <code>smpte</code>, then time
+ expressions are considered to be equivalent to either offset based
+ timing or event based timing in <a href="#smil21">[SMIL 2.1]</a>,
+ where the specific semantics of <a href=
+ "#time-expression-semantics-smpte"><b>N.3 SMPTE Time Base</b></a>
+ apply.</p>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="animation" name="animation"></a>11 Animation</h2>
+
+ <p>This section specifies the <em>animation</em> matter of the core
+ vocabulary catalog, where animation is to be understood as a separable
+ layer of information that combines timing and styling in order to denote
+ authorial intention about (temporally) dynamic styling of content.</p>
+
+ <div class="div2">
+ <h3><a id="animation-element-vocabulary" name=
+ "animation-element-vocabulary"></a>11.1 Animation Element
+ Vocabulary</h3>
+
+ <p>The following elements specify the structure and principal animation
+ aspects of a <em>Document Instance</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#animation-vocabulary-set"><b>11.1.1 set</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="animation-vocabulary-set" name=
+ "animation-vocabulary-set"></a>11.1.1 set</h4>
+
+ <p>The <code>set</code> element is used as a child element of a
+ content element or a <code>region</code> element in order to express
+ a discrete change of some style parameter value that applies over
+ some time interval.</p>
+
+ <p>The <code>set</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group.</p><a id=
+ "elt-syntax-set" name="elt-syntax-set"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: set
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<set
+ <a href="#timing-attribute-begin">begin</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a href=
+"#timing-value-timeExpression"><timeExpression></a>
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>a single 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>*
+</set>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The use of multiple <code>set</code> element children may be
+ used to effect fade and position transitions.</p>
+ </div>
+
+ <p>An example of using the <code>set</code> element to animate
+ content styling is illustrated below:</p><a id=
+ "animation-vocabulary-set-example-1" name=
+ "animation-vocabulary-set-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Content Style Animation
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+...
+<p dur="5s" tts:color="yellow">
+<span class="strong"><set begin="1s" dur="1s" tts:color="red"/></span>
+<span class="strong"><set begin="2s" dur="1s" tts:color="green"/></span>
+<span class="strong"><set begin="3s" dur="1s" tts:color="red"/></span>
+Text with Flashing Colors!
+</p>
+...
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the foreground color of the content "Text
+ with Flashing Colors" is animated from yellow, to red, to green, to
+ red, then back to yellow over a 5 second period.</p>
+ </div>
+
+ <p>An example of using the <code>set</code> element to animate region
+ styling is illustrated below:</p><a id=
+ "animation-vocabulary-set-example-2" name=
+ "animation-vocabulary-set-example-2"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Region Style Animation
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ ttp:cellResolution="40 16">
+ <head>
+ <layout>
+ <region xml:id="r1" timeContainer="seq">
+ <span class=
+"strong"><set dur="10s" tts:origin=" 8c 14c"/></span>
+ <span class=
+"strong"><set dur="2s" tts:origin=" 2c 2c"/></span>
+ <span class=
+"strong"><set dur="3s" tts:origin=" 8c 14c"/></span>
+ <span class=
+"strong"><set dur="2s" tts:origin="14c 4c"/></span>
+ <span class=
+"strong"><set dur="10s" tts:origin=" 8c 14c"/></span>
+ <style tts:extent="24c 2c"/>
+ </region>
+ </layout>
+ </head>
+ <body region="r1">...</body>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, the <em>Root Container Region</em> is
+ divided into a cell grid of 40 columns and 16 rows. A region,
+ <code>r1</code>, with dimensions of 24 columns and 2 rows is then
+ positioned within the <em>Root Container Region</em>, with its
+ position varying over time in order to create an effect of moving
+ the region, which may be desirable so as to avoid obscuring
+ characters in an underlying video with captions.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The semantics of the <code>set</code> element are based upon
+ that defined by <a href="#smil21">[SMIL 2.1]</a>, § 3.6.2.</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="animation-attribute-vocabulary" name=
+ "animation-attribute-vocabulary"></a>11.2 Animation Attribute
+ Vocabulary</h3>
+
+ <p>No animation related attribute vocabulary is defined for use in the
+ core vocabulary catalog.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="metadata" name="metadata"></a>12 Metadata</h2>
+
+ <p>This section specifies the <em>metadata</em> matter of the core
+ vocabulary catalog, where metadata is to be understood as a separable
+ layer of information that applies to parameters, content, style, layout,
+ timing, and even metadata itself, where the information represented by
+ metadata takes one of two forms: (1) metadata defined by this
+ specification for standardized use in a <em>Document Instance</em>, and
+ (2) arbitrary metadata defined outside of the scope of this
+ specification, whose use and semantics depend entirely upon an
+ application's use of TTML Content.</p>
+
+ <div class="div2">
+ <h3><a id="metadata-element-vocabulary" name=
+ "metadata-element-vocabulary"></a>12.1 Metadata Element Vocabulary</h3>
+
+ <p>The <a href="#metadata-vocabulary-metadata"><b>12.1.1
+ metadata</b></a> element serves as a generic container element for
+ grouping metadata information.</p>
+
+ <p>In addition, the following elements, all defined in the TT Metadata
+ Namespace, provide standard representations for metadata that is
+ expected to be commonly used in a <em>Document Instances</em>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#metadata-vocabulary-title"><b>12.1.2
+ ttm:title</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#metadata-vocabulary-desc"><b>12.1.3
+ ttm:desc</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#metadata-vocabulary-copyright"><b>12.1.4
+ ttm:copyright</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#metadata-vocabulary-agent"><b>12.1.5
+ ttm:agent</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#metadata-vocabulary-name"><b>12.1.6
+ ttm:name</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#metadata-vocabulary-actor"><b>12.1.7
+ ttm:actor</b></a></p>
+ </li>
+ </ul>
+
+ <div class="div3">
+ <h4><a id="metadata-vocabulary-metadata" name=
+ "metadata-vocabulary-metadata"></a>12.1.1 metadata</h4>
+
+ <p>The <code>metadata</code> element functions as a generic container
+ for metadata information.</p>
+
+ <p>Metadata information may be expressed with a <code>metadata</code>
+ element by specifying (1) one or more metadata attributes on the
+ <code>metadata</code> element, (2) one or more metadata child
+ elements in the <code>metadata</code> element, or (3) a combination
+ of metadata attributes and metadata child elements. Both types of
+ metadata information are referred to in this document as <em>metadata
+ items</em>.</p><a id="elt-syntax-metadata" name=
+ "elt-syntax-metadata"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: metadata
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<metadata
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Metadata namespace</em>}
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> ({<em>any element in TT Metadata namespace</em>}|{<em>any element not in any TT namespace</em>})*
+</metadata>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The meaning of a specific metadata item must be evaluated in the
+ context where it appears. The core vocabulary catalog permits an
+ arbitrary number of <code>metadata</code> element children on any
+ content element type except for the <code>tt</code> element. See
+ specific element vocabulary definitions for any constraints that
+ apply to such usage.</p>
+ </div>
+
+ <p>The use of document metadata is illustrated by the following
+ example.</p><a id="metadata-vocabulary-metadata-example-1" name=
+ "metadata-vocabulary-metadata-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Document Metadata
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+...
+<head>
+ <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
+ <ttm:title>Document Metadata Example</ttm:title>
+ <ttm:desc>This document employs document metadata.</ttm:desc>
+ </metadata>
+</head>
+...
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The use of element metadata is illustrated by the following
+ example.</p><a id="metadata-vocabulary-metadata-example-2" name=
+ "metadata-vocabulary-metadata-example-2"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Element Metadata
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+...
+<div>
+ <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
+ <ttm:title>Chapter 6 – Sherlock Holmes Gives a Demonstration</ttm:title>
+ <ttm:desc>Holmes shows Watson how the murderer entered the window.</ttm:desc>
+ </metadata>
+</div>
+...
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The use of metadata attribute items is illustrated by the
+ following example.</p><a id="metadata-vocabulary-metadata-example-3"
+ name="metadata-vocabulary-metadata-example-3"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Foreign Metadata Attribute Items
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+...
+<div xmlns:ext="http://example.org/ttml#metadata">
+ <metadata ext:ednote="remove this division prior to publishing"/>
+</div>
+...
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, a global attribute from a foreign
+ (external) namespace is used to express a metadata attribute that
+ applies semantically to the containing <code>div</code> element.
+ Note that the attribute may also be expressed directly on the
+ <code>div</code> element; however, in this case the author wishes
+ to segregate certain metadata attributes by expressing them
+ indirectly on <code>metadata</code> elements.</p>
+ </div>
+
+ <p>The use of foreign element metadata is illustrated by the
+ following example.</p><a id="metadata-vocabulary-metadata-example-4"
+ name="metadata-vocabulary-metadata-example-4"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Foreign Element Metadata
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+...
+<metadata
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dcterms="http://purl.org/dc/terms/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <dc:title>Foreign Element Metadata Example</dc:title>
+ <dc:description>Express metadata using elements in foreign namespace.</dc:description>
+ <dc:format xsi:type="dcterms:IMT">application/ttml+xml</dc:format>
+</metadata>
+...
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, a number of elements defined by the Dublin
+ Core metadata vocabulary are used to express document level
+ metadata.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-vocabulary-title" name=
+ "metadata-vocabulary-title"></a>12.1.2 ttm:title</h4>
+
+ <p>The <code>ttm:title</code> element is used to express a
+ human-readable title of a specific element instance.</p><a id=
+ "elt-syntax-metadata-title" name="elt-syntax-metadata-title"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:title
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttm:title
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:title>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>No specific use of the <code>ttm:title</code> element is defined
+ by this specification.</p>
+ </div>
+
+ <p>Examples of the <code>ttm:title</code> element are shown above in
+ <a href="#metadata-vocabulary-metadata-example-1"><b>Example Fragment
+ – Document Metadata</b></a> and <a href=
+ "#metadata-vocabulary-metadata-example-2"><b>Example Fragment –
+ Element Metadata</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-vocabulary-desc" name=
+ "metadata-vocabulary-desc"></a>12.1.3 ttm:desc</h4>
+
+ <p>The <code>ttm:desc</code> element is used to express a
+ human-readable description of a specific element instance.</p><a id=
+ "elt-syntax-metadata-desc" name="elt-syntax-metadata-desc"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:desc
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttm:desc
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:desc>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>No specific use of the <code>ttm:desc</code> element is defined
+ by this specification.</p>
+ </div>
+
+ <p>Examples of the <code>ttm:desc</code> element are shown above in
+ <a href="#metadata-vocabulary-metadata-example-1"><b>Example Fragment
+ – Document Metadata</b></a> and <a href=
+ "#metadata-vocabulary-metadata-example-2"><b>Example Fragment –
+ Element Metadata</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-vocabulary-copyright" name=
+ "metadata-vocabulary-copyright"></a>12.1.4 ttm:copyright</h4>
+
+ <p>The <code>ttm:copyright</code> element is used to express a
+ human-readable copyright that applies to some scoping level.</p>
+
+ <p>A copyright statement that applies to a document as a whole should
+ appear as a child of the <code>head</code> element.</p><a id=
+ "elt-syntax-metadata-copyright" name=
+ "elt-syntax-metadata-copyright"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:copyright
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttm:copyright
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:copyright>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>No specific use of the <code>ttm:copyright</code> element is
+ defined by this specification.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-vocabulary-agent" name=
+ "metadata-vocabulary-agent"></a>12.1.5 ttm:agent</h4>
+
+ <p>The <code>ttm:agent</code> element is used to define an agent for
+ the purpose of associating content information with an agent who is
+ involved in the production or expression of that content.</p>
+
+ <p>The <code>ttm:agent</code> element accepts as its children zero or
+ more <code>ttm:name</code> elements followed by zero or one
+ <code>ttm:actor</code> element.</p>
+
+ <p>At least one <code>ttm:name</code> element child should be
+ specified that expresses a name for the agent, whether it be the name
+ of a person, character, group, or organization.</p><a id=
+ "elt-syntax-metadata-agent" name="elt-syntax-metadata-agent"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:agent
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttm:agent
+ <span class=
+"reqattr">type</span> = (<em>person</em>|<em>character</em>|<em>group</em>|<em>organization</em>|<em>other</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> <a href="#metadata-vocabulary-name">ttm:name</a>*, <a href=
+"#metadata-vocabulary-actor">ttm:actor</a>?
+</ttm:agent>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>A <code>type</code> attribute must be specified on each
+ <code>ttm:agent</code> element, and, if specified, must have one of
+ the following values:</p>
+
+ <ul>
+ <li>
+ <p><code>person</code></p>
+ </li>
+
+ <li>
+ <p><code>character</code></p>
+ </li>
+
+ <li>
+ <p><code>group</code></p>
+ </li>
+
+ <li>
+ <p><code>organization</code></p>
+ </li>
+
+ <li>
+ <p><code>other</code></p>
+ </li>
+ </ul>
+
+ <p>If the value of the <code>type</code> attribute is
+ <code>character</code>, then the <code>ttm:agent</code> element
+ instance should specify a <code>ttm:actor</code> child that specifies
+ the agent that plays the role of the actor.</p>
+
+ <p>A <code>ttm:agent</code> metadata item is considered to be
+ significant only when specified as a child of the <code>head</code>
+ element or as a child of a <code>metadata</code> element child of the
+ <code>head</code> element.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A <code>ttm:agent</code> element instance is typically
+ referenced using a <code>ttm:agent</code> attribute on a content
+ element.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>If a character agent is played by multiple actors, then multiple
+ character agents may be specified (and referenced) wherein
+ different definitions of the character specify different
+ actors.</p>
+ </div>
+
+ <p>The use of agent metadata is illustrated by the following
+ example.</p><a id="metadata-vocabulary-agent-example-1" name=
+ "metadata-vocabulary-agent-example-1"></a>
+
+ <table class="example">
+ <caption>
+ Example Fragment – Agent Metadata
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+
+<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml" xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
+ <head>
+ <span class=
+"strong"><ttm:agent xml:id="connery" type="person"></span>
+ <ttm:name type="family">Connery</ttm:name>
+ <ttm:name type="given">Thomas Sean</ttm:name>
+ <ttm:name type="alias">Sean</ttm:name>
+ <ttm:name type="full">Sir Thomas Sean Connery</ttm:name>
+ <span class="strong"></ttm:agent></span>
+ <span class=
+"strong"><ttm:agent xml:id="bond" type="character"></span>
+ <ttm:name type="family">Bond</ttm:name>
+ <ttm:name type="given">James</ttm:name>
+ <ttm:name type="alias">007</ttm:name>
+ <ttm:actor agent="connery"/>
+ <span class="strong"></ttm:agent></span>
+ </head>
+ <body>
+ <div>
+ ...
+ <p <span class=
+"strong">ttm:agent="bond"</span>>I travel, a sort of licensed troubleshooter.</p>
+ ...
+ </div>
+ </body>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>In the above example, two agents, a real (person) agent, Sean
+ Connery, and a fictitious (character) agent, James Bond, are
+ defined, where the latter is linked to the former by means of the a
+ <code>ttm:actor</code> element. A reference is then made from
+ content (the <code>p</code> element) to the character agent
+ associated with (responsible for producing) that content. Note that
+ in this example the <code>ttm:agent</code> metadata items are
+ specified as immediate children of the document's <code>head</code>
+ element rather than being placed in a container
+ <code>metadata</code> element.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-vocabulary-name" name=
+ "metadata-vocabulary-name"></a>12.1.6 ttm:name</h4>
+
+ <p>The <code>ttm:name</code> element is used to specify a name of a
+ person, character, group, or organization.</p><a id=
+ "elt-syntax-metadata-name" name="elt-syntax-metadata-name"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:name
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttm:name
+ <span class=
+"reqattr">type</span> = (<em>full</em>|<em>family</em>|<em>given</em>|<em>alias</em>|<em>other</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:name>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>A <code>type</code> attribute must be specified on each
+ <code>ttm:name</code> element, and, if specified, must have one of
+ the following values:</p>
+
+ <ul>
+ <li>
+ <p><code>full</code></p>
+ </li>
+
+ <li>
+ <p><code>family</code></p>
+ </li>
+
+ <li>
+ <p><code>given</code></p>
+ </li>
+
+ <li>
+ <p><code>alias</code></p>
+ </li>
+
+ <li>
+ <p><code>other</code></p>
+ </li>
+ </ul>
+
+ <p>The relationship between the type of a name and the syntactic
+ expression of the name is not defined by this specification.</p>
+
+ <p>Two examples of the <code>ttm:name</code> element are shown above
+ in <a href="#metadata-vocabulary-agent-example-1"><b>Example Fragment
+ – Agent Metadata</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-vocabulary-actor" name=
+ "metadata-vocabulary-actor"></a>12.1.7 ttm:actor</h4>
+
+ <p>The <code>ttm:actor</code> element is used to link the definition
+ of a (role-based) character agent with another agent that portrays
+ the character.</p><a id="elt-syntax-metadata-actor" name=
+ "elt-syntax-metadata-actor"></a>
+
+ <table class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:actor
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<ttm:actor
+ <span class="reqattr">agent</span> = IDREF
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href=
+"#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace</em>}>
+ <em>Content:</em> EMPTY
+</ttm:actor>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The <code>agent</code> attribute of a <code>ttm:actor</code>
+ element must reference a <code>ttm:agent</code> element that denotes
+ the person, group, or organization acting the part of a
+ character.</p>
+
+ <p>An example of the <code>ttm:actor</code> element is shown above in
+ <a href="#metadata-vocabulary-agent-example-1"><b>Example Fragment –
+ Agent Metadata</b></a>.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="metadata-attribute-vocabulary" name=
+ "metadata-attribute-vocabulary"></a>12.2 Metadata Attribute
+ Vocabulary</h3>
+
+ <p>This section specifies the following attributes in the TT Metadata
+ Namespace for use with the <code>metadata</code> element and with
+ certain content elements:</p>
+
+ <ul>
+ <li>
+ <p><a href="#metadata-attribute-agent"><b>12.2.1
+ ttm:agent</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#metadata-attribute-role"><b>12.2.2
+ ttm:role</b></a></p>
+ </li>
+ </ul>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Only certain metadata item attributes may be used with content
+ elements. See the definitions of content elements to determine
+ permissible usage.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-attribute-agent" name=
+ "metadata-attribute-agent"></a>12.2.1 ttm:agent</h4>
+
+ <p>The <code>ttm:agent</code> attribute takes an <code>IDREFS</code>
+ value, and is used with certain content elements to designate the
+ agents that perform or are involved in the performance of the
+ content.</p>
+
+ <p>If specified, a <code>ttm:agent</code> attribute must reference
+ <code>ttm:agent</code> element instances that appear as a descendent
+ of the same <em>Document Instance</em> as that of the referring
+ element.</p>
+
+ <p>The same IDREF, <em>ID</em>, should not appear more than once in
+ the value of a <code>ttm:agent</code> attribute.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>This constraint is intended to discourage the use of redundant
+ agent references.</p>
+ </div>
+
+ <p>An example of the <code>ttm:agent</code> attribute is shown above
+ in <a href="#metadata-vocabulary-agent-example-1"><b>Example Fragment
+ – Agent Metadata</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="metadata-attribute-role" name=
+ "metadata-attribute-role"></a>12.2.2 ttm:role</h4>
+
+ <p>The <code>ttm:role</code> attribute may be used by a content
+ author to express the roles, functions, or characteristics of some
+ content element that is so labeled.</p>
+
+ <p>If specified, the value of this attribute must adhere to the
+ following syntax, where the syntactic element <em>S</em> must adhere
+ to production [3] <code>S</code> as defined by <a href="#xml10">[XML
+ 1.0]</a> § 2.3:</p><a id="metadata-attribute-role-syntax" name=
+ "metadata-attribute-role-syntax"></a>
+
+ <table class="syntax">
+ <caption>
+ Syntax Representation – ttm:role
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+ttm:role
+ role ( <em>S</em> role )*
+
+role
+ : "action"
+ | "caption"
+ | "description"
+ | "dialog"
+ | "expletive"
+ | "kinesic"
+ | "lyrics"
+ | "music"
+ | "narration"
+ | "quality"
+ | "sound"
+ | "source"
+ | "suppressed"
+ | "reproduction"
+ | "thought"
+ | "title"
+ | "transcription"
+ | extension-role
+
+extension-role
+ : "x-" token-char+
+
+token-char
+ : { XML NameChar } // XML 1.1 Production [4a]
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The same <code>role</code> token, <em>R</em>, should not appear
+ more than once in the value of a <code>ttm:role</code> attribute.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>This constraint is intended to discourage the use of redundant
+ role tokens.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>All values of <code>ttm:role</code> that do not start with the
+ prefix <code>x-</code> are reserved for future standardization.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>If using a custom <code>x-</code> prefixed form of
+ <code>ttm:role</code>, it is recommended that an organization
+ unique infix be used as well in order to prevent collisions. For
+ example, <code>x-example-org-custom-role</code>. Furthermore, a
+ registry for role values is available at <a href=
+ "http://www.w3.org/wiki/TTML/RoleRegistry">http://www.w3.org/wiki/TTML/RoleRegistry</a>
+ in order to promote interoperability and collision avoidance.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="back">
+ <div class="div1">
+ <h2><a id="reduced-infoset" name="reduced-infoset"></a>A Reduced XML
+ Infoset</h2>
+
+ <p><em>This appendix is normative.</em></p>
+
+ <p>For the purposes of this specification, a <em>Reduced XML Infoset</em>
+ is an XML Information Set <a href="#infoset">[XML InfoSet]</a> that
+ consists of only the following information items and information item
+ properties:</p>
+
+ <div class="div2">
+ <h3><a id="reduced-infoset-document" name=
+ "reduced-infoset-document"></a>A.1 Document Information Item</h3>
+
+ <ul>
+ <li>
+ <p><code>[document element]</code></p>
+ </li>
+ </ul>
+ </div>
+
+ <div class="div2">
+ <h3><a id="reduced-infoset-element" name=
+ "reduced-infoset-element"></a>A.2 Element Information Item</h3>
+
+ <ul>
+ <li>
+ <p><code>[namespace URI]</code></p>
+ </li>
+
+ <li>
+ <p><code>[local name]</code></p>
+ </li>
+
+ <li>
+ <p><code>[children]</code></p>
+ </li>
+
+ <li>
+ <p><code>[attributes]</code></p>
+ </li>
+ </ul>
+
+ <p>Child information items <code>[children]</code> are reduced to only
+ element and character information items.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="reduced-infoset-attribute" name=
+ "reduced-infoset-attribute"></a>A.3 Attribute Information Item</h3>
+
+ <ul>
+ <li>
+ <p><code>[namespace URI]</code></p>
+ </li>
+
+ <li>
+ <p><code>[local name]</code></p>
+ </li>
+
+ <li>
+ <p><code>[normalized value]</code></p>
+ </li>
+ </ul>
+ </div>
+
+ <div class="div2">
+ <h3><a id="reduced-infoset-character" name=
+ "reduced-infoset-character"></a>A.4 Character Information Item</h3>
+
+ <ul>
+ <li>
+ <p><code>[character code]</code></p>
+ </li>
+ </ul>
+
+ <p>Contiguous character information items are not required to be
+ represented distinctly, but may be aggregated (chunked) into a sequence
+ of character codes (i.e., a character string).</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="schemas" name="schemas"></a>B Schemas</h2>
+
+ <p><em>This appendix is normative.</em></p>
+
+ <p>This appendix specifies the following schemas for use with
+ <em>Document Instances</em>:</p>
+
+ <ul>
+ <li>
+ <p>Relax NG, Compact Syntax (RNC) Schema</p>
+ </li>
+
+ <li>
+ <p>XML Schema Definition (XSD) Schema</p>
+ </li>
+ </ul>
+
+ <p>In any case where a schema specified by this appendix differs from the
+ normative definitions of document type, element type, or attribute type
+ as defined by the body of this specification, then the body of this
+ specification takes precedence.</p>
+
+ <div class="div2">
+ <h3><a id="ttml-schema-rnc" name="ttml-schema-rnc"></a>B.1 Relax NG
+ Compact (RNC) Schema</h3>
+
+ <p>A Relax NG Compact Syntax (RNC) <a href="#rng">[RELAX NG]</a> based
+ schema for TTML Content is available at <a href="rnc/schema.zip">ZIP
+ Archive</a>. This schema does not normatively define the validity of
+ Timed Text Markup Language content as defined by this specification. In
+ particular, the formal validity of TTML Content is defined by <a href=
+ "#conformance-content"><b>3.1 Content Conformance</b></a>.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="ttml-schema-xsd" name="ttml-schema-xsd"></a>B.2 XML Schema
+ Definition (XSD) Schema</h3>
+
+ <p>A W3C XML Schema Definition (XSD) <a href="#xsd-1">[XML Schema Part
+ 1]</a> based schema for TTML Content is available at <a href=
+ "xsd/schema.zip">ZIP Archive</a>. This schema does not normatively
+ define the validity of Timed Text Markup Language content as defined by
+ this specification. In particular, the formal validity of TTML Content
+ is defined by <a href="#conformance-content"><b>3.1 Content
+ Conformance</b></a>.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="media-types-registration" name=
+ "media-types-registration"></a>C Media Type Registration</h2>
+
+ <p><em>This appendix is normative.</em></p>
+
+ <p>This appendix registers a new media type, "application/ttml+xml" in
+ conformance with <a href="http://www.ietf.org/rfc/rfc4288.txt">BCP 13</a>
+ and <a href=
+ "http://www.w3.org/2002/06/registering-mediatype.html">W3CRegMedia</a>.
+ The information in this appendix is being submitted to the Internet
+ Engineering Steering Group (IESG) for review, approval, and registration
+ with the Internet Assigned Numbers Authority (IANA).</p>
+
+ <dl>
+ <dt class="label">Type name:</dt>
+
+ <dd>
+ <p>application</p>
+ </dd>
+
+ <dt class="label">Subtype name:</dt>
+
+ <dd>
+ <p>ttml+xml</p>
+ </dd>
+
+ <dt class="label">Required parameters:</dt>
+
+ <dd>
+ <p>None.</p>
+ </dd>
+
+ <dt class="label">Optional parameters:</dt>
+
+ <dd>
+ <dl>
+ <dt class="label">charset</dt>
+
+ <dd>
+ <p>If specified, the <code>charset</code> parameter must match
+ the XML encoding declaration, or if absent, the actual
+ encoding.</p>
+ </dd>
+
+ <dt class="label">profile</dt>
+
+ <dd>
+ <p>The document profile of a TTMLDocument Instance may be
+ specified using an optional <code>profile</code> parameter,
+ which, if specified, the value of which must adhere to the syntax
+ and semantics of <code>ttp:profile</code> parameter defined by
+ Section <a href="#parameter-attribute-profile"><b>6.2.8
+ ttp:profile</b></a> of the published specification.</p>
+ </dd>
+ </dl>
+ </dd>
+
+ <dt class="label">Encoding considerations:</dt>
+
+ <dd>
+ <p>Same for application/xml, except constrained to either UTF-8 or
+ UTF-16. See <a href="#xml-media">[XML Media Types]</a>, Section
+ 3.2.</p>
+ </dd>
+
+ <dt class="label">Security considerations:</dt>
+
+ <dd>
+ <p>As with other XML types and as noted in <a href="#xml-media">[XML
+ Media Types]</a> Section 10, repeated expansion of maliciously
+ constructed XML entities can be used to consume large amounts of
+ memory, which may cause XML processors in constrained environments to
+ fail.</p>
+
+ <p>In addition, because of the extensibility features for TTML and of
+ XML in general, it is possible that "application/ttml+xml" may
+ describe content that has security implications beyond those
+ described here. However, TTML does not provide for any sort of active
+ or executable content, and if the processor follows only the
+ normative semantics of the published specification, this content will
+ be outside TTML namespaces and may be ignored. Only in the case where
+ the processor recognizes and processes the additional content, or
+ where further processing of that content is dispatched to other
+ processors, would security issues potentially arise. And in that
+ case, they would fall outside the domain of this registration
+ document.</p>
+
+ <p>Although not prohibited, there are no expectations that XML
+ signatures or encryption would normally be employed.</p>
+ </dd>
+
+ <dt class="label">Interoperability considerations:</dt>
+
+ <dd>
+ <p>The published specification describes processing semantics that
+ dictate behavior that must be followed when dealing with, among other
+ things, unrecognized elements and attributes, both in TTML namespaces
+ and in other namespaces.</p>
+
+ <p>Because TTML is extensible, conformant "application/ttml+xml"
+ processors may expect (and enforce) that content received is
+ well-formed XML, but it cannot be guaranteed that the content is
+ valid to a particular DTD or Schema or that the processor will
+ recognize all of the elements and attributes in the document.</p>
+ </dd>
+
+ <dt class="label">Published specification:</dt>
+
+ <dd>
+ <p>This media type registration is extracted from Appendix C Media
+ Type Registration of the Timed Text Markup Language (TTML) 1.0
+ specification: <a href="http://www.w3.org/TR/ttaf1-dfxp/">Timed Text
+ Markup Language (TTML) 1.0</a>.</p>
+ </dd>
+
+ <dt class="label">Applications that use this media type:</dt>
+
+ <dd>
+ <p>TTML is used in the television industry for the purpose of
+ authoring, transcoding and exchanging timed text information and for
+ delivering captions, subtitles, and other metadata for television
+ material repurposed for the Web or, more generally, the Internet.</p>
+
+ <p>There is partial and full support of TTML in components used by
+ several Web browsers plugins, and in a number of caption authoring
+ tools. A TTML verification (including validation) utility is
+ available in open source form at <a href=
+ "http://github.com/skynav/ttv">http://github.com/skynav/ttv</a>.</p>
+ </dd>
+
+ <dt class="label">Additional information:</dt>
+
+ <dd>
+ <dl>
+ <dt class="label">Magic number(s):</dt>
+
+ <dt class="label">File extension(s):</dt>
+
+ <dd>
+ <p>.ttml</p>
+ </dd>
+
+ <dt class="label">Macintosh file type code(s):</dt>
+
+ <dd>
+ <p>"TTML"</p>
+ </dd>
+
+ <dt class="label">Fragment identifiers:</dt>
+
+ <dd>
+ <p>For documents labeled as application/ttml+xml, the fragment
+ identifier notation is intended to be used with xml:id
+ attributes, as described in section 7.2.1 of the <a href=
+ "http://www.w3.org/TR/ttaf1-dfxp/">Timed Text Markup Language
+ (TTML) 1.0</a> specification.</p>
+ </dd>
+ </dl>
+ </dd>
+
+ <dt class="label">Person & email address to contact for further
+ information:</dt>
+
+ <dd>
+ <p>Timed Text Working Group (public-tt@w3.org)</p>
+ </dd>
+
+ <dt class="label">Intended usage:</dt>
+
+ <dd>
+ <p>COMMON</p>
+ </dd>
+
+ <dt class="label">Restrictions on usage:</dt>
+
+ <dd>
+ <p>None</p>
+ </dd>
+
+ <dt class="label">Author:</dt>
+
+ <dd>
+ <p>The published specification is a work product of the World Wide
+ Web Consortium's Timed Text (TT) Working Group.</p>
+ </dd>
+
+ <dt class="label">Change controller:</dt>
+
+ <dd>
+ <p>The W3C has change control over this specification.</p>
+ </dd>
+ </dl>
+ </div>
+
+ <div class="div1">
+ <h2><a id="features" name="features"></a>D Features</h2>
+
+ <p><em>This appendix is normative.</em></p>
+
+ <p>This appendix specifies (1) a set of feature designations, each of
+ which labels one or more syntactic and/or semantic features defined by
+ this specification, and (2) for each designated feature, whether the
+ feature is mandatory or optional for a transformation or presentation
+ processor.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>A TTML processor is said to <em>implement the transformation
+ semantics</em> or <em>implement the presentation semantics</em> of
+ feature designation <em>F</em> if it satisfies the requirements of this
+ appendix with respect to the definition of feature designation
+ <em>F</em> as pertains to transformation or presentation processing,
+ respectively.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="feature-designations" name="feature-designations"></a>D.1
+ Feature Designations</h3>
+
+ <p>A feature designation is expressed as a string that adheres to the
+ following form:</p>
+
+ <div class="exampleInner">
+ <pre>
+feature-designation
+ : feature-namespace designation
+
+feature-namespace
+ : <em>TT Feature Namespace</em> // http://www.w3.org/ns/ttml/feature/
+
+designation
+ : "#" token-char+
+
+token-char
+ : { XML NameChar } // XML 1.1 Production [4a]
+</pre>
+ </div>
+
+ <p>All values of <code>feature-designation</code> not defined by this
+ specification are reserved for future standardization.</p>
+
+ <p>The following sub-sections define all feature designations,
+ expressed as relative URIs (fragment identifiers) with respect to the
+ TT Feature Namespace base URI.</p>
+
+ <div class="div3">
+ <h4><a id="feature-animation" name="feature-animation"></a>D.1.1
+ #animation</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#animation</code> feature if it recognizes and is capable of
+ transforming the following vocabulary defined by <a href=
+ "#animation"><b>11 Animation</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#animation-vocabulary-set"><code>set</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#animation</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary enumerated above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-backgroundColor" name=
+ "feature-backgroundColor"></a>D.1.2 #backgroundColor</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#backgroundColor</code> feature if it recognizes and is capable
+ of transforming the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#backgroundColor</code> feature if it (1) implements
+ presentation semantic support for the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute and (2) is capable of displaying or generating an output
+ display signal that distinguishes between at least sixteen (16)
+ values of color, including all primary and secondary colors of the
+ SRGB color space.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-backgroundColor-block" name=
+ "feature-backgroundColor-block"></a>D.1.3 #backgroundColor-block</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#backgroundColor-block</code> feature if it recognizes and is
+ capable of transforming all defined values of the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute when applied to a content element that would generate a
+ block area during presentation processing.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#backgroundColor-block</code> feature if it (1) implements
+ presentation semantic support for the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute when applied to a content element that generates a block
+ area and (2) is capable of displaying or generating an output display
+ signal that distinguishes between at least sixteen (16) values of
+ color, including all primary and secondary colors of the SRGB color
+ space.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-backgroundColor-inline" name=
+ "feature-backgroundColor-inline"></a>D.1.4
+ #backgroundColor-inline</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#backgroundColor-inline</code> feature if it recognizes and is
+ capable of transforming all defined values of the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute when applied to a content element that would generate an
+ inline area during presentation processing.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#backgroundColor-inline</code> feature if it (1) implements
+ presentation semantic support for the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute when applied to a content element that generates an inline
+ area and (2) is capable of displaying or generating an output display
+ signal that distinguishes between at least sixteen (16) values of
+ color, including all primary and secondary colors of the SRGB color
+ space.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-backgroundColor-region" name=
+ "feature-backgroundColor-region"></a>D.1.5
+ #backgroundColor-region</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#backgroundColor-region</code> feature if it recognizes and is
+ capable of transforming all defined values of the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute when applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#backgroundColor-region</code> feature if it (1) implements
+ presentation semantic support for the <a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a>
+ attribute when applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element and (2)
+ is capable of displaying or generating an output display signal that
+ distinguishes between at least sixteen (16) values of color,
+ including all primary and secondary colors of the SRGB color space
+ .</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-bidi" name="feature-bidi"></a>D.1.6 #bidi</h4>
+
+ <p>A TTML processor supports the <code>#bidi</code> feature if it
+ supports the following features:</p>
+
+ <ul>
+ <li>
+ <p><a href="#feature-direction"><code>#direction</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#feature-unicodeBidi"><code>#unicodeBidi</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#feature-writingMode-horizontal"><code>#writingMode-horizontal</code></a></p>
+ </li>
+ </ul>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-cellResolution" name=
+ "feature-cellResolution"></a>D.1.7 #cellResolution</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#cellResolution</code> feature if it recognizes and is capable
+ of transforming the <a href=
+ "#parameter-attribute-cellResolution"><code>ttp:cellResolution</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#cellResolution</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#parameter-attribute-cellResolution"><code>ttp:cellResolution</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-clockMode" name="feature-clockMode"></a>D.1.8
+ #clockMode</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#clockMode</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#clockMode</code>
+ feature if it implements presentation semantic support for the
+ <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-clockMode-gps" name=
+ "feature-clockMode-gps"></a>D.1.9 #clockMode-gps</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#clockMode-gps</code> feature if it recognizes and is capable
+ of transforming the <code>gps</code> value of the <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#clockMode-gps</code> feature if it implements presentation
+ semantic support for the <code>gps</code> value of the <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-clockMode-local" name=
+ "feature-clockMode-local"></a>D.1.10 #clockMode-local</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#clockMode-local</code> feature if it recognizes and is capable
+ of transforming the <code>local</code> value of the <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#clockMode-local</code> feature if it implements presentation
+ semantic support for the <code>local</code> value of the <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-clockMode-utc" name=
+ "feature-clockMode-utc"></a>D.1.11 #clockMode-utc</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#clockMode-utc</code> feature if it recognizes and is capable
+ of transforming the <code>utc</code> value of the <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#clockMode-utc</code> feature if it implements presentation
+ semantic support for the <code>utc</code> value of the <a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-color" name="feature-color"></a>D.1.12 #color</h4>
+
+ <p>A TTML transformation processor supports the <code>#color</code>
+ feature if it recognizes and is capable of transforming the <a href=
+ "#style-attribute-color"><code>tts:color</code></a> attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#color</code>
+ feature if it (1) implements presentation semantic support for the
+ <a href="#style-attribute-color"><code>tts:color</code></a> attribute
+ and (2) is capable of displaying or generating an output display
+ signal that distinguishes between at least sixteen (16) values of
+ color, including all primary and secondary colors of the SRGB color
+ space.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-content" name="feature-content"></a>D.1.13
+ #content</h4>
+
+ <p>A TTML transformation processor supports the <code>#content</code>
+ feature if it recognizes and is capable of transforming the following
+ vocabulary defined by <a href="#content"><b>7 Content</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-div"><code>div</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-p"><code>p</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-span"><code>span</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-vocabulary-br"><code>br</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#content</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary enumerated above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-core" name="feature-core"></a>D.1.14 #core</h4>
+
+ <p>A TTML transformation processor supports the <code>#core</code>
+ feature if it recognizes and is capable of transforming the following
+ core attributes vocabulary defined by <a href="#content"><b>7
+ Content</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#content-attribute-id">@<code>xml:id</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#content-attribute-id">@<code>xml:lang</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#content-attribute-id">@<code>xml:space</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#core</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary enumerated above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-direction" name="feature-direction"></a>D.1.15
+ #direction</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#direction</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-direction"><code>tts:direction</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#direction</code>
+ feature if it implements presentation semantic support for all
+ defined values of the <a href=
+ "#style-attribute-direction"><code>tts:direction</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-display" name="feature-display"></a>D.1.16
+ #display</h4>
+
+ <p>A TTML transformation processor supports the <code>#display</code>
+ feature if it recognizes and is capable of transforming all defined
+ values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#display</code>
+ feature if it implements presentation semantic support for all
+ defined values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-display-block" name=
+ "feature-display-block"></a>D.1.17 #display-block</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#display-block</code> feature if it recognizes and is capable
+ of transforming all defined values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a> attribute
+ when applied to a content element that would generate a block area
+ during presentation processing.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#display-block</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a> attribute
+ when applied to a content element that generates a block area.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-display-inline" name=
+ "feature-display-inline"></a>D.1.18 #display-inline</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#display-inline</code> feature if it recognizes and is capable
+ of transforming all defined values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a> attribute
+ when applied to a content element that would generate an inline area
+ during presentation processing.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#display-inline</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a> attribute
+ when applied to a content element that generates an inline area.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-display-region" name=
+ "feature-display-region"></a>D.1.19 #display-region</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#display-region</code> feature if it recognizes and is capable
+ of transforming all defined values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a> attribute
+ when applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#display-region</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-display"><code>tts:display</code></a> attribute
+ when applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-displayAlign" name=
+ "feature-displayAlign"></a>D.1.20 #displayAlign</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#displayAlign</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-displayAlign"><code>tts:displayAlign</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#displayAlign</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-displayAlign"><code>tts:displayAlign</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-dropMode" name="feature-dropMode"></a>D.1.21
+ #dropMode</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#dropMode</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#dropMode</code>
+ feature if it implements presentation semantic support for the
+ <a href="#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-dropMode-dropNTSC" name=
+ "feature-dropMode-dropNTSC"></a>D.1.22 #dropMode-dropNTSC</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#dropMode-dropNTSC</code> feature if it recognizes and is
+ capable of transforming the <code>dropNTSC</code> value of the
+ <a href="#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#dropMode-dropNTSC</code> feature if it implements presentation
+ semantic support for the <code>dropNTSC</code> value of the <a href=
+ "#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-dropMode-dropPAL" name=
+ "feature-dropMode-dropPAL"></a>D.1.23 #dropMode-dropPAL</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#dropMode-dropPAL</code> feature if it recognizes and is
+ capable of transforming the <code>dropPAL</code> value of the
+ <a href="#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#dropMode-dropPAL</code> feature if it implements presentation
+ semantic support for the <code>dropPAL</code> value of the <a href=
+ "#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-dropMode-nonDrop" name=
+ "feature-dropMode-nonDrop"></a>D.1.24 #dropMode-nonDrop</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#dropMode-nonDrop</code> feature if it recognizes and is
+ capable of transforming the <code>nonDrop</code> value of the
+ <a href="#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#dropMode-nonDrop</code> feature if it implements presentation
+ semantic support for the <code>nonDrop</code> value of the <a href=
+ "#parameter-attribute-dropMode"><code>ttp:dropMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-extent" name="feature-extent"></a>D.1.25
+ #extent</h4>
+
+ <p>A TTML transformation processor supports the <code>#extent</code>
+ feature if it recognizes and is capable of transforming the <a href=
+ "#style-attribute-extent"><code>tts:extent</code></a> attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#extent</code>
+ feature if it implements presentation semantic support for the
+ <a href="#style-attribute-extent"><code>tts:extent</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-extent-region" name=
+ "feature-extent-region"></a>D.1.26 #extent-region</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#extent-region</code> feature if it recognizes and is capable
+ of transforming the <a href=
+ "#style-attribute-extent"><code>tts:extent</code></a> attribute when
+ applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#extent-region</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#style-attribute-extent"><code>tts:extent</code></a> attribute when
+ applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-extent-root" name="feature-extent-root"></a>D.1.27
+ #extent-root</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#extent-root</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#style-attribute-extent"><code>tts:extent</code></a> attribute when
+ applied to the <a href=
+ "#document-structure-vocabulary-tt"><code>tt</code></a> element.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#extent-root</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#style-attribute-extent"><code>tts:extent</code></a> attribute when
+ applied to a <a href=
+ "#document-structure-vocabulary-tt"><code>tt</code></a> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontFamily" name="feature-fontFamily"></a>D.1.28
+ #fontFamily</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontFamily</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#style-attribute-fontFamily"><code>tts:fontFamily</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontFamily</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#style-attribute-fontFamily"><code>tts:fontFamily</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontFamily-generic" name=
+ "feature-fontFamily-generic"></a>D.1.29 #fontFamily-generic</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontFamily-generic</code> feature if it recognizes and is
+ capable of transforming <a href=
+ "#style-value-genericFamilyName"><genericFamilyName></a> values
+ when used with the <a href=
+ "#style-attribute-fontFamily"><code>tts:fontFamily</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontFamily-generic</code> feature if it implements
+ presentation semantic support for <a href=
+ "#style-value-genericFamilyName"><genericFamilyName></a> values
+ when used with the <a href=
+ "#style-attribute-fontFamily"><code>tts:fontFamily</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontFamily-non-generic" name=
+ "feature-fontFamily-non-generic"></a>D.1.30
+ #fontFamily-non-generic</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontFamily-non-generic</code> feature if it recognizes and is
+ capable of transforming <a href=
+ "#style-value-familyName"><familyName></a> values when used
+ with the <a href=
+ "#style-attribute-fontFamily"><code>tts:fontFamily</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontFamily-non-generic</code> feature if it implements
+ presentation semantic support for <a href=
+ "#style-value-familyName"><familyName></a> values when used
+ with the <a href=
+ "#style-attribute-fontFamily"><code>tts:fontFamily</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontSize" name="feature-fontSize"></a>D.1.31
+ #fontSize</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontSize</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#style-attribute-fontSize"><code>tts:fontSize</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#fontSize</code>
+ feature if it implements presentation semantic support for the
+ <a href="#style-attribute-fontSize"><code>tts:fontSize</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontSize-anamorphic" name=
+ "feature-fontSize-anamorphic"></a>D.1.32 #fontSize-anamorphic</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontSize-anamorphic</code> feature if it recognizes and is
+ capable of transforming values of the <a href=
+ "#style-attribute-fontSize"><code>tts:fontSize</code></a> attribute
+ that consist of two <a href="#style-value-length"><length></a>
+ specifications.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontSize-anamorphic</code> feature if it implements
+ presentation semantic support for defined values of the <a href=
+ "#style-attribute-fontSize"><code>tts:fontSize</code></a> attribute
+ that consist of two <a href="#style-value-length"><length></a>
+ specifications.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontSize-isomorphic" name=
+ "feature-fontSize-isomorphic"></a>D.1.33 #fontSize-isomorphic</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontSize-isomorphic</code> feature if it recognizes and is
+ capable of transforming values of the <a href=
+ "#style-attribute-fontSize"><code>tts:fontSize</code></a> attribute
+ that consist of a single <a href=
+ "#style-value-length"><length></a> specification.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontSize-isomorphic</code> feature if it implements
+ presentation semantic support for defined values of the <a href=
+ "#style-attribute-fontSize"><code>tts:fontSize</code></a> attribute
+ that consist of a single <a href=
+ "#style-value-length"><length></a> specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontStyle" name="feature-fontStyle"></a>D.1.34
+ #fontStyle</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontStyle</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-fontStyle"><code>tts:fontStyle</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#fontStyle</code>
+ feature if it implements presentation semantic support for all
+ defined values of the <a href=
+ "#style-attribute-fontStyle"><code>tts:fontStyle</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontStyle-italic" name=
+ "feature-fontStyle-italic"></a>D.1.35 #fontStyle-italic</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontStyle-italic</code> feature if it recognizes and is
+ capable of transforming the <code>italic</code> value of the <a href=
+ "#style-attribute-fontStyle"><code>tts:fontStyle</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontStyle-italic</code> feature if it implements presentation
+ semantic support for the <code>italic</code> of the <a href=
+ "#style-attribute-fontStyle"><code>tts:fontStyle</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontStyle-oblique" name=
+ "feature-fontStyle-oblique"></a>D.1.36 #fontStyle-oblique</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontStyle-oblique</code> feature if it recognizes and is
+ capable of transforming the <code>oblique</code> value of the
+ <a href="#style-attribute-fontStyle"><code>tts:fontStyle</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontStyle-oblique</code> feature if it implements presentation
+ semantic support for the <code>oblique</code> of the <a href=
+ "#style-attribute-fontStyle"><code>tts:fontStyle</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontWeight" name="feature-fontWeight"></a>D.1.37
+ #fontWeight</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontWeight</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-fontWeight"><code>tts:fontWeight</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontWeight</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-fontWeight"><code>tts:fontWeight</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-fontWeight-bold" name=
+ "feature-fontWeight-bold"></a>D.1.38 #fontWeight-bold</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#fontWeight-bold</code> feature if it recognizes and is capable
+ of transforming <code>bold</code> value of the <a href=
+ "#style-attribute-fontWeight"><code>tts:fontWeight</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#fontWeight-bold</code> feature if it implements presentation
+ semantic support for the <code>bold</code> of the <a href=
+ "#style-attribute-fontWeight"><code>tts:fontWeight</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-frameRate" name="feature-frameRate"></a>D.1.39
+ #frameRate</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#frameRate</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#parameter-attribute-frameRate"><code>ttp:frameRate</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#frameRate</code>
+ feature if it implements presentation semantic support for the
+ <a href=
+ "#parameter-attribute-frameRate"><code>ttp:frameRate</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-frameRateMultiplier" name=
+ "feature-frameRateMultiplier"></a>D.1.40 #frameRateMultiplier</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#frameRateMultiplier</code> feature if it recognizes and is
+ capable of transforming the <a href=
+ "#parameter-attribute-frameRateMultiplier"><code>ttp:frameRateMultiplier</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#frameRateMultiplier</code> feature if it implements
+ presentation semantic support for the <a href=
+ "#parameter-attribute-frameRateMultiplier"><code>ttp:frameRateMultiplier</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-layout" name="feature-layout"></a>D.1.41
+ #layout</h4>
+
+ <p>A TTML transformation processor supports the <code>#layout</code>
+ feature if it (1) recognizes and is capable of transforming the
+ following vocabulary defined by <a href="#layout"><b>9
+ Layout</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#layout-vocabulary-layout"><code>layout</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#layout-vocabulary-region"><code>region</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#layout-attribute-region">@<code>region</code></a></p>
+ </li>
+ </ul>
+
+ <p>and (2) supports the following attributes when applied to the
+ <a href="#layout-vocabulary-region"><code>region</code></a>
+ element:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#style-attribute-extent"><code>tts:extent</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#style-attribute-origin"><code>tts:origin</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#layout</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary and features enumerated above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length" name="feature-length"></a>D.1.42
+ #length</h4>
+
+ <p>A TTML transformation processor supports the <code>#length</code>
+ feature if it recognizes and is capable of transforming all defined
+ values of the <a href="#style-value-length"><length></a> style
+ value expression.</p>
+
+ <p>A TTML presentation processor supports the <code>#length</code>
+ feature if it implements presentation semantic support for all
+ defined values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length</code> is intended to imply support
+ for the following features: <code>#length-integer</code>,
+ <code>#length-real</code>, <code>#length-positive</code>,
+ <code>#length-negative</code>, <code>#length-cell</code>,
+ <code>#length-em</code>, <code>#length-percentage</code>, and
+ <code>#length-pixel</code>.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-cell" name="feature-length-cell"></a>D.1.43
+ #length-cell</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-cell</code> feature if it recognizes and is capable of
+ transforming scalar values of the <a href=
+ "#style-value-length"><length></a> style value expression that
+ use <code>c</code> (cell) units.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#length-cell</code> feature if it implements presentation
+ semantic support for scalar values of the <a href=
+ "#style-value-length"><length></a> style value expression that
+ use <code>c</code> (cell) units.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-cell</code> does not, by itself, imply
+ support for <code>#length-integer</code>,
+ <code>#length-real</code>, <code>#length-positive</code>, or
+ <code>#length-negative</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-em" name="feature-length-em"></a>D.1.44
+ #length-em</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-em</code> feature if it recognizes and is capable of
+ transforming scalar values of the <a href=
+ "#style-value-length"><length></a> style value expression that
+ use <code>em</code> (EM) units.</p>
+
+ <p>A TTML presentation processor supports the <code>#length-em</code>
+ feature if it implements presentation semantic support for scalar
+ values of the <a href="#style-value-length"><length></a> style
+ value expression that use <code>em</code> (EM) units.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-em</code> does not, by itself, imply
+ support for <code>#length-integer</code>,
+ <code>#length-real</code>, <code>#length-positive</code>, or
+ <code>#length-negative</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-integer" name=
+ "feature-length-integer"></a>D.1.45 #length-integer</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-integer</code> feature if it recognizes and is capable
+ of transforming integer values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#length-integer</code> feature if it implements presentation
+ semantic support for integer values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-integer</code> does not, by itself,
+ imply support for <code>#length-positive</code> or
+ <code>#length-negative</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-negative" name=
+ "feature-length-negative"></a>D.1.46 #length-negative</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-negative</code> feature if it recognizes and is capable
+ of transforming negative values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#length-negative</code> feature if it implements presentation
+ semantic support for negative values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-negative</code> does not, by itself,
+ imply support for <code>#length-integer</code> or
+ <code>#length-real</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-percentage" name=
+ "feature-length-percentage"></a>D.1.47 #length-percentage</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-percentage</code> feature if it recognizes and is
+ capable of transforming percentage values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#length-percentage</code> feature if it implements presentation
+ semantic support for percentage values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-percentage</code> does not, by itself,
+ imply support for <code>#length-integer</code>,
+ <code>#length-real</code>, <code>#length-positive</code>, or
+ <code>#length-negative</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-pixel" name=
+ "feature-length-pixel"></a>D.1.48 #length-pixel</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-pixel</code> feature if it recognizes and is capable of
+ transforming scalar values of the <a href=
+ "#style-value-length"><length></a> style value expression that
+ use <code>px</code> (pixel) units.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#length-pixel</code> feature if it implements presentation
+ semantic support for scalar values of the <a href=
+ "#style-value-length"><length></a> style value expression that
+ use <code>px</code> (pixel) units.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-pixel</code> does not, by itself,
+ imply support for <code>#length-integer</code>,
+ <code>#length-real</code>, <code>#length-positive</code>, or
+ <code>#length-negative</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-positive" name=
+ "feature-length-positive"></a>D.1.49 #length-positive</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-positive</code> feature if it recognizes and is capable
+ of transforming positive values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#length-positive</code> feature if it implements presentation
+ semantic support for positive values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-positive</code> is intended to imply
+ support for zero valued <a href=
+ "#style-value-length"><length></a> style value
+ expressions.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-positive</code> does not, by itself,
+ imply support for <code>#length-integer</code> or
+ <code>#length-real</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-length-real" name="feature-length-real"></a>D.1.50
+ #length-real</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#length-real</code> feature if it recognizes and is capable of
+ transforming real values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#length-real</code> feature if it implements presentation
+ semantic support for real values of the <a href=
+ "#style-value-length"><length></a> style value expression.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-real</code> is intended to imply
+ support for integer valued <a href=
+ "#style-value-length"><length></a> style value expressions as
+ well as real valued expressions.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>Support for <code>#length-real</code> does not, by itself, imply
+ support for <code>#length-positive</code> or
+ <code>#length-negative</code> features.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-lineBreak-uax14" name=
+ "feature-lineBreak-uax14"></a>D.1.51 #lineBreak-uax14</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#lineBreak-uax14</code> feature if it recognizes and is capable
+ of transforming requirements expressed by <a href=
+ "#uax14">[UAX14]</a> into its target document space.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#lineBreak-uax14</code> feature if it implements presentation
+ semantic support for <a href="#uax14">[UAX14]</a> as applies to line
+ breaking.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-lineHeight" name="feature-lineHeight"></a>D.1.52
+ #lineHeight</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#lineHeight</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#style-attribute-lineHeight"><code>tts:lineHeight</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#lineHeight</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#style-attribute-lineHeight"><code>tts:lineHeight</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-markerMode" name="feature-markerMode"></a>D.1.53
+ #markerMode</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#markerMode</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#parameter-attribute-markerMode"><code>ttp:markerMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#markerMode</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#parameter-attribute-markerMode"><code>ttp:markerMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-markerMode-continuous" name=
+ "feature-markerMode-continuous"></a>D.1.54
+ #markerMode-continuous</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#markerMode-continuous</code> feature if it recognizes and is
+ capable of transforming the <code>continuous</code> value of the
+ <a href=
+ "#parameter-attribute-markerMode"><code>ttp:markerMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#markerMode-continuous</code> feature if it implements
+ presentation semantic support for the <code>continuous</code> value
+ of the <a href=
+ "#parameter-attribute-markerMode"><code>ttp:markerMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-markerMode-discontinuous" name=
+ "feature-markerMode-discontinuous"></a>D.1.55
+ #markerMode-discontinuous</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#markerMode-discontinuous</code> feature if it recognizes and
+ is capable of transforming the <code>discontinuous</code> value of
+ the <a href=
+ "#parameter-attribute-markerMode"><code>ttp:markerMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#markerMode-discontinuous</code> feature if it implements
+ presentation semantic support for the <code>discontinuous</code>
+ value of the <a href=
+ "#parameter-attribute-markerMode"><code>ttp:markerMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-metadata" name="feature-metadata"></a>D.1.56
+ #metadata</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#metadata</code> feature if it recognizes and is capable of
+ transforming the following vocabulary defined by <a href=
+ "#metadata"><b>12 Metadata</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#metadata-vocabulary-metadata"><code>metadata</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-vocabulary-title"><code>ttm:title</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-vocabulary-title"><code>ttm:desc</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-vocabulary-title"><code>ttm:copyright</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-vocabulary-title"><code>ttm:agent</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-vocabulary-title"><code>ttm:name</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-vocabulary-title"><code>ttm:actor</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-attribute-agent">@<code>ttm:agent</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#metadata-attribute-role">@<code>ttm:role</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#metadata</code>
+ feature if it recognizes and is capable of presenting the information
+ expressed by the same vocabulary enumerated above.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>This specification does not define a standardized form for the
+ presentation of metadata information. The presentation or ability
+ to present metadata information is considered to be implementation
+ dependent.</p>
+ </div>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-nested-div" name="feature-nested-div"></a>D.1.57
+ #nested-div</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#nested-div</code> feature if it recognizes and is capable of
+ transforming nested <a href=
+ "#content-vocabulary-div"><code>div</code></a> elements.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#nested-div</code> feature if it implements presentation
+ semantic support for nested <a href=
+ "#content-vocabulary-div"><code>div</code></a> elements.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-nested-span" name="feature-nested-span"></a>D.1.58
+ #nested-span</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#nested-span</code> feature if it recognizes and is capable of
+ transforming nested <a href=
+ "#content-vocabulary-span"><code>span</code></a> elements.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#nested-span</code> feature if it implements presentation
+ semantic support for nested <a href=
+ "#content-vocabulary-span"><code>span</code></a> elements.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-opacity" name="feature-opacity"></a>D.1.59
+ #opacity</h4>
+
+ <p>A TTML transformation processor supports the <code>#opacity</code>
+ feature if it recognizes and is capable of transforming the <a href=
+ "#style-attribute-opacity"><code>tts:opacity</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#opacity</code>
+ feature if it (1) implements presentation semantic support for the
+ <a href="#style-attribute-opacity"><code>tts:opacity</code></a>
+ attribute and (2) is capable of displaying or generating an output
+ display signal that distinguishes between at least eight (8) values
+ of opacity.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-origin" name="feature-origin"></a>D.1.60
+ #origin</h4>
+
+ <p>A TTML transformation processor supports the <code>#origin</code>
+ feature if it recognizes and is capable of transforming the <a href=
+ "#style-attribute-origin"><code>tts:origin</code></a> attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#origin</code>
+ feature if it implements presentation semantic support for the
+ <a href="#style-attribute-origin"><code>tts:origin</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-overflow" name="feature-overflow"></a>D.1.61
+ #overflow</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#overflow</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-overflow"><code>tts:overflow</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#overflow</code>
+ feature if it implements presentation semantic support for all
+ defined values of the <a href=
+ "#style-attribute-overflow"><code>tts:overflow</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-overflow-visible" name=
+ "feature-overflow-visible"></a>D.1.62 #overflow-visible</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#overflow-visible</code> feature if it recognizes and is
+ capable of transforming the <code>visible</code> value of the
+ <a href="#style-attribute-overflow"><code>tts:overflow</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#overflow-visible</code> feature if it implements presentation
+ semantic support for the <code>visible</code> value of the <a href=
+ "#style-attribute-overflow"><code>tts:overflow</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-padding" name="feature-padding"></a>D.1.63
+ #padding</h4>
+
+ <p>A TTML transformation processor supports the <code>#padding</code>
+ feature if it recognizes and is capable of transforming the <a href=
+ "#style-attribute-padding"><code>tts:padding</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#padding</code>
+ feature if it implements presentation semantic support for the
+ <a href="#style-attribute-padding"><code>tts:padding</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-padding-1" name="feature-padding-1"></a>D.1.64
+ #padding-1</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#padding-1</code> feature if it recognizes and is capable of
+ transforming values of the <a href=
+ "#style-attribute-padding"><code>tts:padding</code></a> attribute
+ that consist of one <a href="#style-value-length"><length></a>
+ specification.</p>
+
+ <p>A TTML presentation processor supports the <code>#padding-1</code>
+ feature if it implements presentation semantic support for values of
+ the <a href="#style-attribute-padding"><code>tts:padding</code></a>
+ attribute that consist of one <a href=
+ "#style-value-length"><length></a> specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-padding-2" name="feature-padding-2"></a>D.1.65
+ #padding-2</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#padding-2</code> feature if it recognizes and is capable of
+ transforming values of the <a href=
+ "#style-attribute-padding"><code>tts:padding</code></a> attribute
+ that consist of two <a href="#style-value-length"><length></a>
+ specification.</p>
+
+ <p>A TTML presentation processor supports the <code>#padding-2</code>
+ feature if it implements presentation semantic support for values of
+ the <a href="#style-attribute-padding"><code>tts:padding</code></a>
+ attribute that consist of two <a href=
+ "#style-value-length"><length></a> specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-padding-3" name="feature-padding-3"></a>D.1.66
+ #padding-3</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#padding-3</code> feature if it recognizes and is capable of
+ transforming values of the <a href=
+ "#style-attribute-padding"><code>tts:padding</code></a> attribute
+ that consist of three <a href=
+ "#style-value-length"><length></a> specification.</p>
+
+ <p>A TTML presentation processor supports the <code>#padding-3</code>
+ feature if it implements presentation semantic support for values of
+ the <a href="#style-attribute-padding"><code>tts:padding</code></a>
+ attribute that consist of three <a href=
+ "#style-value-length"><length></a> specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-padding-4" name="feature-padding-4"></a>D.1.67
+ #padding-4</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#padding-4</code> feature if it recognizes and is capable of
+ transforming values of the <a href=
+ "#style-attribute-padding"><code>tts:padding</code></a> attribute
+ that consist of four <a href="#style-value-length"><length></a>
+ specification.</p>
+
+ <p>A TTML presentation processor supports the <code>#padding-4</code>
+ feature if it implements presentation semantic support for values of
+ the <a href="#style-attribute-padding"><code>tts:padding</code></a>
+ attribute that consist of four <a href=
+ "#style-value-length"><length></a> specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-pixelAspectRatio" name=
+ "feature-pixelAspectRatio"></a>D.1.68 #pixelAspectRatio</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#pixelAspectRatio</code> feature if it recognizes and is
+ capable of transforming the <a href=
+ "#parameter-attribute-pixelAspectRatio"><code>ttp:pixelAspectRatio</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#pixelAspectRatio</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#parameter-attribute-pixelAspectRatio"><code>ttp:pixelAspectRatio</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-presentation" name=
+ "feature-presentation"></a>D.1.69 #presentation</h4>
+
+ <p>A TTML processor supports the <code>#presentation</code> feature
+ if it (1) satisfies the generic processor criteria defined by
+ <a href="#conformance-generic-processor"><b>3.2.1 Generic Processor
+ Conformance</b></a>, (2) implements support for the region and line
+ layout semantics defined by <a href="#semantics-region-layout"><b>9.3
+ Region Layout and Presentation</b></a> and <a href=
+ "#semantics-line-layout"><b>9.4 Line Layout</b></a>, respectively,
+ and (3) implements presentation semantics for the following
+ features:</p>
+
+ <ul>
+ <li>
+ <p><a href="#content"><code>#content</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#feature-core"><code>#core</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#feature-profile"><code>#profile</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#feature-structure"><code>#structure</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#feature-time-offset"><code>#time-offset</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#timing"><code>#timing</code></a></p>
+ </li>
+ </ul>
+
+ <p>In addition, a TTML processor that supports the
+ <code>#presentation</code> feature should satisfy the user agent
+ accessibility guidelines specified by <a href="#uaag">[UAAG]</a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-profile" name="feature-profile"></a>D.1.70
+ #profile</h4>
+
+ <p>A TTML transformation processor supports the <code>#profile</code>
+ feature if it recognizes and is capable of transforming the <a href=
+ "#parameter-attribute-profile"><code>ttp:profile</code></a> attribute
+ on the <a href=
+ "#document-structure-vocabulary-tt"><code>tt</code></a> element and
+ transforming the following vocabulary defined by <a href=
+ "#parameter-element-vocabulary"><b>6.1 Parameter Element
+ Vocabulary</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#parameter-vocabulary-profile"><code>ttp:profile</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#parameter-vocabulary-features"><code>ttp:features</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#parameter-vocabulary-feature"><code>ttp:feature</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#parameter-vocabulary-extensions"><code>ttp:extensions</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#parameter-vocabulary-extension"><code>ttp:extension</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#profile</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary specified above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-showBackground" name=
+ "feature-showBackground"></a>D.1.71 #showBackground</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#showBackground</code> feature if it recognizes and is capable
+ of transforming all defined values of the <a href=
+ "#style-attribute-showBackground"><code>tts:showBackground</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#showBackground</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-showBackground"><code>tts:showBackground</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-structure" name="feature-structure"></a>D.1.72
+ #structure</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#structure</code> feature if it recognizes and is capable of
+ transforming the following vocabulary defined by <a href=
+ "#content"><b>7 Content</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#document-structure-vocabulary-tt"><code>tt</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#document-structure-vocabulary-head"><code>head</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#structure</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary enumerated above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-styling" name="feature-styling"></a>D.1.73
+ #styling</h4>
+
+ <p>A TTML transformation processor supports the <code>#styling</code>
+ feature if it recognizes and is capable of transforming the following
+ vocabulary defined by <a href="#styling"><b>8 Styling</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href=
+ "#styling-vocabulary-styling"><code>styling</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#styling-vocabulary-style"><code>style</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#style-attribute-style">@<code>style</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#styling</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary enumerated above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-styling-chained" name=
+ "feature-styling-chained"></a>D.1.74 #styling-chained</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#styling-chained</code> feature if it recognizes and is capable
+ of transforming chained style association as defined by <a href=
+ "#semantics-style-association-chained-referential"><b>8.4.1.3 Chained
+ Referential Styling</b></a>.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#styling-chained</code> feature if it implements presentation
+ semantic support for chained style association as defined by <a href=
+ "#semantics-style-association-chained-referential"><b>8.4.1.3 Chained
+ Referential Styling</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-styling-inheritance-content" name=
+ "feature-styling-inheritance-content"></a>D.1.75
+ #styling-inheritance-content</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#styling-inheritance</code> feature if it recognizes and is
+ capable of transforming content style inheritance as defined by
+ <a href="#semantics-style-inheritance-content"><b>8.4.2.1 Content
+ Style Inheritance</b></a>.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#styling-inheritance-content</code> feature if it implements
+ presentation semantic support for content style inheritance as
+ defined by <a href="#semantics-style-inheritance-content"><b>8.4.2.1
+ Content Style Inheritance</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-styling-inheritance-region" name=
+ "feature-styling-inheritance-region"></a>D.1.76
+ #styling-inheritance-region</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#styling-inheritance</code> feature if it recognizes and is
+ capable of transforming region style inheritance as defined by
+ <a href="#semantics-style-inheritance-region"><b>8.4.2.2 Region Style
+ Inheritance</b></a>.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#styling-inheritance-region</code> feature if it implements
+ presentation semantic support for region style inheritance as defined
+ by <a href="#semantics-style-inheritance-region"><b>8.4.2.2 Region
+ Style Inheritance</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-styling-inline" name=
+ "feature-styling-inline"></a>D.1.77 #styling-inline</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#styling-inline</code> feature if it recognizes and is capable
+ of transforming inline style association as defined by <a href=
+ "#semantics-style-association-inline"><b>8.4.1.1 Inline
+ Styling</b></a>.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#styling-inline</code> feature if it implements presentation
+ semantic support for inline style association as defined by <a href=
+ "#semantics-style-association-inline"><b>8.4.1.1 Inline
+ Styling</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-styling-nested" name=
+ "feature-styling-nested"></a>D.1.78 #styling-nested</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#styling-nested</code> feature if it recognizes and is capable
+ of transforming nested style association as defined by <a href=
+ "#semantics-style-association-nested"><b>8.4.1.4 Nested
+ Styling</b></a>.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#styling-nested</code> feature if it implements presentation
+ semantic support for nested style association as defined by <a href=
+ "#semantics-style-association-nested"><b>8.4.1.4 Nested
+ Styling</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-styling-referential" name=
+ "feature-styling-referential"></a>D.1.79 #styling-referential</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#styling-referential</code> feature if it recognizes and is
+ capable of transforming referential style association as defined by
+ <a href="#semantics-style-association-referential"><b>8.4.1.2
+ Referential Styling</b></a>.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#styling-referential</code> feature if it implements
+ presentation semantic support for referential style association as
+ defined by <a href=
+ "#semantics-style-association-referential"><b>8.4.1.2 Referential
+ Styling</b></a>.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-subFrameRate" name=
+ "feature-subFrameRate"></a>D.1.80 #subFrameRate</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#subFrameRate</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#parameter-attribute-subFrameRate"><code>ttp:subFrameRate</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#subFrameRate</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#parameter-attribute-subFrameRate"><code>ttp:subFrameRate</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textAlign" name="feature-textAlign"></a>D.1.81
+ #textAlign</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textAlign</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-textAlign"><code>tts:textAlign</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#textAlign</code>
+ feature if it implements presentation semantic support for all
+ defined values of the <a href=
+ "#style-attribute-textAlign"><code>tts:textAlign</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textAlign-absolute" name=
+ "feature-textAlign-absolute"></a>D.1.82 #textAlign-absolute</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textAlign-absolute</code> feature if it recognizes and is
+ capable of transforming the <code>left</code>, <code>center</code>,
+ and <code>right</code> values of the <a href=
+ "#style-attribute-textAlign"><code>tts:textAlign</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textAlign-absolute</code> feature if it implements
+ presentation semantic support for the <code>left</code>,
+ <code>center</code>, and <code>right</code> values of the <a href=
+ "#style-attribute-textAlign"><code>tts:textAlign</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textAlign-relative" name=
+ "feature-textAlign-relative"></a>D.1.83 #textAlign-relative</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textAlign-relative</code> feature if it recognizes and is
+ capable of transforming the <code>start</code>, <code>center</code>,
+ and <code>end</code> values of the <a href=
+ "#style-attribute-textAlign"><code>tts:textAlign</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textAlign-relative</code> feature if it implements
+ presentation semantic support for the <code>start</code>,
+ <code>center</code>, and <code>end</code> values of the <a href=
+ "#style-attribute-textAlign"><code>tts:textAlign</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textDecoration" name=
+ "feature-textDecoration"></a>D.1.84 #textDecoration</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textDecoration</code> feature if it recognizes and is capable
+ of transforming all defined values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textDecoration</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textDecoration-over" name=
+ "feature-textDecoration-over"></a>D.1.85 #textDecoration-over</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textDecoration-over</code> feature if it recognizes and is
+ capable of transforming the <code>overline</code> and
+ <code>noOverline</code> values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textDecoration-over</code> feature if it implements
+ presentation semantic support for the <code>overline</code> and
+ <code>noOverline</code> values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textDecoration-through" name=
+ "feature-textDecoration-through"></a>D.1.86
+ #textDecoration-through</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textDecoration-through</code> feature if it recognizes and is
+ capable of transforming the <code>lineThrough</code> and
+ <code>noLineThrough</code> values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textDecoration-through</code> feature if it implements
+ presentation semantic support for the <code>lineThrough</code> and
+ <code>noLineThrough</code> values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textDecoration-under" name=
+ "feature-textDecoration-under"></a>D.1.87 #textDecoration-under</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textDecoration-under</code> feature if it recognizes and is
+ capable of transforming the <code>underline</code> and
+ <code>noUnderline</code> values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textDecoration-under</code> feature if it implements
+ presentation semantic support for the <code>underline</code> and
+ <code>noUnderline</code> values of the <a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textOutline" name="feature-textOutline"></a>D.1.88
+ #textOutline</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textOutline</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#style-attribute-textOutline"><code>tts:textOutline</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textOutline</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#style-attribute-textOutline"><code>tts:textOutline</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textOutline-blurred" name=
+ "feature-textOutline-blurred"></a>D.1.89 #textOutline-blurred</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textOutline-blurred</code> feature if it recognizes and is
+ capable of transforming values of the <a href=
+ "#style-attribute-textOutline"><code>tts:textOutline</code></a>
+ attribute that includes a blur radius specification.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textOutline-blurred</code> feature if it implements
+ presentation semantic support for values of the <a href=
+ "#style-attribute-textOutline"><code>tts:textOutline</code></a>
+ attribute that includes a blur radius specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-textOutline-unblurred" name=
+ "feature-textOutline-unblurred"></a>D.1.90
+ #textOutline-unblurred</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#textOutline-unblurred</code> feature if it recognizes and is
+ capable of transforming values of the <a href=
+ "#style-attribute-textOutline"><code>tts:textOutline</code></a>
+ attribute that does not include a blur radius specification.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#textOutline-unblurred</code> feature if it implements
+ presentation semantic support for values of the <a href=
+ "#style-attribute-textOutline"><code>tts:textOutline</code></a>
+ attribute that does not include a blur radius specification.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-tickRate" name="feature-tickRate"></a>D.1.91
+ #tickRate</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#tickRate</code> feature if it recognizes and is capable of
+ transforming the <a href=
+ "#parameter-attribute-tickRate"><code>ttp:tickRate</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#tickRate</code>
+ feature if it implements presentation semantic support for the
+ <a href="#parameter-attribute-tickRate"><code>ttp:tickRate</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-timeBase-clock" name=
+ "feature-timeBase-clock"></a>D.1.92 #timeBase-clock</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#timeBase-clock</code> feature if it recognizes and is capable
+ of transforming the <code>clock</code> value of the <a href=
+ "#parameter-attribute-timeBase"><code>ttp:timeBase</code></a>
+ attribute and if it supports the <a href=
+ "#feature-clockMode"><code>#clockMode</code></a> feature.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#timeBase-clock</code> feature if it implements presentation
+ semantic support for the <code>clock</code> value of the <a href=
+ "#parameter-attribute-timeBase"><code>ttp:timeBase</code></a>
+ attribute and if it supports the <a href=
+ "#feature-clockMode"><code>#clockMode</code></a> feature.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-timeBase-media" name=
+ "feature-timeBase-media"></a>D.1.93 #timeBase-media</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#timeBase-media</code> feature if it recognizes and is capable
+ of transforming the <code>media</code> value of the <a href=
+ "#parameter-attribute-timeBase"><code>ttp:timeBase</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#timeBase-media</code> feature if it implements presentation
+ semantic support for the <code>media</code> value of the <a href=
+ "#parameter-attribute-timeBase"><code>ttp:timeBase</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-timeBase-smpte" name=
+ "feature-timeBase-smpte"></a>D.1.94 #timeBase-smpte</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#timeBase-smpte</code> feature if it recognizes and is capable
+ of transforming the <code>smpte</code> value of the <a href=
+ "#parameter-attribute-timeBase"><code>ttp:timeBase</code></a>
+ attribute and if it supports the <a href=
+ "#feature-dropMode"><code>#dropMode</code></a> feature.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#timeBase-smpte</code> feature if it implements presentation
+ semantic support for the <code>smpte</code> value of the <a href=
+ "#parameter-attribute-timeBase"><code>ttp:timeBase</code></a>
+ attribute and if it supports the <a href=
+ "#feature-dropMode"><code>#dropMode</code></a> feature.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-timeContainer" name=
+ "feature-timeContainer"></a>D.1.95 #timeContainer</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#timeContainer</code> feature if it recognizes and is capable
+ of transforming the <a href=
+ "#timing-attribute-timeContainer"><code>timeContainer</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#timeContainer</code> feature if it implements presentation
+ semantic support for the <a href=
+ "#timing-attribute-timeContainer"><code>timeContainer</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-time-clock" name="feature-time-clock"></a>D.1.96
+ #time-clock</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#time-clock</code> feature if it recognizes and is capable of
+ transforming all values of the <a href=
+ "#timing-value-timeExpression"><timeExpression></a> that
+ satisfy the following subset of time expression syntax:</p>
+
+ <div class="exampleInner">
+ <pre>
+<timeExpression>
+ : hours ":" minutes ":" seconds ( fraction )?
+</pre>
+ </div>
+
+ <p>A TTML presentation processor supports the
+ <code>#time-clock</code> feature if it implements presentation
+ semantic support for the same syntax specified above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-time-clock-with-frames" name=
+ "feature-time-clock-with-frames"></a>D.1.97
+ #time-clock-with-frames</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#time-clock-with-frames</code> feature if it supports the
+ <a href="#feature-frameRate"><code>#frameRate</code></a>, <a href=
+ "#feature-frameRateMultiplier"><code>#frameRateMultiplier</code></a>,
+ and <a href="#feature-subFrameRate"><code>#subFrameRate</code></a>
+ features and if it recognizes and is capable of transforming all
+ values of the <a href=
+ "#timing-value-timeExpression"><timeExpression></a> that
+ satisfy the following subset of time expression syntax:</p>
+
+ <div class="exampleInner">
+ <pre>
+<timeExpression>
+ : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?
+</pre>
+ </div>
+
+ <p>A TTML presentation processor supports the
+ <code>#time-clock-with-frames</code> feature if it implements
+ presentation semantic support for the same features and syntax
+ specified above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-time-offset" name="feature-time-offset"></a>D.1.98
+ #time-offset</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#time-offset</code> feature if it recognizes and is capable of
+ transforming all values of the <a href=
+ "#timing-value-timeExpression"><timeExpression></a> that
+ satisfy the following subset of time expression syntax:</p>
+
+ <div class="exampleInner">
+ <pre>
+<timeExpression>
+ : time-count fraction? ( "h" | "m" | "s" | "ms" )
+</pre>
+ </div>
+
+ <p>A TTML presentation processor supports the
+ <code>#time-offset</code> feature if it implements presentation
+ semantic support for the same syntax specified above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-time-offset-with-frames" name=
+ "feature-time-offset-with-frames"></a>D.1.99
+ #time-offset-with-frames</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#time-offset-with-frames</code> feature if it supports the
+ <a href="#feature-frameRate"><code>#frameRate</code></a>, <a href=
+ "#feature-frameRateMultiplier"><code>#frameRateMultiplier</code></a>,
+ and <a href="#feature-subFrameRate"><code>#subFrameRate</code></a>
+ features and if it recognizes and is capable of transforming all
+ values of the <a href=
+ "#timing-value-timeExpression"><timeExpression></a> that
+ satisfy the following subset of time expression syntax:</p>
+
+ <div class="exampleInner">
+ <pre>
+<timeExpression>
+ : time-count fraction? "f"
+</pre>
+ </div>
+
+ <p>A TTML presentation processor supports the
+ <code>#time-offset-with-frames</code> feature if it implements
+ presentation semantic support for the same features and syntax
+ specified above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-time-offset-with-ticks" name=
+ "feature-time-offset-with-ticks"></a>D.1.100
+ #time-offset-with-ticks</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#time-offset-with-ticks</code> feature if it supports the
+ <a href="#feature-tickRate"><code>#tickRate</code></a> feature and if
+ it recognizes and is capable of transforming all values of the
+ <a href="#timing-value-timeExpression"><timeExpression></a>
+ that satisfy the following subset of time expression syntax:</p>
+
+ <div class="exampleInner">
+ <pre>
+<timeExpression>
+ : time-count fraction? "t"
+</pre>
+ </div>
+
+ <p>A TTML presentation processor supports the
+ <code>#time-offset-with-ticks</code> feature if it implements
+ presentation semantic support for the same features and syntax
+ specified above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-timing" name="feature-timing"></a>D.1.101
+ #timing</h4>
+
+ <p>A TTML transformation processor supports the <code>#timing</code>
+ feature if it recognizes and is capable of transforming the following
+ vocabulary defined by <a href="#timing"><b>10 Timing</b></a>:</p>
+
+ <ul>
+ <li>
+ <p><a href="#timing-attribute-begin">@<code>begin</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#timing-attribute-dur">@<code>dur</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#timing-attribute-end">@<code>end</code></a></p>
+ </li>
+ </ul>
+
+ <p>A TTML presentation processor supports the <code>#timing</code>
+ feature if it implements presentation semantic support for the same
+ vocabulary enumerated above.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-transformation" name=
+ "feature-transformation"></a>D.1.102 #transformation</h4>
+
+ <p>A TTML processor supports the <code>#transformation</code> feature
+ if it (1) satisfies the generic processor criteria defined by
+ <a href="#conformance-generic-processor"><b>3.2.1 Generic Processor
+ Conformance</b></a> and (2) implements the transformation semantics
+ of the following features:</p>
+
+ <ul>
+ <li>
+ <p><a href="#content"><code>#content</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#feature-core"><code>#core</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#feature-profile"><code>#profile</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#feature-structure"><code>#structure</code></a></p>
+ </li>
+
+ <li>
+ <p><a href=
+ "#feature-time-offset"><code>#time-offset</code></a></p>
+ </li>
+
+ <li>
+ <p><a href="#timing"><code>#timing</code></a></p>
+ </li>
+ </ul>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-unicodeBidi" name=
+ "feature-unicodeBidi"></a>D.1.103 #unicodeBidi</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#unicodeBidi</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-unicodeBidi"><code>tts:unicodeBidi</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#unicodeBidi</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-unicodeBidi"><code>tts:unicodeBidi</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-visibility" name="feature-visibility"></a>D.1.104
+ #visibility</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#visibility</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#visibility</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-visibility-block" name=
+ "feature-visibility-block"></a>D.1.105 #visibility-block</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#visibility-block</code> feature if it recognizes and is
+ capable of transforming all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute when applied to a content element that would generate a
+ block area during presentation processing.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#visibility-block</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute when applied to a content element that generates a block
+ area.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-visibility-inline" name=
+ "feature-visibility-inline"></a>D.1.106 #visibility-inline</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#visibility-inline</code> feature if it recognizes and is
+ capable of transforming all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute when applied to a content element that would generate an
+ inline area during presentation processing.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#visibility-inline</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute when applied to a content element that generates an inline
+ area.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-visibility-region" name=
+ "feature-visibility-region"></a>D.1.107 #visibility-region</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#visibility-region</code> feature if it recognizes and is
+ capable of transforming all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute when applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#visibility-region</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a>
+ attribute when applied to a <a href=
+ "#layout-vocabulary-region"><code>region</code></a> element.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-wrapOption" name="feature-wrapOption"></a>D.1.108
+ #wrapOption</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#wrapOption</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-wrapOption"><code>tts:wrapOption</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#wrapOption</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-wrapOption"><code>tts:wrapOption</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-writingMode" name=
+ "feature-writingMode"></a>D.1.109 #writingMode</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#writingMode</code> feature if it recognizes and is capable of
+ transforming all defined values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#writingMode</code> feature if it implements presentation
+ semantic support for all defined values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-writingMode-vertical" name=
+ "feature-writingMode-vertical"></a>D.1.110 #writingMode-vertical</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#writingMode-vertical</code> feature if it recognizes and is
+ capable of transforming the <code>tbrl</code>, <code>tblr</code>, and
+ <code>tb</code> values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#writingMode-vertical</code> feature if it implements
+ presentation semantic support for the <code>tbrl</code>,
+ <code>tblr</code>, and <code>tb</code> values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-writingMode-horizontal" name=
+ "feature-writingMode-horizontal"></a>D.1.111
+ #writingMode-horizontal</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#writingMode-horizontal</code> feature if it recognizes and is
+ capable of transforming the <code>lrtb</code>, <code>rltb</code>,
+ <code>lr</code> and <code>rl</code> values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#writingMode-horizontal</code> feature if it implements
+ presentation semantic support for the <code>lrtb</code>,
+ <code>rltb</code>, <code>lr</code> and <code>rl</code> values of the
+ <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-writingMode-horizontal-lr" name=
+ "feature-writingMode-horizontal-lr"></a>D.1.112
+ #writingMode-horizontal-lr</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#writingMode-horizontal</code> feature if it recognizes and is
+ capable of transforming the <code>lrtb</code> and <code>lr</code>
+ values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#writingMode-horizontal-lr</code> feature if it implements
+ presentation semantic support for the <code>lrtb</code> and
+ <code>lr</code> values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-writingMode-horizontal-rl" name=
+ "feature-writingMode-horizontal-rl"></a>D.1.113
+ #writingMode-horizontal-rl</h4>
+
+ <p>A TTML transformation processor supports the
+ <code>#writingMode-horizontal</code> feature if it recognizes and is
+ capable of transforming the <code>rltb</code> and <code>rl</code>
+ values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+
+ <p>A TTML presentation processor supports the
+ <code>#writingMode-horizontal-rl</code> feature if it implements
+ presentation semantic support for the <code>rltb</code> and
+ <code>rl</code> values of the <a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a>
+ attribute.</p>
+ </div>
+
+ <div class="div3">
+ <h4><a id="feature-zIndex" name="feature-zIndex"></a>D.1.114
+ #zIndex</h4>
+
+ <p>A TTML transformation processor supports the <code>#zIndex</code>
+ feature if it recognizes and is capable of transforming the <a href=
+ "#style-attribute-zIndex"><code>tts:zIndex</code></a> attribute.</p>
+
+ <p>A TTML presentation processor supports the <code>#zIndex</code>
+ feature if it implements presentation semantic support for the
+ <a href="#style-attribute-zIndex"><code>tts:zIndex</code></a>
+ attribute.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="feature-support" name="feature-support"></a>D.2 Feature
+ Support</h3>
+
+ <p>The following table, <a href="#feature-support-table"><b>Table D-1 –
+ Feature Support</b></a>, enumerates every defined feature designation
+ (expressed without the TT Feature Namespace), and, for each designated
+ feature, specifies whether the feature must be implemented, i.e., is
+ mandatory (M), or may be implemented, i.e., is optional (O), for
+ transformation and presentation processors.</p><a id=
+ "feature-support-table" name="feature-support-table"></a>
+
+ <table class="common">
+ <caption>
+ Table D-1 – Feature Support
+ </caption>
+ <col width="60%" span="1">
+ <col width="20%" span="1">
+ <col width="20%" span="1">
+
+ <tbody>
+ <tr>
+ <td><span class="strong">Feature</span></td>
+
+ <td><span class="strong">Transformation</span></td>
+
+ <td><span class="strong">Presentation</span></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-animation"><code>#animation</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-backgroundColor"><code>#backgroundColor</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-backgroundColor-block"><code>#backgroundColor-block</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-backgroundColor-inline"><code>#backgroundColor-inline</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-backgroundColor-region"><code>#backgroundColor-region</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-bidi"><code>#bidi</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-cellResolution"><code>#cellResolution</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-clockMode"><code>#clockMode</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-clockMode-gps"><code>#clockMode-gps</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-clockMode-local"><code>#clockMode-local</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-clockMode-utc"><code>#clockMode-utc</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-color"><code>#color</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-content"><code>#content</code></a></td>
+
+ <td>M</td>
+
+ <td>M</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-core"><code>#core</code></a></td>
+
+ <td>M</td>
+
+ <td>M</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-direction"><code>#direction</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-display"><code>#display</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-display-block"><code>#display-block</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-display-inline"><code>#display-inline</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-display-region"><code>#display-region</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-displayAlign"><code>#displayAlign</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-dropMode"><code>#dropMode</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-dropMode-dropNTSC"><code>#dropMode-dropNTSC</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-dropMode-dropPAL"><code>#dropMode-dropPAL</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-dropMode-nonDrop"><code>#dropMode-nonDrop</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-extent"><code>#extent</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-extent-region"><code>#extent-region</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-extent-root"><code>#extent-root</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontFamily"><code>#fontFamily</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontFamily-generic"><code>#fontFamily-generic</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontFamily-non-generic"><code>#fontFamily-non-generic</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-fontSize"><code>#fontSize</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontSize-anamorphic"><code>#fontSize-anamorphic</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontSize-isomorphic"><code>#fontSize-isomorphic</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-fontStyle"><code>#fontStyle</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontStyle-italic"><code>#fontStyle-italic</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontStyle-oblique"><code>#fontStyle-oblique</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontWeight"><code>#fontWeight</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-fontWeight-bold"><code>#fontWeight-bold</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-frameRate"><code>#frameRate</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-frameRateMultiplier"><code>#frameRateMultiplier</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-layout"><code>#layout</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-length"><code>#length</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-length-cell"><code>#length-cell</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-length-em"><code>#length-em</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-length-integer"><code>#length-integer</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-length-negative"><code>#length-negative</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-length-percentage"><code>#length-percentage</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-length-pixel"><code>#length-pixel</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-length-positive"><code>#length-positive</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-length-real"><code>#length-real</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-lineBreak-uax14"><code>#lineBreak-uax14</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-lineHeight"><code>#lineHeight</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-markerMode"><code>#markerMode</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-markerMode-continuous"><code>#markerMode-continuous</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-markerMode-discontinuous"><code>#markerMode-discontinuous</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-metadata"><code>#metadata</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-nested-div"><code>#nested-div</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-nested-span"><code>#nested-span</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-opacity"><code>#opacity</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-origin"><code>#origin</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-overflow"><code>#overflow</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-overflow-visible"><code>#overflow-visible</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-padding"><code>#padding</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-padding-1"><code>#padding-1</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-padding-2"><code>#padding-2</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-padding-3"><code>#padding-3</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-padding-4"><code>#padding-4</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-pixelAspectRatio"><code>#pixelAspectRatio</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-presentation"><code>#presentation</code></a></td>
+
+ <td>O</td>
+
+ <td>M</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-profile"><code>#profile</code></a></td>
+
+ <td>M</td>
+
+ <td>M</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-showBackground"><code>#showBackground</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-structure"><code>#structure</code></a></td>
+
+ <td>M</td>
+
+ <td>M</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-styling"><code>#styling</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-styling-chained"><code>#styling-chained</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-styling-inheritance-content"><code>#styling-inheritance-content</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-styling-inheritance-region"><code>#styling-inheritance-region</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-styling-inline"><code>#styling-inline</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-styling-nested"><code>#styling-nested</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-styling-referential"><code>#styling-referential</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-subFrameRate"><code>#subFrameRate</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-textAlign"><code>#textAlign</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textAlign-absolute"><code>#textAlign-absolute</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textAlign-relative"><code>#textAlign-relative</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textDecoration"><code>#textDecoration</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textDecoration-over"><code>#textDecoration-over</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textDecoration-through"><code>#textDecoration-through</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textDecoration-under"><code>#textDecoration-under</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textOutline"><code>#textOutline</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textOutline-blurred"><code>#textOutline-blurred</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-textOutline-unblurred"><code>#textOutline-unblurred</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-tickRate"><code>#tickRate</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-timeBase-clock"><code>#timeBase-clock</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-timeBase-media"><code>#timeBase-media</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-timeBase-smpte"><code>#timeBase-smpte</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-timeContainer"><code>#timeContainer</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-time-clock"><code>#time-clock</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-time-clock-with-frames"><code>#time-clock-with-frames</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-time-offset"><code>#time-offset</code></a></td>
+
+ <td>M</td>
+
+ <td>M</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-time-offset-with-frames"><code>#time-offset-with-frames</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-time-offset-with-ticks"><code>#time-offset-with-ticks</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-timing"><code>#timing</code></a></td>
+
+ <td>M</td>
+
+ <td>M</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-transformation"><code>#transformation</code></a></td>
+
+ <td>M</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-unicodeBidi"><code>#unicodeBidi</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-visibility"><code>#visibility</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-visibility-block"><code>#visibility-block</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-visibility-inline"><code>#visibility-inline</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-visibility-region"><code>#visibility-region</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-wrapOption"><code>#wrapOption</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-writingMode"><code>#writingMode</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-writingMode-vertical"><code>#writingMode-vertical</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-writingMode-horizontal"><code>#writingMode-horizontal</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-writingMode-horizontal-lr"><code>#writingMode-horizontal-lr</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-writingMode-horizontal-rl"><code>#writingMode-horizontal-rl</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-zIndex"><code>#zIndex</code></a></td>
+
+ <td>O</td>
+
+ <td>O</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the sake of convenience, the following table, <a href=
+ "#feature-transformation-mandatory-table"><b>Table D-2 – Mandatory
+ Features - Transformation</b></a>, enumerates all mandatory features
+ for a TTML Transformation Processor, providing additional comments to
+ summarize the context of usage or the nature of the feature. The
+ <em>Profile Definition Document</em> that defines the corresponding
+ DFXP Transformation Profile is specified in <a href=
+ "#profile-dfxp-transformation"><b>F.1 DFXP Transformation
+ Profile</b></a>.</p><a id="feature-transformation-mandatory-table"
+ name="feature-transformation-mandatory-table"></a>
+
+ <table class="common">
+ <caption>
+ Table D-2 – Mandatory Features - Transformation
+ </caption>
+ <col width="60%" span="1">
+ <col width="40%" span="1">
+
+ <tbody>
+ <tr>
+ <td><span class="strong">Feature</span></td>
+
+ <td><span class="strong">Comments</span></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-content"><code>#content</code></a></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a>,
+ <a href="#content-vocabulary-div"><code>div</code></a>, <a href=
+ "#content-vocabulary-p"><code>p</code></a>, <a href=
+ "#content-vocabulary-span"><code>span</code></a>, <a href=
+ "#content-vocabulary-br"><code>br</code></a></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-core"><code>#core</code></a></td>
+
+ <td><a href="#content-attribute-id">@<code>xml:id</code></a>,
+ <a href="#content-attribute-id">@<code>xml:lang</code></a>,
+ <a href="#content-attribute-id">@<code>xml:space</code></a></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-profile"><code>#profile</code></a></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-structure"><code>#structure</code></a></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-tt"><code>tt</code></a>, <a href=
+ "#document-structure-vocabulary-head"><code>head</code></a></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-time-offset"><code>#time-offset</code></a></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-timing"><code>#timing</code></a></td>
+
+ <td><a href="#timing-attribute-begin">@<code>begin</code></a>,
+ <a href="#timing-attribute-dur">@<code>dur</code></a>, <a href=
+ "#timing-attribute-end">@<code>end</code></a></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-transformation"><code>#transformation</code></a></td>
+
+ <td></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>For the sake of convenience, the following table, <a href=
+ "#feature-presentation-mandatory-table"><b>Table D-3 – Mandatory
+ Features - Presentation</b></a>, enumerates all mandatory features for
+ a TTML Presentation Processor, providing additional comments to
+ summarize the context of usage or the nature of the feature. The
+ <em>Profile Definition Document</em> that defines the corresponding
+ DFXP Presentation Profile is specified in <a href=
+ "#profile-dfxp-presentation"><b>F.2 DFXP Presentation
+ Profile</b></a>.</p><a id="feature-presentation-mandatory-table" name=
+ "feature-presentation-mandatory-table"></a>
+
+ <table class="common">
+ <caption>
+ Table D-3 – Mandatory Features - Presentation
+ </caption>
+ <col width="60%" span="1">
+ <col width="40%" span="1">
+
+ <tbody>
+ <tr>
+ <td><span class="strong">Feature</span></td>
+
+ <td><span class="strong">Comments</span></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-content"><code>#content</code></a></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-body"><code>body</code></a>,
+ <a href="#content-vocabulary-div"><code>div</code></a>, <a href=
+ "#content-vocabulary-p"><code>p</code></a>, <a href=
+ "#content-vocabulary-span"><code>span</code></a>, <a href=
+ "#content-vocabulary-br"><code>br</code></a></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-core"><code>#core</code></a></td>
+
+ <td><a href="#content-attribute-id">@<code>xml:id</code></a>,
+ <a href="#content-attribute-id">@<code>xml:lang</code></a>,
+ <a href="#content-attribute-id">@<code>xml:space</code></a></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-profile"><code>#profile</code></a></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-presentation"><code>#presentation</code></a></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-structure"><code>#structure</code></a></td>
+
+ <td><a href=
+ "#document-structure-vocabulary-tt"><code>tt</code></a>, <a href=
+ "#document-structure-vocabulary-head"><code>head</code></a></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#feature-time-offset"><code>#time-offset</code></a></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href="#feature-timing"><code>#timing</code></a></td>
+
+ <td><a href="#timing-attribute-begin">@<code>begin</code></a>,
+ <a href="#timing-attribute-dur">@<code>dur</code></a>, <a href=
+ "#timing-attribute-end">@<code>end</code></a></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="extensions" name="extensions"></a>E Extensions</h2>
+
+ <p><em>This appendix is normative.</em></p>
+
+ <p>This appendix specifies the syntactic form of extension designations,
+ which are used to express authorial intent regarding the support for
+ extension mechanisms in a TTML processor.</p>
+
+ <div class="div2">
+ <h3><a id="extension-designations" name=
+ "extension-designations"></a>E.1 Extension Designations</h3>
+
+ <p>An extension designation is expressed as a string that adheres to
+ the following form:</p>
+
+ <div class="exampleInner">
+ <pre>
+extension-designation
+ : extension-namespace designation
+
+extension-namespace
+ : <em>TT Extension Namespace</em> // http://www.w3.org/ns/ttml/extension/
+ | <em>Other Extension Namespace</em> // expressed as an absolute URI
+
+designation
+ : "#" token-char+
+
+token-char
+ : { XML NameChar } // XML 1.1 Production [4a]
+</pre>
+ </div>
+
+ <p>If the extension namespace of an extension designation is the TT
+ Extension Namespace, then all values of the following
+ <code>designation</code> token are reserved for future
+ standardization.</p>
+
+ <p>If the extension namespace of an extension designation is not the TT
+ Extension Namespace, i.e., is an <em>Other Extension Namespace</em>,
+ then the extension namespace must be expressed as an absolute URI
+ capable of serving as a base URI used in combination with a
+ <code>designation</code> token that takes the form of a fragment
+ identifier.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="profiles" name="profiles"></a>F Profiles</h2>
+
+ <p><em>This appendix is normative.</em></p>
+
+ <p>This appendix specifies the following standard TTML profiles:</p>
+
+ <ul>
+ <li>
+ <p><a href="#profile-dfxp-transformation"><b>F.1 DFXP Transformation
+ Profile</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#profile-dfxp-presentation"><b>F.2 DFXP Presentation
+ Profile</b></a></p>
+ </li>
+
+ <li>
+ <p><a href="#profile-dfxp-full"><b>F.3 DFXP Full Profile</b></a></p>
+ </li>
+ </ul>
+
+ <p>The SDP US profile is defined in <a href=
+ "http://www.w3.org/TR/ttml10-sdp-us/">TTML Simple Delivery Profile for
+ Closed Captions (US)</a>.</p>
+
+ <p>Each TTML profile is defined in terms of a <em>Profile Definition
+ Document</em>, which is expressed as an XML document wherein the root
+ element adheres to <a href="#parameter-vocabulary-profile"><b>6.1.1
+ ttp:profile</b></a>.</p>
+
+ <div class="div2">
+ <h3><a id="profile-dfxp-transformation" name=
+ "profile-dfxp-transformation"></a>F.1 DFXP Transformation Profile</h3>
+
+ <p>The DFXP Transformation Profile is intended to be used to express
+ minimum compliance for transformation processing.</p>
+
+ <div class="exampleInner">
+ <pre>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- this file defines the "dfxp-transformation" profile of ttml -->
+<profile xmlns="http://www.w3.org/ns/ttml#parameter">
+ <features xml:base="http://www.w3.org/ns/ttml/feature/">
+ <!-- required (mandatory) feature support -->
+ <feature value="required">#content</feature>
+ <feature value="required">#core</feature>
+ <feature value="required">#profile</feature>
+ <feature value="required">#structure</feature>
+ <feature value="required">#time-offset</feature>
+ <feature value="required">#timing</feature>
+ <feature value="required">#transformation</feature>
+ <!-- optional (voluntary) feature support -->
+ <feature value="optional">#animation</feature>
+ <feature value="optional">#backgroundColor-block</feature>
+ <feature value="optional">#backgroundColor-inline</feature>
+ <feature value="optional">#backgroundColor-region</feature>
+ <feature value="optional">#backgroundColor</feature>
+ <feature value="optional">#bidi</feature>
+ <feature value="optional">#cellResolution</feature>
+ <feature value="optional">#clockMode-gps</feature>
+ <feature value="optional">#clockMode-local</feature>
+ <feature value="optional">#clockMode-utc</feature>
+ <feature value="optional">#clockMode</feature>
+ <feature value="optional">#color</feature>
+ <feature value="optional">#direction</feature>
+ <feature value="optional">#display-block</feature>
+ <feature value="optional">#display-inline</feature>
+ <feature value="optional">#display-region</feature>
+ <feature value="optional">#display</feature>
+ <feature value="optional">#displayAlign</feature>
+ <feature value="optional">#dropMode-dropNTSC</feature>
+ <feature value="optional">#dropMode-dropPAL</feature>
+ <feature value="optional">#dropMode-nonDrop</feature>
+ <feature value="optional">#dropMode</feature>
+ <feature value="optional">#extent-region</feature>
+ <feature value="optional">#extent-root</feature>
+ <feature value="optional">#extent</feature>
+ <feature value="optional">#fontFamily-generic</feature>
+ <feature value="optional">#fontFamily-non-generic</feature>
+ <feature value="optional">#fontFamily</feature>
+ <feature value="optional">#fontSize-anamorphic</feature>
+ <feature value="optional">#fontSize-isomorphic</feature>
+ <feature value="optional">#fontSize</feature>
+ <feature value="optional">#fontStyle-italic</feature>
+ <feature value="optional">#fontStyle-oblique</feature>
+ <feature value="optional">#fontStyle</feature>
+ <feature value="optional">#fontWeight-bold</feature>
+ <feature value="optional">#fontWeight</feature>
+ <feature value="optional">#frameRate</feature>
+ <feature value="optional">#frameRateMultiplier</feature>
+ <feature value="optional">#layout</feature>
+ <feature value="optional">#length-cell</feature>
+ <feature value="optional">#length-em</feature>
+ <feature value="optional">#length-integer</feature>
+ <feature value="optional">#length-negative</feature>
+ <feature value="optional">#length-percentage</feature>
+ <feature value="optional">#length-pixel</feature>
+ <feature value="optional">#length-positive</feature>
+ <feature value="optional">#length-real</feature>
+ <feature value="optional">#length</feature>
+ <feature value="optional">#lineBreak-uax14</feature>
+ <feature value="optional">#lineHeight</feature>
+ <feature value="optional">#markerMode-continuous</feature>
+ <feature value="optional">#markerMode-discontinuous</feature>
+ <feature value="optional">#markerMode</feature>
+ <feature value="optional">#metadata</feature>
+ <feature value="optional">#nested-div</feature>
+ <feature value="optional">#nested-span</feature>
+ <feature value="optional">#opacity</feature>
+ <feature value="optional">#origin</feature>
+ <feature value="optional">#overflow-visible</feature>
+ <feature value="optional">#overflow</feature>
+ <feature value="optional">#padding-1</feature>
+ <feature value="optional">#padding-2</feature>
+ <feature value="optional">#padding-3</feature>
+ <feature value="optional">#padding-4</feature>
+ <feature value="optional">#padding</feature>
+ <feature value="optional">#pixelAspectRatio</feature>
+ <feature value="optional">#presentation</feature>
+ <feature value="optional">#showBackground</feature>
+ <feature value="optional">#styling-chained</feature>
+ <feature value="optional">#styling-inheritance-content</feature>
+ <feature value="optional">#styling-inheritance-region</feature>
+ <feature value="optional">#styling-inline</feature>
+ <feature value="optional">#styling-nested</feature>
+ <feature value="optional">#styling-referential</feature>
+ <feature value="optional">#styling</feature>
+ <feature value="optional">#subFrameRate</feature>
+ <feature value="optional">#textAlign-absolute</feature>
+ <feature value="optional">#textAlign-relative</feature>
+ <feature value="optional">#textAlign</feature>
+ <feature value="optional">#textDecoration-over</feature>
+ <feature value="optional">#textDecoration-through</feature>
+ <feature value="optional">#textDecoration-under</feature>
+ <feature value="optional">#textDecoration</feature>
+ <feature value="optional">#textOutline-blurred</feature>
+ <feature value="optional">#textOutline-unblurred</feature>
+ <feature value="optional">#textOutline</feature>
+ <feature value="optional">#tickRate</feature>
+ <feature value="optional">#time-clock-with-frames</feature>
+ <feature value="optional">#time-clock</feature>
+ <feature value="optional">#time-offset-with-frames</feature>
+ <feature value="optional">#time-offset-with-ticks</feature>
+ <feature value="optional">#timeBase-clock</feature>
+ <feature value="optional">#timeBase-media</feature>
+ <feature value="optional">#timeBase-smpte</feature>
+ <feature value="optional">#timeContainer</feature>
+ <feature value="optional">#unicodeBidi</feature>
+ <feature value="optional">#visibility-block</feature>
+ <feature value="optional">#visibility-inline</feature>
+ <feature value="optional">#visibility-region</feature>
+ <feature value="optional">#visibility</feature>
+ <feature value="optional">#wrapOption</feature>
+ <feature value="optional">#writingMode-horizontal-lr</feature>
+ <feature value="optional">#writingMode-horizontal-rl</feature>
+ <feature value="optional">#writingMode-horizontal</feature>
+ <feature value="optional">#writingMode-vertical</feature>
+ <feature value="optional">#writingMode</feature>
+ <feature value="optional">#zIndex</feature>
+ </features>
+ <extensions xml:base="http://www.w3.org/ns/ttml/extension/">
+ <!-- required (mandatory) extension support -->
+ <!-- optional (voluntary) extension support -->
+ </extensions>
+</profile>
+
+</pre>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="profile-dfxp-presentation" name=
+ "profile-dfxp-presentation"></a>F.2 DFXP Presentation Profile</h3>
+
+ <p>The DFXP Presentation Profile is intended to be used to express
+ minimum compliance for presentation processing.</p>
+
+ <div class="exampleInner">
+ <pre>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- this file defines the "dfxp-presentation" profile of ttml -->
+<profile xmlns="http://www.w3.org/ns/ttml#parameter">
+ <features xml:base="http://www.w3.org/ns/ttml/feature/">
+ <!-- required (mandatory) feature support -->
+ <feature value="required">#content</feature>
+ <feature value="required">#core</feature>
+ <feature value="required">#presentation</feature>
+ <feature value="required">#profile</feature>
+ <feature value="required">#structure</feature>
+ <feature value="required">#time-offset</feature>
+ <feature value="required">#timing</feature>
+ <!-- optional (voluntary) feature support -->
+ <feature value="optional">#animation</feature>
+ <feature value="optional">#backgroundColor-block</feature>
+ <feature value="optional">#backgroundColor-inline</feature>
+ <feature value="optional">#backgroundColor-region</feature>
+ <feature value="optional">#backgroundColor</feature>
+ <feature value="optional">#bidi</feature>
+ <feature value="optional">#cellResolution</feature>
+ <feature value="optional">#clockMode-gps</feature>
+ <feature value="optional">#clockMode-local</feature>
+ <feature value="optional">#clockMode-utc</feature>
+ <feature value="optional">#clockMode</feature>
+ <feature value="optional">#color</feature>
+ <feature value="optional">#direction</feature>
+ <feature value="optional">#display-block</feature>
+ <feature value="optional">#display-inline</feature>
+ <feature value="optional">#display-region</feature>
+ <feature value="optional">#display</feature>
+ <feature value="optional">#displayAlign</feature>
+ <feature value="optional">#dropMode-dropNTSC</feature>
+ <feature value="optional">#dropMode-dropPAL</feature>
+ <feature value="optional">#dropMode-nonDrop</feature>
+ <feature value="optional">#dropMode</feature>
+ <feature value="optional">#extent-region</feature>
+ <feature value="optional">#extent-root</feature>
+ <feature value="optional">#extent</feature>
+ <feature value="optional">#fontFamily-generic</feature>
+ <feature value="optional">#fontFamily-non-generic</feature>
+ <feature value="optional">#fontFamily</feature>
+ <feature value="optional">#fontSize-anamorphic</feature>
+ <feature value="optional">#fontSize-isomorphic</feature>
+ <feature value="optional">#fontSize</feature>
+ <feature value="optional">#fontStyle-italic</feature>
+ <feature value="optional">#fontStyle-oblique</feature>
+ <feature value="optional">#fontStyle</feature>
+ <feature value="optional">#fontWeight-bold</feature>
+ <feature value="optional">#fontWeight</feature>
+ <feature value="optional">#frameRate</feature>
+ <feature value="optional">#frameRateMultiplier</feature>
+ <feature value="optional">#layout</feature>
+ <feature value="optional">#length-cell</feature>
+ <feature value="optional">#length-em</feature>
+ <feature value="optional">#length-integer</feature>
+ <feature value="optional">#length-negative</feature>
+ <feature value="optional">#length-percentage</feature>
+ <feature value="optional">#length-pixel</feature>
+ <feature value="optional">#length-positive</feature>
+ <feature value="optional">#length-real</feature>
+ <feature value="optional">#length</feature>
+ <feature value="optional">#lineBreak-uax14</feature>
+ <feature value="optional">#lineHeight</feature>
+ <feature value="optional">#markerMode-continuous</feature>
+ <feature value="optional">#markerMode-discontinuous</feature>
+ <feature value="optional">#markerMode</feature>
+ <feature value="optional">#metadata</feature>
+ <feature value="optional">#nested-div</feature>
+ <feature value="optional">#nested-span</feature>
+ <feature value="optional">#opacity</feature>
+ <feature value="optional">#origin</feature>
+ <feature value="optional">#overflow-visible</feature>
+ <feature value="optional">#overflow</feature>
+ <feature value="optional">#padding-1</feature>
+ <feature value="optional">#padding-2</feature>
+ <feature value="optional">#padding-3</feature>
+ <feature value="optional">#padding-4</feature>
+ <feature value="optional">#padding</feature>
+ <feature value="optional">#pixelAspectRatio</feature>
+ <feature value="optional">#showBackground</feature>
+ <feature value="optional">#styling-chained</feature>
+ <feature value="optional">#styling-inheritance-content</feature>
+ <feature value="optional">#styling-inheritance-region</feature>
+ <feature value="optional">#styling-inline</feature>
+ <feature value="optional">#styling-nested</feature>
+ <feature value="optional">#styling-referential</feature>
+ <feature value="optional">#styling</feature>
+ <feature value="optional">#subFrameRate</feature>
+ <feature value="optional">#textAlign-absolute</feature>
+ <feature value="optional">#textAlign-relative</feature>
+ <feature value="optional">#textAlign</feature>
+ <feature value="optional">#textDecoration-over</feature>
+ <feature value="optional">#textDecoration-through</feature>
+ <feature value="optional">#textDecoration-under</feature>
+ <feature value="optional">#textDecoration</feature>
+ <feature value="optional">#textOutline-blurred</feature>
+ <feature value="optional">#textOutline-unblurred</feature>
+ <feature value="optional">#textOutline</feature>
+ <feature value="optional">#tickRate</feature>
+ <feature value="optional">#time-clock-with-frames</feature>
+ <feature value="optional">#time-clock</feature>
+ <feature value="optional">#time-offset-with-frames</feature>
+ <feature value="optional">#time-offset-with-ticks</feature>
+ <feature value="optional">#timeBase-clock</feature>
+ <feature value="optional">#timeBase-media</feature>
+ <feature value="optional">#timeBase-smpte</feature>
+ <feature value="optional">#timeContainer</feature>
+ <feature value="optional">#transformation</feature>
+ <feature value="optional">#unicodeBidi</feature>
+ <feature value="optional">#visibility-block</feature>
+ <feature value="optional">#visibility-inline</feature>
+ <feature value="optional">#visibility-region</feature>
+ <feature value="optional">#visibility</feature>
+ <feature value="optional">#wrapOption</feature>
+ <feature value="optional">#writingMode-horizontal-lr</feature>
+ <feature value="optional">#writingMode-horizontal-rl</feature>
+ <feature value="optional">#writingMode-horizontal</feature>
+ <feature value="optional">#writingMode-vertical</feature>
+ <feature value="optional">#writingMode</feature>
+ <feature value="optional">#zIndex</feature>
+ </features>
+ <extensions xml:base="http://www.w3.org/ns/ttml/extension/">
+ <!-- required (mandatory) extension support -->
+ <!-- optional (voluntary) extension support -->
+ </extensions>
+</profile>
+
+</pre>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="profile-dfxp-full" name="profile-dfxp-full"></a>F.3 DFXP
+ Full Profile</h3>
+
+ <p>The DFXP Full Profile is intended to be used to express maximum
+ compliance for both transformation and presentation processing.</p>
+
+ <div class="exampleInner">
+ <pre>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- this file defines the "dfxp-full" profile of ttml -->
+<profile xmlns="http://www.w3.org/ns/ttml#parameter">
+ <features xml:base="http://www.w3.org/ns/ttml/feature/">
+ <!-- required (mandatory) feature support -->
+ <feature value="required">#animation</feature>
+ <feature value="required">#backgroundColor-block</feature>
+ <feature value="required">#backgroundColor-inline</feature>
+ <feature value="required">#backgroundColor-region</feature>
+ <feature value="required">#backgroundColor</feature>
+ <feature value="required">#bidi</feature>
+ <feature value="required">#cellResolution</feature>
+ <feature value="required">#clockMode-gps</feature>
+ <feature value="required">#clockMode-local</feature>
+ <feature value="required">#clockMode-utc</feature>
+ <feature value="required">#clockMode</feature>
+ <feature value="required">#color</feature>
+ <feature value="required">#content</feature>
+ <feature value="required">#core</feature>
+ <feature value="required">#direction</feature>
+ <feature value="required">#display-block</feature>
+ <feature value="required">#display-inline</feature>
+ <feature value="required">#display-region</feature>
+ <feature value="required">#display</feature>
+ <feature value="required">#displayAlign</feature>
+ <feature value="required">#dropMode-dropNTSC</feature>
+ <feature value="required">#dropMode-dropPAL</feature>
+ <feature value="required">#dropMode-nonDrop</feature>
+ <feature value="required">#dropMode</feature>
+ <feature value="required">#extent-region</feature>
+ <feature value="required">#extent-root</feature>
+ <feature value="required">#extent</feature>
+ <feature value="required">#fontFamily-generic</feature>
+ <feature value="required">#fontFamily-non-generic</feature>
+ <feature value="required">#fontFamily</feature>
+ <feature value="required">#fontSize-anamorphic</feature>
+ <feature value="required">#fontSize-isomorphic</feature>
+ <feature value="required">#fontSize</feature>
+ <feature value="required">#fontStyle-italic</feature>
+ <feature value="required">#fontStyle-oblique</feature>
+ <feature value="required">#fontStyle</feature>
+ <feature value="required">#fontWeight-bold</feature>
+ <feature value="required">#fontWeight</feature>
+ <feature value="required">#frameRate</feature>
+ <feature value="required">#frameRateMultiplier</feature>
+ <feature value="required">#layout</feature>
+ <feature value="required">#length-cell</feature>
+ <feature value="required">#length-em</feature>
+ <feature value="required">#length-integer</feature>
+ <feature value="required">#length-negative</feature>
+ <feature value="required">#length-percentage</feature>
+ <feature value="required">#length-pixel</feature>
+ <feature value="required">#length-positive</feature>
+ <feature value="required">#length-real</feature>
+ <feature value="required">#length</feature>
+ <feature value="required">#lineBreak-uax14</feature>
+ <feature value="required">#lineHeight</feature>
+ <feature value="required">#markerMode-continuous</feature>
+ <feature value="required">#markerMode-discontinuous</feature>
+ <feature value="required">#markerMode</feature>
+ <feature value="required">#metadata</feature>
+ <feature value="required">#nested-div</feature>
+ <feature value="required">#nested-span</feature>
+ <feature value="required">#opacity</feature>
+ <feature value="required">#origin</feature>
+ <feature value="required">#overflow-visible</feature>
+ <feature value="required">#overflow</feature>
+ <feature value="required">#padding-1</feature>
+ <feature value="required">#padding-2</feature>
+ <feature value="required">#padding-3</feature>
+ <feature value="required">#padding-4</feature>
+ <feature value="required">#padding</feature>
+ <feature value="required">#pixelAspectRatio</feature>
+ <feature value="required">#presentation</feature>
+ <feature value="required">#profile</feature>
+ <feature value="required">#showBackground</feature>
+ <feature value="required">#structure</feature>
+ <feature value="required">#styling-chained</feature>
+ <feature value="required">#styling-inheritance-content</feature>
+ <feature value="required">#styling-inheritance-region</feature>
+ <feature value="required">#styling-inline</feature>
+ <feature value="required">#styling-nested</feature>
+ <feature value="required">#styling-referential</feature>
+ <feature value="required">#styling</feature>
+ <feature value="required">#subFrameRate</feature>
+ <feature value="required">#textAlign-absolute</feature>
+ <feature value="required">#textAlign-relative</feature>
+ <feature value="required">#textAlign</feature>
+ <feature value="required">#textDecoration-over</feature>
+ <feature value="required">#textDecoration-through</feature>
+ <feature value="required">#textDecoration-under</feature>
+ <feature value="required">#textDecoration</feature>
+ <feature value="required">#textOutline-blurred</feature>
+ <feature value="required">#textOutline-unblurred</feature>
+ <feature value="required">#textOutline</feature>
+ <feature value="required">#tickRate</feature>
+ <feature value="required">#time-clock-with-frames</feature>
+ <feature value="required">#time-clock</feature>
+ <feature value="required">#time-offset-with-frames</feature>
+ <feature value="required">#time-offset-with-ticks</feature>
+ <feature value="required">#time-offset</feature>
+ <feature value="required">#timeBase-clock</feature>
+ <feature value="required">#timeBase-media</feature>
+ <feature value="required">#timeBase-smpte</feature>
+ <feature value="required">#timeContainer</feature>
+ <feature value="required">#timing</feature>
+ <feature value="required">#transformation</feature>
+ <feature value="required">#unicodeBidi</feature>
+ <feature value="required">#visibility-block</feature>
+ <feature value="required">#visibility-inline</feature>
+ <feature value="required">#visibility-region</feature>
+ <feature value="required">#visibility</feature>
+ <feature value="required">#wrapOption</feature>
+ <feature value="required">#writingMode-horizontal-lr</feature>
+ <feature value="required">#writingMode-horizontal-rl</feature>
+ <feature value="required">#writingMode-horizontal</feature>
+ <feature value="required">#writingMode-vertical</feature>
+ <feature value="required">#writingMode</feature>
+ <feature value="required">#zIndex</feature>
+ <!-- optional (voluntary) feature support -->
+ </features>
+ <extensions xml:base="http://www.w3.org/ns/ttml/extension/">
+ <!-- required (mandatory) extension support -->
+ <!-- optional (voluntary) extension support -->
+ </extensions>
+</profile>
+
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="references" name="references"></a>G References</h2>
+
+ <p><em>This appendix is normative.</em></p>
+
+ <dl>
+ <dt class="label"><a id="css2" name="css2"></a>CSS2</dt>
+
+ <dd>Bert Bos et al., <a href=
+ "http://www.w3.org/TR/2011/REC-CSS2-20110607/"><cite>Cascading Style
+ Sheets, Level 2 Revision 1</cite></a>, W3C Recommendation, 07 June
+ 2011. (See <a href=
+ "http://www.w3.org/TR/2011/REC-CSS2-20110607/">http://www.w3.org/TR/2011/REC-CSS2-20110607/</a>.)</dd>
+
+ <dt class="label"><a id="css3-color" name="css3-color"></a>CSS3
+ Color</dt>
+
+ <dd>Tantek Çelik and Chris Lilley, <a href=
+ "http://www.w3.org/TR/2011/REC-css3-color-20110607/"><cite>CSS Color
+ Module Level 3</cite></a>, W3C Recommendation, 07 June 2011. (See
+ <a href=
+ "http://www.w3.org/TR/2011/REC-css3-color-20110607/">http://www.w3.org/TR/2011/REC-css3-color-20110607/</a>.)</dd>
+
+ <dt class="label"><a id="gps" name="gps"></a>GPS</dt>
+
+ <dd><a href="http://tycho.usno.navy.mil/gpsinfo.html"><cite>Global
+ Positioning System</cite></a>, US Naval Observatory. (See <a href=
+ "http://tycho.usno.navy.mil/gpsinfo.html">http://tycho.usno.navy.mil/gpsinfo.html</a>.)</dd>
+
+ <dt class="label"><a id="media-types" name="media-types"></a>Media
+ Types</dt>
+
+ <dd>Ned Freed and Nathaniel Borenstein, <a href=
+ "http://www.rfc-editor.org/rfc/rfc2046.txt"><cite>Multipurpose Internet
+ Mail Extensions (MIME) Part Two: Media Types</cite></a>, RFC 2046,
+ November 1996, IETF.(See <a href=
+ "http://www.rfc-editor.org/rfc/rfc2046.txt">http://www.rfc-editor.org/rfc/rfc2046.txt</a>.)</dd>
+
+ <dt class="label"><a id="rng" name="rng"></a>RELAX NG</dt>
+
+ <dd>ISO/IEC 19757-2, <a href="http://www.iso.org/"><cite>Information
+ technology – Document Schema Definition Language (DSDL) – Part 2:
+ Regular-grammar-based validation – RELAX NG</cite></a>, International
+ Organization for Standardization (ISO).</dd>
+
+ <dt class="label"><a id="smil21" name="smil21"></a>SMIL 2.1</dt>
+
+ <dd>Dick Bultermann, et al., <a href=
+ "http://www.w3.org/TR/2005/REC-SMIL2-20051213/"><cite>Synchronized
+ Multimedia Integration Language (SMIL 2.1)</cite></a>, W3C
+ Recommendation, 13 December 2005. (See <a href=
+ "http://www.w3.org/TR/2005/REC-SMIL2-20051213/">http://www.w3.org/TR/2005/REC-SMIL2-20051213/</a>.)</dd>
+
+ <dt class="label"><a id="smpte12m" name="smpte12m"></a>SMPTE 12M</dt>
+
+ <dd>ANSI/SMPTE 12M, <a href="https://www.smpte.org/"><cite>Television,
+ Audio and Film – Time and Control Code</cite></a>, SMPTE Standard.</dd>
+
+ <dt class="label"><a id="srgb" name="srgb"></a>SRGB</dt>
+
+ <dd>IEC 61966-2-1, <a href="http://www.iec.ch/"><cite>Multimedia
+ systems and equipment – Colour measurement and management – Part 2-1:
+ Colour management – Default RGB colour space – sRGB</cite></a>,
+ International Electrotechnical Commission (IEC).</dd>
+
+ <dt class="label"><a id="uaag" name="uaag"></a>UAAG</dt>
+
+ <dd>Ian Jacobs, Jon Gunderson, and Eric Hansen, Eds., <a href=
+ "http://www.w3.org/TR/2002/REC-UAAG10-20021217/"><cite>User Agent
+ Accessibility Guidelines 1.0</cite></a>, W3C Recommendation, 17
+ December 2002. (See <a href=
+ "http://www.w3.org/TR/2002/REC-UAAG10-20021217/">http://www.w3.org/TR/2002/REC-UAAG10-20021217/</a>.)</dd>
+
+ <dt class="label"><a id="uax14" name="uax14"></a>UAX14</dt>
+
+ <dd>Asmus Freytag, <a href=
+ "http://www.unicode.org/reports/tr14/tr14-17.html"><cite>Line Breaking
+ Properties</cite></a>, Unicode Consortium, 29 August 2005. (See
+ <a href="http://www.unicode.org/reports/tr14/tr14-17.html">http://www.unicode.org/reports/tr14/tr14-17.html</a>.)</dd>
+
+ <dt class="label"><a id="utc" name="utc"></a>UTC</dt>
+
+ <dd>Recommendation TF.460, <a href=
+ "http://www.itu.int/"><cite>Standard-Frequency and Time-Signal
+ Emissions</cite></a>, International Telecommunciations Union, Radio
+ Sector (ITU-R).</dd>
+
+ <dt class="label"><a id="wcag" name="wcag"></a>WCAG</dt>
+
+ <dd>Ben Caldwell, et al., Eds., <a href=
+ "http://www.w3.org/TR/2008/REC-WCAG20-20081211/"><cite>Web Content
+ Accessibility Guidelines (WCAG) 2.0</cite></a>, W3C Recommendation, 11
+ December 2008. (See <a href=
+ "http://www.w3.org/TR/2008/REC-WCAG20-20081211/">http://www.w3.org/TR/2008/REC-WCAG20-20081211/</a>.)</dd>
+
+ <dt class="label"><a id="xml10" name="xml10"></a>XML 1.0</dt>
+
+ <dd>Tim Bray, et al. <a href=
+ "http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible Markup
+ Language (XML) 1.0 (Fifth Edition)</cite></a>, W3C Recommendation, 26
+ November 2008. (See <a href=
+ "http://www.w3.org/TR/2008/REC-xml-20081126/">http://www.w3.org/TR/2008/REC-xml-20081126/</a>.)</dd>
+
+ <dt class="label"><a id="xml11" name="xml11"></a>XML 1.1</dt>
+
+ <dd>Tim Bray, et al. <a href=
+ "http://www.w3.org/TR/2006/REC-xml11-20060816/"><cite>Extensible Markup
+ Language (XML) 1.1 (Second Edition)</cite></a>, W3C Recommendation, 16
+ August 2006, edited in place 29 September 2006. (See <a href=
+ "http://www.w3.org/TR/2006/REC-xml11-20060816/">http://www.w3.org/TR/2006/REC-xml11-20060816/</a>.)</dd>
+
+ <dt class="label"><a id="xmlbase" name="xmlbase"></a>XML Base</dt>
+
+ <dd>Jonathan Marsh and Richard Tobin, Eds., <a href=
+ "http://www.w3.org/TR/2009/REC-xmlbase-20090128/"><cite>XML Base
+ (Second Edition)</cite></a>, W3C Recommendation, 28 January 2009. (See
+ <a href=
+ "http://www.w3.org/TR/2009/REC-xmlbase-20090128/">http://www.w3.org/TR/2009/REC-xmlbase-20090128/</a>.)</dd>
+
+ <dt class="label"><a id="xmlid" name="xmlid"></a>XML ID</dt>
+
+ <dd>Jonathan Marsh, Daniel Veillard, Norman Walsh, Eds., <a href=
+ "http://www.w3.org/TR/2005/REC-xml-id-20050909/"><cite>xml:id Version
+ 1.0</cite></a>, W3C Recommendation, 09 September 2005. (See <a href=
+ "http://www.w3.org/TR/2005/REC-xml-id-20050909/">http://www.w3.org/TR/2005/REC-xml-id-20050909/</a>.)</dd>
+
+ <dt class="label"><a id="infoset" name="infoset"></a>XML InfoSet</dt>
+
+ <dd>John Cowan and Richard Tobin, Eds., <a href=
+ "http://www.w3.org/TR/2004/REC-xml-infoset-20040204/"><cite>XML
+ Information Set (Second Edition)</cite></a>, W3C Recommendation, 04
+ February 2004. (See <a href=
+ "http://www.w3.org/TR/2004/REC-xml-infoset-20040204/">http://www.w3.org/TR/2004/REC-xml-infoset-20040204/</a>.)</dd>
+
+ <dt class="label"><a id="xml-media" name="xml-media"></a>XML Media
+ Types</dt>
+
+ <dd>Makato Murata, Simon St. Laurent, Kan Khon, Eds., <a href=
+ "http://www.rfc-editor.org/rfc/rfc3023.txt"><cite>XML Media
+ Types</cite></a>, RFC 3023, January 2001, IETF.(See <a href=
+ "http://www.rfc-editor.org/rfc/rfc3023.txt">http://www.rfc-editor.org/rfc/rfc3023.txt</a>.)</dd>
+
+ <dt class="label"><a id="xmlns10" name="xmlns10"></a>XML Namespaces
+ 1.0</dt>
+
+ <dd>Tim Bray, et al. <a href=
+ "http://www.w3.org/TR/2009/REC-xml-names-20091208/"><cite>Namespaces in
+ XML 1.0 (Third Edition)</cite></a>, W3C Recommendation, 8 December
+ 2009. (See <a href=
+ "http://www.w3.org/TR/2009/REC-xml-names-20091208/">http://www.w3.org/TR/2009/REC-xml-names-20091208/</a>.)</dd>
+
+ <dt class="label"><a id="xsd-1" name="xsd-1"></a>XML Schema Part 1</dt>
+
+ <dd>Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn,
+ Eds., <a href="http://www.w3.org/TR/xmlschema-1/"><cite>XML Schema Part
+ 1: Structures</cite></a>, W3C Recommendation, 28 October 2004. (See
+ <a href=
+ "http://www.w3.org/TR/xmlschema-1/">http://www.w3.org/TR/xmlschema-1/</a>.)</dd>
+
+ <dt class="label"><a id="xsd-2" name="xsd-2"></a>XML Schema Part 2</dt>
+
+ <dd>Paul Biron and Ashok Malhotra, <a href=
+ "http://www.w3.org/TR/xmlschema-2/"><cite>XML Schema Part 2:
+ Datatypes</cite></a>, W3C Recommendation, 28 October 2004. (See
+ <a href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.)</dd>
+
+ <dt class="label"><a id="xsl11" name="xsl11"></a>XSL 1.1</dt>
+
+ <dd>Anders Berglund, <a href=
+ "http://www.w3.org/TR/2006/REC-xsl11-20061205/"><cite>Extensible
+ Stylesheet Language (XSL) Version 1.1</cite></a>, W3C Recommendation,
+ 05 December 2006. (See <a href=
+ "http://www.w3.org/TR/2006/REC-xsl11-20061205/">http://www.w3.org/TR/2006/REC-xsl11-20061205/</a>.)</dd>
+ </dl>
+ </div>
+
+ <div class="div1">
+ <h2><a id="other-references" name="other-references"></a>H Other
+ References (Non-Normative)</h2>
+
+ <dl>
+ <dt class="label"><a id="ccreq" name="ccreq"></a>CC-DECODER-REQ</dt>
+
+ <dd><a href=
+ "http://www.gpo.gov/fdsys/pkg/CFR-2005-title47-vol1/xml/CFR-2005-title47-vol1-sec15-119.xml">
+ <cite>Closed Caption Decoder Requirements for Analog
+ Television</cite></a>, United States Code of Federal Regulations, Title
+ 47, Volume 1, Part 15, § 15.119. (See <a href=
+ "http://www.gpo.gov/fdsys/pkg/CFR-2005-title47-vol1/xml/CFR-2005-title47-vol1-sec15-119.xml">
+ http://www.gpo.gov/fdsys/pkg/CFR-2005-title47-vol1/xml/CFR-2005-title47-vol1-sec15-119.xml</a>.)</dd>
+
+ <dt class="label"><a id="cea608c" name="cea608c"></a>CEA-608-C</dt>
+
+ <dd>EIA/CEA-608-C, <a href="http://www.ce.org/"><cite>Line 21 Data
+ Services</cite></a>, EIA/CEA Standard, Consumer Electronics Association
+ (CEA).</dd>
+
+ <dt class="label"><a id="cea708d" name="cea708d"></a>CEA-708-D</dt>
+
+ <dd>CEA-708-D, <a href="http://www.ce.org/"><cite>Digital Television
+ (DTV) Closed Captioning</cite></a>, CEA Standard, Consumer Electronics
+ Association (CEA).</dd>
+
+ <dt class="label"><a id="dcmes" name="dcmes"></a>DCMES 1.1</dt>
+
+ <dd>Dublin Core Metadata Initiative, <a href=
+ "http://dublincore.org/documents/dces/"><cite>Dublin Core Metadata
+ Element Set, Version 1.1: Reference Description</cite></a>. (See
+ <a href=
+ "http://dublincore.org/documents/dces/">http://dublincore.org/documents/dces/</a>.)</dd>
+
+ <dt class="label"><a id="mpeg7-5" name="mpeg7-5"></a>MPEG7-5</dt>
+
+ <dd>ISO/IEC 15938-5, <a href="http://www.iso.org/"><cite>Information
+ technology – Multimedia content description interface – Part 5:
+ Multimedia description schemes</cite></a>, International Organization
+ for Standardization (ISO).</dd>
+
+ <dt class="label"><a id="nsstate" name="nsstate"></a>NSState</dt>
+
+ <dd>Norman Walsh, Ed., <a href=
+ "http://www.w3.org/2001/tag/doc/namespaceState-2006-01-09.html"><cite>The
+ Disposition of Names in an XML Namespace</cite></a>, TAG Finding, 9
+ January 2006. (See <a href=
+ "http://www.w3.org/2001/tag/doc/namespaceState-2006-01-09.html">http://www.w3.org/2001/tag/doc/namespaceState-2006-01-09</a>.)</dd>
+
+ <dt class="label"><a id="qaf-sg" name="qaf-sg"></a>QAF SG</dt>
+
+ <dd>Karl Dubost, et al., <a href=
+ "http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/"><cite>QA
+ Framework: Specifications Guidelines</cite></a>, W3C Recommendation, 17
+ August 2005. (See <a href=
+ "http://www.w3.org/TR/qaframe-spec/">http://www.w3.org/TR/qaframe-spec/</a>.)</dd>
+
+ <dt class="label"><a id="smpte170m" name="smpte170m"></a>SMPTE
+ 170M</dt>
+
+ <dd>ANSI/SMPTE 170M, <a href="http://www.smpte.org/"><cite>Television –
+ Composite Analog Video Signal – NTSC for Studio
+ Applications</cite></a>, SMPTE Standard.</dd>
+
+ <dt class="label"><a id="smpte2052" name="smpte2052"></a>SMPTE
+ 2052-11</dt>
+
+ <dd>SMPTE 2052-11, <a href="http://www.smpte.org/"><cite>Conversion
+ from CEA-708 Caption Data to SMPTE-TT</cite></a>, SMPTE Recommended
+ Practice.</dd>
+
+ <dt class="label"><a id="svg11" name="svg11"></a>SVG 1.1</dt>
+
+ <dd>Jon Ferraiolo, Jun Fujisawa, Dean Jackson, Eds., <a href=
+ "http://www.w3.org/TR/2003/REC-SVG11-20030114/"><cite>Scalable Vector
+ Graphics (SVG) 1.1 Specification</cite></a>, W3C Recommendation, 14
+ January 2003. (See <a href=
+ "http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a>.)</dd>
+
+ <dt class="label"><a id="ttaf1-req" name="ttaf1-req"></a>TTAF1-REQ</dt>
+
+ <dd>Glenn Adams, Ed., <a href=
+ "http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/"><cite>Timed Text
+ (TT) Authoring Format 1.0 Use Cases and Requirements</cite></a>, W3C
+ Working Group Note, 27 April 2006. (See <a href=
+ "http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/">http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/</a>.)</dd>
+
+ <dt class="label"><a id="xhtml10" name="xhtml10"></a>XHTML 1.0</dt>
+
+ <dd>Steven Pemberton, et al., <a href=
+ "http://www.w3.org/TR/2002/REC-xhtml1-20020801/"><cite>XHTML™ 1.0, The
+ Extensible Hypertext Markup Language (Second Edition)</cite></a>, W3C
+ Recommendation, 01 August 2002. (See <a href=
+ "http://www.w3.org/TR/2002/REC-xhtml1-20020801/">http://www.w3.org/TR/2002/REC-xhtml1-20020801/</a>.)</dd>
+ </dl>
+ </div>
+
+ <div class="div1">
+ <h2><a id="requirements" name="requirements"></a>I Requirements
+ (Non-Normative)</h2>
+
+ <p>The Timed Text Markup Language (TTML), also known as the Distribution
+ Format Exchange Profile (DFXP) of the Timed Text Authoring Format (TTAF),
+ satisfies a subset of the requirements established by <a href=
+ "#ttaf1-req">[TTAF1-REQ]</a>. The following table enumerates these
+ requirements and indicates the extent to which they are satisfied by this
+ specification, where <em>S</em> denotes a requirement is satisfied,
+ <em>P</em> denotes a requirement is partially satisfied, and <em>N</em>
+ denotes a requirement is not satisfied.</p><a id="requirements-table"
+ name="requirements-table"></a>
+
+ <table class="common">
+ <caption>
+ Table I-1 – Requirement Satisfaction
+ </caption>
+ <col width="10%" span="1">
+ <col width="40%" span="1">
+ <col width="10%" span="1">
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <th>ID</th>
+
+ <th>Name</th>
+
+ <th>Status</th>
+
+ <th>Comments</th>
+ </tr>
+
+ <tr>
+ <td>R100</td>
+
+ <td>Specification Format</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R101</td>
+
+ <td>Specification Modularity</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R102</td>
+
+ <td>Specification Organization</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R103</td>
+
+ <td>Core and Periphery</td>
+
+ <td>S</td>
+
+ <td>TT extension namespaces</td>
+ </tr>
+
+ <tr>
+ <td>R104</td>
+
+ <td>Evolution of Core</td>
+
+ <td>S</td>
+
+ <td>TT extension namespaces</td>
+ </tr>
+
+ <tr>
+ <td>R105</td>
+
+ <td>Ownership of Core</td>
+
+ <td>S</td>
+
+ <td>TT namespaces</td>
+ </tr>
+
+ <tr>
+ <td>R106</td>
+
+ <td>Surjection of Core</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R107</td>
+
+ <td>Evolution of Periphery</td>
+
+ <td>S</td>
+
+ <td>TT extension namespaces</td>
+ </tr>
+
+ <tr>
+ <td>R108</td>
+
+ <td>Ownership of Periphery</td>
+
+ <td>S</td>
+
+ <td>Non-TT namespaces</td>
+ </tr>
+
+ <tr>
+ <td>R109</td>
+
+ <td>Transformation</td>
+
+ <td>S</td>
+
+ <td>Supports 3GPP, QText, RealText, SAMI</td>
+ </tr>
+
+ <tr>
+ <td>R110</td>
+
+ <td>Streamable Transformation</td>
+
+ <td>S</td>
+
+ <td>Progressive decoding</td>
+ </tr>
+
+ <tr>
+ <td>R111</td>
+
+ <td>Accessibility – Content</td>
+
+ <td>S</td>
+
+ <td>Alternative document instances</td>
+ </tr>
+
+ <tr>
+ <td>R112</td>
+
+ <td>Accessibility – Authoring System</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R200</td>
+
+ <td>Authorability</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R201</td>
+
+ <td>Multiple Natural Languages</td>
+
+ <td>S</td>
+
+ <td>Alternative document instances</td>
+ </tr>
+
+ <tr>
+ <td>R202</td>
+
+ <td>Natural Language Coverage</td>
+
+ <td>S</td>
+
+ <td>Unicode 4.0</td>
+ </tr>
+
+ <tr>
+ <td>R203</td>
+
+ <td>Natural Language Association Granularity</td>
+
+ <td>S</td>
+
+ <td>See <code>xml:lang</code></td>
+ </tr>
+
+ <tr>
+ <td>R204</td>
+
+ <td>Minimum Character Representability</td>
+
+ <td>S</td>
+
+ <td>Unicode 4.0</td>
+ </tr>
+
+ <tr>
+ <td>R205</td>
+
+ <td>Intrinsic and Extrinsic Text Content</td>
+
+ <td>P</td>
+
+ <td>Intrinsic only</td>
+ </tr>
+
+ <tr>
+ <td>R206</td>
+
+ <td>Markup Association</td>
+
+ <td>P</td>
+
+ <td>Intrinsic only</td>
+ </tr>
+
+ <tr>
+ <td>R207</td>
+
+ <td>Conditional Content</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R208</td>
+
+ <td>Flowed Text</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R209</td>
+
+ <td>Logical Flowed Text Vocabulary</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R210</td>
+
+ <td>Presentational Flowed Text Vocabulary</td>
+
+ <td>S</td>
+
+ <td>Implied mapping from logical flowed text.</td>
+ </tr>
+
+ <tr>
+ <td>R211</td>
+
+ <td>Flowed Text Vocabulary Relationship</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R212</td>
+
+ <td>Flowed Text Vocabulary Separation</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R213</td>
+
+ <td>Non-Flowed Text</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R214</td>
+
+ <td>Non-Flowed Text Vocabulary</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R215</td>
+
+ <td>Hybrid Flowed and Non-Flowed Text</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R216</td>
+
+ <td>Hyperlinking</td>
+
+ <td>N</td>
+
+ <td>Can support via XLink</td>
+ </tr>
+
+ <tr>
+ <td>R217</td>
+
+ <td>Embedded Graphics</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R218</td>
+
+ <td>Non-Embedded Graphics</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R219</td>
+
+ <td>Embedded Fonts</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R220</td>
+
+ <td>Non-Embedded Fonts</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R221</td>
+
+ <td>Descriptive Vocabulary</td>
+
+ <td>S</td>
+
+ <td>See <code>ttm:agent</code>, <code>ttm:role</code></td>
+ </tr>
+
+ <tr>
+ <td>R222</td>
+
+ <td>Embedded Audio</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R223</td>
+
+ <td>Non-Embedded Audio</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R290</td>
+
+ <td>Markup Format</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R291</td>
+
+ <td>Markup Format and Unicode Interaction</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R292</td>
+
+ <td>Extrinsic Resource References</td>
+
+ <td>N</td>
+
+ <td>No extrinsic references</td>
+ </tr>
+
+ <tr>
+ <td>R293</td>
+
+ <td>Schema Validity Specification</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R300</td>
+
+ <td>Inline Styling</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R301</td>
+
+ <td>Inline Styling Form</td>
+
+ <td>P</td>
+
+ <td>Inline and referential styling</td>
+ </tr>
+
+ <tr>
+ <td>R301</td>
+
+ <td>Out-of-Line Styling</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R301</td>
+
+ <td>Out-of-Line Styling Form</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R304</td>
+
+ <td>Styling Prioritization</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R305</td>
+
+ <td>Style Parameters – Aural</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R306</td>
+
+ <td>Style Parameters – Visual</td>
+
+ <td>P</td>
+
+ <td>Supports absolute position, background color, color, display
+ none, display alignment, font family, font size, font style, font
+ weight, height, line height, origin, opacity, overflow, padding
+ (before, after, start, end), text alignment, text shadow (as
+ outline), visibility, width, writing mode, z-index</td>
+ </tr>
+
+ <tr>
+ <td>R390</td>
+
+ <td>Style Parameter Symmetry</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R391</td>
+
+ <td>Style Parameter Definitions</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R392</td>
+
+ <td>Style Parameter Shorthands</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R401</td>
+
+ <td>Inline Timing</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R402</td>
+
+ <td>Out-of-Line Timing</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R403</td>
+
+ <td>Synchronization Parameters</td>
+
+ <td>P</td>
+
+ <td>Supports begin, end, dur</td>
+ </tr>
+
+ <tr>
+ <td>R404</td>
+
+ <td>Synchronization Parameter Value Spaces</td>
+
+ <td>P</td>
+
+ <td>Supports offset values, media marker values (SMPTE 12M),
+ wall-clock values</td>
+ </tr>
+
+ <tr>
+ <td>R405</td>
+
+ <td>Time Containment Semantics</td>
+
+ <td>P</td>
+
+ <td>Supports sequential, parallel</td>
+ </tr>
+
+ <tr>
+ <td>R500</td>
+
+ <td>Animation Modes</td>
+
+ <td>P</td>
+
+ <td>Supports discrete</td>
+ </tr>
+
+ <tr>
+ <td>R502</td>
+
+ <td>Highlight Animation</td>
+
+ <td>S</td>
+
+ <td><code><set tts:backgroundColor="..."/></code></td>
+ </tr>
+
+ <tr>
+ <td>R503</td>
+
+ <td>Fade Transition Animation</td>
+
+ <td>S</td>
+
+ <td><code><set tts:opacity="..."/></code></td>
+ </tr>
+
+ <tr>
+ <td>R504</td>
+
+ <td>Animated Style Parameters – Aural</td>
+
+ <td>N</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R505</td>
+
+ <td>Animated Style Parameters – Visual</td>
+
+ <td>P</td>
+
+ <td>Supports animating background color, color, display, opacity,
+ origin, visibility</td>
+ </tr>
+
+ <tr>
+ <td>N506</td>
+
+ <td>Animated Content</td>
+
+ <td>S</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>R600</td>
+
+ <td>Metadata Item Association</td>
+
+ <td>S</td>
+
+ <td>See <code>metadata</code>, <code>Metadata.class</code></td>
+ </tr>
+
+ <tr>
+ <td>R601</td>
+
+ <td>Metadata Item Constituents</td>
+
+ <td>P</td>
+
+ <td>Supports name, value</td>
+ </tr>
+
+ <tr>
+ <td>R602</td>
+
+ <td>Metadata Item Value Representation</td>
+
+ <td>P</td>
+
+ <td>See <code>metadata</code></td>
+ </tr>
+
+ <tr>
+ <td>R603</td>
+
+ <td>Metadata Item Extensibility</td>
+
+ <td>S</td>
+
+ <td>See <code>metadata</code></td>
+ </tr>
+
+ <tr>
+ <td>R604</td>
+
+ <td>Metadata Item Validation</td>
+
+ <td>S</td>
+
+ <td>See <code>metadata</code></td>
+ </tr>
+
+ <tr>
+ <td>R690</td>
+
+ <td>Dublin Core Preference</td>
+
+ <td>N</td>
+
+ <td>Uses <code>ttm:copyright</code>, <code>ttm:desc</code>,
+ <code>ttm:title</code></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div1">
+ <h2><a id="derivation" name="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="d3e18638" name="d3e18638"></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 the model
+ (if a model is indicated); the fourth column specifies details about
+ the derivation; the last column refers to additional notes describing
+ the nature of the derivation.</p>
+
+ <p>In the fourth column, which describes details of derivation, a
+ notation is use to indicate the addition or removal of an attribute.
+ For example, in the derivation of the <code>tt:div</code> element, the
+ details column includes "-@class", which denotes that the
+ <code>class</code> attribute that is specified for use with the
+ <code>xhtml:div</code> model element is not specified for use with the
+ corresponding TTML element; in contrast, the details column includes
+ "+@begin", which denotes that a <code>begin</code> attribute is added
+ that is not specified for use with the <code>xhtml:div</code> model
+ element.</p><a id="element-vocab-derivation-table" name=
+ "element-vocab-derivation-table"></a>
+
+ <table class="common">
+ <caption>
+ Table J-1 – Elements
+ </caption>
+ <col width="20%" span="1">
+ <col width="17%" span="1">
+ <col width="13%" align="center" span="1">
+ <col width="40%" span="1">
+ <col width="10%" align="center" span="1">
+
+ <tbody>
+ <tr>
+ <td><span class="strong">Element</span></td>
+
+ <td><span class="strong">Model</span></td>
+
+ <td><span class="strong">Reference</span></td>
+
+ <td><span class="strong">Details</span></td>
+
+ <td><span class="strong">Notes</span></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#document-structure-vocabulary-body"><code>tt:body</code></a></td>
+
+ <td><code>xhtml:body</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur,
+ +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*; content model
+ subsetted to zero or more division (div) children, and
+ supersetted by optional metadata and animation children</td>
+
+ <td>1,2</td>
+ </tr>
+
+ <tr>
+ <td><a href="#content-vocabulary-br"><code>tt:br</code></a></td>
+
+ <td><code>xhtml:br</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>-@class, -@title; +@ttm:*, +@tts:*, +@xml:lang, +@xml:space;
+ content model supersetted by optional metadata and animation
+ children for congruity with other content vocabulary</td>
+
+ <td>1,2</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#content-vocabulary-div"><code>tt:div</code></a></td>
+
+ <td><code>xhtml:div</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur,
+ +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space;
+ content model subsetted to zero or more paragraph (p) children,
+ and supersetted by optional metadata and animation children</td>
+
+ <td>1,2,3</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#document-structure-vocabulary-head"><code>tt:head</code></a></td>
+
+ <td><code>xhtml:head</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>-@dir, -@lang, -@profile; +@id, +@xml:space; content model
+ changed to optional metadata children, followed by optional
+ styling child, followed by optional layout child</td>
+
+ <td>1,3</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#layout-vocabulary-layout"><code>tt:layout</code></a></td>
+
+ <td><code>fo:simple-page-master</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>4</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-vocabulary-metadata"><code>tt:metadata</code></a></td>
+
+ <td><code>svg:metadata</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>-@xml:base; +@ttm:*, +@xml:lang, +@xml:space; content model
+ subsetted to foreign namespace element content only (no
+ #PCDATA)</td>
+
+ <td>3,5</td>
+ </tr>
+
+ <tr>
+ <td><a href="#content-vocabulary-p"><code>tt:p</code></a></td>
+
+ <td><code>xhtml:p</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur,
+ +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space;
+ content model subsetted to zero or more span children, and
+ supersetted by optional metadata and animation children</td>
+
+ <td>1,2,3</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#layout-vocabulary-region"><code>tt:region</code></a></td>
+
+ <td><code>fo:region-*</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>4</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#animation-vocabulary-set"><code>tt:set</code></a></td>
+
+ <td><code>svg:set</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>-@* except begin, dur, end; +@tts:*, +@xml:lang,
+ +@xml:space</td>
+
+ <td>3,6</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#content-vocabulary-span"><code>tt:span</code></a></td>
+
+ <td><code>xhtml:span</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur,
+ +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space;
+ content model subsetted to zero or more #PCDATA or break (br)
+ children, and supersetted by optional metadata and animation
+ children</td>
+
+ <td>1,2,3</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#styling-vocabulary-style"><code>tt:style</code></a></td>
+
+ <td><em>style specification</em></td>
+
+ <td><a href="#css2">[CSS2]</a></td>
+
+ <td>XML representation of identified set of pairs of style
+ property name and value, with optional inclusion of other styles
+ by reference to other style elements</td>
+
+ <td>7</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#styling-vocabulary-styling"><code>tt:styling</code></a></td>
+
+ <td><code>xhtml:style</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>XML representation of a set of style specifications sets,
+ each represented by a style child element</td>
+
+ <td>1,7</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#document-structure-vocabulary-tt"><code>tt:tt</code></a></td>
+
+ <td><code>xhtml:html</code></td>
+
+ <td><a href="#xhtml10">[XHTML 1.0]</a></td>
+
+ <td>-@dir, -@lang; +@id, +@ttp:*, +@xml:space; content model
+ subsetted by permitting body and/or head to be optional</td>
+
+ <td>1,8</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-vocabulary-actor"><code>ttm:actor</code></a></td>
+
+ <td><code>mpeg7:Creator</code></td>
+
+ <td><a href="#mpeg7-5">[MPEG7-5]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>4</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-vocabulary-agent"><code>ttm:agent</code></a></td>
+
+ <td><code>mpeg7:Agent</code></td>
+
+ <td><a href="#mpeg7-5">[MPEG7-5]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>4</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-vocabulary-copyright"><code>ttm:copyright</code></a></td>
+
+ <td><code>mpeg7:CopyrightString</code></td>
+
+ <td><a href="#mpeg7-5">[MPEG7-5]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>4</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-vocabulary-desc"><code>ttm:desc</code></a></td>
+
+ <td><code>svg:desc</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>-@class, -@style, -@xml:base</td>
+
+ <td>2,5,9</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-vocabulary-name"><code>ttm:name</code></a></td>
+
+ <td><code>mpeg7:Name</code></td>
+
+ <td><a href="#mpeg7-5">[MPEG7-5]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>4</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-vocabulary-title"><code>ttm:title</code></a></td>
+
+ <td><code>svg:title</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>-@class, -@style, -@xml:base</td>
+
+ <td>2,5,9</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-vocabulary-extension"><code>ttp:extension</code></a></td>
+
+ <td><code>@requiredExtensions</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>10</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-vocabulary-extensions"><code>ttp:extensions</code></a></td>
+
+ <td><code>@requiredExtensions</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>10</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-vocabulary-feature"><code>ttp:feature</code></a></td>
+
+ <td><code>@requiredFeatures</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>10</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-vocabulary-features"><code>ttp:features</code></a></td>
+
+ <td><code>@requiredFeatures</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>10</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-vocabulary-profile"><code>ttp:profile</code></a></td>
+
+ <td><code>@baseProfile</code></td>
+
+ <td><a href="#svg11">[SVG 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td>11</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <ol class="enumar">
+ <li>
+ <p>Derivation is indicated with respect to the strict DTD defined
+ by <a href="#xhtml10">[XHTML 1.0]</a>, §A.1.</p>
+ </li>
+
+ <li>
+ <p>The <code>class</code> attribute is effectively replaced by
+ the <code>style</code> attribute, which, instead of specifying an
+ inline style, refers indirectly to one or more <a href=
+ "#styling-vocabulary-style"><code>style</code></a> elements that
+ define a set of style specification sets.</p>
+ </li>
+
+ <li>
+ <p>The <code>xml:lang</code> and <code>xml:space</code>
+ attributes are defined for all element types in order to support
+ their inheritance semantics to operate in the context of foreign
+ namespace elements.</p>
+ </li>
+
+ <li>
+ <p>Derivation is conceptual (notional) only.</p>
+ </li>
+
+ <li>
+ <p>The <code>xml:base</code> attribute is not used since there
+ are no external references from core vocabulary.</p>
+ </li>
+
+ <li>
+ <p>The <code>attributeName</code> and <code>to</code> attributes
+ of <code>svg:set</code> are replaced by the direct expression of
+ the target attribute name and value by use of a
+ <code>tts:*</code> attribute.</p>
+ </li>
+
+ <li>
+ <p>CSS style specification syntax is mapped to XML by use of
+ attributes defined in the TT Style Namespace.</p>
+ </li>
+
+ <li>
+ <p>The <code>xml:id</code> attribute is defined for use on all
+ element types.</p>
+ </li>
+
+ <li>
+ <p>The <code>style</code> attribute is supported only on content
+ elements.</p>
+ </li>
+
+ <li>
+ <p>Derived from the use of <code>@requiredExtensions</code> and
+ <code>@requiredFeatures</code> on the <code>svg:svg</code>
+ element, but extended to support distinct specification of
+ optionality.</p>
+ </li>
+
+ <li>
+ <p>Derived from the use of <code>@baseProfile</code> and
+ <code>@version</code> on the <code>svg:svg</code> element.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="d3e19117" name="d3e19117"></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 the model
+ (if a model is indicated); the fourth column specifies details about
+ the derivation; the last column refers to additional notes describing
+ the nature of the derivation.</p>
+
+ <p>In the fourth column, which describes details of derivation, a
+ notation is use to indicate the addition or removal of an attribute
+ value. For example, in the derivation of the <code>timeContainer</code>
+ attribute, the details column includes "-excl", which denotes that the
+ <code>excl</code> value that is specified for use with the
+ <code>timeContainer</code> model attribute is not specified for use
+ with the corresponding TTML attribute; similarly, an "+<em>value</em>"
+ in the details column indicates that the attribute's values have been
+ extended to include <em>value</em>.</p>
+
+ <p>Only those attributes that are specified for use on more than one
+ TTML element type are listed below. Those per-element namespace
+ attributes that are uniquely defined for a specific TTML element type
+ are not listed below, but are considered to be part of the specific
+ element type's derivation described in <a href=
+ "#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
+ above.</p><a id="attribute-vocab-derivation-table" name=
+ "attribute-vocab-derivation-table"></a>
+
+ <table class="common">
+ <caption>
+ Table J-2 – Attributes
+ </caption>
+ <col width="20%" span="1">
+ <col width="17%" span="1">
+ <col width="13%" align="center" span="1">
+ <col width="40%" span="1">
+ <col width="10%" align="center" span="1">
+
+ <tbody>
+ <tr>
+ <td><span class="strong">Attribute</span></td>
+
+ <td><span class="strong">Model</span></td>
+
+ <td><span class="strong">Reference</span></td>
+
+ <td><span class="strong">Details</span></td>
+
+ <td><span class="strong">Notes</span></td>
+ </tr>
+
+ <tr>
+ <td><a href="#timing-attribute-begin"><code>begin</code></a></td>
+
+ <td><code>begin</code></td>
+
+ <td><a href="#smil21">[SMIL 2.1]</a></td>
+
+ <td>see notes</td>
+
+ <td>2,3,4</td>
+ </tr>
+
+ <tr>
+ <td><a href="#timing-attribute-dur"><code>dur</code></a></td>
+
+ <td><code>dur</code></td>
+
+ <td><a href="#smil21">[SMIL 2.1]</a></td>
+
+ <td>see notes</td>
+
+ <td>2,3,4</td>
+ </tr>
+
+ <tr>
+ <td><a href="#timing-attribute-end"><code>end</code></a></td>
+
+ <td><code>end</code></td>
+
+ <td><a href="#smil21">[SMIL 2.1]</a></td>
+
+ <td>see notes</td>
+
+ <td>2,3,4</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#layout-attribute-region"><code>region</code></a></td>
+
+ <td><code>master-reference</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td>conceptual derivation</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href="#style-attribute-style"><code>style</code></a></td>
+
+ <td><code>class</code></td>
+
+ <td><a href="#css2">[CSS2]</a></td>
+
+ <td>dereferences style specification(s) directly</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#timing-attribute-timeContainer"><code>timeContainer</code></a></td>
+
+ <td><code>timeContainer</code></td>
+
+ <td><a href="#smil21">[SMIL 2.1]</a></td>
+
+ <td>-excl, -none; no default attribute value</td>
+
+ <td>5</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-attribute-agent"><code>ttm:agent</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>used to attribute agent of content</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#metadata-attribute-role"><code>ttm:role</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>used to attribute role of content</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-cellResolution"><code>ttp:cellResolution</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>expresses uniform grid resolution for cell based
+ coordinates</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-clockMode"><code>ttp:clockMode</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>determines how to interpret time expressions</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-frameRate"><code>ttp:frameRate</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>expresses integral frame rate</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-frameRateMultiplier"><code>ttp:frameRateMultiplier</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>used to express non-integral, rational frame rates</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-markerMode"><code>ttp:markerMode</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>expresses marker continuity semantics</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-pixelAspectRatio"><code>ttp:pixelAspectRatio</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>expresses pixel aspect ratio of related media</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-profile"><code>ttp:profile</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>expresses profile of TTML used by a <em>Document
+ Instance</em></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-dropMode"><code>ttp:dropMode</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>expresses frame counting (drop) modes</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-subFrameRate"><code>ttp:subFrameRate</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>expresses sub-frame rate</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-tickRate"><code>ttp:tickRate</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>used to interpret tick based time expressions</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#parameter-attribute-timeBase"><code>ttp:timeBase</code></a></td>
+
+ <td><em>none</em></td>
+
+ <td></td>
+
+ <td>used to interpret semantics of time expressions</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a></td>
+
+ <td><code>background-color</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1,6</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-color"><code>tts:color</code></a></td>
+
+ <td><code>color</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>6</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-direction"><code>tts:direction</code></a></td>
+
+ <td><code>direction</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-display"><code>tts:display</code></a></td>
+
+ <td><code>display</code></td>
+
+ <td><a href="#css2">[CSS2]</a></td>
+
+ <td>only <code>auto</code>, <code>none</code></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-displayAlign"><code>tts:displayAlign</code></a></td>
+
+ <td><code>display-align</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-extent"><code>tts:extent</code></a></td>
+
+ <td><code>width</code>, <code>height</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td>shorthand property</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-fontFamily"><code>tts:fontFamily</code></a></td>
+
+ <td><code>font-family</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code>, extends generic family names</td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-fontSize"><code>tts:fontSize</code></a></td>
+
+ <td><code>font-size</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1,7</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-fontStyle"><code>tts:fontStyle</code></a></td>
+
+ <td><code>font-style</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code>, <code>-backslant</code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-fontWeight"><code>tts:fontWeight</code></a></td>
+
+ <td><code>font-weight</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code>, <code>-bolder</code>,
+ <code>-lighter</code>, <code>-<number></code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-lineHeight"><code>tts:lineHeight</code></a></td>
+
+ <td><code>line-height</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code>, <code>-<number></code>,
+ <code>-<space></code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-opacity"><code>tts:opacity</code></a></td>
+
+ <td><code>opacity</code></td>
+
+ <td><a href="#css3-color">[CSS3 Color]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-origin"><code>tts:origin</code></a></td>
+
+ <td><code>top</code>, <code>left</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td>shorthand property</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-overflow"><code>tts:overflow</code></a></td>
+
+ <td><code>overflow</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code>, <code>-auto</code>,
+ <code>-error-if-overflow</code></td>
+
+ <td>8</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-padding"><code>tts:padding</code></a></td>
+
+ <td><code>padding</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>9</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-showBackground"><code>tts:showBackground</code></a></td>
+
+ <td><code>showBackground</code></td>
+
+ <td><a href="#smil21">[SMIL 2.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-textAlign"><code>tts:textAlign</code></a></td>
+
+ <td><code>text-align</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-textDecoration"><code>tts:textDecoration</code></a></td>
+
+ <td><code>text-decoration</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1,10,13</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-textOutline"><code>tts:textOutline</code></a></td>
+
+ <td><code>text-shadow</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>11,13</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-unicodeBidi"><code>tts:unicodeBidi</code></a></td>
+
+ <td><code>unicode-bidi</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-visibility"><code>tts:visibility</code></a></td>
+
+ <td><code>visibility</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code>, <code>-collapse</code></td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-wrapOption"><code>tts:wrapOption</code></a></td>
+
+ <td><code>wrap-option</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-writingMode"><code>tts:writingMode</code></a></td>
+
+ <td><code>writing-mode</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code>, <code>+tblr</code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#style-attribute-zIndex"><code>tts:zIndex</code></a></td>
+
+ <td><code>z-index</code></td>
+
+ <td><a href="#xsl11">[XSL 1.1]</a></td>
+
+ <td><code>-inherit</code></td>
+
+ <td>1</td>
+ </tr>
+
+ <tr>
+ <td><a href="#content-attribute-id"><code>xml:id</code></a></td>
+
+ <td><code>xml:id</code></td>
+
+ <td><a href="#xmlid">[XML ID]</a></td>
+
+ <td>complies with model</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#content-attribute-lang"><code>xml:lang</code></a></td>
+
+ <td><code>xml:lang</code></td>
+
+ <td><a href="#xml10">[XML 1.0]</a></td>
+
+ <td>complies with model</td>
+
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><a href=
+ "#content-attribute-space"><code>xml:space</code></a></td>
+
+ <td><code>xml:space</code></td>
+
+ <td><a href="#xml10">[XML 1.0]</a></td>
+
+ <td>see notes</td>
+
+ <td>12</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <ol class="enumar">
+ <li>
+ <p>Attribute name and/or value(s) are normalized to use
+ <em>lowerCamelCase</em> naming convention.</p>
+ </li>
+
+ <li>
+ <p>Restricted to expressing a clock value that denotes one of the
+ following in accordance to whether the parameter expressed by the
+ <code>ttp:timeBase</code> attribute is <code>media</code>,
+ <code>smpte</code>, or <code>clock</code>, respectively: (1) an
+ offset from an implicit syncbase that is linked to a media time
+ line, (2) an event time that represents the occurrence of an
+ implicit media marker, or (3) a wall-clock time.</p>
+ </li>
+
+ <li>
+ <p>Syntactically subsets and supersets the <a href=
+ "#smil21">[SMIL 2.1]</a> <code>Clock-value</code> syntax as
+ follows: (1) requires non-negative <code>Full-clock-value</code>
+ or <code>Timecount-value</code>; (2) if
+ <code>Full-clock-value</code> then <em>hours</em> must be two or
+ more digits; (3) if <code>Timecount-value</code>, then
+ <em>metric</em> must be specified; (4) uses <code>m</code> as
+ alias for <code>min</code> metric to denote minutes; (5) adds
+ <code>f</code> and <code>t</code> metrics denoting frames and
+ ticks, respectively; (6) adds alternative expression of optional
+ <code>Fraction</code> in <code>Full-clock-value</code> by
+ specifying frame count or frame count with subframe count.</p>
+ </li>
+
+ <li>
+ <p>Interpretation of time expression is further constrained by
+ parameters expressed by <code>ttp:clockMode</code>,
+ <code>ttp:dropMode</code>, <code>ttp:frameRate</code>,
+ <code>ttp:frameRateMultiplier</code>,
+ <code>ttp:markerMode</code>, <code>ttp:subFrameRate</code>,
+ <code>ttp:tickRate</code>, and <code>ttp:timeBase</code>
+ attributes.</p>
+ </li>
+
+ <li>
+ <p>Uses subset of named colors from model to which two aliases
+ are added as follows: <code>magenta</code> as
+ <code>fuchsia</code>, and <code>cyan</code> as
+ <code>aqua</code>.</p>
+ </li>
+
+ <li>
+ <p>If not specified, then parallel (par) container semantics
+ apply to the element types specified by <a href=
+ "#timing-attribute-timeContainer"><b>10.2.4
+ timeContainer</b></a>.</p>
+ </li>
+
+ <li>
+ <p>Restricts size to length specification which can be a
+ percentage; adds optional second length (or percentage) for
+ specifying separate horizontal and vertical scaling of glyph's EM
+ square.</p>
+ </li>
+
+ <li>
+ <p>Expressed in terms of writing mode relative padding properties
+ rather than absolute padding properties.</p>
+ </li>
+
+ <li>
+ <p>Excludes <code>blink</code> and <code>no-blink</code>
+ values.</p>
+ </li>
+
+ <li>
+ <p>Uses only one length specification instead of two, where one
+ length defines distance of outline effect from nominal edge of
+ glyph contour outline perpendicular to point of glyph contour.
+ Percentage lengths are also added to express outline effect in
+ relative to font size. Outline effects are intended to be drawn
+ both outside of outer closed contours and inside of inner closed
+ contours.</p>
+ </li>
+
+ <li>
+ <p>On root element, default attribute value specified as
+ <code>default</code>, which is defined in terms of whitespace
+ normalization. Semantics of preservation and default
+ normalization are defined in terms of presentation semantics by
+ <a href="#content-attribute-space"><b>7.2.3
+ xml:space</b></a>.</p>
+ </li>
+
+ <li>
+ <p>Defined to be inheritable.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="qa" name="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="d3e20003" name="d3e20003"></a>K.1 Requirements</h3><a id=
+ "qa-framework-requirements-table" name=
+ "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="d3e20167" name="d3e20167"></a>K.2 Guidelines</h3><a id=
+ "qa-framework-guidelines-table" name=
+ "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">
+ <h2><a id="streaming" name="streaming"></a>L Streaming TTML Content
+ (Non-Normative)</h2>
+
+ <p>TTML Content is designed to support streamability by implementing the
+ following properties:</p>
+
+ <ul>
+ <li>
+ <p>can be progressively encoded (i.e., does not require computing
+ subsequent data prior to sending current data);</p>
+ </li>
+
+ <li>
+ <p>can be progressively decoded (i.e., does not require forward
+ references, but uses only reverse references when necessary);</p>
+ </li>
+
+ <li>
+ <p>does not require dereferencing (and subsequent loading) of any
+ resources other than TTML Content (i.e., no embedded URIs);</p>
+ </li>
+
+ <li>
+ <p>does not support alternative content forms (e.g., different
+ language, graphics formats, time bases) in a single document;</p>
+ </li>
+
+ <li>
+ <p>has timing structure compiled into inline format that makes
+ possible a temporal ordering of content that follows temporal
+ presentation order;</p>
+ </li>
+
+ <li>
+ <p>constrains content models to prevent arbitrary nested content
+ structures;</p>
+ </li>
+ </ul>
+
+ <p>One possible means by which TTML Content may be streamed is to
+ partition a <em>Document Instance</em>'s information set into
+ non-overlapping fragments, where one particular fragment, call it the
+ <em>root fragment</em>, represents the front matter (head) of the
+ <em>Document Instance</em> as well as its top level structural elements,
+ and other fragments represent content whose time intervals are expected
+ to be active in parallel.</p>
+
+ <p>In applications that require arbitrary (random) entry into a stream,
+ i.e., the property of being able to start reading data at an arbitrary
+ data access unit, the root fragment will be repetitively transmitted
+ (inserted) into the stream in order to permit a decoder to resynchronize
+ and acquire sufficient structural information in the information set in
+ order to interpret subsequent content fragments.</p>
+
+ <p>An example of such a fragmentation of a <em>Document Instance</em> is
+ shown in <a href="#fragment-streaming-graphic"><b>Figure 3 – Fragment
+ Streaming</b></a>.</p><a id="fragment-streaming-graphic" name=
+ "fragment-streaming-graphic"></a>
+
+ <table class="example-images">
+ <caption>
+ Figure 3 – Fragment Streaming
+ </caption>
+ <col span="1">
+
+ <tbody>
+ <tr>
+ <td><img src="images/streaming.png" alt="Fragment Streaming"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>This specification does not define a transport buffer model or a
+ decoder capabilities model.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="concrete-encoding" name="concrete-encoding"></a>M Concrete
+ Encoding (Non-Normative)</h2>
+
+ <p>In the absence of other requirements, it is recommended that a
+ <em>Document Instance</em> be concretely encoded as a well-formed XML 1.0
+ <a href="#xml10">[XML 1.0]</a> document using the UTF-8 character
+ encoding.</p>
+ </div>
+
+ <div class="div1">
+ <h2><a id="time-expression-semantics" name=
+ "time-expression-semantics"></a>N Time Expression Semantics
+ (Non-Normative)</h2>
+
+ <p>This appendix describes the intended semantics for interpreting time
+ expressions in <em>Document Instances</em>.</p>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>It is expected that the information in this appendix will be
+ elevated to normative status in a future revision of this
+ specification.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The phrase <em>local real time</em> as used below is intended to
+ model a virtual real time clock in the document processing context,
+ where <em>local</em> means in the immediate proximity of the
+ implementation of this processing context. The intent of defining
+ relationships with this virtual clock is to establish a locally valid
+ physical realization of time for didactic purposes.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The phrase <em>play rate</em> as used below is intended to model a
+ (possibly variable) parameter in the document processing context
+ wherein the rate of playback (or interpretation) of time may
+ artificially dilated or narrowed, for example, when slowing down or
+ speeding up the rate of playback of a <em>Related Media Object</em>.
+ Without loss of generality, the following discussion assumes a fixed
+ play(back) rate. In the case of variable play rates, appropriate
+ adjustments may need to be made to the resulting computations.</p>
+ </div>
+
+ <div class="div2">
+ <h3><a id="time-expression-semantics-clock" name=
+ "time-expression-semantics-clock"></a>N.1 Clock Time Base</h3>
+
+ <p>When operating with the <code>clock</code> time base, the following
+ semantics should be applied for interpreting time expressions, as
+ defined by <a href=
+ "#timing-value-timeExpression"><timeExpression></a>, and their
+ relationship to media time and local real time.</p>
+
+ <p>The clock time base <span class="strong"><code>C</code></span> is
+ related to local real time <span class="strong"><code>R</code></span>
+ expressed in an arbitrary (implementation defined) epoch <span class=
+ "strong"><code>E</code></span> as follows:</p><a id=
+ "clock-time-and-real-time" name="clock-time-and-real-time"></a>
+
+ <table class="semantics">
+ <caption>
+ TTML Semantics – Clock Time and Real Time Relationship
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <blockquote>
+ <p><br>
+ <code>R = C + epochOffset + discontinuityOffset</code><br>
+ <br>
+ where <code>C ∈ ℜ</code>, <code>0 ≤ C < ∞</code>,
+ <code>C</code> in seconds since the most immediately prior
+ midnight of the reference clock base;<br>
+ <br>
+ <code>epochOffset ∈ ℜ</code>, <code>0 ≤ epochOffset <
+ ∞</code>, <code>epochOffset</code> in seconds, with 0 being
+ the beginning of epoch <code>E</code>, and where the value of
+ <code>epochOffset</code> is determined from the computed
+ value of the <code>ttp:clockMode</code> parameter as
+ follows:<br>
+ <br>
+ (1) if <code>local</code>, then the difference between the
+ local real time at the most immediately prior local midnight
+ and the local real time at the beginning of epoch
+ <code>E</code>, expressed in seconds;<br>
+ <br>
+ (2) if <code>gps</code>, then the difference between the GPS
+ time at the most immediately prior GPS midnight and the GPS
+ time at the beginning of epoch <code>E</code>, expressed in
+ seconds;<br>
+ <br>
+ (3) if <code>utc</code>, then the difference between the UTC
+ time at the most immediately prior UTC midnight and the UTC
+ time at the beginning of epoch <code>E</code>, expressed in
+ seconds;<br>
+ <br>
+ <code>discontinuityOffset ∈ ℜ</code>, <code>−∞ <
+ discontinuityOffset < ∞</code>,
+ <code>discontinuityOffset</code> in seconds, and where the
+ value of <code>discontinuityOffset</code> is equal to the sum
+ of leap seconds (and fractions thereof) that have been added
+ (or subtracted) since the most immediately prior midnight in
+ the reference clock base;<br>
+ <br>
+ and <code>epochOffset</code> and
+ <code>discontinuityOffset</code> are determined once and only
+ once prior to the beginning of the <em>Root Temporal
+ Extent</em> such that during the period between value
+ determination and the beginning of the <em>Root Temporal
+ Extent</em> there occurs no local midnight or reference clock
+ base discontinuity.<br></p>
+ </blockquote>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Time value expressions, as denoted by a <a href=
+ "#timing-value-timeExpression"><timeExpression></a>, are related
+ to clock time <span class="strong"><code>C</code></span> as
+ follows:</p><a id="time-expressions-and-clock-time" name=
+ "time-expressions-and-clock-time"></a>
+
+ <table class="semantics">
+ <caption>
+ TTML Semantics – Time Expressions and Clock Time Relationship
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <blockquote>
+ <p><br>
+ If a time expression uses the <em>clock-time</em> form or an
+ <em>offset-time</em> form that doesn't use the ticks
+ (<code>t</code>) metric, then:<br>
+ <br>
+ <code>C = 3600 * hours + 60 * minutes + seconds</code><br>
+ <br>
+ where <code>hours</code>, <code>minutes</code>,
+ <code>seconds</code> components are extracted from time
+ expression if present, or zero if not present.<br>
+ <br>
+ Otherwise, if a time expression uses an <em>offset-time</em>
+ form that uses the ticks (<code>t</code>) metric, then:<br>
+ <br>
+ <code>C = ticks / tickRate</code><br></p>
+ </blockquote>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The <em>frames</em> and <em>sub-frames</em> terms and the frames
+ (<code>f</code>) metric of time expressions do not apply when using
+ the <code>clock</code> time base.</p>
+ </div>
+
+ <p>The clock time base <span class="strong"><code>C</code></span> is
+ independent of media time <span class=
+ "strong"><code>M</code></span>:</p><a id="clock-time-and-media-time"
+ name="clock-time-and-media-time"></a>
+
+ <table class="semantics">
+ <caption>
+ TTML Semantics – Clock Time and Media Time Relationship
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <blockquote>
+ <p><br>
+ <code>M ¬∝ C</code><br></p>
+ </blockquote>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>That is to say, timing is disconnected from (not necessarily
+ proportional to) media time when the <code>clock</code> time base is
+ used. For example, if the media play rate is zero (0), media playback
+ is suspended; however, timing coordinates will continue to advance
+ according to the natural progression of clock time in direct
+ proportion to the reference clock base. Furthermore, if the media
+ play rate changes during playback, presentation timing is not
+ affected.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="time-expression-semantics-media" name=
+ "time-expression-semantics-media"></a>N.2 Media Time Base</h3>
+
+ <p>When operating with the <code>media</code> time base, the following
+ semantics should be applied for interpreting time expressions, as
+ defined by <a href=
+ "#timing-value-timeExpression"><timeExpression></a>, and their
+ relationship to media time and local real time.</p>
+
+ <p>The media time base <span class="strong"><code>M</code></span> is
+ related to local real time <span class="strong"><code>R</code></span>
+ expressed in an arbitrary (implementation defined) epoch <span class=
+ "strong"><code>E</code></span> as follows:</p><a id=
+ "media-time-and-real-time" name="media-time-and-real-time"></a>
+
+ <table class="semantics">
+ <caption>
+ TTML Semantics – Media Time and Real Time Relationship
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <blockquote>
+ <p><br>
+ <code>R = playRate * M + epochOffset</code><br>
+ <br>
+ where <code>M ∈ ℜ</code>, <code>0 ≤ M < ∞</code>,
+ <code>M</code> in seconds, with 0 corresponding to the
+ beginning of the <em>Root Temporal Extent</em>;<br>
+ <br>
+ <code>playRate ∈ ℜ</code>, <code>−∞ < playRate <
+ ∞</code>, <code>playRate</code> is unit-less, and where the
+ value of <code>playRate</code> is determined by the document
+ processing context;<br>
+ <br>
+ and <code>epochOffset ∈ ℜ</code>, <code>0 ≤ epochOffset <
+ ∞</code>, <code>epochOffset</code> in seconds, with 0
+ corresponding to the beginning of an epoch <code>E</code>,
+ and where the value of <code>epochOffset</code> is the
+ difference between the local real time at the beginning of
+ the <em>Root Temporal Extent</em> and the local real time at
+ the the beginning of epoch <code>E</code>, expressed in
+ seconds.</p>
+ </blockquote>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Time value expressions, as denoted by a <a href=
+ "#timing-value-timeExpression"><timeExpression></a>, are related
+ to media time <span class="strong"><code>M</code></span> in accordance
+ to the <code>ttp:frameRate</code>, <code>ttp:subFrameRate</code>, and
+ <code>ttp:frameRateMultipler</code> parameters as follows:</p><a id=
+ "time-expressions-and-media-time" name=
+ "time-expressions-and-media-time"></a>
+
+ <table class="semantics">
+ <caption>
+ TTML Semantics – Time Expressions and Media Time Relationship
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <blockquote>
+ <p><br>
+ If a time expression uses a <em>clock-time</em> form or an
+ <em>offset-time</em> form that doesn't use the ticks
+ (<code>t</code>) metric, then:<br>
+ <br>
+ <code>M = referenceBegin + 3600 * hours + 60 * minutes +
+ seconds + ((frames + (subFrames / subFrameRate)) /
+ effectiveFrameRate)</code><br>
+ <br>
+ where <code>referenceBegin</code> is determined according to
+ whether the nearest ancestor time container employs parallel
+ (<code>par</code>) or sequential (<code>seq</code>)
+ semantics: if parallel or if sequential and no prior sibling
+ timed element exists, then <code>referenceBegin</code> is the
+ media time that corresponds to the beginning of the nearest
+ ancestor time container or zero (0) if this time container is
+ the <em>Root Temporal Extent</em>; otherwise, if sequential
+ and a prior sibling timed element exists, then
+ <code>referenceBegin</code> is the media time that
+ corresponds to the active end of the immediate prior sibling
+ timed element;<br>
+ <br>
+ the <code>hours</code>, <code>minutes</code>,
+ <code>seconds</code>, <code>frames</code>,
+ <code>subFrames</code> components are extracted from time
+ expression if present, or zero if not present;<br>
+ <br>
+ <code>subFrameRate</code> is the computed value of the
+ <code>ttp:subFrameRate</code> parameter;<br>
+ <br>
+ and <code>effectiveFrameRate</code> (in frames per second) is
+ <code>frameRate * frameRateMultipler</code> where
+ <code>frameRate</code> is the computed value of the
+ <code>ttp:frameRate</code> parameter and
+ <code>frameRateMultipler</code> is the computed value of the
+ <code>ttp:frameRateMultiplier</code> parameter.<br>
+ <br>
+ Otherwise, if a time expression uses an <em>offset-time</em>
+ form that uses the ticks (<code>t</code>) metric, then:<br>
+ <br>
+ <code>M = referenceBegin + ticks / tickRate</code><br>
+ <br>
+ where <code>referenceBegin</code> is as described above;<br>
+ <br>
+ the <code>ticks</code> component is extracted from time
+ expression;<br>
+ <br>
+ and <code>tickRate</code> is the computed value of the
+ <code>ttp:tickRate</code> parameter;<br></p>
+ </blockquote>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>If the computed <code>frameRateMultipler</code> ratio is not
+ integral, then <code>effectiveFrameRate</code> will be a non-integral
+ rational.</p>
+ </div>
+
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+
+ <p>The above formalisms assumes that the <em>Root Temporal
+ Extent</em> corresponds with the beginning of a related media object.
+ If this assumption doesn't hold, then an additional offset that
+ accounts for the difference may be introduced when computing media
+ time <code>M</code>.</p>
+ </div>
+ </div>
+
+ <div class="div2">
+ <h3><a id="time-expression-semantics-smpte" name=
+ "time-expression-semantics-smpte"></a>N.3 SMPTE Time Base</h3>
+
+ <p>When operating with the <code>smpte</code> time base, the following
+ semantics should be applied for interpreting time expressions, as
+ defined by <a href=
+ "#timing-value-timeExpression"><timeExpression></a>, and their
+ relationship to media time and local real time.</p>
+
+ <p>If the computed value of the <code>ttp:markerMode</code> parameter
+ is <code>discontinuous</code>, then there is no direct relationship
+ between time expressions and media time <span class=
+ "strong"><code>M</code></span> or local real time <span class=
+ "strong"><code>R</code></span>. In this case, time expressions refer to
+ synchronization events (markers) emitted by the <em>Document Processing
+ Context</em> when <em>SMPTE Time Codes</em> are encountered in the
+ <em>Related Media Object</em>.</p>
+
+ <p>Otherwise, if the computed value of the <code>ttp:markerMode</code>
+ parameter is <code>continuous</code>, then the relationships between
+ time expressions and local real time and media time are as described
+ below in terms of a <em>Synthetic SMPTE Document Syncbase</em>, here
+ referred to as the SMPTE time base <span class=
+ "strong"><code>S</code></span>.</p><a id=
+ "time-expressions-and-smpte-time" name=
+ "time-expressions-and-smpte-time"></a>
+
+ <table class="semantics">
+ <caption>
+ TTML Semantics – Time Expressions and SMPTE Time Relationship
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <blockquote>
+ <p><br>
+ <code>S = (countedFrames - droppedFrames + (subFrames /
+ subFrameRate)) / effectiveFrameRate</code><br>
+ <br>
+ where<br>
+ <br>
+ <code>countedFrames = (3600 * hours + 60 * minutes + seconds)
+ * frameRate + frames</code><br>
+ <br>
+ <code>hours</code>, <code>minutes</code>,
+ <code>seconds</code>, <code>frames</code>,
+ <code>subFrames</code> components are extracted from time
+ expression if present, or zero if not present;<br>
+ <br>
+ <code>droppedFrames</code> is computed as follows:<br>
+ <br>
+ 1. let <em>dropMode</em> be the computed value of the
+ <code>ttp:dropMode</code> parameter;<br>
+ <br>
+ 2. if <em>dropMode</em> is <code>dropNTSC</code>, let
+ <code>droppedFrames = (hours * 54 + floor(minutes -
+ minutes/10)) * 2</code>;<br>
+ <br>
+ 3. otherwise, if <em>dropMode</em> is <code>dropPAL</code>,
+ let <code>droppedFrames = (hours * 27 + floor(minutes/2 -
+ minutes/20)) * 4</code>;<br>
+ <br>
+ 4. otherwise, let <code>droppedFrames = 0</code>;<br>
+ <br>
+ <code>frameRate</code> is the computed value of the
+ <code>ttp:frameRate</code> parameter;<br>
+ <br>
+ <code>subFrameRate</code> is the computed value of the
+ <code>ttp:subFrameRate</code> parameter;<br>
+ <br>
+ and <code>effectiveFrameRate</code> (in frames per second) is
+ <code>frameRate * frameRateMultipler</code> where
+ <code>frameRate</code> is the computed value of the
+ <code>ttp:frameRate</code> parameter and
+ <code>frameRateMultipler</code> is the computed value of the
+ <code>ttp:frameRateMultiplier</code> parameter.<br>
+ <br>
+ Notwithstanding the above, if a time expression contains a
+ frame code that is designated as dropped according to
+ <a href="#parameter-attribute-dropMode"><b>6.2.3
+ ttp:dropMode</b></a>, then that time expression should be
+ considered to be invalid for purposes of validation
+ assessment.<br></p>
+ </blockquote>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The SMPTE time base <span class="strong"><code>S</code></span> is
+ related to the media time base <span class=
+ "strong"><code>M</code></span> as follows:</p><a id=
+ "smpte-time-and-media-time" name="smpte-time-and-media-time"></a>
+
+ <table class="semantics">
+ <caption>
+ TTML Semantics – SMPTE Time and Media Time Relationship
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <blockquote>
+ <p><br>
+ <code>M = referenceBegin + S</code><br>
+ <br>
+ where <code>referenceBegin</code> is determined according to
+ whether the nearest ancestor time container employs parallel
+ (<code>par</code>) or sequential (<code>seq</code>)
+ semantics: if parallel or if sequential and no prior sibling
+ timed element exists, then <code>referenceBegin</code> is the
+ SMPTE time that corresponds to the beginning of the nearest
+ ancestor time container or zero (0) if this time container is
+ the <em>Root Temporal Extent</em>; otherwise, if sequential
+ and a prior sibling timed element exists, then
+ <code>referenceBegin</code> is the SMPTE time that
+ corresponds to the active end of the immediate prior sibling
+ timed element;<br></p>
+ </blockquote>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Given the derived media time base as described above, then media
+ time base <span class="strong"><code>M</code></span> is related to the
+ local real time <span class="strong"><code>R</code></span> as described
+ in <a href="#time-expression-semantics-media"><b>N.2 Media Time
+ Base</b></a> above.</p>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="common-styling" name="common-styling"></a>O Common Caption
+ Style Examples (Non-Normative)</h2>
+
+ <p>This section provides examples of the following common caption styles
+ using TTML Content to obtain the desired behavior:</p>
+
+ <ul>
+ <li>
+ <p>Pop-On Captions</p>
+ </li>
+
+ <li>
+ <p>Roll-Up Captions</p>
+ </li>
+
+ <li>
+ <p>Paint-On Captions</p>
+ </li>
+ </ul>
+
+ <div class="div2">
+ <h3><a id="pop-on-example" name="pop-on-example"></a>O.1 Pop-On Caption
+ Example</h3>
+
+ <p>An example of paint-on captions. In this example, two regions are
+ targeted with alternating, paint-on content, where content is timed
+ using explicit sequential time containment rules. Each paragraph is
+ non-overlapping in time and appears in the same single row of its
+ targeted region.</p><a id="pop-on-example-1-s" name=
+ "pop-on-example-1-s"></a>
+
+ <table class="example">
+ <caption>
+ Example – Pop-On Captions
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 1c"/>
+ <region xml:id="r2" tts:color="yellow" tts:origin="10c 8c" tts:extent="40c 1c"/>
+ </layout>
+ </head>
+ <body>
+ <div timeContainer="seq">
+ <p region="r1" dur="4s">Lorem ipsum dolor sit</p
+ <p region="r2" dur="4s">Amet consectetur adipiscing elit</p>
+ <p region="r1" dur="6s">Sed do eiusmod tempor incididunt labore</p>
+ <p region="r2" dur="4s">et dolore magna aliqua</p>
+ <p region="r1" dur="7s">Ut enim ad minim veniam quis, nostrud</p>
+ </div>
+ </body>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div2">
+ <h3><a id="roll-up-example" name="roll-up-example"></a>O.2 Roll-Up
+ Caption Example</h3>
+
+ <p>An example of roll-up captions. Roll-up effects are achieved by
+ using overlapped time intervals, where zero, one, or two paragraphs
+ appear in the region at a given time. Each paragraph consumes a single
+ row (line) of the region since no wrapping occurs. Depending on whether
+ a presentation processor supports <a href=
+ "#semantics-smooth-scrolling-recommendation">smooth scrolling between
+ adjacent synchronic intermediate document instances</a>, the
+ transitions, i.e., moving an old paragraph (line) out and a new
+ paragraph (line) in, will be either smooth or discrete.</p><a id=
+ "roll-up-example-1-s" name="roll-up-example-1-s"></a>
+
+ <table class="example">
+ <caption>
+ Example – Roll-Up Captions
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 2c"/>
+ </layout>
+ </head>
+ <body>
+ <div region="r1">
+ <p begin="0s" end="8s">Lorem ipsum dolor sit</p
+ <p begin="4s" end="12s">Amet consectetur adipiscing elit</p>
+ <p begin="8s" end="18s">Sed do eiusmod tempor incididunt labore</p>
+ <p begin="14s" end="25s">et dolore magna aliqua</p>
+ <p begin="18s" end="29s">Ut enim ad minim veniam quis, nostrud</p>
+ </div>
+ </body>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="div2">
+ <h3><a id="paint-on-example" name="paint-on-example"></a>O.3 Paint-On
+ Caption Example</h3>
+
+ <p>An example of paint-on captions. Paint-on effects are achieved by
+ using timed <code>span</code> elements in order to expose (paint)
+ inline text units, e.g., words, over some time interval. Here, five
+ paragraphs have their individual words sequentially timed in order to
+ paint one new word every second. The end of the active duration of each
+ inline element coincides with the end of the <code>div</code> element's
+ parallel time container, so that once a word is painted, it remains in
+ the region (on its rendered line) until the <code>div</code> element's
+ active time interval lapses.</p><a id="paint-on-example-1-s" name=
+ "paint-on-example-1-s"></a>
+
+ <table class="example">
+ <caption>
+ Example – Paint-On Captions
+ </caption>
+
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+<tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 5c"/>
+ </layout>
+ </head>
+ <body>
+ <div begin="0s" end="25s">
+ <p>
+ <span begin="0s">Lorem</span>
+ <span begin="1s">ipsum</span>
+ <span begin="2s">dolor</span>
+ <span begin="3s">sit</span>
+ </p>
+ <p>
+ <span begin="4s">Amet</span>
+ <span begin="5s">consectetur</span>
+ <span begin="6s">adipiscing</span>
+ <span begin="7s">elit</span>
+ </p>
+ <p>
+ <span begin="8s">Sed</span>
+ <span begin="9s">do</span>
+ <span begin="10s">eiusmod</span>
+ <span begin="11s">tempor</span>
+ <span begin="12s">incididunt </span>
+ <span begin="13s">labore</span>
+ </p>
+ <p>
+ <span begin="14s">et</span>
+ <span begin="15s">dolore</span>
+ <span begin="16s">magna</span>
+ <span begin="17s">aliqua</span>
+ </p>
+ <p>
+ <span begin="18s">Ut</span>
+ <span begin="19s">enim</span>
+ <span begin="20s">ad</span>
+ <span begin="21s">minim</span>
+ <span begin="22s">veniam</span>
+ <span begin="23s">quis,</span>
+ <span begin="24s">nostrud</span>
+ </p>
+ </div>
+ </body>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+ <div class="div1">
+ <h2><a id="acknowledgments" name="acknowledgments"></a>P Acknowledgments
+ (Non-Normative)</h2>
+
+ <p>The editor acknowledges the current and former members of the Timed
+ Text Working Group, the members of other W3C Working Groups, and industry
+ experts in other forums who have contributed directly or indirectly to
+ the process or content of this document as follows:</p>
+
+ <p>Glenn Adams, Thomas Bause-Mason, John Birch, Kees Blom, Bert Bos, Brad
+ Botkin, Dick Bulterman, Frans de Jong, Mike Dolan, Martin Dürst, Donald
+ Evans, Geoff Freed, Al Gilman, Giles Godart-Brown, Markus Gylling, Markku
+ Hakkinen, Sean Hayes, Erik Hodge, Philipp Hoschka, Suzi Hyun, Michael
+ Jordan, Masahiko Kaneko, Courtney Kennedy, George Kerscher, David Kirby,
+ Andrew Kirkpatrick, Philippe Le Hégaret, Chris Lilley, Pierre-Anthony
+ Lemieux, Jason Livingston, Monica Martin, Thierry Michel, Matthew May,
+ Frank Olivier, Soohong Daniel Park, Silvia Pfeiffer, Brian Raymor, David
+ Ronca, Patrick Schmitz, David Singer, Craig Smithpeters, Andreas Tai, and
+ Mohamed Zergaoui.</p>
+
+ <p>The editor wishes to especially acknowledge the following
+ contributions by members: Micheal Dolan (SMPTE time codes, streaming;
+ SMPTE liaison), David Kirby (introductory example document; SMPTE time
+ codes, descriptive metadata; EBU/AAF liaison), Geoff Freed (styling and
+ example images of style properties), Sean Hayes (advanced profile
+ concepts, including applicative timing), Eric Hodge (timing), Thierry
+ Michel (metadata), and Dave Singer (animation, scrolling).</p>
+
+ <p>The Working Group dedicates this specification to our colleague David
+ Kirby.</p>
+ </div>
+ </div>
+</body>
+</html>