--- a/ttml2/spec/ttml2.html Tue Sep 23 12:57:41 2014 -0600
+++ b/ttml2/spec/ttml2.html Tue Sep 23 12:57:58 2014 -0600
@@ -82,9 +82,9 @@
.obsoleted { background-color: #f26d7d }
.reqattr { font-weight: bold }
.optattr { font-style: italic }
-</style><link rel="stylesheet" type="text/css" href="https://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2014/09/23 04:19:44 $<div id="revisions"></div><div class="head">
+</style><link rel="stylesheet" type="text/css" href="https://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2014/09/23 18:57:41 $<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: 2014/09/23 04:19:44 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
+<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2014/09/23 18:57:41 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
<a href="ttml2.html">ttml2.html</a>
</dd><dt>Latest version:</dt><dd><a href="https://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html?content-type=text/html;charset=utf-8">https://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>
@@ -448,11 +448,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="#d3e27280">Element Derivation</a><br>
- J.2 <a href="#d3e27797">Attribute Derivation</a><br>
+ J.1 <a href="#d3e27291">Element Derivation</a><br>
+ J.2 <a href="#d3e27808">Attribute Derivation</a><br>
K <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br>
- K.1 <a href="#d3e28790">Requirements</a><br>
- K.2 <a href="#d3e28954">Guidelines</a><br>
+ K.1 <a href="#d3e28801">Requirements</a><br>
+ K.2 <a href="#d3e28965">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>
@@ -1802,7 +1802,6 @@
<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>
@@ -1863,13 +1862,10 @@
: designators
| "all(" designators ")"
| "any(" designators ")"
-
designators
: designator (lwsp designator)*
-
designator
: xsd:anyURI
-
lwsp
: ( ' ' | '\t' | '\n' | '\r' )+
</pre></div>
@@ -1976,7 +1972,6 @@
<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>
@@ -2117,7 +2112,6 @@
<div class="exampleInner"><pre>
ttp:mediaOffset
: sign? <a href="#timing-value-timeExpression"><timeExpression></a> // restricted to <em>offset-time</em> form
-
sign
: "+" | "-"
</pre></div>
@@ -2164,7 +2158,6 @@
<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>
@@ -2187,7 +2180,6 @@
<div class="exampleInner"><pre>
<span class="deprecated">ttp:profile</span>
: designator
-
designator
: xsd:anyURI
</pre></div>
@@ -2210,13 +2202,10 @@
: designators
| "all(" designators ")"
| "any(" designators ")"
-
designators
: designator (lwsp designator)*
-
designator
: xsd:anyURI
-
lwsp
: ( ' ' | '\t' | '\n' | '\r' )+
</pre></div>
@@ -4203,19 +4192,14 @@
| "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>
@@ -4247,39 +4231,29 @@
<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>
@@ -4354,29 +4328,21 @@
<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"
@@ -5538,33 +5504,24 @@
<timeExpression>
: clock-time
| offset-time
-
clock-time
: hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?
-
offset-time
- : time-count fraction? metric
-
+ : 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
@@ -5590,7 +5547,9 @@
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.19 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">
+when the <code>clock</code> time base applies.</p><p>If a <timeExpression> is expressed in terms of a
+<em>offset-time</em> and no <em>metric</em> is specified, then it is to be treated as
+if a metric of <code>s</code> (seconds) were specified.</p></div></div><div class="div2">
<h3><a id="timing-time-intervals"></a>10.4 Time Intervals</h3><p>The semantics of time containment, durations, and intervals defined by
<a href="#smil3">[SMIL 3.0]</a> apply to the interpretation of like-named timed elements and timing
vocabulary defined by this specification, given the following
@@ -5862,24 +5821,18 @@
<div class="exampleInner"><pre>
<keySplines>
: control [ lwsp? ";" lwsp? control ]*
-
control
: x1 comma? y1 comma? x2 comma? y2
-
x1, x2, y1, y2
: coordinate
-
coordinate // 0 ≥ <em>value</em> ≥ 1
: whole
| whole "." fraction
| "." fraction
-
whole, fraction
: <a href="#style-value-digit"><digit></a>+
-
comma
: ","
-
lwsp
: ( ' ' | '\t' | '\n' | '\r' )+
</pre></div>
@@ -5891,15 +5844,12 @@
<div class="exampleInner"><pre>
<keyTimes>
: time [ lwsp? ";" lwsp? time ]*
-
time // 0 ≥ <em>value</em> ≥ 1
: whole
| whole "." fraction
| "." fraction
-
whole, fraction
: <a href="#style-value-digit"><digit></a>+
-
lwsp
: ( ' ' | '\t' | '\n' | '\r' )+
</pre></div>
@@ -5910,7 +5860,6 @@
<repeatCount>
: count
| "indefinite"
-
count:
: <a href="#style-value-digit"><digit></a>+ // <em>value</em> > 0
</pre></div>
@@ -6068,7 +6017,6 @@
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"></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>
@@ -6155,7 +6103,6 @@
<div class="exampleInner"><pre>
ttm:role
role ( <em>S</em> role )*
-
role
: "action"
| "caption"
@@ -6175,10 +6122,8 @@
| "title"
| "transcription"
| extension-role
-
extension-role
: "x-" token-char+
-
token-char
: { XML NameChar } // XML 1.1 Production [4a]
</pre></div>
@@ -6295,9 +6240,9 @@
a <a href="#timing-value-timeExpression"><timeExpression></a>, and, further, is restricted to use a metric of
<code>s</code> (seconds),
<code>f</code> (frames),
-<code>t</code> (ticks), or, exceptionally, may elide the metric, in which case <code>s</code> seconds is implied. This
+<code>t</code> (ticks), or may omit the metric, in which case <code>s</code> seconds is implied. This
begin time is expressed as an offset from the begin time of the <a href="#terms-root-temporal-extent">root temporal extent</a>
-of the source TTML document from which this <a href="#isd-vocabulary-isd"><code>isd:isd</code></a> element was derived.</p><p>An <code>end</code> attribute must be similarlly specified, where the same constraints (and exceptional use of no metric) apply.
+of the source TTML document from which this <a href="#isd-vocabulary-isd"><code>isd:isd</code></a> element was derived.</p><p>An <code>end</code> attribute must be similarlly specified, where the same constraints apply.
This end time is expressed as an offset from the begin time of the <a href="#terms-root-temporal-extent">root temporal extent</a>
of the source TTML document from which this <a href="#isd-vocabulary-isd"><code>isd:isd</code></a> element was derived.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>Expressed in the terminology of <a href="#smil3">[SMIL 3.0]</a>, the values of these <code>begin</code> and <code>end</code> attributes
correspond to the resolved begin and end times of the <em>active duration</em> with respect to the <em>document begin</em>.</p></div><p>An <a href="#content-attribute-lang"><code>xml:lang</code></a> attribute must be specified on the
@@ -6387,13 +6332,10 @@
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
@@ -7363,14 +7305,11 @@
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
@@ -7983,7 +7922,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="d3e27280"></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="d3e27291"></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
@@ -8040,7 +7979,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 targeted elements.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e27797"></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="d3e27808"></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
@@ -8132,9 +8071,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="d3e28790"></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="d3e28801"></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="d3e28954"></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="d3e28965"></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">