--- a/ttml2/spec/ttml2.html Mon Nov 11 06:01:38 2013 +0800
+++ b/ttml2/spec/ttml2.html Thu Nov 14 15:56:57 2013 +0800
@@ -80,9 +80,9 @@
.strong { font-weight: bold }
.reqattr { font-weight: bold }
.optattr { font-style: italic }
-</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2013/09/06 04:01:47 $<div id="revisions"></div><div class="head">
+</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2013/09/19 20:35:12 $<div id="revisions"></div><div class="head">
<h1><a id="title"></a>Timed Text Markup Language 2 (TTML2)</h1>
-<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2013/09/06 04:01:47 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
+<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2013/09/19 20:35:12 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
<a href="ttml2.html">ttml2.html</a>
</dd><dt>Latest version:</dt><dd><a href="http://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html?content-type=text/html;charset=utf-8">http://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html?content-type=text/html;charset=utf-8</a></dd><dt>Previous version:</dt><dd>
<a href="http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/">http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/</a>
@@ -419,11 +419,11 @@
H <a href="#other-references">Other References</a> (Non-Normative)<br>
I <a href="#requirements">Requirements</a> (Non-Normative)<br>
J <a href="#derivation">Vocabulary Derivation</a> (Non-Normative)<br>
- J.1 <a href="#d3e21921">Element Derivation</a><br>
- J.2 <a href="#d3e22438">Attribute Derivation</a><br>
+ J.1 <a href="#d3e21976">Element Derivation</a><br>
+ J.2 <a href="#d3e22493">Attribute Derivation</a><br>
K <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br>
- K.1 <a href="#d3e23431">Requirements</a><br>
- K.2 <a href="#d3e23595">Guidelines</a><br>
+ K.1 <a href="#d3e23486">Requirements</a><br>
+ K.2 <a href="#d3e23650">Guidelines</a><br>
L <a href="#streaming">Streaming TTML Content</a> (Non-Normative)<br>
M <a href="#concrete-encoding">Concrete Encoding</a><br>
N <a href="#time-expression-semantics">Time Expression Semantics</a><br>
@@ -2407,7 +2407,8 @@
then the border width must be interpreted as if a width of
<code>medium</code> were specified.</p><p>If a computed value of the border width associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed border width and the supported border width is minimized.</p></div><p>If no border style is specified in the value of the <code>tts:border</code> property,
+the computed border width and the supported border width is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value most distant from 0, i.e., the greatest border width, is used.</p></div><p>If no border style is specified in the value of the <code>tts:border</code> property,
then the border style must be interpreted as if a style of
<code>none</code> were specified.</p><p>If a computed value of the border style associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the value <code>solid</code>.</p><p>If no border color is specified in the value of the <code>tts:border</code> property,
@@ -2633,7 +2634,8 @@
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 computed value of the property associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed extent and the supported extent is minimized.</p></div><p>The <code>tts:extent</code> style is illustrated by the following example.</p><a id="style-attribute-extent-example-1"></a><table class="example"><caption>Example Fragment – Extent</caption><tbody><tr><td>
+the computed extent and the supported extent is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value most distant from [0,0], i.e., of greatest extent, is used.</p></div><p>The <code>tts:extent</code> style is illustrated by the following example.</p><a id="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>/>
@@ -2719,7 +2721,9 @@
each character child of a <code>p</code> element is considered to be enclosed in an anonymous
span.</p><p>If a computed value of the property associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed font size and the supported font size is minimized.</p></div><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 computed font size and the supported font size is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value most distant from 0 (single length specification) or [0,0] (two length specifications) is used,
+i.e., the largest font size, is used.</p></div><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.12 <length></b></a>.
When a single <length> is expressed using cell units, then it refers to the height of
the <a href="#terms-computed-cell-size">computed cell size</a>.
@@ -2837,7 +2841,8 @@
<a href="#semantics-region-layout-step-1"><b>9.3.3 Intermediate Synchronic Document Construction</b></a>.</p><p>If specified as a <a href="#style-value-length"><length></a>, then the length must
be non-negative.</p><p>If a computed value of the property associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed line height and the supported line height is minimized.</p></div><p>The <code>tts:lineHeight</code> style is illustrated by the following example.</p><a id="style-attribute-lineHeight-example-1"></a><table class="example"><caption>Example Fragment – Line Height</caption><tbody><tr><td>
+the computed line height and the supported line height is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value most distant from 0, i.e., the largest line height, is used.</p></div><p>The <code>tts:lineHeight</code> style is illustrated by the following example.</p><a id="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"/>
@@ -2929,7 +2934,8 @@
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 computed value
of the style property must be considered to be the same as the origin of the <a href="#terms-root-container-region">root container region</a>.</p><p>If a computed value of the property associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed origin and the supported origin is minimized.</p></div><p>The <code>tts:origin</code> style is illustrated by the following example.</p><a id="style-attribute-origin-example-1"></a><table class="example"><caption>Example Fragment – Origin</caption><tbody><tr><td>
+the computed origin and the supported origin is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value least distant from [0,0], i.e., closest to the coordinate space origin, is used.</p></div><p>The <code>tts:origin</code> style is illustrated by the following example.</p><a id="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>/>
@@ -3035,7 +3041,8 @@
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 computed value of the property associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed padding and the supported padding is minimized.</p></div><p>The <code>tts:padding</code> style is illustrated by the following example.</p><table border="1" class="ednote" summary="Editorial note: Enhance Padding Example"><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Enhance Padding Example</b></td><td align="right" valign="top">2013-08-24</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">Enhance padding example to demonstrate padding on content elements.</td></tr></table><p></p><a id="style-attribute-padding-example-1"></a><table class="example"><caption>Example Fragment – Padding</caption><tbody><tr><td>
+the computed padding and the supported padding is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value most distant from 0, i.e., the greatest padding, is used.</p></div><p>The <code>tts:padding</code> style is illustrated by the following example.</p><table border="1" class="ednote" summary="Editorial note: Enhance Padding Example"><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Enhance Padding Example</b></td><td align="right" valign="top">2013-08-24</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">Enhance padding example to demonstrate padding on content elements.</td></tr></table><p></p><a id="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"/>
@@ -3467,7 +3474,8 @@
<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 computed value of the property associated with this attribute is not supported,
then a <a href="#terms-presentation-processor">presentation processor</a> must use the closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed z-index and the supported z-index is minimized.</p></div><p>The <code>tts:zIndex</code> style is illustrated by the following example.</p><a id="style-attribute-zIndex-example-1"></a><table class="example"><caption>Example Fragment – Z Index</caption><tbody><tr><td>
+the computed z-index and the supported z-index is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value least distant from 0, i.e., closest to the base stack level of the current stacking context, is used.</p></div><p>The <code>tts:zIndex</code> style is illustrated by the following example.</p><a id="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"/>
@@ -3544,7 +3552,8 @@
less than 0, or greater than 1.</p><p>If a <a href="#terms-presentation-processor">presentation processor</a> does not support a specific,
valid opacity value, then it must interpret it as being equal to the
closest supported value.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed opacity and the supported opacity is minimized.</p></div></div><div class="div3">
+the computed opacity and the supported opacity is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value most distant from 0, i.e., the greatest opacity, is used.</p></div></div><div class="div3">
<h4><a id="style-value-border-color"></a>8.3.2 <border-color></h4><p>A <border-color> expression is used to express the color of one
or more borders.</p><a id="border-color-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <border-color></caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -3619,7 +3628,8 @@
used here to the YUV color space for rendition on a television device.</p></div><p>If a <a href="#terms-presentation-processor">presentation processor</a> 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 class="note"><p class="prefix"><b>Note:</b></p><p>In this context, the phrase <em>closest supported value</em> means the value for which the Euclidean distance between
-the computed color or alpha and the supported color or alpha in the RGB color space is minimized.</p></div></div><div class="div3">
+the computed color and alpha and the supported color and alpha in the RGB color space is minimized. If there are multiple closest supported values equally distant from
+the computed value, then the value least distant from opaque black <code>rgb(0,0,0,255)</code>, i.e., the closest to opaque black, is used.</p></div></div><div class="div3">
<h4><a id="style-value-digit"></a>8.3.6 <digit></h4><p>A <digit> is used to express integers and other types of numbers or tokens.</p><a id="digit-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <digit></caption><tbody><tr><td>
<div class="exampleInner"><pre>
<digit>
@@ -4921,7 +4931,11 @@
</animate>
</pre></div>
</td></tr></tbody></table><p></p><table border="1" class="ednote" summary="Editorial note: Change xlink:href to href"><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Change xlink:href to href</b></td><td align="right" valign="top">2013-09-05</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">The SVG WG is deprecating xlink:href, in favor of using an unqualified href attribute. See
-<a href="http://www.w3.org/Graphics/SVG/WG/wiki/Href">SVG Wiki: Href</a>. We should probably just specify the use of unqualified href.</td></tr></table><p>Except for the constraints or variations enumerated below, the semantics of the <code>animate</code> element and its attributes
+<a href="http://www.w3.org/Graphics/SVG/WG/wiki/Href">SVG Wiki: Href</a>. We should probably just specify the use of unqualified href.</td></tr></table><p></p><table border="1" class="ednote" summary="Editorial note: Remove @accumulate"><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Remove @accumulate</b></td><td align="right" valign="top">2013-11-13</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">CSS Animation does not support SVG @accumulate functionality. Consequently, it should be removed from TTML2. It can be re-introduced in
+the feature when CSS adds support for accumulate semantics.</td></tr></table><p></p><table border="1" class="ednote" summary="Editorial note: Remove @additive"><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Remove @additive</b></td><td align="right" valign="top">2013-11-13</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">CSS Animation does not support SVG @additive functionality. Consequently, it should be removed from TTML2. It can be re-introduced in
+the feature when CSS adds support for additive semantics.</td></tr></table><p></p><table border="1" class="ednote" summary="Editorial note: Remove @repeatDur"><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Remove @repeatDur</b></td><td align="right" valign="top">2013-11-13</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">CSS Animation does not support a repeat duration parameter on an animation; however, it supports non-integer values of
+repeat count (via <code>animation-iteration-count</code>). Since the duration of a single animation iteration is known, it is
+straightforward to map @repeatDur to an appropriate non-integer repeat count.</td></tr></table><p></p><table border="1" class="ednote" summary="Editorial note: Remove @by, @from, @to"><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Remove @by, @from, @to</b></td><td align="right" valign="top">2013-11-14</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">Use of @by, @from, and @to can be expressed with @value only.</td></tr></table><p></p><table border="1" class="ednote" summary="Editorial note: Extend style property expression syntax to support multi-valued expressions."><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Extend style property expression syntax to support multi-valued expressions.</b></td><td align="right" valign="top">2013-11-14</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">Animate will multi-valued style property expressions.</td></tr></table><p>Except for the constraints or variations enumerated below, the semantics of the <code>animate</code> element and its attributes
enumerated above are defined to be those specified by <a href="#svg11">[SVG 1.1]</a>, §19.2.12:</p><ol class="enumar"><li><p>For the purpose of interpreting an <code>attributeName</code> attribute, an <code>attributeType</code>
with a value of <code>XML</code> applies, about which see <a href="#svg11">[SVG 1.1]</a>, §19.2.5.</p></li><li><p>If no <code>accumulate</code> attribute is specified, then an <em>accumlate</em> value of <code>none</code> applies.</p></li><li><p>If no <code>additive</code> attribute is specified, then an <em>additive</em> value of <code>replace</code> applies.</p></li><li><p>If no <code>calcMode</code> attribute is specified, then a <em>calcMode</em> value of <code>linear</code> applies.</p></li><li><p>If no <code>fill</code> attribute is specified, then a <em>fill</em> value of <code>remove</code> applies.</p></li><li><p>If an <code>xlink:href</code> attribute is specified, then the <code>animate</code> element must be a child of an
<a href="#animation-vocabulary-animation">animation</a> element; conversely, if an <code>animate</code> element is a child of
@@ -5084,11 +5098,12 @@
<calcMode>
: "discrete"
| "linear"
- | "displaced"
+ | "paced"
| "spline"
</pre></div>
</td></tr></tbody></table><p>The semantics of a <calcMode> expression are those defined by
-<a href="#svg11">[SVG 1.1]</a>, §19.2.9.</p></div><div class="div3">
+<a href="#svg11">[SVG 1.1]</a>, §19.2.9.</p><p></p><table border="1" class="ednote" summary="Editorial note: Consider removing support for paced."><tr class="ednote-r1"><td align="left" valign="top"><b>Editorial note: Consider removing support for paced.</b></td><td align="right" valign="top">2013-11-14</td></tr><tr class="ednote-r2"><td colspan="2" align="left" valign="top">CSS Animations doesn't directly support paced values; however, it is possible to translate a paced timing function to a linear function
+with explicit @keyTimes.</td></tr></table></div><div class="div3">
<h4><a id="animation-value-fill"></a>11.3.6 <fill></h4><p>A <fill> expression is used to determine effect of the animation after the active end of the animation.</p><a id="fill-syntax"></a><table class="syntax"><caption>Syntax Representation – <fill></caption><tbody><tr><td>
<div class="exampleInner"><pre>
<fill>
@@ -7111,7 +7126,7 @@
<h2><a id="derivation"></a>J Vocabulary Derivation (Non-Normative)</h2><p>This appendix provides information about the derivation of TTML
vocabulary, separately describing derivation of elements and
attributes.</p><div class="div2">
-<h3><a id="d3e21921"></a>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
+<h3><a id="d3e21976"></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
@@ -7168,7 +7183,7 @@
and <code>@version</code> on the <code>svg:svg</code> element.</p></li><li><p>Conceptually derived from existing <code>tt:layout</code> element,
which is a generic container for layout specifications, but for use
in defining animation specifications that apply to targetted elements.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e22438"></a>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table J-2 – Attributes</b></a>
+<h3><a id="d3e22493"></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
@@ -7260,9 +7275,9 @@
<h2><a id="qa"></a>K QA Framework Compliance (Non-Normative)</h2><p>This appendix specifies the compliance of this specification with the
requirements and guidelines defined by <a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/">QA
Framework Specifications Guidelines</a> <a href="#qaf-sg">[QAF SG]</a>.</p><div class="div2">
-<h3><a id="d3e23431"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
+<h3><a id="d3e23486"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
clause</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-scope-principle">Requirement 02: Define the scope.</a></td><td><a href="#intro">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#implement-principle">Requirement 03: Identify who or what will implement the specification.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-norm-principle">Requirement 04: Make a list of normative references.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-principle">Requirement 05: Define the terms used in the normative parts of the specification.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conf-label-principle">Requirement 06: Create conformance labels for each part of the conformance model.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#consistent-style-principle">Requirement 07: Use a consistent style for conformance requirements and explain how to distinguish them.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#req-opt-conf-principle">Requirement 08: Indicate which conformance requirements are mandatory, which are recommended, and which are optional.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-mandatory-principle">Requirement 09: If the technology is subdivided, then indicate which subdivisions are mandatory for conformance.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdiv-constraints-principle">Requirement 10: If the technology is subdivided, then address subdivision constraints.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#likehood-extension-principle">Requirement 11: Address Extensibility.</a></td><td><a href="#doctypes">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#deprecated-feature-principle">Requirement 12: Identify deprecated features.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#degree-support-principle">Requirement 13: Define how each class of product handles each deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>No feature is deprecated by this version of this specification.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e23595"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
+<h3><a id="d3e23650"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
specific clauses or sections are cited.</p></li><li><p>See also <a href="#derivation"><b>J Vocabulary Derivation</b></a>.</p></li><li><p>Test assertions and test suites will be provided prior to entering
Proposed Recommendation (PR) phase.</p></li><li><p>See criterion #3 in <a href="#conformance-processor"><b>3.2 Processor Conformance</b></a> and definition of
TTML <a href="#doctypes">Abstract Document Instance</a>.</p></li><li><p>No feature is deprecated or obsoleted by this version of this specification.</p></li></ol></div></div></div><div class="div1">