Movatterモバイル変換


[0]ホーム

URL:


W3C

Timed Text Markup Language 1 (TTML1) (Third Edition)

W3C Recommendation 08 November 2018, edited in place 20 August 2020

This version:
https://www.w3.org/TR/2018/REC-ttml1-20181108/
Latest editor's draft:
https://w3c.github.io/ttml1/index.html
Latest version:
https://www.w3.org/TR/ttml1/
Previous version:
https://www.w3.org/TR/2018/PR-ttml1-20181004/
Editors:
Glenn Adams, Skynav
Pierre-Anthony Lemieux, MovieLabs
Contributing Authors:
Michael Dolan, Invited Expert
Geoff Freed, WGBH National Center for Accessible Media
Sean Hayes, Microsoft
Erik Hodge, RealNetworks
David Kirby, British Broadcasting Corporation (BBC)
Nigel Megitt, British Broadcasting Corporation (BBC)
Thierry Michel, W3C
Dave Singer, Apple Computer
Andreas Tai, Invited Expert

Please refer to theerrata for this document, which may include normative corrections.

See alsotranslations.

Copyright © 2018 W3C® (MIT,ERCIM,Keio,Beihang). W3Cliability,trademark anddocument use rules apply.


Abstract

This document specifies Timed Text Markup Language (TTML), Version 1, also known as TTML1, interms of a vocabulary and semantics thereof.

The Timed Text Markup Language is a content type that representstimed text media for the purpose of interchange among authoringsystems. Timed text is textual information that is intrinsically orextrinsically associated with timing information.

It is intended to be usedfor the purpose of transcoding or exchanging timed text informationamong legacy distribution content formats presently in use forsubtitling and captioning functions.

In addition to being used for interchange among legacy distribution contentformats, TTML Content may be used directly as a distribution format,for example, providing a standard content format to reference from a<track>element in an HTML5 document, or a<text> or<textstream> media element in a[SMIL 2.1] document.

This edition of the Timed Text Markup Language (TTML) 1.0[TTML10] clarifies ambiguities and corrects errors identified in thepreviousedition, which this edition supersedes. No feature is added or removed in this edition.

Status of This Document

Status Update (20 August 2020): In the document header, the "Latest recommendation" link (pointing to the previous Recommendation "Timed Text Markup Language 1 (TTML1) (Second Edition)") was removed. In the list of Editors and the section P Acknowledgements, name of "Michael Dolan" (SMPTE time codes, streaming; SMPTE liaison) was misspelled or shortened and corrected.

This section describes the status of this document at thetime of its publication. Other documents may supersede this document.A list of current W3C publications and the latest revision of thistechnical report can be found in theW3C technical reports index athttps://www.w3.org/TR/.

This document was published by theTimed Text Working Group as a Recommendation.

GitHub Issues are preferred for discussion of this specification. Alternatively, you can send comments to our mailing list. Please send them topublic-tt@w3.org (subscribe,archives) with[ttml1] at the start of your email's subject.

Please see the Working Group'simplementation report.

Substantive changes applied since theprevious version of this specification are listed atsubstantive-changes-summary.txt.

For convenience, a diff between this and theprevious edition is offered at theW3C HTML Diff service.

This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and isendorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from anotherdocument. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespreaddeployment. This enhances the functionality and interoperability of the Web.

This document was produced by a group operating under theW3C Patent Policy. W3C maintains apublic list of any patentdisclosures made in connection with the deliverables of the group;that page also includes instructions for disclosing a patent. Anindividual who has actual knowledge of a patent which the individualbelieves containsEssentialClaim(s) must disclose the information in accordance withsection6 of the W3C Patent Policy.

This document is governed by the1 February 2018 W3C Process Document.

1 Introduction

Unless specified otherwise, this section and its sub-sections are non-normative.

The Timed Text Markup Language (TTML) Version 1, also referred to as TTML1,provides a standardized representation of a particular subset oftextual information with which stylistic, layout, and timing semantics are associated byan author or an authoring system for the purpose of interchange and processing.

TTML is expressly designed to meet only a limited set of requirementsestablished by[TTAF1-REQ], and summarized inI Requirements. In particular, only those requirements which service theneed of performing interchange with existing, legacy distribution systems aresatisfied.

In addition to being used for interchange among legacy distribution contentformats, TTML Content may be used directly as a distribution format, providing, forexample, a standard content format to reference from a<track>element in an HTML5 document, or a<text> or<textstream> media element in a[SMIL 2.1] document. Certain properties of TTML supportstreamability of content, as described inL Streaming TTML Content.

Note:

While TTML is not expressly designed for direct (embedded) integration into anHTML or a SMIL document instance, such integration is not precluded.

Note:

In some contexts of use, it may be appropriate to employanimated content to depict sign language representations of the same contentas expressed by a Timed TextDocument Instance. This use case is notexplicitly addressed by TTML mechanisms, but may be addressed by someexternal multimedia integration technology, such as SMIL.

Note:

In the first edition of this specification, the version number1.0 wasused to refer to this version of TTML. In this second edition, this version number is simplifiedto1 as a result of a determination to call the next (future) version2instead of1.1.

Note:

In previous drafts of this specification, TTML was referred to as DFXP (DistributionFormat Exchange Profile). This latter term is retained for historical reasons incertain contexts, such as profile names and designators, and the short namettaf1-dfxp used in older URLs to refer to this specification. Starting inthis edition of the first version of TTML, the short namettml1 will beused, and subsequent versions of TTML are expected to use short names ofttml2, etc., with integer version numbers.

1.1 System Model

Use of TTML is intended to function in a wider context of Timed TextAuthoring and Distribution mechanisms that are based upon the systemmodel depicted inFigure 1 – System Model, wherein the Timed Text Markup Languageserves as a bidirectional interchange format among a heterogeneous collection ofauthoring systems, and as a unidirectional interchange format to aheterogeneous collection of distribution formats after undergoing transcodingor compilation to the target distribution formats as required, and where oneparticular distribution format is TTML (labeled as "DFXP" in the figure).

Figure 1 – System Model
System Model

1.2 Document Example

A TTMLDocument Instance consists of att document element that containsa header and a body, where the header specifies document level metadata, stylingdefinitions and layout definitions, and the body specifies text content intermixedwith references to style and layout information and inline styling and timing information.

Example Fragment – TTML Document Structure
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">  <head>    <metadata/>    <styling/>    <layout/>  </head>  <body/></tt>

Document level metadata may specify a document title, description,and copyright information. In addition, arbitrary metadata drawn fromother namespaces may be specified.

Example Fragment – TTML Metadata
<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>

Styling information may be specified in the form of style specificationdefinitions that are referenced by layout and content information,specified inline with content information, or both.

InExample Fragment – TTML Styling, four style sets of specificationsare defined, with one set serving as a collection of default styles.

Example Fragment – TTML Styling
<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" tts:color="yellow"/>  <!-- a style based on s1 but justified to the right -->  <style xml:id="s1Right" tts:textAlign="end" />       <!-- a style based on s2 but justified to the left -->  <style xml:id="s2Left" tts:textAlign="start" /></styling>

Layout information defines one or more regions into which contentis intended to be presented. A region definition may reference one ormore sets of style specifications in order to permit content flowed in theregion to inherit from these styles.InExample Fragment – TTML Layout, the region definition makesreference to style specifications1 augmented by specific inlinestyles which, together, allow content flowed into the region to inheritfrom the region's styles (in the casethat a style is not already explicitly specified on content or inheritedvia the content hierarchy.)

Example Fragment – TTML Layout
<layout xmlns:tts="http://www.w3.org/ns/ttml#styling">  <region xml:id="subtitleArea"       tts:extent="560px 62px"    tts:padding="5px 3px"    tts:backgroundColor="black"    tts:displayAlign="after"  /></layout>

The content of aDocument Instance is expressed in itsbody, which is organized in terms of block and inline text elements.The hierarchical organization of content elements serves a primary role indetermining both spatial and temporal relationships. For example, inExample Fragment – TTML Body, each paragraph (p 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 itsparent or sibling according to the applicable time containment semantics —in this case, the division parent is interpreted (by default) as a parallel timecontainer.

Example Fragment – TTML Body
<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">      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">      No indeed! What a beautiful fact!    </p>    <p xml:id="subtitle6a" begin="28.0s" end="34.6s">      But how is it proved?    </p>    <p xml:id="subtitle6b" begin="28.0s" end="34.6s">      Thus: what we call    </p>    <p xml:id="subtitle7" begin="34.6s" end="45.0s">      the vertex of the Brain<br/>      is really its base    </p>    <p xml:id="subtitle8" begin="45.0s" end="52.0s">      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">      How truly delightful!    </p>  </div>    </body>

The first subtitleSubtitle 1 – Time Interval [0.76, 3.45) ispresented during the time interval 0.76 to 3.45 seconds.Thissubtitle inherits its font family, font size,foreground color, and text alignment from the region into which it ispresented. Since no region is explicitly specified on the paragraph,the nearest ancestor that specifies a region determines thetargeted region. Note also that content is presentedat the bottom (after edge) of the containing region due to thetts:displayAlign="after"being specified on the region definition.

Note:

The notation "[X,Y]" denotes a closedinterval fromX toY, includingX andY;"[X,Y)" denotes a right half-openinterval fromX toY, includingX but not includingY;"(X,Y]" denotes a left half-openinterval fromX toY, not includingX but includingY;"(X,Y)" denotes an openinterval fromX toY, not includingX orY.

Note:

In this example, thep element is used as a presentationalelement rather than as a semantic element, i.e., as a linguistic paragraph.It is up to an author to determine which TTML elements are used to conveythe intended meaning. For instance, this example could be written to usetiming onspan elements in order to preserve the integrity ofsemantic paragraphs.

Subtitle 1 – Time Interval [0.76, 3.45)
Subtitle 1

The second subtitle continues with the default style, except that it containstwo lines of text with an intervening author-specified line break. Note the effects ofthe use oftts:textAlign="center" to specify the paragraph's alignmentin the inline progression direction.

Subtitle 2 – Time Interval [5.0, 10.0)
Subtitle 2

The third subtitle continues, using a variant style which overrides the default style'sforeground color with a different color.

Subtitle 3 – Time Interval [10.0, 16.0)
Subtitle 3

The fourth subtitle reverts to the default style.

Subtitle 4 – Time Interval [17.2, 23.0)
Subtitle 4

The fifth subtitle continues, again using a variant style whichoverrides the default style's foreground color with a different color.

Subtitle 5 – Time Interval [23.0, 27.0)
Subtitle 5

During the next active time interval, two distinct subtitles are simultaneously active, withthe paragraphs expressing each subtitle using different styles that override color and paragraphtext alignment of the default style. Note that the flow order is determined by the lexicalorder of elements as they appear in the content hierarchy.

Subtitles 6a and 6b – Time Interval [28.0, 34.6)
Subtitles 6a and 6b

The next subtitle is specified in a similar manner usinga style override to give the paragraph right (end) justification in theinline progression direction.

Subtitle 7 – Time Interval [34.6, 45.0)
Subtitles 7a and 7b

The eighth subtitle uses the same style override as the previoussubtitle in order to maintain the right (end) justification of theparagraph.

Subtitle 8 – Time Interval [47.3, 49.0)
Subtitle 8

During the final (ninth) active time interval, two distinctsubtitles are again simultaneously active, but with a differentstyle applied to the second paragraph to override the default color.Note that the flow order is determined by the lexical order ofelements as they appear in the content hierarchy.

Subtitles 9a and 9b – Time Interval [53.5, 58.7)
Subtitles 9a and 9b

The examples shown above demonstrate the primary types of information that maybe authored using TTML: metadata, styling, layout, timing, and content. In typical cases,styling and layout information are separately specified in aDocument Instance. Content informationis expressed in a hierarchical fashion that embodies the organization of both spatial (flow) andtiming information. Content makes direct or indirect references to styling and layout informationand may specify inline overrides to styling.

2 Definitions

2.1 Acronyms

DFXP

Distribution Format Exchange Profile

TT

Timed Text

TTML

Timed Text Markup Language

TTAF

Timed Text Authoring Format

TTWG

Timed Text Working Group

2.2 Terminology

Abstract Document Instance

An instance of an abstract data set as represented by aReduced XML Infoset.

Abstract Document Type

A set of constraints that defines a class ofXML InformationSets[XML InfoSet].

Attribute Information Item

Each specified or defaulted attribute of an XML document corresponds with an attribute informationitem as defined by[XML InfoSet], §2.3.

Character Information Item

Each data character appearing in an XML document corresponds with a character informationitem as defined by[XML InfoSet], §2.6.

Computed Cell Size

The size (extent) of a cell computed by dividing the width of theRoot ContainerRegion by the column count, i.e., the number of cells in the horizontal axis, and by dividingthe height of theRoot Container Region by the row count, i.e., the number of cells in the verticalaxis, where the column and row counts are determined by thettp:cellResolution parameter attribute.

Content Processor

A processing system capable of importing (receiving) Timed Text Markup Languagecontent for the purpose of transforming, presenting, or otherwise processing the content.

Content Region

A logical region into which rendered content is placed when modeling orperforming presentation processing.

Document Instance

A concrete realization of a Timed Text Markup Language document, where the concrete formis specific to the context of reference. For example, a sequence of bytes that represents anXML serialization of a Timed Text document, an internal, parsed representation of such aTimed Text document, etc.

Document Interchange Context

The implied context or environment external to aContent Processor inwhich document interchange occurs, and in which out-of-band protocols or specificationsmay define certain behavioral defaults, such as an implied profile.

Document Processing Context

The implied context or environment internal to aContent Processor inwhich document processing occurs, and in which out-of-band protocols or specificationsmay define certain behavioral defaults, such as the establishment or creation of aSynthetic Document Syncbase.

Element Information Item

Each element appearing in an XML document corresponds with an element informationitem as defined by[XML InfoSet], §2.2.

Exchange Profile

A profile of content that serves a set of needs for content interchange.

Extension

A syntactic or semantic expression or capability that is defined andlabeled (using a extension designation) in another (public or private)specification.

Feature

A syntactic or semantic expression or capability that is defined andlabeled (using a feature designation) in this specification (or afuture revision of this specification).

Presentation Processor

AContent Processor which purpose is to layout, format, and render,i.e., to present,Timed Text Markup Language content by applying the presentation semanticsdefined in this specification.

Processor

SeeContent Processor.

Profile Definition Document

A document that defines a specific collection of features and extensionsfor which support is required or optional in a recipient contentprocessor.

Region

A logical construct that models authorial intention regardingdesired or potential presentation processing, and which is represented asa rectangular area of a presentation surface, i.e., aregion area, into which contentis composed and rendered during presentation processing.

Reduced XML Infoset

An XML Information Set[XML InfoSet] that satisfies theconstraints specify byA Reduced XML Infoset.

Related Media Object

A (possibly null) media object associated with or otherwise relatedto aDocument Instance. For example, an aggregate audio/video mediaobject for which aDocument Instance provides caption or subtitleinformation, and with which thatDocument Instance is associated.

Related Media Object Region

When a non-nullRelated Media Object exists, the region of this media object,expressed in the coordinate system that applies to theDocument Instance that is associated with therelated media object.

Root Container Region

A logical region that establishes a coordinate system into whichDocument Instance content regions are placed and optionally clipped.

Root Temporal Extent

The temporal extent (interval) defined by the temporal beginning and ending of aDocument Instance in relationship with some external application or presentation context.

SMPTE Time Code

A time code whose format and semantics are established by[SMPTE 12M],which may be embedded into or otherwise associated with media content, suchas a broadcast audio/video stream.

Synthetic Document Syncbase

A document levelsyncbase[SMIL 2.1], § 10.7.1, synthesized or otherwise established bytheDocument Processing Context in accordance with theRelated Media Object or other processing criteria.

Synthetic SMPTE Document Syncbase

ASynthetic Document Syncbase constructed fromSMPTE TimeCode values embedded in or associated with theRelated Media Object orotherwise determined by theDocument Processing Context.

Temporally Active

A syntactic or semantic feature, e.g., an element or the presentation of an element, isTemporally Active when the current time of selected time base intersects with the active time interval of the feature.

Temporally Active Region

ARegion that isTemporally Active.

Timed Text

Textual information that is intrinsically or extrinsicallyassociated with timing information.

Timed Text Markup Language

A content type that represents timed text media for the purpose ofinterchange among authoring systems.

Timed Text Authoring System

A content authoring system capable of importing and exportingTimed Text Markup Language content.

Transformation Processor

AContent Processor which purpose is to transform or otherwise rewriteTimed Text Markup Language content to eitherTimed Text Markup Languageor to another (arbitrary) content format. An example of the first is a processor that removesor rewrites TTML features so as to conform to a profile of TTML. An example of the latter isa processor that translates TTML into a completely different timed text format. Because thisspecification does not otherwise define a target profile or format for transformation processing,no further transformation semantics are defined by this specification.

Valid Abstract Document Instance

AnAbstract Document Instance which has been assessed for validityand found to be valid as defined by4 Document Types.

2.3 Documentation Conventions

Within normative prose in this specification, the wordsmay,should, andmust aredefined as follows:

may

Conforming documents and/or TTML processors are permitted to,but need not behave as described.

should

Conforming documents and/or TTML processors are stronglyrecommended to, but need not behave as described.

must

Conforming documents and/or TTML processors are requiredto behave as described; otherwise, they are in error.

If normative specification language takes an imperative form,then it is to be treated as if the termmustapplies. Furthermore, if normative language takes a declarative form,and this language is governed bymust,then it is also to be treated as if the termmustapplies.

Note:

For example, the phrases "treat X as an error" and "consider Xas an error" are to be read as mandatory requirements in the context of use. Similarly, if the specificationprose 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.

All normative syntactic definitions of XML representations andother related terms are depicted with a light yellow-orange background colorand labeled as "XML Representation" or "Syntax Representation", suchas in the following:

XML Representation – Element Information Item: example
<examplecount = integer  size = (large|medium|small) : medium>Content: (all | any*)</example>

In an XML representation, bold-face attribute names (e.g.count above) indicate a required attributeinformation item, and the rest are optional. Where an attributeinformation item has an enumerated type definition, the values areshown separated by vertical bars, as forsize above; ifthere is a default value, it is shown following a colon. Where anattribute information item has a built-in simple type definitiondefined in[XML Schema Part 2], a hyperlink to its definitiontherein is given.

In an XML representation, the expression{any attribute not in default or any TT namespace} applies only tonamespace qualified attributes; unqualified attributes are not permitted unless explicitly defined in this specification.

The allowed content of the information item is shown as a grammarfragment, using the Kleene operators?,*and+. Each element name therein is a hyperlink to itsown illustration.

The term linear white-space (LWSP) is to be interpreted as a non-empty sequence ofSPACE (U+0020), TAB (U+0009), CARRIAGE RETURN (U+000D), or LINE FEED (U+000A),which corresponds to production [3]S as defined by[XML 1.0].

All content of this specification that is not explicitly marked asnon-normative is considered to be normative. If a section or appendixheader contains the expression "Non-Normative", then the entiretyof the section or appendix is considered non-normative.

All paragraphs marked as aNote are considered non-normative.

Example code fragments are depicted with a light blue-greenbackground color and labeled as "Example Fragment", such as inthe following:

Example Fragment – Sample
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">  <head>    <metadata/>    <styling/>    <layout/>  </head>  <body/></tt>

3 Conformance

This section specifies the general conformance requirements forTTML Content and processors.

3.1 Content Conformance

A TTMLDocument Instance conforms to this specification if the following criteria aresatisfied:

  1. When transporting aDocument Instance in aDocument Interchange Context in which aMedia Type[Media Types] identifies the content type of the interchangedDocument Instance, then the specified media type isapplication/ttml+xml in conformance with[XML Media Types] § 7, with which an optionalprofile parameter may appear, the value of whichconforms toa profile designator asdefined by5.2 Profiles.

  2. TheDocument Instance is or can be represented as a Reduced XMLInfoset as defined byA Reduced XML Infoset.

  3. The Reduced XMLInfoset that corresponds to theDocument Instance is or canbe associated with one of theAbstract Document Types defined by4 Document Types.

  4. TheReduced XML Infoset that corresponds to theDocument Instance is aValid Abstract Document Instance of the associatedAbstract Document Type.

  5. TheReduced XML Infoset satisfies all additional mandatory syntactic andsemantic constraints defined by this specification. In addition, this Infosetshould satisfy the web content accessibility guidelines specified by[WCAG].

3.2 Processor Conformance

3.2.1 Generic Processor Conformance

A TTMLContent Processor conforms to this specification if the followinggeneric processor criteria aresatisfied:

  1. The processor provides at least one mechanism for notionallyinstantiating a Reduced XMLInfoset representation of a conformantDocument Instance.

  2. If a process does or can perform validation of a candidateDocument Instance, then it provides at least one mechanism toimplicitly or explicitly associate theReduced XML Infoset representationof a conformantDocument Instance with one of theAbstract Document Types defined by4 Document Types.

  3. The processor does nota priori reject or abort theprocessing of a conformantDocument Instanceunless the processor does not support some required(mandatory) feature specified or implied by a TTML profiledeclared to apply to theDocument Instance.

  4. The processor supports all mandatory processing semantics defined by this specification.

    Note:

    The phrasemandatory semantics refers to all explicit use of the conformancekey phrasesmust andmust not as well as anydeclarative statement that can be reasonably inferred from such key phrases. For example, thesemandatory semantics include support for all features marked as mandatory inD.2 Feature Support.

  5. If the processor supports some optional processing semantics defined by this specification,then it does so in a manner consistent with the defined semantics.

    Note:

    The phraseoptional semantics refers to all explicit use of the conformancekey phrasesshould,should not,may, andmay not,as well as any declarative statement that can be reasonably inferred from such key phrases. For example, theseoptional semantics include support for all features marked as optional inD.2 Feature Support.

3.2.2 Transformation Processor Conformance

A TTMLContent Processor is a conformant TTMLTransformation Processor ifthe following criteria are satisfied:

  1. The processor satisfies all requirements specified by3.2.1 Generic Processor Conformance.

  2. The processor supports the DFXP Transformation profile as specifiedbyF.1 DFXP Transformation Profile.

3.2.3 Presentation Processor Conformance

A TTMLContent Processor is a conformant TTMLPresentation Processor ifthe following criteria are satisfied:

  1. The processor satisfies all requirements specified by3.2.1 Generic Processor Conformance.

  2. The processor supports the DFXP Presentation profile as specifiedbyF.2 DFXP Presentation Profile.

3.3 Claims

Any claim of compliance with respect to the conformance of a TTMLDocument Instance orContent Processor must makereference to an implementation compliance statement (ICS).

An implementation compliance statement must identify all mandatoryand optional features of this specification that are satisfied by thedocument instance or the content processor implementation. In particular, the statement mustidentify the utilized or supported TTML vocabulary profile(s) asdefined by5.2 Profiles, and, if a subset orsuperset profile is used or supported, then what features are excludedor included in the subset or superset profile.

ADocument Instance for which a compliance claim is mademust specifyeither (1)attp:profile attribute on its rootttelementas defined by6.2.8 ttp:profileor (2)attp:profile element as a child of thehead element as defined by6.1.1 ttp:profile.

4 Document Types

This section defines the following TTMLAbstract Document Types:

EachAbstract Document Type consists of the following constraints:

AnAbstract Document Instance may be assessed in terms of validity,and is considered to be aValid Abstract Document Instance if itsatisfies the following condition: if after

  1. pruning all element informationitems whose names are not members of the collection of element types definedby the associatedAbstract Document Type, then

  2. pruning characterinformation item children from any remaining element in case that allcharacter children of the element denote XML whitespace characters and the element's typeis defined as empty in the associatedAbstract Document Type, and then

  3. pruning all attributeinformation items having expanded names such that the namespace URI of theexpanded names are not listed inTable 1 – Namespaces, or, if listed inTable 1 – Namespaces, are not members of the collection of attributes defined by the associatedAbstract Document Type for use with the owning element information item,

then the document element is one of the documentelement types permitted by the associatedAbstract Document Type,the descendants of the documentelement satisfy their respective element type's contentspecifications, all required attributes are present, and the declaredvalue of each attribute satisfies the type declared by theassociatedAbstract Document Type.

Note:

While a conformant processor may nota priori reject aconformantDocument Instance, a givenDocument Instance may beconstrained by the author or authoring tool to satisfy a morerestrictive definition of validity.

Note:

As illustrated in the following example, anAbstract Document Instance can be aValid Abstract Document Instance even if it includes elements and attributes whose namespace names are listed inTable 1 – Namespaces but whose local names are not part of the vocabulary defined by this version of the specification. Specifically, the elementfoo and the attributetts:foo are pruned by above steps (1) and (3), respectively, because they are not members of the associatedAbstract Document Type, even though their namespace names are listed inTable 1 – Namespaces.

Example Fragment – Pruning of elements and attributes that are not members of the associatedAbstract Document Type
<tt  xmlns="http://www.w3.org/ns/ttml"  xmlns:tts="http://www.w3.org/ns/ttml#styling"  xml:lang="en">  <body>    <foo>Foo</foo>    <div>      <p        tts:foo="bar">          Bar      </p>    </div>  </body></tt>

4.1 TTML Content

TTML Content is anAbstract Document Type of a profile of the Timed Text Markup Language intendedto be used for interchange among distribution systems. This document typeis defined in terms of theelement and attribute vocabularyspecified in5 Vocabulary.

This specification references two types of schemas that may be used to validate a superset/subsetof conformant TTML ContentDocument Instances:

The (root) document element of a TTML ContentDocument Instance must be att element, as defined by7.1.1 tt.

Note:

The schemas referenced by this specification do not validate all syntactic constraintsdefined by this specification, and, as such, represent a superset of conformantTTML Content. In particular, performing validation with one of the abovereferenced schemas may result in afalse positive indication of validity.For example, both the RNC and XSD schemas specifythat atts:fontFamily attribute mustsatisfy thexs:string XSD data type; however, this data type is a supersetof the values permitted to be used with thetts:fontFamily attribute.

In addition, the RNC schema may produce afalse negativeindication of validity when using thexml:id attribute with an element ina foreign namespace, thus representing a subset of conformant TTML Content. This isdue to a specific limitation in expressing wildcard patterns involvingxsd:IDtyped attributes in Relax NG schemas. Note that this specification defines theformal validity of aDocument Instance to be based on anAbstract Document Instance fromwhich all foreign namespace elements and attributes have been removed. Therefore, theexceptional reporting of this false negative does not impact the formal assessmentofDocument Instance validity.

Note:

The schemas referenced by this specification are intended for use after the pruning steps (1)-(3) specified by4 Document Types have been applied.

5 Vocabulary

This section defines thenamespaces, profiles, and vocabulary (as an element and attributecatalog) of the Timed Text Markup Language (TTML) as follows:

5.1 Namespaces

The Timed Text Markup Language (TTML) employs a number ofXML Namespaces[XML Namespaces 1.0] for elements and certainglobal attributes. The following table specifies this set of namespacesand indicates the default prefix used within this specification and thenormative URI that denotes each namespace.

Note:

In a specificDocument Instance, it is not required that the defaultprefixes shown below are used. Any prefix or namespace binding that satisfies the constraintsof XML Namespaces[XML Namespaces 1.0] may be used that is associated with the specified namespace URI.

Table 1 – Namespaces
NamePrefixValue
TTtt:http://www.w3.org/ns/ttml
TT Parameterttp:http://www.w3.org/ns/ttml#parameter
TT Styletts:http://www.w3.org/ns/ttml#styling
TT Metadatattm:http://www.w3.org/ns/ttml#metadata
TT Profilenonehttp://www.w3.org/ns/ttml/profile/
TT Featurenonehttp://www.w3.org/ns/ttml/feature/
TT Extensionnonehttp://www.w3.org/ns/ttml/extension/

Note:

If a reference to an element type is used in this specification and the nameof the element type is not namespace qualified, then the TT Namespace applies.

For certain namespaces defined above, the default prefixis specified asnone if no XML vocabulary is defined inthe namespace by this specification (nor expected to be defined in afuture version of this specification). In such cases, the use of thenamespace URI is for purposes other than defining XML vocabulary,e.g., for designating profiles, features, extensions and fordereferencing standard profile definitions.

All TTML Namespaces aremutable[NSState]; all undefined names in these namespaces are reserved for futurestandardization by the W3C.

5.2 Profiles

The Timed Text Markup Language (TTML) employs a number ofstandard, predefined profiles of itsvocabulary and associated semantics.The following table specifies this set ofprofiles, indicatinga normative nameand designator for eachpredefined profile,and where each of these profiles is formally elaborated inF Profiles or in another TTWG specification.

Table 2 – Profiles
NameDesignator
DFXP Transformationhttp://www.w3.org/ns/ttml/profile/dfxp-transformation
DFXP Presentationhttp://www.w3.org/ns/ttml/profile/dfxp-presentation
DFXP Fullhttp://www.w3.org/ns/ttml/profile/dfxp-full
SDP UShttp://www.w3.org/ns/ttml/profile/sdp-us

A profile designator must adhere to thexsd:anyURI data type defined by[XML Schema Part 2],§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 asthe base URI.

Note:

For example, if a profile designator is expressed asdfxp-presentation, then the absolutized profile designatorwould behttp://www.w3.org/ns/ttml/profile/dfxp-presentation.

All profile designators which have the TT Profile Namespace as a prefix but are otherwise not listed inTable 2 – Profiles are reserved for future standardization, and must not appear in a conformantDocument Instance. Nothwithstanding this constraint, a profile designator is not restricted to the set of designators enumeratedinTable 2 – Profiles, but may be any URI that feasibly dereferences a TTMLProfile Definition Documentprovided it does not use the TT Profile Namespace as a prefix.

The profile of TTML that must be supported by aTTMLContent Processor in order to process aDocument Instance is determined either (1) by specifying attp:profile attribute on the roottt element, asdefined by6.2.8 ttp:profile, or (2) byincluding one or morettp:profileelements in thehead element, inaccordance with6.1.1 ttp:profile.

If attp:profile element appears as adescendant of thett element, then thettp:profileattribute should not be specified on thett element. If bothattp:profile element and attp:profileattribute are present (in a givenDocument Instance), then thettp:profile attribute must be ignored for the purpose ofdetermining the declared profile requirements.

If more than onettp:profile element appears inaDocument Instance, then all specified profiles applysimultaneously. In such a case, if some feature or some extension isspecified by one profile to beused (mandatory and enabled) and byanother profile to berequired (mandatory) oroptional (voluntary),then that feature or extension must be considered to beused(mandatory and enabled); if some feature or some extension isspecified by one profile to be merelyrequired (mandatory) and byanother profile to beoptional (voluntary), then that feature orextension must be considered to berequired (mandatory).

If neitherttp:profileattribute norttp:profileelement is present in aDocument Instance, and if theDocumentInterchange Context does not make an implicit or explicitreference to a pre-defined profile or does not specify aProfile DefinitionDocument or another equivalent set of feature designations,then the DFXP Transformation profile applies.

Note:

It is not a requirement on a conformantDocument Instance that a profile be internallydefined by use of attp:profile element or internally referenced by attp:profile attribute. More specifically, it is permitted that theDocumentInterchange Context determines the applicable profile through privateagreement, out-of-band protocol, or common use (between sender and receiver) of a profile definedby an external specification.

Note:

It is intended that thettp:profile attribute be used whenthe author wishes to reference one of the standard, predefined profiles ofTTML 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 useof a non-standard profile, in which case the specified profile designator expressesa URI that denotes an externally definedProfile Definition Document.However, it is not required that a conformant TTML Content Processor be ableto dereference such an externally specified profile definition.

In contrast, it is intended that thettp:profile element beused when the author wishes to make use of a modified predefined profile orwishes to include in theDocument Instance a non-standard profile definitionnot based upon one of the predefined profiles.

A predefined profile is supersetted by specifying some feature or extension toberequired (mandatory) that was either not specified in the underlying, baselineprofile or was specified asoptional (voluntary) in the baseline profile.A predefined profile is subsetted by specifying some feature or extension tobeoptional (voluntary) that was specified asrequired (mandatory)in the underlying, baseline profile.

When a baseline profile is modified by subsetting, the resulting, derived profileis referred to as asubtractive profile; when modified by supersetting, the resultis referred to as anadditive profile.It is also possible to define a derived profile that is simultaneously subtractiveand additive.

If aDocument Instance makes use of a feature defined byD.1 Feature Designations and if the intended use of thedocument requires the recognition and processing of that feature, thenthe document must include arequired feature oraused featurespecification in one of its declared orreferenced profiles. If aDocument Instance makes useof an extension designatable byE.1 Extension Designations and if the intended use of the documentrequires the recognition and processing of that extension, then thedocument must include arequired extension oraused extension specificationin one of its declared or referencedprofiles.

Note:

Arequired feature orused featurespecification is expressed directly (or indirectly by referring to aprofile) by means of attp:featureelement where the value of itsvalue attribute isrequired oruse,respectively. Arequired extension orusedextension specification is expressed directly (or indirectly byreferring to a profile) by means of attp:extensionelement where the value of itsvalue attribute isrequired oruse,respectively.

An example of an author definedadditive, derived profile of the DFXP Presentationprofile is shownbelow inExample Fragment – DFXP Additive Profile.

Example Fragment – DFXP Additive Profile
<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>

Note:

In the above example, the baseline profile is declared to bethe DFXP Presentation profile, which is then additively modified by making the#fontStyle-italic feature required (rather thanoptional as it is definedinF.2 DFXP Presentation Profile). Note also the resetting of thedefault XMLNS binding on theprofile element to the TT Parameter Namespace.

5.3 Catalog

The vocabulary of the Timed Text Markup Language (TTML) isdefined in the following major catalogs (divisions of vocabulary):

The core catalog defines the baseline, core vocabulary of TTML,and, in particular, the vocabulary of TTML Content. The extension catalogserves as a placeholder for extensions to the core vocabulary definedby TTML.

5.3.1 Core Catalog

The core vocabulary catalog is intended to satisfy the needs ofTTML while providing a baseline vocabulary for future profiles. This vocabularyis divided into distinct categories, specified in detailin the following sections:

The core element vocabulary specified for use with aDocument Instance is enumerated inTable 3 – Element Vocabulary.

Table 3 – Element Vocabulary
ModuleElements
Animationset
Contentbody,div,p,span,br
Documenttt
Headhead
Layoutlayout,region
Metadatametadata
Metadata Itemsttm:actor,ttm:agent,ttm:copyright,ttm:desc,ttm:name,ttm:title
Parameter Itemsttp:profile,ttp:features,ttp:feature,ttp:extensions,ttp:extension
Stylingstyling,style

Element vocabulary groups that are used in defining content modelsfor TTML element types are enumerated inTable 4 – Element Vocabulary Groups.

Table 4 – Element Vocabulary Groups
GroupElements
Animation.classset
Block.classdiv |p
Inline.classspan |br |#PCDATA
Metadata.classmetadata |ttm:agent |ttm:copyright |ttm:desc |ttm:title
Parameters.classttp:profile

The attribute vocabulary specified for use with the core vocabularycatalog is enumerated inTable 5 – Attribute Vocabulary.

Table 5 – Attribute Vocabulary
ModuleAttributes
Core Attributesxml:id,xml:lang,xml:space
Layoutregion
Metadata Attributesttm:agent,ttm:role
Parameter Attributesttp:cellResolution,ttp:clockMode,ttp:dropMode,ttp:frameRate,ttp:frameRateMultiplier,ttp:markerMode,ttp:pixelAspectRatio,ttp:profile,ttp:subFrameRate,ttp:tickRate,ttp:timeBase
Stylingstyle
Styling Attributestts:backgroundColor,tts:color,tts:direction,tts:display,tts:displayAlign,tts:extent,tts:fontFamily,tts:fontSize,tts:fontStyle,tts:fontWeight,tts:lineHeight,tts:opacity,tts:origin,tts:overflow,tts:padding,tts:showBackground,tts:textAlign,tts:textDecoration,tts:textOutline,tts:unicodeBidi,tts:visibility,tts:wrapOption,tts:writingMode,tts:zIndex
Timing Attributesbegin,dur,end,timeContainer

Note:

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 multipleelement types, are listed inTable 5 – Attribute Vocabulary above.

Note:

All vocabulary defined by TTML consistently makes use ofthe so-calledlowerCamelCase naming convention. In some cases, this results in thechange of a name when the name was based upon another specificationthat used a different naming convention.

5.3.2 Extension Catalog

The extension vocabulary catalog is intended for use by futureprofiles of TTML, and is not further definedby this version of this specification.

In addition to standardized extension vocabulary, a conformingDocument Instance may contain arbitrary namespace qualifiedelements that reside in any namespace other than those namespacesdefined for use with this specification. Furthermore, a conformingDocument Instance may contain arbitrary namespace qualifiedattributes on TTML defined vocabulary where such attributes reside inany namespace other than those defined for use with thisspecification.

6 Parameters

This section specifies theparameters matter of thecore vocabulary catalog, whereparameters are to be understood as information that is either (1)essential or (2) of significant importance for the purpose ofinterpreting the semantics of other types of information expressed bycore vocabulary items or for establishing aDocument Processing Context by meansof which TTML Content can be related to an external environment.

6.1 Parameter Element Vocabulary

The following elements, all defined in the TT ParameterNamespace, specify parametric information that applies to aDocument InstanceorContent Processor:

6.1.1 ttp:profile

Thettp:profile element is used to specify a collection ofused (mandatory and enabled), required (mandatory),and optional (voluntary) features and extensions that must ormay be supported by aContent Processor in order to process aDocument Instance that makes (or may make) use of such features andextensions.

Note:

The difference between afeature and anextension is where it is defined and how it is labeled:if defined in this specification (or a future revision thereof) andlabeled with a feature designation inD Features, thenit is considered to be a feature; if defined in another specificationand labeled there with an extension designation, then it is consideredto be an extension. In general, features are expected to be defined bythe W3C standards process, while extensions are expected to be defined bythird parties.

This specification defines two distinct uses of thettp:profile element:

  • as a child of thehead element within a TTMLDocument Instance;

  • as the root element of a TTMLProfile Definition Documentinstance;

When attp:profile element appears within a TTMLDocument Instance,its purpose is to express authorial intentions about whichfeatures and extensions must or may be supported by a recipientcontent processor. In addition, the element indirectly expressesinformation about the set of features or extensions that are (or mayexpected to be) used by theDocument Instance.

When attp:profile element is used by a TTMLProfile Definition Document instance,it serves to publish a machinereadable specification of a specific TTML profile, of whichthis specification defines three suchProfile Definition Documents inF Profiles.

Thettp:profile element accepts as its children zero or moreelements in theMetadata.class element group, followed byzero or morettp:features elements, followed byzero or morettp:extensions elements.

XML Representation – Element Information Item: ttp:profile
<ttp:profile  use = stringxml:id = ID  {any attribute not in default or any TT namespace}>Content:Metadata.class*,ttp:features*,ttp:extensions*</ttp:profile>

If specified, theuse attribute must adhere to thexsd:anyURI data type defined by[XML Schema Part 2],§3.2.17, and, furthermore, must denote a profile designator inaccordance with5.2 Profiles. In this case,the profile designator must refer to (1) a standard, predefinedProfile Definition Document as defined byF Profiles,or (2) a feasibly dereferenceable resource representing a validProfile DefinitionDocument instance. In either case, the referenced profile serves as thebaseline profile of the specifyingttp:profile element.

If theuse attribute is not specified, then the baselineprofile of thettp:profile element must be considered to bethe empty (null) profile, i.e., a profile definition containing nofeature or extension specifications.

The collection of features and extensions of a profile are determined accordingto the following ordered rules:

  1. initialize the features and extensions of the profile to the emptyset;

  2. if ause attribute is present, then augment the profilewith the set of features and extensions specified by the referencedbaseline profile;

  3. for eachttp:feature andttp:extension elementdescendant of thettp:profile element, using a post-ordertraversal, merge the specified feature or extension with the featuresand extensions of the profile, where merging a feature or extensionentails replacing an existing feature or extension specification, ifit already exists, or adding a new feature or extension specification,if it does not yet exist in the profile;

A conformant TTML processor is not required to be able todereference aProfile Definition Document that is not one of thestandard, predefined profiles defined byF Profiles. Furthermore,a conformant TTML processor may make use of a built-in, staticform of each standard, predefined profile so as not to requiredereferencing a network resource.

If a TTML processor is unable to dereference a non-standardProfile Definition Document, then it must not further process thedocument without the presence of an explicit override from an end-useror some implementation specific parameter traceable to an end-user orto a user or system configuration setting. If a TTML processor abortsprocessing of aDocument Instance due to the inability toreference a non-standardProfile Definition Document, then someend-user notification should be given unless the end-user or systemhas disabled such a notification, or if the processor does not permitor entail the intervention of an end-user.

Thettp:profile element is illustrated by the following example.

Example Fragment – ttp:profile
<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>

Note:

In the above example, the DFXP presentation profile is used as thebaseline profile. This baseline profile is then supersetted (thuscreating an additive derived profile) by requiring support for#text-outline feature.

6.1.2 ttp:features

Thettp:features element is a container element used to groupinfomation about feature support requirements.

Thettp:features element accepts as its children zero or moreelements in theMetadata.class element group, followed byzero or morettp:feature elements.

XML Representation – Element Information Item: ttp:features
<ttp:features  xml:base = string :TT Feature Namespacexml:id = ID  {any attribute not in default or any TT namespace}>Content:Metadata.class*,ttp:feature*</ttp:features>

If specified, thexml:baseattribute must (1) adhere to thexsd:anyURI data type defined by[XML Schema Part 2],§3.2.17, (2) express an absolute URI thatadheres to[XML Base] and,(3) express a feature namespace as defined byD.1 Feature Designations. If not specified, thexml:base attribute's defaultvalue applies, which is the TT Feature Namespace.

Thexml:base attribute isused to permit the abbreviation of feature designation URIs expressedby childttp:feature elements.

6.1.3 ttp:feature

Thettp:feature element is used to specifyinfomation about support requirements for a particular feature.

The children of thettp:feature element must express a non-emptysequence of character information items that adheres to thexsd:anyURI data type defined by[XML Schema Part 2],§3.2.17.

XML Representation – Element Information Item: ttp:feature
<ttp:feature  value = (optional|required|use) : requiredxml:id = ID  {any attribute not in default or any TT namespace}>Content: #PCDATA</ttp:feature>

If the URI expressed by the content of thettp:featureelement is a relative URI, then, when combined with thefeature namespace value expressed by thexml:base attribute of thenearest ancestorttp:features element, it must express anabsolute URI. In either case (original absolute URI or resultingabsolutized URI), the URI expressed by thettp:featureelement must further adhere to the syntax of a feature designation asdefined byD.1 Feature Designations, and, furthermore,the specific designation that appears in this URI, i.e., the portion of the feature designationthat starts with the fragment identifier separator '#', mustbe defined by this specification or some published version thereof (thathas achieved REC status).

If the URI expressed by the content of thettp:feature elementis a relative URI, then anxml:base attribute should bespecified on the nearest ancestorttp:features element.

Thevalue attribute specifies whether a conforming TTMLprocessor must or may implement the designated feature in order toprocess the document. If the value of thevalue attributeisoptional, then the processor neednot implement or otherwise support the feature in order to process thedocument; if the value isrequired, then the processormust implement or otherwise support the feature, irrespective ofwhether the feature is enabled or disabled, in order to processthe document; if the value isuse, then the processor must both (1) implement orotherwise support the feature and (2) have enabled (activated) use of thefeature.

Note:

The default value of thevalue attribute isrequired, as indicated in the above element informationitem definition. Therefore, if avalue attribute is notspecified on attp:feature element, it is equivalent tospecifying that support for the feature is required.

If the value of thevalue attribute isrequired oruseand the TTML processor implementation doesnot support the feature, or if thevalue attribute isuse and the TTML processor implementation supports but has disabledthat feature, then it must not further process the documentwithout the presence of an explicit override from an end-user or someimplementation specific parameter traceable to an end-user or to auser or system configuration setting. If a TTML processor abortsprocessing of aDocument Instance due to the specification of arequired, but unsupported feature by this element, then some end-usernotification should be given unless the end-user or system hasdisabled such a notification, or if the processor does not permit orentail the intervention of an end-user.

If the value of thevalue attribute isoptional, and if the TTML processor implementation doesnot support the feature, then it may further process the document evenin 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, thedefault semantics associated with that feature apply; that is, theprocessor may behave as if the feature were not actually used orreferenced by the document. Notwithstanding the above, the syntacticpresence or reference to an optional feature by a document must not beconsidered to be a violation of document validity or a barrier tofurther processing if the syntactic expression is well-formed andvalid.

If some defined (i.e., standardized) or otherwise well known feature is not specified byattp:feature element in a given profile, then it must be interpreted as if the feature were specifiedwith thevalue attribute equal tooptional.

Note:

In particular, if some feature is not present in a profile definition, thenit is not to be interpreted as meaning the use of that feature (in aDocument Instance)is disallowed or otherwise prohibited.

Thettp:feature element is illustrated by the following example.

Example Fragment – ttp:feature
<ttp:profile use="http://www.w3.org/ns/ttml/profile/dfxp-presentation">  <ttp:features xml:base="http://www.w3.org/ns/ttml/feature/"><ttp:feature value="required">#fontStyle-italic</ttp:feature><ttp:feature value="required">#textDecoration-under</ttp:feature>  </ttp:features></ttp:profile>

Note:

In the above example, the DFXP presentation profile is used as thebaseline profile. This baseline profile is then modified by twottp:feature elements in order tosuperset the baseline profile (since neither#fontStyle-italic nor#textDecoration-underare required by the DFXP presentation profile).

The effect of this example is to express authorial intentions thatitalic font style and text underlining must besupported.

6.1.4 ttp:extensions

Thettp:extensions element is a container element used to groupinfomation about extension support requirements.

Thettp:extensions element accepts as its children zero or moreelements in theMetadata.class element group, followed byzero or morettp:extension elements.

XML Representation – Element Information Item: ttp:extensions
<ttp:extensions  xml:base = string :TT Extension Namespacexml:id = ID  {any attribute not in default or any TT namespace}>Content:Metadata.class*,ttp:extension*</ttp:extensions>

If specified, thexml:baseattribute must (1) adhere to thexsd:anyURI data type defined by[XML Schema Part 2],§3.2.17, (2) express an absolute URI thatadheres to[XML Base] and,(3) express an extension namespace as defined byE.1 Extension Designations. If not specified, thexml:base attribute's defaultvalue applies, which is the TT Extension Namespace.

Thexml:base attribute isused to permit the abbreviation of feature designation URIs expressedby childttp:extension elements.

6.1.5 ttp:extension

Thettp:extension element is used to specifyinfomation about support requirements for a particular extension.

The children of thettp:extension element must express a non-emptysequence of character information items that adheres to thexsd:anyURI data type defined by[XML Schema Part 2],§3.2.17.

XML Representation – Element Information Item: ttp:extension
<ttp:extension  value = (optional|required|use) : requiredxml:id = ID  {any attribute not in default or any TT namespace}>Content: #PCDATA</ttp:extension>

If the URI expressed by the content of thettp:extensionelement is a relative URI, then, when combined with theextension namespace value expressed by thexml:base attribute of thenearest ancestorttp:extensions element, it must express anabsolute URI. In either case (original absolute URI or resultingabsolutized URI), the URI expressed by thettp:extensionelement must further adhere to the syntax of an extension designationas defined byE.1 Extension Designations.

If the URI expressed by the content of thettp:extension element is a relative URI, then anxml:base attribute should be specified on the nearestancestorttp:extensions element.

Thevalue attribute specifies whether a conforming TTMLprocessor must or may implement the designated extension in order toprocess the document. If the value of thevalue attributeisoptional, then the processor neednot implement or otherwise support the extension in order to process thedocument; if the value isrequired, then the processormust implement or otherwise support the extension in order to processthe document; if the value isuse, then the processor must both (1) implement orotherwise support the extension and (2) enable (activate) use of theextension.

Note:

The default value of thevalue attribute isrequired, as indicated in the above element informationitem definition. Therefore, if avalue attribute is notspecified on attp:extension element, it is equivalent tospecifying that support for the extension is required.

If the value of thevalue attribute isrequired oruseand the TTML processor implementation doesnot support the extension, or if thevalue attribute isuse and the TTML processor implementation supports but has disabledthat extension, then it must not further process the document without thepresence of an explicit override from an end-user or someimplementation specific parameter traceable to an end-user or to auser or system configuration setting. If a TTML processor abortsprocessing of aDocument Instance due to the specification of arequired, but unsupported extension by this element, then someend-user notification should be given unless the end-user or systemhas disabled such a notification, or if the processor does not permitor entail the intervention of an end-user.

If the value of thevalue attribute isoptional, and if the TTML processor implementation doesnot support the extension, then it may further process the document evenin 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, thedefault semantics associated with that extension apply; that is, theprocessor may behave as if the extension were not actually used orreferenced by the document. Notwithstanding the above, the syntacticpresence or reference to an optional extension by a document must not beconsidered to be a violation of document validity or a barrier tofurther processing if the syntactic expression is well-formed andvalid.

If some well known extension is not specified byattp:extension element in a given profile, then it must be interpreted as if the extension were specifiedwith thevalue attribute equal tooptional.

Note:

In particular, if some extension is not present in a profile definition, thenit is not to be interpreted as meaning the use of that extension (in aDocument Instance)is disallowed or otherwise prohibited.

Thettp:extension element is illustrated by the following example.

Example Fragment – ttp:extension
<ttp:profile use="http://www.w3.org/ns/ttml/profile/dfxp-transformation">  <ttp:extensions xml:base="http://example.org/ttml/extension/"><ttp:extension value="use">#prefilter-by-language</ttp:extension>  </ttp:extensions></ttp:profile>

Note:

In the above example, the DFXP transformation profile is used asthe baseline profile. This baseline profile is then supersetted byspecifying that support and use is required for a private extensiondefined in a third party namespace.

The effect of this example is to express authorial intentions thata recipient processor must support the DFXP transformation profile andmust also support and enable an extension defined by a third party.

6.2 Parameter Attribute Vocabulary

The following attributes are defined in the TT Parameter Namespace.

Unless explicitly stated otherwise, linear white-space (LWSP) mustappear between adjacent non-terminal components of a TT Parameter valueunless some other delimiter is permitted and used.

6.2.1 ttp:cellResolution

Thettp:cellResolution attribute may be used by an authorto express the number of horizontal and vertical cells into which theRoot Container Regionarea is divided for the purpose of expressing presentation semantics in terms ofa uniform grid.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:cellResolution
ttp:cellResolution  : columns rows                            //columns != 0;rows != 0columns | rows  :<digit>+

If not specified, the number of columns and rows must be consideredto be 32 and 15, respectively. If specified, then columns or rows must not be zero (0).

Note:

The choice of values 32 and 15 are based on this being themaximum number of columns and rows defined by[CEA-608-E].

Attp:cellResolution attribute is considered to be significant onlywhen specified on thett element.

Note:

The use of a uniform grid is employed only for the purpose ofmeasuring lengths and expressing coordinates. In particular, it is notassumed that the presentation of text or the alignment of individualglyph areas iscoordinated with this grid. Such alignment is possible, butrequires the use of a monospaced font and a font size whose EM square exactlymatches the cell size.

Except where indicated otherwise, when a<length> expressed incells denotes a dimension parallel to the inline or block progression dimension,the cell's dimension in the inline or block progression dimension applies, respectively.

Note:

For example, if padding (on all four edges) is specified as 0.1c, the cell resolutionis 20 by 10, and the extent of theRoot Container Region 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 thebefore and after padding will be (480 / 10) * 0.1 pixels.

6.2.2 ttp:clockMode

Thettp:clockMode attribute is used to specify theinterpretation of time expressions as real-time time coordinates whenoperating with time base ofclock as defined by6.2.11 ttp:timeBase.

Note:

See10.3 Time Value Expressions for thespecification of time expression syntax and semantics.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:clockMode
ttp:clockMode  : "local"  | "gps"  | "utc"

If the time base, defined by6.2.11 ttp:timeBase, is designated asclock, then this parameter applies as follows: if theparameter's value islocal, then time expressions areinterpreted as local wall-clock time coordinates;ifutc, then time expressions areinterpreted as UTC time coordinates[UTC];ifgps, then time expressions areinterpreted as GPS time coordinates[GPS].

Note:

The primary difference between GPS time and UTC time is that GPStime is not adjusted for leap seconds, while UTC time is adjusted asfollows: UTC = TAI (Temp Atomique International) +leap secondsaccumulated since 1972. TAI is maintained by theBureauInternational des Poids et Mesures (BIPM) in Sevres, France.The GPS system time is steered to a Master Clock (MC) at the US NavalObservatory which is kept within a close but unspecifiedtolerance of TAI.

If not specified, the value of this parameter must be consideredto beutc.

Attp:clockMode attribute is considered to be significant onlywhen specified on thett element.

6.2.3 ttp:dropMode

Thettp:dropMode attribute is used to specifyconstraints on the interpretation and use of frame countsthat correspond with[SMPTE 12M] time coordinates when operatingwith time base ofsmpte as defined by6.2.11 ttp:timeBase.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:dropMode
ttp:dropMode  : "dropNTSC"  | "dropPAL"  | "nonDrop"

If the time base, defined by6.2.11 ttp:timeBase, is designated assmpte, then this parameter applies as follows: if theparameter's value isnonDrop, then, within any givensecond of a time expression, frames count from 0 toN−1, whereN is the value specified bythettp:frameRate parameter, but while ignoring any valuespecified by thettp:frameRateMultiplier parameter.

Note:

When operating innonDropmode, a second of a time expression may or may not be equal to asecond of real time during normal (1x speed) forward playback. If thettp:frameRateMultiplier parameter is specified and is notequal to 1:1, then a second of a time expression will either beshorter or longer than a second of elapsed play in realtime.

Note:

See10.3 Time Value Expressions regarding the absence of defined semantics for both theoffset-time form and thefraction component of time expressions when thesmpte time base applies.

If this parameter's value isdropNTSC, then, within anygiven second of a time expression except the second00,frames count from 0 toN−1, whereN isthe value specified by thettp:frameRate parameter, butwhile ignoring any value specified by thettp:frameRateMultiplier parameter. If the second of a timeexpression is00 and the minute of the time expression isnot00,10,20,30,40, or50, then frame codes00and01 are dropped during that second; otherwise, theseframe codes are not dropped.

Note:

For example, when operating indropNTSCmode withttp:frameRate of30, a discontinuityin frame count occurs between consecutive frames as shown in thefollowing sequence of time expressions:01:08:59:28,01:08:59:29,01:09:00:02,01:09:00:03.

If this parameter's value isdropPAL, then, within anygiven second of a time expression except the second00,frames count from 0 toN−1, whereN isthe value specified by thettp:frameRate parameter, butwhile ignoring any value specified by thettp:frameRateMultiplier parameter. If the second of a timeexpression is00 and the minute of the time expression iseven but not00,20, or40,then frame codes00 through03 are droppedduring that second; otherwise, these frame codes are not dropped.

Note:

For example, when operating indropPALmode withttp:frameRate of30, a discontinuityin frame count occurs between consecutive frames as shown in thefollowing sequence of time expressions:01:09:59:28,01:09:59:29,01:10:00:04,01:10:00:05.

Note:

ThedropPAL mode is also known as theM/PAL orPAL (M) drop-framecode, which uses PAL modulation with the NTSC frame rate of ~29.97frames/second. The M/PAL system is used primarily in Brazil.

If not specified, thennonDrop must be assumed to apply.

Attp:dropMode attribute is considered to be significant onlywhen specified on thett element.

6.2.4 ttp:frameRate

Thettp:frameRate attribute is used to specify the frame rate of a relatedmedia object or the intrinsic frame rate of aDocument Instance in case it is intendedto function as an independent media object.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:frameRate
ttp:frameRate  :<digit>+                                //value > 0

The frame rate that applies to aDocument Instance is used tointerpret time expressions that are expressed inframesas defined by10.3.1 <timeExpression>.

If themedia time base applies and the effective frame rate isintegral, then a frame is interpreted as a division of a second of mediatime, such that if the frame rate is specified asF, thena second of media time is divided intoF intervals ofequal duration, where each interval is labeled as framef,withf ∈ [0…F−1].

Note:

SeeN.2 Media Time Base for further detailson the interpretation of time expressions for themedia time base.

If not specified, the frame rate must be considered to be equal to someapplication defined frame rate, or if no application defined frame rate applies,then thirty (30) frames per second. If specified, then the frame rate mustbe greater than zero (0).

Attp:frameRate attribute is considered to be significant onlywhen specified on thett element.

6.2.5 ttp:frameRateMultiplier

Thettp:frameRateMultiplier attribute is used tospecify a multiplier to be applied to the frame rate specified by attp:frameRate attribute in order to compute the effectiveframe rate.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:frameRateMultiplier
ttp:frameRateMultiplier  : numerator denominator                   //numerator != 0;denominator != 0numerator | denominator  :<digit>+

A frame rate multiplier is used when the desired frame rate cannotbe expressed as an integral number of frames per second.

If not specified, the frame rate multiplier must be considered to be equal to someapplication defined frame rate multiplier, or if no application defined frame rate multiplier applies, then one (1:1). Both numerator and denominator must be non-zero.

Attp:frameRateMultiplier attribute is considered to be significant onlywhen specified on thett element.

Note:

The frame rate multiplier used for synchronizing with NTSC[SMPTE 170M]formatted video objects at 30 frames per second is nominally1000:1001. The nominal frame rate of NTSC video is defined as the chrominancesub-carrier frequency of 3,579,545.45…Hz (= 5.0MHz × 63/88) times the ratio 2/455 divided bythe number of horizontal lines per frame of 525, which yields a framerate of 29.970029970029… (= 30 × 1000/1001) frames persecond. Other frame rate multipliers apply to different regions ofusage and video format standards.

Note:

Except in the case of PAL/M, the frame rate multiplier used for synchronizing with PALformatted video objects at 25 frames per second is nominally 1:1.

6.2.6 ttp:markerMode

Thettp:markerMode attribute is used to specifyconstraints on the interpretation and use of time expressionsthat correspond with[SMPTE 12M] time coordinates when operatingwith time base ofsmpte as defined by6.2.11 ttp:timeBase.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:markerMode
ttp:markerMode  : "continuous"  | "discontinuous"

If the time base, defined by6.2.11 ttp:timeBase, is designated assmpte, then this parameter applies as follows: if theparameter's value iscontinuous, then[SMPTE 12M] time coordinatesmay be assumed to be linear and either monotonically increasing ordecreasing; however, ifdiscontinuous, then any assumptionmust not be made regarding linearity or monotonicity of time coordinates.

If not specified, the value of this parameter must be consideredto bediscontinuous.

Note:

The default value for this parameter was originally specified(inTTML 1.0 First Edition)ascontinuous; however, further evaluation of the state of the industry indicates thischoice was incorrect, and that the most common default isdiscontinuous.

Note:

Due to lack of industry consensus on the utility and interpretation of thecontinuous marker mode, authors are advised to avoid its use. Furthermore, thettp:markerMode is being considered for deprecation in the next revision of thisspecification.

Attp:markerMode attribute is considered to be significant onlywhen specified on thett element.

If a value ofcontinuous applies, then timeexpressions may be converted to real timecoordinates by taking into account the computed frame rateand drop mode as expressed by thettp:dropMode parameter.In this case, theContent Processor must create and maintain aSynthetic SMPTE Document Syncbase within which these timeexpressions are interpreted as further described in10.4 Time Intervals.

Note:

When operating withsmpte time base andcontinuous marker mode, there is an implied time coordinatespace, theSynthetic SMPTE Document Syncbase,defined by the monotonically increasing (or decreasing)[SMPTE 12M] time coordinates, while taking into accountthe computed frame rate and drop mode. All time expressions are interpretedin relationship to this time coordinate space based uponSMPTE Time Code synchronization events (markers),where theDocument Processing Context emits these events with implied constraintsregarding time coordinate monoticity and resynchronization inthe presence of dropped frames.

Use ofcontinuous marker mode with thesmptetime base is different from using themedia time basebecause (1) the semantics of thettp:dropMode parameterapply to the former, but not the latter, and (2)[SMPTE 12M]time coordinates may be applied monotonically to media which has beensubjected to dilation in time, constriction in time, or reversal intime.

If a value ofdiscontinuous applies, then timeexpressions must not be converted to real timecoordinates, arithmetical operators (addition, multiplication) are notdefined on time expressions, and, consequently, any (well-formed)expression of a duration must be considered to be invalid.

Note:

When operating withsmpte time base anddiscontinuous marker mode, there is no effective time coordinatespace; rather, all time expressions are interpreted as labeledsynchronization events (markers), where theDocument Processing Contextemits these events, which, when they correspond with timeexpressions that denote the same label, cause a temporal interval tobegin or end accordingly.

An additional side-effect of operating indiscontinuousmode is that time expressions of children have no necessaryrelationship with time expressions of their temporal container; thatis, temporal containers and children of these containers aretemporally activated and inactivated independently based on theoccurrence of a labeled synchronization (marker) event.

Note:

The notion of marker discontinuity as captured by this parameteris logically independent from the method used to count frames asexpressed by thettp:dropMode parameter. In particular,even if thettp:dropMode parameter is specified asdropNTSC ordropPAL, the marker mode may bespecified ascontinuous, even in the presence of frame countdiscontinuities induced by the frame counting method, unless therewere some other non-linearity or discontinuity in marker labeling, forexample, two consecutive frames labeled as10:00:00:00and10:00:01:00.

6.2.7 ttp:pixelAspectRatio

Thettp:pixelAspectRatio attribute may be used by a content authorto express the aspect ratio of non-square pixels in the production of content thatmakes use of pixel coordinates.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:pixelAspectRatio
ttp:pixelAspectRatio  : width height                            //width != 0;height != 0width | height  :<digit>+

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.

Attp:pixelAspectRatio attribute is considered to be significant onlywhen specified on thett element.

Note:

This parameter may be used by a content transcoder or translator inorder to convert pixel measurements between different pixel aspectratios while still maintaining authorial layout intentions.

6.2.8 ttp:profile

Thettp:profile attribute may be used by a content authorto express the profile of the Timed Text Markup Language (TTML) usedin aDocument Instance.

If specified, the value of this attribute must adhere to thexsd:anyURI data type defined by[XML Schema Part 2],§3.2.17, and, further, must specify aprofile designator in accordance with5.2 Profiles.

Attp:profileattribute is considered to be significant only when specified on thett element.

6.2.9 ttp:subFrameRate

Thettp:subFrameRate attribute is used to specify the sub-frame rate of a relatedmedia object or the intrinsic sub-frame rate of aDocument Instance in case it is intendedto function as an independent media object.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:subFrameRate
ttp:subFrameRate  :<digit>+                                //value > 0

The sub-frame rate that applies to aDocument Instance is used tointerpret time expressions that are expressed insub-framesas defined by10.3.1 <timeExpression>.

If themedia time base applies and the effective frame rate isintegral, a sub-frame is interpreted as a division of a frame of mediatime, such that if the sub-frame rate is specified asS, thena frame of media time is divided intoS intervals ofequal duration, where each interval is labeled as sub-frames,withs ∈ [0…S−1].

Note:

SeeN.2 Media Time Base for further detailson the interpretation of time expressions for themedia time base.

If not specified, the sub-frame rate must be considered to beequal to some application defined sub-frame rate, or if no application defined sub-frame rate applies, then one (1). If specified, then the sub-frame rate must be greater than zero (0).

Attp:subFrameRate attribute is considered to be significant onlywhen specified on thett element.

Note:

The sub-frame is sometimes referred to as afield inthe context of synchronization with an interlaced video media object.

6.2.10 ttp:tickRate

Thettp:tickRate attribute is used to specify the tick rate of a relatedmedia object or the intrinsic tick rate of content of aDocument Instance in case it is intendedto function as an independent media object.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:tickRate
ttp:tickRate  :<digit>+                                //value > 0

The tick rate that applies to aDocument Instance is used tointerpret time expressions that are expressed inticks byusing thet metric as defined by10.3.1 <timeExpression>.

If themedia time base applies,a tick is interpreted as an integral division of a second of mediatime, such that if the tick rate is specified asT, thena second of media time is divided intoT intervals ofequal duration, where each interval is labeled as tickt,witht ∈ [0…T−1].

Note:

SeeN.2 Media Time Base for further detailson the interpretation of time expressions for themedia time base.

If not specified, then if a frame rate is specified, the tick ratemust be considered to be the effective frame rate multiplied by thesub-frame rate (i.e., ticks are interpreted as sub-frames); or, if noframe rate is specified, the tick rate must be considered to be one (1)tick per second of media time. If specified, then the tick ratemust not be zero (0).

Note:

There is no predefined relationship between ticks and frames orsub-frames. Ticks are an arbitrary division of seconds that permituse of fixed point arithmetic rather than fractional (and potentiallyinexact) expressions of seconds.

Attp:tickRate attribute is considered to be significant onlywhen specified on thett element.

6.2.11 ttp:timeBase

Thettp:timeBase attribute is used to specify thetemporal coordinate system by means of which time expressions areinterpreted in aDocument Instance.

If specified, the value of this attribute must adhere to the following syntax:

Syntax Representation – ttp:timeBase
ttp:timeBase  : "media"  | "smpte"  | "clock"

If the time base is designated asmedia, then a timeexpression denotes a coordinate in some media object's time line,where the media object may be an external media object with which thecontent of aDocument Instance is to be synchronized, or it maybe the content of aDocument Instance itself in a case wherethe timed text content is intended to establish an independent timeline.

Note:

When using a media time base, if that time base is paused orscaled positively or negatively, i.e., the media play rate isnot unity, then it is expected that thepresentation of associated Timed Text content will be similarlypaused, accelerated, or decelerated, respectively. The means forcontrolling an externalmedia time base is outside the scope of this specification.

If the time base is designated assmpte,then a time expression denotes a[SMPTE 12M] timecoordinate with which the content of aDocument Instance is tobe synchronized. In this case, the value of thettp:markerMode andttp:dropMode parameters apply, as defined by6.2.6 ttp:markerMode and6.2.3 ttp:dropMode, respectively.

Note:

When the time base is designated assmpte,every time expression denotes a media marker value akin to thatdefined by[SMIL 2.1], § 10.4.1, except insteadof using an opaque marker name, a structured[SMPTE 12M]time coordinate serves as the marker name.

If the time base is designated asclock, then the timeexpression denotes a coordinate in some real-world time line asestablished by some real-time clock, such as the local wall-clock timeor UTC (Coordinated Universal Time) or GPS (Global Positioning System)time lines.

If not specified, the default time base must be considered to bemedia.

Attp:timeBase attribute is considered to be significant onlywhen specified on thett element.

When operating with eithermedia orsmptetime bases, a diachronic presentation of aDocument Instance maybe subject to transformations of the controlling time line, such astemporal reversal, dilation (expansion), or constriction(compression); however, when operating with theclocktime base, no transformations are permitted, and diachronicpresentation proceeds on a linear, monotonically increasing time linebased on the passage of real time.

Note:

Due to there being only one time base parameter that applies to agivenDocument Instance, the interpretation of time expressionsis uniform throughout theDocument Instance.

Note:

SeeN Time Expression Semantics for further detailson the interpretation of time expressions according to the designated time base.

7 Content

This section specifies thecontent matter of the corevocabulary catalog.

7.1 Content Element Vocabulary

The following elements specify the structure and principal content aspects of aDocument Instance:

7.1.1 tt

Thett element serves as the root document element of aDocument Instance.

Thett element accepts as its children zero or onehead element followed byzero or onebody element.

XML Representation – Element Information Item: tt
<tttts:extent = stringxml:id = IDxml:lang = stringxml:space = (default|preserve) : default  {any attribute in TT Parameter namespace}  {any attribute not in default or any TT namespace}>Content:head?,body?</tt>

TheRoot Temporal Extent, i.e., the time interval over which aDocument Instance is active, has an implicit duration that is equal to theimplicit duration of thebody element of the document, if thebody element is present, or zero, if thebody element is absent.

If thetts:extent attribute is specified on thettelement, then it must adhere to8.2.7 tts:extent, in which case itspecifies the spatial extent of theRoot Container Region inwhich content regions are located and presented. If notts:extentattribute is specified, then the spatial extent of theRoot Container Region isconsidered to be determined by theDocument Processing Context.The origin of theRoot Container Region is determined by theDocument Processing Context.

Note:

In the absence of other requirements, and if aRelated Media Object exists, then it is recommendedthat theDocument Processing Context determine that:

  • if notts:extent is specified on the roottt element, the extent of theRoot Container Region beestablished as equal to the extent of theRelated Media Object Region; and

  • the origin of theRoot Container Region be established so that this region is centered in theRelated Media Object Region.

Note:

If an author desires to signal the (storage or image) aspect ratio of theRoot Container Regionwithout specifying its resolution, then this may be accomplished by using metadata specifiedin an external namespace, such asm708:aspectRatio as defined in[SMPTE 2052-11], §5.4.4.This would permit, for example, the interchange of information that reflects thethe semantics of[CEA-708-E] , §4.5 “Caption Service Metadata”, “ASPECT RATIO”.

Anxml:lang attribute must be specified on thett element.If the attribute value is empty, it signifies that there is no default language that appliesto the text contained within theDocument Instance.

If noxml:space attribute is specified upon thett element, then it mustbe considered as if the attribute had been specified with a value ofdefault.

7.1.2 head

Thehead element is a container element used to groupheader matter, including metadata,profile, styling, and layout information.

Thehead element accepts as its children zero or moreelements in theMetadata.class element group,followed by zero or more elements in theParameters.class element group,followed by zero or onestyling element,followed by zero or onelayout element.

Any metadata specified by children in theMetadata.classelement group applies semantically to theDocument Instance as awhole, and not just thehead element.

Any parameters specified by children in theParameters.classelement group applies semantically to theDocument Instance as awhole, and not just thehead element.

Astyling child element is used to specify style constructsthat are referenced from other style constructs, by layout constructs, and byContent elements.

Alayout child element is used to specify layout constructs thatare referenced byContent elements.

XML Representation – Element Information Item: head
<headxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content:Metadata.class*,Parameters.class*,styling?,layout?</head>

To the extent that time semantics apply to the content of thehead element, the implied time interval of this element isdefined to be coterminous with theRoot Temporal Extent.

7.1.3 body

Thebody element functions as a logical container and a temporalstructuring element for a sequence of textual content units represented aslogical divisions.

Thebody element accepts as its children zero or moreelements in theMetadata.class element group,followed by zero or moreelements in theAnimation.class element group,followed byzero or morediv elements.

Any metadata specified by children in theMetadata.classelement group applies semantically to thebody element and its descendants as a whole.

Any animation elements specified by children in theAnimation.classelement group apply semantically to thebody element.

XML Representation – Element Information Item: body
<bodybegin =<timeExpression>dur =<timeExpression>end =<timeExpression>region = IDREFstyle = IDREFStimeContainer = (par|seq)xml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Metadata namespace}  {any attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content:Metadata.class*,Animation.class*,div*</body>

An author may specify a temporal interval for abody element usingthebegin,dur, andend attributes. If the begin pointof this interval remains unspecified, then the begin point is interpreted as the beginningpoint of theRoot Temporal Extent. Similarly, if the end point of this interval remains unspecified, then theend point is interpreted as the ending point of theRoot Temporal Extent.

Note:

ADocument Instance referenced from a SMIL presentationis expected to follow the same timing rules as apply to other SMIL mediaobjects.

If relative begin or end times are specified on thebodyelement, then these times are resolved by reference to the beginning andending time of theRoot Temporal Extent.

If theRoot Temporal Extent is shorter than the computed duration of thebody element, then the active time interval of abody element istruncated to the active end point of theRoot Temporal Extent.

An author may associate a set of style properties with abody element by means of either thestyleattribute or inline style attributes or a combination thereof.

Note:

Style properties that are associated with abody elementin aDocument Instance are available for style inheritance bydescendantContent elements such asdiv,p,spanandbr.

If notimeContainer attribute is specified on abody element, then it must be interpreted as havingparalleltime containment semantics.

7.1.4 div

Thediv element functions as a logical container and a temporalstructuring element for a sequence of textual content units represented aslogical sub-divisions or paragraphs.

Note:

When rendered on a continuous (non-paged) visual presentation medium,adiv element is expected to generateone or more blockareasthat contain zero or more child block areasgenerated by thediv element'sdescendantp elements.

If someblock area generated by adiv element doesnot contain any child areas, then it is not expected to be presented.

Thediv element accepts as its children zero or moreelements in theMetadata.class element group,followed by zero or moreelements in theAnimation.class element group,followed byzero or morediv orp elements.

Any metadata specified by children in theMetadata.classelement group applies semantically to thediv element and its descendants as a whole.

Any animation elements specified by children in theAnimation.classelement group apply semantically to thediv element.

XML Representation – Element Information Item: div
<divbegin =<timeExpression>dur =<timeExpression>end =<timeExpression>region = IDREFstyle = IDREFStimeContainer = (par|seq)xml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Metadata namespace}  {any attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content:Metadata.class*,Animation.class*,Block.class*</div>

An author may associate a set of style properties with adiv element by means of eitherthestyle attribute or inline style attributes or a combination thereof.

Note:

Style properties that are associatedwithadiv element in aDocument Instanceare available for style inheritance by descendantContent elements such asdiv,p,span, andbr.

If notimeContainer attribute is specified onadiv element, then it must be interpreted as havingparallel time containment semantics.

7.1.5 p

Ap element represents a logical paragraph, serving asa transition between block level and inline level formatting semantics.

Thep element accepts as its children zero or moreelements in theMetadata.class element group,followed by zero or moreelements in theAnimation.class element group,followed byzero or more intermixedspan elements,br elements,or text nodes.

Any metadata specified by children in theMetadata.classelement group applies semantically to thep element and its descendants as a whole.

Any animation elements specified by children in theAnimation.classelement group apply semantically to thep element.

XML Representation – Element Information Item: p
<pbegin =<timeExpression>dur =<timeExpression>end =<timeExpression>region = IDREFstyle = IDREFStimeContainer = (par|seq)xml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Metadata namespace}  {any attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content:Metadata.class*,Animation.class*,Inline.class*</p>

An author may associate a set of style properties with ap element by means of either thestyleattribute or inline style attributes or a combination thereof.

Note:

Style properties that are associated with ap elementin aDocument Instance are available for style inheritance bydescendantContent elements such asspan andbr.

If notimeContainer attribute is specified onap element, then it must be interpreted as havingparallel time containment semantics.

If a sequence of children of ap elementconsists solely of character information items, then that sequence mustbe considered to be ananonymous span for the purpose ofapplying style properties that apply tospan elements.

Note:

The presentation semantics of TTML effectivelyimplies that ap element constitutes a line break. In particular,it is associated with a block-stacking constraint both before the firstgenerated line area and after the last generated line area. See9.3.4 Synchronic Flow Processing for further details.

7.1.6 span

Thespan element functions as a logical container and a temporalstructuring element for a sequence of textual content units having inlinelevel formatting semantics.

When presented on a visual medium, aspan element is intended togenerate a sequence of inline areas, each containing one or more glyph areas.

Thespan element accepts as its children zero or moreelements in theMetadata.class element group,followed by zero or moreelements in theAnimation.class element group,followed byzero or more intermixedspan elements,br elements,or text nodes.

Any metadata specified by children in theMetadata.classelement group applies semantically to thespan element and its descendants as a whole.

Any animation elements specified by children in theAnimation.classelement group apply semantically to thespan element.

XML Representation – Element Information Item: span
<spanbegin =<timeExpression>dur =<timeExpression>end =<timeExpression>region = IDREFstyle = IDREFStimeContainer = (par|seq)xml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Metadata namespace}  {any attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content:Metadata.class*,Animation.class*,Inline.class*</span>

An author may associate a set of style properties with aspan element by means of either thestyleattribute or inline style attributes or a combination thereof.

Note:

Style properties that are associated with aspan elementin aDocument Instance are available for style inheritance bydescendantContent elements such asspan andbr.

If notimeContainer attribute is specified onaspan element, then it must be interpreted as havingparallel time containment semantics.

7.1.7 br

Thebr element denotes an explicit line break.

Any metadata specified by children in theMetadata.classelement group applies semantically to thebr element and its descendants as a whole.

Any animation elements specified by children in theAnimation.classelement group apply semantically to thebr element.

Note:

While permitted, the use ofAnimation.class children is not recommended since no style property applies to thebr element. Instead, animating abr element can be achieved by wrapping it in an animatedspan element.

XML Representation – Element Information Item: br
<brstyle = IDREFSxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Metadata namespace}  {any attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content:Metadata.class*,Animation.class*</br>

When presented on a visual medium, the presence of abr element must beinterpreted as a forced line break.

Note:

The visual presentation of abr element isintended to produce the same effect as the control characterCR (U+000D)followed by the control codeLF (U+000A) when presented on a teletype device.Therefore, twobr elements in sequence will produce adifferent effect than a singlebr element.

7.2 Content Attribute Vocabulary

This section defines the following common attributes used with many or all element typesin the core vocabulary catalog:

7.2.1 xml:id

Thexml:id attribute is used as defined by[XML ID].

Thexml:id attribute may be used with any element in thecore vocabulary catalog.

7.2.2 xml:lang

Thexml:lang attribute is used as defined by[XML 1.0], §2.12,Language Identification.

Thexml:lang attribute must be specified on thettelement and may be specified by an instance of any other element typein the core vocabulary catalog except parameter vocabulary.

7.2.3 xml:space

Thexml:space attribute is used as defined by[XML 1.0], §2.10,White Space Handling.

Thexml:space attribute may be used with any element inthe core vocabulary catalog except parameter vocabulary.

The semantics of the valuedefault are fixed to mean thatwhen performing presentation processing of aDocument Instance asdescribed by9.3.4 Synchronic Flow Processing,processing must occur asif the following properties were specified on the affectedelements of an equivalent intermediate XSL-FO document:

  • suppress-at-line-break="auto"

  • linefeed-treatment="treat-as-space"

  • white-space-collapse="true"

  • white-space-treatment="ignore-if-surrounding-linefeed"

Similarly, the semantics of the valuepreserve are fixed to mean thatwhen performing presentation processing, processing must occur asif the following properties were specified on the affectedelements of an equivalent intermediate XSL-FO document:

  • suppress-at-line-break="retain"

  • linefeed-treatment="preserve"

  • white-space-collapse="false"

  • white-space-treatment="preserve"

When performing other types of processing intended to eventuallyresult in a visual presentation by means other than those describedin this specification, the semantics of space collapsing andpreservation as described above should be respected. For other typesof processing, the treatment of thexml:space attributeis processor dependent, but should respect the semantics describedabove if possible.

Note:

The semantics of the above four cited XSL-FO properties are defined byby[XSL 1.1], § 7.17.3, 7.16.7, 7.16.12, and 7.16.8, respectively.

Note:

No presentation semantics are specified for the TAB (U+0009) character. Furthermore, the TAB (U+0009) character can generate a glyph area. As a result, the use of the TAB (U+0009) character in#PCDATA content withinp andspan elements is not recommended.

8 Styling

This section specifies thestyling matter of the corevocabulary catalog, wherestyling is to be understood as a separable layer of information that applies tocontent and that denotes authorial intentions about the presentation ofthat content.

Styling attributes are included in TTML to enable authorial intent of presentationto be included within a self-contained document. This section describesthe semantics of style presentation in terms of a standard processingmodel. TTML Processors are not required to presentDocument Instances in any particular way; but an implementation of this model by a TTML Presentation Processorthat provides externally observable results that are consistent with this model islikely to lead to a user experience that closely resembles the experience intended bythe documents' authors.

Note:

The semantics of TTML style presentation are described in terms of the layout and formatting model definedin[XSL 1.1]. The effects of the attributes in this section are intended to be compatible with this model; however, presentation agentsmay use any technology to satisfy the authorial intent of the document. For example, a[CSS2] processor may be used to implement features it has in common with this model.

No normative use of an<?xml-stylesheet ... ?> processing instruction is definedby this specification.

8.1 Styling Element Vocabulary

The following elements specify the structure and principal styling aspects of aDocument Instance:

8.1.1 styling

Thestyling element is a container element used to groupstyling matter, including metadata that applies to styling matter.

Thestyling element accepts as its children zero or moreelements in theMetadata.class element group, followed byzero or morestyle elements.

XML Representation – Element Information Item: styling
<stylingxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content:Metadata.class*,style*</styling>

To the extent that time semantics apply to the content of thestyling element, the implied time interval of this element isdefined to be coterminous with theRoot Temporal Extent.

8.1.2 style

Thestyle element is used to definea set of style specifications expressed as aspecified style set in accordance with8.4.4.2 Specified Style Set Processing.

XML Representation – Element Information Item: style
<stylestyle = IDREFSxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content: EMPTY</style>

If astyle element appears as a descendant of aregion element, then thestyle element must beignored for the purpose of computing referential styles as defined by8.4.1.2 Referential Styling and8.4.1.3 Chained Referential Styling.

Note:

That is to say, when referential styling is used by an element torefer to astyle element, then the referencedstyleelement must appear as a descendant of thestyling element, andnot in any other context.

8.2 Styling Attribute Vocabulary

This section defines the8.2.1 style attribute usedwith both style definition elements as well asContent elements.

In addition, this section specifies the following attributes in the TT Style Namespacefor use with style definition elements, certain layout elements, andContent elementsthat support inline style specifications:

Unless explicitly stated otherwise, linear white-space (LWSP) mustappear between adjacent non-terminal components of a value of a TTStyle or TT Style ExtensionProperty value unless some other delimiter is permitted and used.

Note:

This specification makes use oflowerCamelCased localnames for style attributes thatare based upon like-named properties defined by[XSL 1.1].This convention is likewise extended to token values of suchproperties.

Note:

A style property may be expressed as a specified attribute on anyContent element typeindependently of whether the property applies to thatelement type. This capability permits the expression of an inheritablestyle property on ancestor elements to which the propertydoes not apply.

Note:

Due to the general syntax of this specification (and the schemas it references) with respectto how style attributes are specified, particularly for the purpose of supporting inheritance,it is possible for an author to inadvertently specify a non-inheritable style attribute onan element that applies neither to that element or any of its descendants while still remainingconformant from a content validity perspective. Content authors may wish to make use of TTMLcontent verification tools that detect and warn about such usage.

8.2.1 style

Thestyle attribute is used by referential style associationto reference one or morestyle elements each of which define a style (property) set.

Thestyle attribute may be specified by an instance of the followingelement types:

If specified, the value of astyle attribute mustadhere to theIDREFS data type defined by[XML Schema Part 2],§ 3.3.10, and, furthermore, each IDREF must reference astyle elementwhich has astyling element as an ancestor.

If the same IDREF,ID1, appears more than one time in the value of astyleattribute, then there should be an intervening IDREF,ID2, whereID2 is not equal toID1.

Note:

This constraint is intended to discourage the use of redundant referential styling while stillallowing the same style to be referenced multiple times in order to potentially override priorreferenced styles, e.g., when an intervening, distinct style is referenced in the IDREFS list.

Note:

See the specific element type definitions that permit use of thestyle attribute, as well as8.4.1.2 Referential Styling and8.4.1.3 Chained Referential Styling, forfurther information on its semantics.

8.2.2 tts:backgroundColor

Thetts:backgroundColor attribute is used to specify a style property thatdefines the background color of a region or an area generated by content flowed into a region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:<color>
Initial:transparent
Applies to:body,div,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

Thetts:backgroundColor style is illustrated by the following example.

Example Fragment – Background Color
<region xml:id="r1">  <style tts:extent="306px 114px"/>  <styletts:backgroundColor="red"/>  <style tts:color="white"/>  <style tts:displayAlign="after"/>  <style tts:padding="3px 40px"/></region>...<p region="r1"tts:backgroundColor="purple" tts:textAlign="center">  Twinkle, twinkle, little bat!<br/>  How <spantts:backgroundColor="green">I wonder</span> where you're at!</p>

Example Rendition – Background Color
TTML backgroundColor style property

Note:

The semantics of the style property represented by this attribute are based upon that defined by[XSL 1.1], § 7.8.2.

8.2.3 tts:color

Thetts:color attribute is used to specify a style property thatdefines the foreground color of marks associated with an area generated by content flowed into a region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:<color>
Initial:see prose
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

The initial value of thetts:color propertyis considered to be implementation dependent. In the absence ofend-user preference information, a conformant presentation processorshould use an initial value that is highly contrastive to thebackground color of theRoot Container Region.

Thetts:color style is illustrated by the following example.

Example Fragment – Color
<region xml:id="r1">  <style tts:backgroundColor="black"/>  <styletts:color="white"/>  <style tts:displayAlign="after"/>  <style tts:textAlign="center"/></region>...<p region="r1">  In spring, when woods are <spantts:color="green">getting green</span>,<br/>  I'll try and tell you what I mean.</p>

Example Rendition – Color
TTML color style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.18.1.

8.2.4 tts:direction

Thetts:direction attribute is used to specify a style property that, depending on the context of use,determines (1) the bidirectional paragraph level, or (2) the directionality of a bidirectional embedding or override.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:ltr |rtl
Initial:ltr
Applies to:p,span
Inherited:yes
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

When applied to ap element, the computed value of this property explicitly establishes theparagraph level as specified by[UAX9], § 4.3, Higher Level ProtocolHL1.

When applied to aspan element (or anonymous span), the computed value of this property, in combination with the computed valueof thetts:unicodeBidi style property, determines the directionality of a bidirectional embedding or override as specified by[UAX9], § 4.3, Higher Level ProtocolHL3.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valueltr.

Thetts:direction style is illustrated by the following example.

Example Fragment – Direction
<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"tts:direction="rtl">where the tourists snore.</span></p>

Example Rendition – Direction
TTML direction style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.29.1.

8.2.5 tts:display

Thetts:display attribute is used to specify a style property thatdefines whether an element is a candidate for layout and compositionin a region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:auto |none
Initial:auto
Applies to:body,div,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

If the value of this attribute isauto,then the affected element is a candidate for region layout andpresentation; however, if the value isnone, then theaffected element and its descendants must be considered ineligible for regionlayout and presentation.

Thetts:display style is illustrated by the following example.

Example Fragment – Display
<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">    [[[    <spantts:display="none">      <set begin="1s" dur="1s"tts:display="auto"/>      Beautiful soup,    </span>    <spantts:display="none">      <set begin="2s" dur="1s"tts:display="auto"/>      so rich and green,    </span>    <spantts:display="none">      <set begin="3s" dur="1s"tts:display="auto"/>      waiting in a hot tureen!    </span>    ]]]  </p></div>

Example Rendition – Display
TTML display style property - [0,1)
TTML display style property - [1,2)
TTML display style property - [2,3)
TTML display style property - [3,4)
TTML display style property - [4,5)

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[CSS2], § 9.2.4.

8.2.6 tts:displayAlign

Thetts:displayAlign attribute is used to specify a style property thatdefines the alignment of block areas in the block progression direction.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:before |center |after
Initial:before
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuebefore.

Thetts:displayAlign style is illustrated by the following example.

Example Fragment – Display Align
<region xml:id="r1">  <style tts:extent="128px 66px" tts:origin="0px 0px"       tts:backgroundColor="black" tts:color="white"/>  <styletts:displayAlign="before"/>  <style tts:textAlign="start"/></region><region xml:id="r2">  <style tts:extent="192px 66px" tts:origin="128px 66px"/>       tts:backgroundColor="green" tts:color="white"/>  <styletts:displayAlign="after"/>  <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"/>  <styletts:displayAlign="before"/>  <style tts:textAlign="start"/></region><region xml:id="r4">  <style tts:extent="192px 66px" tts:origin="128px 198px"/>       tts:backgroundColor="green" tts:color="white"/>  <styletts:displayAlign="after"/>  <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>

Example Rendition – Display Align
TTML displayAlign style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.14.4.

8.2.7 tts:extent

Thetts:extent attribute is used to specify thewidth andheight of a region area(which may be theRoot Container Region).

Note:

If padding is applied to a region, then the region's extent includes that padding, i.e., padding is applied as an inset, and, therefore,is interior to the region's extent.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:auto |<length><length>
Initial:auto
Applies to:tt,region
Inherited:no
Percentages:relative to width and height ofRoot Container Region
Animatable:discrete

If the value of this attribute consists of two<length>specifications, then they must be interpreted aswidthandheight, where the first specification is thewidth, and the second specification is theheight.

The<length> value(s) used to express extent must be non-negative.

If the value of this attribute isauto, then the computed valueof the style property must be considered to be the same as the extent of theRoot Container Region.

The extent of theRoot Container Region is determined either by atts:extent specified on thett element, ifpresent, or as described by7.1.1 tt if not present.Iftts:extent is specified on thett element, thenthe width and height must be expressed in terms of two<length> specifications,and these specifications must be expressed as non-percentage, definite lengths using pixel units.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the closest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the Euclidean distance betweenthe computed extent and the supported extent is minimized. If there are multiple closest supported values equally distant fromthe computed value, then the value most distant from [0,0], i.e., of greatest extent, is used.

This rule for resolvingclosest supported value for thetts:extent attribute makes use of the nearest larger rather than nearest smaller supported distance. The rationale for this difference in treatment is that use of a larger extent ensures that the affected content will be contained in the region area without causing region overflow, while use of a smaller extent makes region overflow more likely.

Thetts:extent style is illustrated by the following example.

Example Fragment – Extent
<region xml:id="r1">  <styletts:extent="330px 122px"/>  <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>

Example Rendition – Extent
TTML extent style property

8.2.8 tts:fontFamily

Thetts:fontFamily attribute is used to specify a style property thatdefines the font family from which glyphs are selected for glyph areas generatedby content flowed into a region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:(<familyName> |<genericFamilyName>)("," (<familyName> |<genericFamilyName>))*
Initial:default
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete

Note:

While permitted, the use of linear whitespace (LWSP) around the comma delimiters in the value of this attribute is not recommended. The rationale for this recommendation is that some existing processors may notbe tolerant of this usage.

Note:

The initial value,default, is a generic font family name, and isfurther described in8.3.6 <genericFamilyName> below.

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

If a computed value of the property associated with this attribute is not supported, then apresentation processor must attempt to map the computed font familyto a supported font family that has similar typographiccharacteristics, or, in the absence of such a mapping, it mustuse the valuedefault.

Thetts:fontFamily style is illustrated by the following example.

Example Fragment – Font Family
<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"/>  <styletts:fontFamily="proportionalSansSerif"/></region>...<div region="r1">  <p>    "The time has come," the Walrus said,<br/>    "to talk of many things:  </p>  <p tts:textAlign="end"tts:fontFamily="monospaceSerif">    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>

Example Rendition – Font Family
TTML fontFamily style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.9.2.

8.2.9 tts:fontSize

Thetts:fontSize attribute is used to specify a style propertythat defines the font size for glyphs that are selected for glyph areasgenerated by content flowed into a region.

This attribute may be specified by any element typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:<length><length>?
Initial:1c
Applies to:span
Inherited:yes
Percentages:if notregion element, then relative to the parent element's computed font size; otherwise, relative to theComputed Cell Size.
Animatable:discrete

The computed value of the property associated with this attribute consists of a 2-tuplethe entries of which denote the computed values of the width and height components of the font size respectively.

If a single<length> value is specified, then this length appliesequally to horizontal and vertical size of a glyph's EM square; if two<length> values are specified, then the first expresses the horizontalsize and the second expresses vertical size.

Note:

A glyph's EM square is conventionally defined as the EM square of the font that contains the glyph. That is,glyphs do not have an EM square that is distinct from their font's EM square.

Note:

Anamorphic font scaling, i.e., fonts scaled to independent (and distinct) horizontal and vertical sizes, is expected to be used in a number of contexts, such as when an author desires to synthesize a narrow or wide font face, when an author desires to employ font sizes based on non-square cell units, etc.

If horizontal and vertical sizes are expressed independently, then theunits of the<length> values must be the same.

Relative<length> valuesthat appear in this attribute, i.e., values expressed in percentage (%), cell (c), or EM (em) units,are resolved in relation to a referenced 2-dimensional size value consisting of two components, a width component anda height component.

When a single relative<length> value is specified, thenthis<length> is resolved in terms of the height component of the referenced value;when two relative<length> values are specified,the first<length> is resolved in terms of the width component of the referenced value andthe second<length> is resolved in terms of the height component of the referenced value.

If the relative unit is cell (c), then the referenced value is theComputed Cell Size.

Note:

For example, consider a paragraph (p) elementP.If theComputed Cell Size is (24px,36px), and iftts:fontSize="1c" is specified onP, then the computed value oftts:fontSizeresolves to (36px,36px), while iftts:fontSize="1c 1c" is specified onP,then the computed value resolves to (24px,36px).

If the relative unit is EM (em), then the referenced value is determined as if percentage unitswere used, where1em equals100%.

Note:

For example, consider a span elementS, a child of a paragraph (p) elementP.If the computed value oftts:fontSize onP is (18px,24px), and iftts:fontSize="1em" is specified onS, then this is equivalent to specifying100%,which resolves to (24px,24px). However, iftts:fontSize="1em 1em" is specified onS,then this is equivalent to specifying100% 100% which resolves to (18px,24px).

The<length> value(s) used to express font size must be non-negative.

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the closest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the Euclidean distance betweenthe computed font size and the supported font size is minimized. If there are multiple closest supported values equally distant fromthe 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.

Thetts:fontSize style is illustrated by the following example.

Example Fragment – Font Size
<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"/>  <styletts:fontSize="18px"/></region>...<p region="r1">  Then fill up the glasses<br/>  with treacle and ink,<br/>  Or anything else<br/>  that is <spantts:fontSize="24px">pleasant</span> to drink.</p>

Example Rendition – Font Size
TTML fontSize style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.9.4. The addition of a second length component to permit specifying fontwidth and height independently is an extension introduced by TTML.

8.2.10 tts:fontStyle

Thetts:fontStyle attribute is used to specify a style property thatdefines the font style to apply to glyphs that are selected for glyph areas generatedby content flowed into a region, where the mapping from fontstyle value to specific font face or style parameterization is not determinedby this specification.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:normal |italic |oblique
Initial:normal
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

Use of the valueobliquedenotes a shear transformation (at an unspecifiedangle) in the inline progression dimension.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuenormal.

Thetts:fontStyle style is illustrated by the following example.

Example Fragment – Font Style
<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 <spantts:fontStyle="italic">write it down.</span></p>

Example Rendition – Font Style
TTML fontStyle style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.9.7.

8.2.11 tts:fontWeight

Thetts:fontWeight attribute is used to specify a style propertythat defines the font weight to apply to glyphs that are selected for glyphareas generated by content flowed into a region, where the mapping from fontweight value to specific font face or weight parameterization is not determinedby this specification.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:normal |bold
Initial:normal
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuenormal.

Thetts:fontWeight style is illustrated by the following example.

Example Fragment – Font Weight
<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/>  <spantts:fontWeight="bold">and mentioned me to him:</span><br/>  She gave me a good character<br/>  <spantts:fontWeight="bold">but said I could not swim.</span></p>

Example Rendition – Font Weight
TTML fontWeight style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.9.9.

8.2.12 tts:lineHeight

Thetts:lineHeight attribute is used to specify a style property thatdefines the inter-baseline separation between line areas generated by content flowed into a region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:normal |<length>
Initial:normal
Applies to:p
Inherited:yes. See alsospecial inheritance semantics.
Percentages:relative to this element's font size
Animatable:discrete

If the value of this attribute isnormal, then theused value of this style property should be determined as follows:

  1. LetP be thep element to which this style property applies.

  2. LetFF be the computed value of thetts:fontFamilystyle property ofP.

  3. LetFS be the computed value of thetts:fontSize style property ofP.

  4. LetF0 be the first font obtained when sequentially mapping each font family inFF to a set of available fonts,where this set of available fonts is constrained as needed to satisfy the computed values of thetts:fontStyle andtts:fontWeightstyle properties ofP.

  5. IfF0 is associated with font metrics that specify altitudeA, descentD, and line gapG,then setLH to the sum of scaled(A), scaled(D), and scaled(G),where scaled(X) denotes font metricX scaled according to font sizeFS.

  6. Otherwise,LH is considered to be implementation dependent; however, in the absence of implementation specific requirements,LH is recommended to be set to 125% ofFS.

  7. Set theused value of this style property toLH.

Note:

If a content author wishes to avoid the possibility of different interpretations ofnormal, for example, due to differences inthe set of available fonts, then it is recommended that a<length> value expression be used to explicitly specify line height value.

It is the intention of this specification that the above algorithm be compatible with[XSL 1.1] and[CSS2].

If specified as a<length>, then the length mustbe non-negative.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the closest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the Euclidean distance betweenthe computed line height and the supported line height is minimized. If there are multiple closest supported values equally distant fromthe computed value, then the value most distant from 0, i.e., the largest line height, is used.

Thetts:lineHeight style is illustrated by the following example.

Example Fragment – Line Height
<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"/>  <styletts:lineHeight="32px"/></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>

Example Rendition – Line Height
TTML lineHeight style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.16.4. Furthermore, it is the intention of this specification that theallocation rectangle of a line be consistent with theper-inline-height-rectangleas defined by[XSL 1.1], § 4.5, i.e., that a CSS-style line box stacking strategy be used.

8.2.12.1 Special Inheritance Semantics

When the value of the attribute isnormal and when applying inheritance semantics, the valuenormal, not the computed value, is inherited. However, when this computed value is to be used to perform paragraph layout, it is further processed to obtain aused value as described above.

8.2.13 tts:opacity

Thetts:opacity attribute is used to specify a style property thatdefines the opacity (or conversely, the transparency)of marks associated with a region.

When presented onto a visual medium, the opacity of the region is applied uniformly and on a linear scaleto all marks produced by content targeted to theregion.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:<alpha>
Initial:1.0
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete

Thetts:opacity style is illustrated by the following example.

Example Fragment – Opacity
<region xml:id="r1" dur="5s">  <set begin="0s" dur="1s"tts:opacity="1.00"/>  <set begin="1s" dur="1s"tts:opacity="0.75"/>  <set begin="2s" dur="1s"tts:opacity="0.50"/>  <set begin="3s" dur="1s"tts:opacity="0.25"/>  <set begin="4s" dur="1s"tts:opacity="0.00"/>  <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>

Example Rendition – Opacity
TTML opacity style property - [0,1)
TTML opacity style property - [1,2)
TTML opacity style property - [2,3)
TTML opacity style property - [3,4)
TTML opacity style property - [4,5)

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[CSS3 Color],§ 3.2.

8.2.14 tts:origin

Thetts:origin attribute is used to specify thex andy coordinates of the origin of aregion area with respect to the origin of theRoot Container Region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:auto |<length><length>
Initial:auto
Applies to:region
Inherited:no
Percentages:relative to width and height ofRoot Container Region
Animatable:discrete

If the value of this attribute consists of two<length> specifications,then they must be interpreted asx andy coordinates, where the first specificationis thex coordinate, and the second specification is they coordinate.

If the value of this attribute isauto, then the computed valueof the style property must be considered to be the same as the origin of theRoot Container Region.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the closest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the Euclidean distance betweenthe computed origin and the supported origin is minimized. If there are multiple closest supported values equally distant fromthe computed value, then the value least distant from [0,0], i.e., closest to the coordinate space origin, is used.

Thetts:origin style is illustrated by the following example.

Example Fragment – Origin
<region xml:id="r1">  <styletts:origin="40px 40px"/>  <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>

Example Rendition – Origin
TTML origin style property

8.2.15 tts:overflow

Thetts:overflow attribute is used to specify a style property thatdefines whether a region area is clipped or not if the descendant areas of the region overflowits extent.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:visible |hidden
Initial:hidden
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete

If the value of this attribute isvisible, then content shouldnot be clipped outside of the affected region, and region composition and layoutmust be performed as if the region's width and height wereunconstrained,but witha well-defined origin. If the value ishidden, then content shouldbe clipped outside of the affected region.

Note:

This attribute has no impact on presentation processing when no overflow condition applies. An overflow condition applies when the bounding box of some descendant line area extends outside of the containing region's nominal content area extent in either or both 1) the inline and 2) the block progression dimensions, where the nominal content area extent in both dimensions is determined by the computed values of thetts:extent andtts:padding style properties of the containing region. Overflow in the inline progression dimension can occur only iftts:wrapOption isnoWrap. Furthermore, when an overflow condition applies, it is not intended that the effective extent of the region be modified for the purpose of presentation processing. For example, the area painted with the region's background color is not extended in either dimension to enclose the overflowed content.

Note that, in particular, the normative text in the previous paragraph "region composition and layout must be performed as if the region's width and height were unconstrained" refers to the process of determining the effective extent and origin of descendant line areas produced in either (or both) of the two overflow contexts described here, and is not intended to imply that the region extent is altered for the purpose of determining the region's padding area insets or the extent of its background color. More specifically, the normative language above is not intended to override or contradict the semantics of[XSL 1.1], § 7.21.2, or of[CSS2], § 11.1.1,on which the former is based.

Note:

Unless a manual line break elementbr is used by the content author,a paragraph of a given region will generate no more than one line area in thatregion if the value of thetts:overflow style that applies to theregion isvisible and if the applicabletts:wrapOptionstyle isnoWrap.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuehidden.

Thetts:overflow style is illustrated by the following example.

Example Fragment – Overflow
<?xml version="1.0"?><tt xmlns="http://www.w3.org/ns/ttml"    xmlns:tts="http://www.w3.org/ns/ttml#styling"    xml:lang="en"    tts:extent="320px 240px">  <head>    <styling>      <style xml:id="s1" tts:backgroundColor="black"             tts:padding="6px"/>      <style xml:id="s2" tts:color="red" tts:backgroundColor="white"             tts:wrapOption="noWrap" tts:fontFamily="proportionalSansSerif"             tts:fontSize="10px"/>    </styling>    <layout>      <region xml:id="r1" tts:extent="100px 40px"              tts:origin="20px 20px" tts:overflow="visible"/>      <region xml:id="r2" tts:extent="100px 40px"              tts:origin="20px 180px" tts:overflow="hidden"/>    </layout>  </head>  <body>    <div>      <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>    </div>  </body></tt>

Example Rendition – Overflow
TTML overflow style property

Note:

In the above example, thetts:noWrap is set tonoWrap to prevent automatic line wrapping (breaking);if this were not specified, then overflow would occur in the blockprogression direction as opposed to the inline progression direction.

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.21.2.

8.2.16 tts:padding

Thetts:padding attribute is used to specify padding (or inset)space on all sides of a region area.

Note:

Padding is applied as an inset to a region area, which is to say, the content rectangle of a region area is reduced bythe presence of padding applied to the region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:<length> |<length><length> |<length><length><length> |<length><length><length><length>
Initial:0px
Applies to:region
Inherited:no
Percentages:relative to width and height of region
Animatable:discrete

If the value of this attribute consists of one<length> specification,then that length applies to all edges of the affected areas. If the valueconsists of two<length> specifications, then the first applies to thebefore and after edges, and the second applies to the start and end edges.If three<length> specifications are provided, then the first applies to thebefore edge, the second applies to the start and end edges, and the third appliesto the after edge.If four<length> specifications are provided, then they apply to before, end,after, and start edges, respectively.

Note:

Percentage values are relative to the dimension of the region to which they apply. For example, if the before and after edges correspond to the top and bottom edges of the region, as is the case for Latin text wheretts:writingMode is equal to"lrtb", then percentage values that apply to either of the two edges are relative to the height of the region. Conversely, if the before and after edges correspond to the right and left edges of the region, as is the case for Japanese text wheretts:writingMode is equal to"tbrl", then percentage values that apply to either of the two edges are relative to the width of the region.

The<length> value(s) used to express padding must be non-negative.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the closest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the one-dimensional Euclidean distance betweenthe computed padding and the supported padding is minimized on a per-edge basis. If there are multiple closest supported values equally distant fromthe computed value for a given edge, then the value least distant from 0, i.e., the least padding, is used.

Thetts:padding style is illustrated by the following example.

Example Fragment – Padding
<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"/>  <styletts:padding="10px 40px"/></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>

When rendering an area to which padding applies, the background color thatapplies to the area is rendered into the padded portion of the area.

Example Rendition – Padding
TTML padding style property

Note:

The above example depicts how padding is applied as an inset to a region area. In particular,10px of padding is applied to the before (top) and after (bottom) edges, and40px of padding is applied at the start (left) and end (right) edges. Subtractingthese from the extent of the region area results in the region's content rectangle having366px widthand84px height. The black background color of the region appears in the region's padding rectanglewhile the red background color of the paragraph appears in the region's content rectangle.

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.31.15, except that individual shorthand values map to writingmode relative padding values as defined by[XSL 1.1],§ 7.8.31, 7.8.32, 7.8.33, and 7.8.34.

8.2.17 tts:showBackground

Thetts:showBackground attribute is used to specifyconstraints on when the background color of a region is intended to bepresented.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:always |whenActive
Initial:always
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete

If the value of this attribute isalways, then thebackground color of a region is always rendered when performing presentationprocessing on a visual medium; if the value iswhenActive,then the background color of a region is rendered only when somecontent is flowed into the region.

A region satisfies thewhenActive case if (1) it is aTemporally Active Region and (2) content is selected into the region, where that content is alsoTemporally Active.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuealways.

Thetts:showBackground style is illustrated by the following example.

Example Fragment – Show Background
<region xml:id="r1">  <style tts:origin="0px 0px"/>  <style tts:extent="265px 100px"/>  <style tts:backgroundColor="black"/>  <styletts:showBackground="always"/>  <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"/>  <styletts:showBackground="whenActive"/></region>

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[SMIL 2.1],§ 5.3.3.

8.2.18 tts:textAlign

Thetts:textAlign attribute is used to specify a style property thatdefines how inline areas are aligned within a containing block area in the inline progressiondirection.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:left |center |right |start |end
Initial:start
Applies to:p
Inherited:yes
Percentages:N/A
Animatable:discrete

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuestart.

Thetts:textAlign style is illustrated by the following example.

Example Fragment – Text Align
<region xml:id="r1">  <style tts:extent="355px 43px"/>  <style tts:origin="0px 0px"/>  <style tts:backgroundColor="black"/>  <style tts:color="white"/>  <styletts:textAlign="start"/></region><region xml:id="r2">  <style tts:extent="355px 43px"/>  <style tts:origin="0px 47px"/>  <style tts:backgroundColor="black"/>  <style tts:color="white"/>  <styletts:textAlign="end"/></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>

Example Rendition – Text Align
TTML textAlign style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.16.9.

8.2.19 tts:textDecoration

Thetts:textDecoration attribute is used to specify a style property thatdefines a text decoration effect to apply to glyph areas or other inlineareas that are generated by content flowed into a region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:none |[ [underline |noUnderline] || [lineThrough |noLineThrough] || [overline |noOverline] ]
Initial:none
Applies to:span
Inherited:seespecial semantics
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of thisstyle property, each character child of ap element isconsidered to be enclosed in an anonymous span.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuenone.

Note:

The syntax used above in defining the value of this property is based on thevalue component syntax defined in[CSS2], § 1.4.2.1. In essence,one or more of the values separated by|| may appear in the propertyvalue in any order, such as"noUnderline overline lineThrough".

Thetts:textDecoration style is illustrated by the following example.

Example Fragment – Text Decoration
<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"/>  <styletts:textDecoration="underline"/></region>...<p region="r1">  The sea was wet<spantts:textDecoration="noUnderline"> as </span>wet  <spantts:textDecoration="noUnderline">    could be,<br/>    The sand was dry as dry.<br/>    <spantts:textDecoration="lineThrough">There weren't any</span>    You <spantts:textDecoration="lineThrough">couldn't</span>    could not see a cloud<br/>    Because no cloud was in the sky.  </span></p>

Example Rendition – Text Decoration
TTML textDecoration style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.17.4.

8.2.19.1 Special Semantics

The computed value of the property associated with this attribute consists of a 3-tuple,each of which denotes, respectively, whether an underline, line through, or overlinedecoration is to be applied to the affected text.Furthermore, when applying inheritance semantics, each of these sub-values is considered tobe inherited separately from the others.

Note:

For example, if the computed value oftts:textDecoration that applies to adiv (division) elementis the tuple(noUnderline, lineThrough, overline) and ap (paragraph) element child of thatdiv specifiestts:textDecoration="noLineThrough", thenthe aggregate computed value that applies to thep element is(noUnderline, noLineThrough, overline), which valueis then inherited by children of thep element.

8.2.20 tts:textOutline

Thetts:textOutline attribute is used to specify a style property thatdefines a text outline effect to apply to glyphs that are selected for glyph areas generatedby content flowed into a region.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:none |<color>?<length><length>?
Initial:none
Applies to:span
Inherited:yes
Percentages:relative to this element's font size
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

The value of this attribute consists of an optional<color> termfollowed by one or two<length> terms. If acolor term ispresent, then it denotes the outline color; if nocolor term ispresent, the computed value of thetts:color applies. The firstlength term denotes the outline thickness and the second lengthterm, if present, indicates the blur radius.

When a relative<length> value is specified for outline thickness or blur radius, then it is resolved in terms of the height componentof the referenced font size orComputed Cell Size.

The<length> value(s) used to express thickness and blur radius must be non-negative.

If no blur radius is specified, i.e., only one<length> term is present,then the computed value of0px applies.

Note:

When a<length> expressed incells is used in atts:textOutline value,the cell's height applies.For example, if text outline thickness is specified as 0.1c, the cell resolutionis 20 by 10, and the extent of theRoot Container Region is 640 by 480, then theoutline thickness will be a nominal 480 / 10 * 0.1 pixels, i.e., 4.8px,without taking into account rasterization effects.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuenone.

Thetts:textOutline style is illustrated by the followingexample.

Example Fragment – Text Outline
<region xml:id="r1">  <style tts:backgroundColor="transparent"/>  <style tts:color="yellow"/>  <styletts:textOutline="black 2px 0px"/>  <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>

Example Rendition – Text Outline
backgroundColor style property

8.2.21 tts:unicodeBidi

Thetts:unicodeBidi attribute is used to specify a style property thatdefines a directional embedding or override according tothe Unicode bidirectional algorithm.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:normal |embed |bidiOverride
Initial:normal
Applies to:p,span
Inherited:no
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuenormal.

Thetts:unicodeBidi style is illustrated by the following example.

Example Fragment – Unicode Bidirectionality
<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/>  <spantts:unicodeBidi="bidiOverride" tts:direction="rtl">where the tourists snore.</span></p>

Example Rendition – Unicode Bidirectionality
TTML unicodeBidi style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.29.6.

8.2.22 tts:visibility

Thetts:visibility attribute is used to specify a style property thatdefines whether generated areas are visible or not when rendered on a visualpresentation medium.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:visible |hidden
Initial:visible
Applies to:body,div,p,region,span
Inherited:yes
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

Thetts:visibility style has no affect on content layout orcomposition, but merely determines whether composed content is visible or not.

If the computed value of the property associated with this attribute isvisible, then areas generatedby this element are rendered visible when presented on a visual medium. If the computed value ishidden, then they are notrendered visible, i.e., they are hidden; notwithstanding the foregoing, a descendant element of a hidden element is renderedvisible if the computed value of this property isvisible on the descendant.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuevisible.

Thetts:visibility style is illustrated by the following example.

Example Fragment – Visibility
<region xml:id="r1">  <style tts:extent="398px 121px"/>  <style tts:backgroundColor="black"/>  <style tts:color="white"/>  <style/></region>...<p region="r1" dur="4s">  <spantts:visibility="hidden">    <set begin="1s"tts:visibility="visible"/>    Curiouser  </span>  <spantts:visibility="hidden">    <set begin="2s"tts:visibility="visible"/>    and  </span>  <spantts:visibility="hidden">    <set begin="3s"tts:visibility="visible"/>    curiouser!  </span></p>

Example Rendition – Visibility
TTML visibility style property - [0,1)
TTML visibility style property - [1,2)
TTML visibility style property - [2,3)
TTML visibility style property - [3,4)

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.30.17.

8.2.23 tts:wrapOption

Thetts:wrapOption attribute is used to specify a style property thatdefines whether or not automatic line wrapping (breaking) applies within the context ofthe affected element.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:wrap |noWrap
Initial:wrap
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete

For the purpose of determining applicability of this style property,each character child of ap element is considered to be enclosed in an anonymousspan.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuewrap.

Thetts:wrapOption style is illustrated by the following example.

Example Fragment – Wrap Option
<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"/>  <styletts:wrapOption="noWrap"/></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>

Example Rendition – Wrap Option
TTML wrapOption style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.16.13.

8.2.24 tts:writingMode

Thetts:writingMode attribute is used to specify a style property thatdefines the block and inline progression directions to be used for the purpose ofstacking block and inline areas within a region area.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:lrtb |rltb |tbrl |tblr |lr |rl |tb
Initial:lrtb
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the valuelrtb.

Thetts:writingMode style is illustrated by the following example.

Example Fragment – Writing Mode
<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"/>  <styletts:writingMode="tbrl"/></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"/>  <styletts:writingMode="rltb"/></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>

Example Rendition – Writing Mode
TTML writingMode style property

Note:

In the second paragraph in the above example that targets regionr2, thetts:unicodeBidi andtts:direction properties are set tobidiOverride andrtl, respectively, in orderto override the normally left-to-right directionality of characters inthe Latin script.

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.29.7.

8.2.25 tts:zIndex

Thetts:zIndex attribute is used to specify a style property thatdefines the front-to-back ordering of region areas in the case that they overlap.

This attribute may be specified by anyelement typethat permits use of attributes in the TT Style Namespace; however, this attribute appliesas a style property only to those element types indicated in the following table.

Values:auto |<integer>
Initial:auto
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete

If two areas are associated with the same Z-index value, then, if those areasoverlap in space, the area(s) generated by lexically subsequent elements must berendered over area(s) generated by lexically prior elements, where lexicalorder is defined as the postorder traversal of aDocument Instance.

Thett element is considered to establish the root of the stacking context, as defined by[XSL 1.1], § 7.30.18.

If a computed value of the property associated with this attribute is not supported,then a presentation processor must use the closest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the Euclidean distance betweenthe computed z-index and the supported z-index is minimized. If there are multiple closest supported values equally distant fromthe computed value, then the value least distant from 0, i.e., closest to the base stack level of the current stacking context, is used.

Thetts:zIndex style is illustrated by the following example.

Example Fragment – Z Index
<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"/>  <styletts:zIndex="0"/></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"/>  <styletts:zIndex="1"/></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"/>  <styletts:zIndex="2"/></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"/>  <styletts:zIndex="3"/></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>

Example Rendition – Z Index
TTML zIndex style property

Note:

The semantics of the style propertyrepresented by this attribute are based upon that defined by[XSL 1.1],§ 7.30.18.

8.3 Style Value Expressions

Style property values include the use of the following expressions:

In the syntax representations defined in this section, nolinear whitespace (LWSP) is implied or permitted between tokensunless explicitly specified.

8.3.1 <alpha>

An <alpha> expression is used to express an opacity value,where0 means fully transparent and 1 means fully opaque.

Syntax Representation – <alpha>
<alpha>  :float

In the above syntax representation, the syntactic elementfloat must adhere to the lexicalrepresentation defined by[XML Schema Part 2] §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 valuerepresented is greater than 1.0, then it must be interpreted as1.0. The value NaN must be interpreted as 0.0.

A specified value for <alpha> should not beNaN,less than 0, or greater than 1.

If a presentation processor does not support a specific,valid opacity value, then it must interpret it as being equal to theclosest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the Euclidean distance betweenthe computed opacity and the supported opacity is minimized. If there are multiple closest supported values equally distant fromthe computed value, then the value most distant from 0, i.e., the greatest opacity, is used.

8.3.2 <color>

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% opacityand minimum (0) at 0% opacity, and where the applicable color space isdefined by[SRGB].

Syntax Representation – <color>
<color>  : "#" rrggbb  | "#" rrggbbaa  | "rgb(" r-value "," g-value "," b-value ")"  | "rgba(" r-value "," g-value "," b-value "," a-value ")"  |<namedColor>rrggbb  :<hexDigit>{6}rrggbbaa  :<hexDigit>{8}r-value | g-value | b-value | a-value  : component-valuecomponent-value  : non-negative-integer                    // valid range: [0,255]non-negative-integer  :<digit>+

Note:

While permitted, the use of linear whitespace (LWSP) around the comma delimiters in<color> expressions is not recommended. The rationale for this recommendation is that some existing processors may not be tolerant of this usage.

When expressing RGB component values, these values are consideredtonot be premultiplied by alpha.

For the purpose of performing presentation processing such thatnon-opaque or non-transparent alpha or opacity values apply, then thesemantics of compositing functions are defined with respect to the use ofthe[SRGB] color space for both inputs and outputs ofthe composition function.

Note:

The use of[SRGB] for the stated semantics ofcomposition is not meant to prevent an actual processor from using someother color space either for internal or external purposes. Forexample, a presentation processor may ultimately convert the SRGB valuesused here to the YUV color space for rendition on a television device.

If a presentation processor does not support a specific,valid color or alpha value, then it must interpret it as being equalto the closest supported value.

Note:

In this context, the phraseclosest supported value means the value for which the Euclidean distance betweenthe computed color or alpha and the supported color or alpha in the RGB color space is minimized. If there are multiple closest supported values equally distant fromthe computed value, then the value least distant from opaque blackrgba(0,0,0,255), i.e., the closest to opaque black, is used.

8.3.3 <digit>

A <digit> is used to express integers and other types of numbers or tokens.

Syntax Representation – <digit>
<digit>  : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

8.3.4 <duration>

This section is non-normative.

Note:

The information from this section has been removed due to lack of any normativeuse within this specification. This section is retained in its empty formin order to prevent section renumbering.

8.3.5 <familyName>

A <familyName> expression specifies a font family name.

Syntax Representation – <familyName>
<familyName>  : unquoted-string  | quoted-stringunquoted-string  : identifier ( lwsp identifier )*lwsp  : ( ' ' | '\t' | '\n' | '\r' )+identifier  : [-]? identifier-start identifier-following*identifier-start  : [_a-zA-Z]  | non-ascii-or-c1  | escapeidentifier-following  : [_a-zA-Z0-9-]  | non-ascii-or-c1  | escapenon-ascii-or-c1  : [^\0-\237]escape  : '\\'charquoted-string  : double-quoted-string  | single-quoted-stringdouble-quoted-string  : '"' ( [^"\\] | escape )+ '"'single-quoted-string  : "'" ( [^'\\] | escape )+ "'"

In addition to adhering to the syntax rules specified above, the following semantic rules apply:

  • the semantic value of a <familyName> expression is the semantic value of itsunquoted-string orquoted-stringnon-terminal, according to whichever applies;

  • the semantic value of anunquoted-string non-terminal is a pair<quoted,content>,wherequoted is a booleanfalse, andwherecontent is the result of appending the value of eachidentifiernon-terminal, in lexical order, where the value of each identifier is preceded by a single SPACE (U+0020) character if it is not the firstidentifier;

  • the semantic value of aquoted-string non-terminal is a pair<quoted,content>,wherequoted is a booleantrue, andwherecontent is the unquoted content of the quoted string, i.e., the sequence of characters between the delimiting quotes.

  • the semantic value of anescape non-terminal is the value of the escapedchar;

  • a <familyName> that takes the form of anunquoted-string that contains anidentifier thatstarts with two- HYPHEN-MINUS (U+002D) characters must be considered to be invalid;

  • a <familyName> that takes the form of anunquoted-string that contains a singleidentifier thatmatches (by case sensitive comparison) a <genericFamilyName> must be interpreted as that <genericFamilyName>;

  • a <familyName> that takes the form of aquoted-string whose content (unquoted value)matches (by case sensitive comparison) a <genericFamilyName> must not be interpreted as that <genericFamilyName>, but asthe actual name of a non-generic font family.

Note:

The syntactic elementchar is to be interpreted accordingto theChar production defined by[XML 1.0] §2.2.

Note:

The{unicode} escape mechanism defined by[CSS2] §4.1.1is not supported by this syntax; rather, authors are expected to either (1) directly encode the characterusing the document encoding or (2) use an XML character reference according to[XML 1.0] §4.1. When a syntactically significant character needs to be usedwithout its normal syntactic interpretation, it may be be escaped using the backslash(reverse solidus)escape non-terminal specified above.

When using the backslash (reverse solidus)escape non-terminal, the above syntax doesnot place any restriction on what character may be escaped, e.g.,\\[\n\r\f0-9a-f] arepermitted. If one of these latter escapes appears in a <familyName> expression, then it willneed to be converted to a{unicode} escape if it is to be used with a standard XSL-FOor CSS parser. In particular, a backslash followed by a newline is ignored by CSS, while it is notignored by the above syntax. Such an unignored escaped newline would need to be represented usingan equivalent{unicode} escape, such as\a, to order to express in CSS.

8.3.6 <genericFamilyName>

A <genericFamilyName> expression specifies a font family using a generaltoken that indicates a class of font families.

The resolution of a generic family name to a concrete font instance is considered tobe implementation dependent, both in the case of content authoring and content interpretation.

Syntax Representation – <genericFamilyName>
<genericFamilyName>  : "default"  | "monospace"  | "sansSerif"  | "serif"  | "monospaceSansSerif"  | "monospaceSerif"  | "proportionalSansSerif"  | "proportionalSerif"

The mapping between a generic (font) family name and an actual font is notdetermined by this specification; however, thedistinction of monospace versus proportional and serif versus sans-serifshould be maintained if possible when performing presentation.

If a generic (font) family name ofmonospace is specified,then it may be interpreted as equivalent to eithermonospaceSansSeriformonospaceSerif. The generic family namessansSerifandserif are to be interpreted as equivalent toproportionalSansSerifandproportionalSerif, respectively.

If the generic family namedefault is specified (or implied byan initial value), then its typographic characteristics are considered to be implementationdependent; however, it is recommended that this default font family be mapped toa monospaced, sans-serif font.

8.3.7 <hexDigit>

A <hexDigit> is used to express integers and other types of numbers or tokensthat employ base 16 arithmetic.

For the purpose of parsing, a distinction must not be made between lower and upper case.

Syntax Representation – <hexDigit>
<hexDigit>  :<digit>  | "a" | "b" | "c" | "d" | "e" | "f"  | "A" | "B" | "C" | "D" | "E" | "F"

8.3.8 <integer>

An <integer> expression is used to express an arbitrary, signed integral value.

Syntax Representation – <integer>
<integer>  : ( "+" | "-" )?<digit>+

8.3.9 <length>

A <length> expression is used to express either a coordinate component of pointin a cartesian space or a distance between two points in a cartesian space.

Syntax Representation – <length>
<length>  : scalar  | percentagescalar  : number unitspercentage  : number "%"sign  : "+" | "-"number  : sign? non-negative-numbernon-negative-number  : non-negative-integer  | non-negative-realnon-negative-integer  :<digit>+non-negative-real  :<digit>* "."<digit>+units  : "px"  | "em"  | "c"                                     // abbreviation of "cell"

It is an error to omit the units component of a scalar lengthvalue.

The semantics ofthe unit of measurepx (pixel) are as defined by[XSL 1.1], § 5.9.13.

When specified relative to a font whose size is expressed as a single lengthmeasure or as two length measures of equal length, the unit of measureem is considered to beidentical to that defined by[XSL 1.1], § 5.9.13;however, when specified relative to a font whose size is expressed astwo length measures of non-equal lengths, then oneem isequal to the inline progression dimension of the anamorphicallyscaled font when used to specify lengths in the inline progressiondirection and equal to the block progression dimension of the scaledfont when used to specify lengths in the block progression direction.

The semantics of the unit of measurec (cell) aredefined by the parameter6.2.1 ttp:cellResolution.

8.3.10 <namedColor>

A <namedColor> is used to express an RGBA color with a convenient name, and where the applicable color space isdefined by[SRGB].

For the purpose of parsing, a distinction must not be made between lower and upper case.

Syntax Representation – <namedColor>
<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)

Note:

Except fortransparent, the set of named colors specified above constitutes a propersubset of the set of named colors specified by[SVG 1.1], § 4.2.

8.3.11 <quotedString>

This section is non-normative.

Note:

The information from this section has been incorporated into8.3.5 <familyName>. This section is retained in its empty formin order to prevent section renumbering.

8.3.12 <string>

This section is non-normative.

Note:

The information from this section has been incorporated into8.3.5 <familyName>. This section is retained in its empty formin order to prevent section renumbering.

8.4 Style Resolution

This section defines the semantics of style resolution in terms ofa standard processing model as follows:

Any implementation of this model is permitted provided that theexternally observable results are consistent with the results producedby this model.

Note:

The semantics of style resolution employed here are based upon[XSL 1.1], § 5.

8.4.1 Style Association

Style association is a sub-process of8.4.4 Style Resolution Processing used to determine thespecified style set of each content andlayout element.

Style matter may be associated with content and layout matter in a number of ways:

In addition to the above, style matter may be associated with layout matter using:

8.4.1.1 Inline Styling

Style properties may be expressed in an inline manner by directspecification of an attribute from the TT Style Namespace on theaffected element. When expressed in this manner, the association ofstyle information is referred to asinline styling.

Style properties associated by inline styling are afforded a higher priority than all otherforms of style association.

Example – Inline Styling
<ptts:color="white">White 1 <spantts:color="yellow">Yellow</span> White 2</p>

Note:

In the above example, the two text fragments"White 1 " and" White 2", which are interpreted as anonymous spans, are notassociated with a color style property; rather, they inherit their color stylefrom their parentp element as described in8.4.2.1 Content Style Inheritance below.

8.4.1.2 Referential Styling

Style properties may be expressed in an out-of-line manner and referenced by theaffected element using thestyle attribute. When expressed in this manner,the association of style information is referred to asreferential styling.

If astyle attribute specifies multiple references, then those references areevaluated in the specified order, and that order applies to resolution of the value of astyle property in the case that it is specified along multiple reference paths.

The use of referential styling is restricted to makingreference tostyle element descendants of astylingelement. It is considered an error to reference astyleelement that is a descendant of alayout element.

Note:

The use of referential styling encourages the reuse of style specifications whilesacrificing locality of reference.

Note:

A singleContent element may be associated with style properties by a hybrid mixture ofinline and referential styling, in which case inline styling is given priority as described aboveby8.4.1.1 Inline Styling.

Example – Referential Styling
<stylexml:id="s1" tts:color="white"/><stylexml:id="s2" tts:color="yellow"/>...<pstyle="s1">White 1 <spanstyle="s2">Yellow</span> White 2</p>

Note:

In the above example, the two text fragments"White 1 " and" White 2", which are interpreted as anonymous spans, are notassociated with a color style property; rather, they inherit their color stylefrom their parentp element as described in8.4.2.1 Content Style Inheritance below.

8.4.1.3 Chained Referential Styling

Style properties may be expressed in an out-of-line manner and may themselves referenceother out-of-line style properties, thus creating a chain of references starting at theaffected element. When expressed in this manner, the association of style informationis referred to aschained referential styling.

A loop in a sequence of chained style references must be considered an error.

The use of referential styling is restricted to makingreference tostyle element descendants of astylingelement. It is considered an error to reference astyleelement that is a descendant of alayout element.

Note:

The use of chained referential styling encourages the grouping of style specificationsinto general and specific sets, which further aids in style specification reuse.

Note:

A singleContent element may be associated with style properties by a hybrid mixture ofinline, referential styling, and chained referential styling, in which case inline styling isgiven priority as described above by8.4.1.1 Inline Styling.

Example – Chained Referential Styling
<stylexml:id="s1" tts:color="white" tts:fontFamily="monospaceSerif"/><stylexml:id="s2"style="s1" tts:color="yellow"/>...<pstyle="s1">White Monospace</p><pstyle="s2">Yellow Monospace</p>

Note:

In the above example, the text of the second paragraph is yellow, sincetts:color='yellow' effectively overwrites (is merged over) thetts:color='white' that styles2 obtains by a reference to styles1.

8.4.1.4 Nested Styling

Style properties may be expressed in a nested manner by direct specification of one ormorestyle element children of the affected element.When expressed in this manner, the association of style informationis referred to asnested styling.

Style properties associated by nested styling are afforded a lower priority than inlinestyling but with higher priority than referential styling.

Example – Nested Styling
<region xml:id="r1"><style tts:extent="128px 66px"/><style tts:origin="0px 0px"/><style tts:displayAlign="center"/></region>

Note:

In this version of this specification, nested styling applies onlyto theregion element.

8.4.2 Style Inheritance

Style inheritance is a sub-process of8.4.4 Style Resolution Processing used to determine thespecified style set of each content andlayout element.

Styles are further propagated to content matterusing:

For the purpose of determining inherited styles, the element hierarchy ofan intermediate synchronic document form of aDocument Instance must be used, wheresuch intermediate forms are defined by9.3.3 Intermediate Synchronic Document Construction.

Note:

The intermediate synchronic document form is utilized rather thanthe original form in order to facilitate region inheritanceprocessing.

8.4.2.1 Content Style Inheritance

Style properties are inherited from ancestorContent elementswithin an intermediate synchronic documentif a style property is not associated with aContent element (oran anonymous span) and the style property is designated asinheritable.

Note:

Thett element is not aContent element;consequently, thebody element is the outermost element from which content style inheritance occurs.

If a style property is determined to require inheritance, then the inherited value mustbe the value of the same named style property in the computedstyle set of theelement's immediate ancestor elementwithin the applicable intermediate synchronic document.

Example – Content Style Inheritance
<ptts:fontFamily="monospaceSansSerif">  <span tts:color="yellow">Yellow Monospace</span></p>

Note:

In the above example, thespan element that encloses the character itemsYellow Monospace is not associated with atts:fontFamily styleproperty and this property is inheritable; therefore, the value of thetts:fontFamily styleis inherited from the computed styleset of the ancestorp element,and is added to thespecifiedstyleset of thespan element.

8.4.2.2 Region Style Inheritance

Style properties are inherited from a region element in the following case:

  1. if a style propertyP is not associated withaContent elementor an anonymous spanE and the styleproperty is designated as inheritable, and

  2. if thatstyle propertyP is in the computed styleset of regionR,and

  3. if that elementE is flowed into (presented within) regionR.

Example – Region Style Inheritance
<regionxml:id="r1">  <style tts:color="yellow"/>  <style tts:fontFamily="monospaceSerif"/></region>...<pregion="r1">Yellow Monospace</p>

Note:

In the above example, the anonymous span that encloses the characteritemsYellow Monospace effectively inherits thetts:colorandtts:fontFamily styles specified on theregionelement into which thep element is flowed (presented).

8.4.3 Style Resolution Value Categories

During style resolution, layout, and presentation processing,three categories of style property values are distinguished asfollows:

8.4.3.1 Specified Values

Values of style properties that are associated with or inheritedby an element or anonymous span are referred to asspecified values. Theset of all specified style properties of a given element is referred toas thespecified style set of that element.

8.4.3.2 Computed Values

When style properties are specified using relative value expressions,such as a named color, a relative unit (e.g., cell), or a percentage, thenthey need to be further resolved into absolute units, such as an RGB triple,pixels, etc.

During the style resolution process, all specified style values arereinterpreted (or recalculated) in absolute terms, and then recorded ascomputed values. Theset of all computed style properties of a given element is referred toas thecomputed style set of that element.

When a style value is inherited, either explicitly or implicitly, itis the computed value of the style that is inherited from an ancestorelement. 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 ofreference where the related (resolving) expression is not available.

8.4.3.3 Used Values

Subsequent to style inheritance, a computed value may require further resolution at layout or presentation time when such resolution is required by the semantics of a specific property or the information required to perform the resolution is not available until layout or presentation processing occurs. Such a value is referred to as aused value, which need not be the same value as the finalactual value described below.

Note:

The determination of aused value is always preceded by the inheritance of acomputed value; that is to say,used value computation is nominally performed after the8.4.4 Style Resolution Processing completes.

Note:

See also[CSS2], §6.1.3..

8.4.3.4 Actual Values

During the actual presentation process, other transformations occurthat map some value expressions to concrete, physical values. For example,the colors of computed style values are further subjected to closest colorapproximation and gamma correctionduring the display process. In addition, length value expressions that usepixels in computed style values are considered to express logical rather thanphysical (device) pixels. Consequently, these logical pixels are subject tobeing further transformed or mapped to physical (device) pixels duringpresentation.

The final values that result from the logical to device mappingprocess are referred to asactual values. The set of allactual style properties of a given element is referred to as theactual style set of that element.

Note:

More than one set of actual values may be produced during theprocess of presentation. For example, a TTML presentation processordevice may output an RGBA component video signal which is thenfurther transformed by an NTSC or PAL television to produce a finalimage. In this case, both color and dimensions may further be modifiedprior to presentation.

Note:

In general, a TTML presentation processor will not have accessto actual style set values; as a consequence, no further use or referenceto actual values is made below when formally describing the styleresolution process.

8.4.4 Style Resolution Processing

The process of style resolution is defined herein as the procedure(and results thereof) for resolving (determining) the computed valuesof all style properties that apply to content and layout elements:

The process described here forms an integral sub-process of9.3 Region Layout and Presentation.

8.4.4.1 Conceptual Definitions

For the purpose of interpreting the style resolution processingmodel specified below, the following conceptual definitions apply:

[style property]

a style property,P, is considered to consist of atuple[name, value], where the name of theproperty is a tuple[namespace value,unqualified name] and the value of the property is atuple[category, type, value expression]

Example – conceptual style property
[  ["http://www.w3.org/ns/ttml#styling", "color"],  ["specified",color, "red"]]

[style (property) set]

a style (property) set consists of an unordered collection of styleproperties, where no two style properties within the set have anidentical name, where by "identical name" is meant equality ofnamespace value of name tuple and unqualified name of name tuple;

in a specified style (property) set, the category of each styleproperty is "specified"; a specified style (property) set of anelementE is referred to asSSS(E);

Example – conceptual (specified) style (property) set
{  [    ["http://www.w3.org/ns/ttml#styling", "backgroundColor"],    ["specified",color, 0x00FF00 ]  ],  [    ["http://www.w3.org/ns/ttml#styling", "color"],    ["specified",color, "red" ]  ],  [    ["http://www.w3.org/ns/ttml#styling", "fontSize"],    ["specified",length, "1c" ]  ],  [    ["http://www.w3.org/ns/ttml#styling", "lineHeight"],    ["specified",length, "117%" ]  ]}

in a computed style (property) set, the category of each styleproperty is either "specified" or "computed"; a computed style (property) set of an elementE is referred to asCSS(E);

Example – conceptual (computed) style (property) set
{  [    ["http://www.w3.org/ns/ttml#styling", "backgroundColor"],    ["specified",color, 0x00FF00 ]  ],  [    ["http://www.w3.org/ns/ttml#styling", "color"],    ["computed",color, 0xFF0000 ]  ],  [    ["http://www.w3.org/ns/ttml#styling", "fontSize"],    ["computed",length, "24px" ]  ],  [    ["http://www.w3.org/ns/ttml#styling", "lineHeight"],    ["computed",length, "28px" ]  ]}

[style (property) merging]

a style propertyPnew is merged into astyle (property) set,SS, as follows: if a style propertyPold is already present inSSwhere the name ofPnew is identical to thename ofPold, then replacePold inSS withPnew; otherwise, addPnew toSS;

[style (property) set merging]

a style (property) setSSnew is merged intoan existing style (property) setSSold asfollows: for each style propertyPnew inSSnew, mergePnew intoSSold;

8.4.4.2 Specified Style Set Processing

The specified style setSSS of an element oranonymous spanE,SSS(E), is determined according to the following orderedrules:

  1. [initialization] initializethe specified style setSSS ofE to theempty set;

  2. [referential and chained referentialstyling] for eachstyle elementSREFreferenced by astyle attribute specified onE, and in the order specified in thestyleattribute, then, ifSREF is a descendantof astyling element,merge the specified style set ofSREF,SSS(SREF), intothe specified style set ofE,SSS(E);

  3. [nested styling] for eachnestedstyle element childSNEST ofE, and in the specified order of child elements, mergethe specified style set ofSNEST,SSS(SNEST), into the specified style set ofE,SSS(E);

  4. [inline styling] for eachstyle propertyP expressed as a specified stylingattribute ofE,mergeP into the specified styleset ofE,SSS(E);

  5. [animation styling] for eachstyle propertyP expressed as a specified stylingattribute of an immediate animation (set) element child of elementE,mergeP into the specified styleset ofE,SSS(E);

  6. [implicit inheritance] if theelement type ofE is not the styling element typestyle, then for each style propertyP in the set of style properties definedabove in8.2 Styling Attribute Vocabulary, perform thefollowing ordered sub-steps:

    1. ifP is present in the specifiedstyle set ofE,SSS(E), then continue to thenext style property;

    2. ifP is inheritable andE is aregion element, or ifP is not inheritable and applies toE, then setP′ to the initial value ofpropertyP if such an initial value is defined, where the initial value of a property isdetermined according to the specific property definition found abovein8.2 Styling Attribute Vocabulary;

    3. ifP is inheritable and the element type ofE is aContent elementtype or anonymous span, then setP′ to the result oflooking up the value ofP in the computed style set ofthe immediate ancestor element ofE, i.e.,CSS(PARENT(E));

    4. if the value ofP′ is not undefined, then mergeP′ into the specified style set ofE,SSS(E).

8.4.4.3 Computed Style Set Processing

The computed style setCSS of an element oranonymous spanE,CSS(E), is determined according to the following orderedrules:

  1. [resolve specified styles]determine (obtain) the specified style setSSS ofE, namely,SSS(E), in accordance with8.4.4.2 Specified Style Set Processing;

  2. [initialization]initializeCSS(E) to a (deep) copy ofSSS(E);

  3. [filter] ifE is astyle element, then returnCSS(E) as the resulting computed style set withoutfurther resolution; otherwise, continue with the next rule;

  4. [relative value resolution] for eachstyle propertyP inCSS(E), where the valuetype ofP is relative, perform the following orderedsub-steps:

    1. replace the relative value ofP with anequivalent, non-relative (computed) value;

    2. set the category ofP to "computed";

Note:

As a result of the filtering rule above, the computed style set ofastyle element includes only specified values, in which caserelative value expressions remain relative; consequently, theresolution of relative value expressions (that may be assigned bymeans of referential style association) always takes place in thecontext of a layout orContent element which has a presentationcontext, and not in the non-presentation, declaration contextof a referentiablestyle element.

Note:

See individual style properties for additional inheritance semantics, if any.

8.4.4.4 Style Resolution Process

The top-level style resolution process is defined as follows: usinga preorder traversal of each element and anonymous span,E, of an intermediate synchronic document,DOCinter, perform the following orderedsub-steps:

  1. [filter] if the element typeofE is not the styling element typestyle, isnot the layout element typeregion, and is not one of theContent element typesbody,div,p,span,br, or anonymous span, then continue to thenext element in the preorder traversal;

  2. [resolve computed styles]determine (obtain) the computed style setCSS ofE, namely,CSS(E), in accordance with8.4.4.3 Computed Style Set Processing.

9 Layout

This section specifies thelayout matter of the corevocabulary catalog, wherelayout is to be understood as a separable layer of information that applies tocontent and that denotes authorial intentions about the presentation ofthat content.

Note:

The two layers of layout and style matter are considered to be independentlyseparable. Layout matter specifies one or more spaces or areas intowhich content is intended to be presented, while style matter specifies the manner inwhich presentation occurs within the layout.

In certain cases, a content author may choose to embed (inline) style matter directlyinto layout or content matter. In such cases, an alternative exists – use of referential styling –in which the stylematter is not embedded (inlined).

9.1 Layout Element Vocabulary

The following elements specify the structure and principal layout aspects of aDocument Instance:

9.1.1 layout

Thelayout element is a container element used to grouplayout matter, including metadata that applies to layout matter.

Thelayout element accepts as its children zero or moreelements in theMetadata.class element group, followed byzero or moreregion elements.

XML Representation – Element Information Item: layout
<layoutxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content:Metadata.class*,region*</layout>

To the extent that time semantics apply to the content of thelayout element, the implied time interval of this element isdefined to be coterminous with theRoot Temporal Extent.

9.1.2 region

Theregion element is used to define a rectangular space or area into which content isto be flowed for the purpose of presentation.

Note:

The rectangular area of a region is explicitly not constrained to be contained within theRoot ContainerRegion. In particular, the origin components of a region may be negative, and the extent (width andheight) components of a region may be greater than the width and height of theRoot Container Region.Whether a presentation processor clips such a region to theRoot Container Region is implementationdependent, and not prescribed by this specification.

In addition, and in accordance with8.4.2.2 Region Style Inheritance, theregion element may be used to specify inheritable style properties to beinherited by content that is flowed into it.

Theregion element accepts as its children zero or moreelements in theMetadata.class element group,followed by zero or moreelements in theAnimation.class element group,followed byzero or morestyle elements.

Any metadata specified by children in theMetadata.classelement group applies semantically to theregion element and its descendants as a whole.Any animation elements specified by children in theAnimation.classelement group apply semantically to theregion element.Anystyle child element must be considered a local styledefinition that applies only to the containingregionelement, i.e., does not apply for resolving referential styling (but does apply for regionstyle inheritance).

XML Representation – Element Information Item: region
<regionbegin =<timeExpression>dur =<timeExpression>end =<timeExpression>style = IDREFStimeContainer = (par|seq)ttm:role = stringxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content:Metadata.class*,Animation.class*,style*</region>

Ifbegin and (or)end attributes are specified on aregion element, then they specify the beginning and (or) ending pointsof a time interval during which the region is eligible for activation and withrespect to which animation child elements of the region are timed.If specified, these begin and end points are relative to the timeinterval of the nearest ancestor element associated with a timeinterval, irregardless of whether that interval is explicit or implied.

The nearest ancestor element of aregion element that is associatedwith a time interval is thelayout element.

If adur attribute is specified on theregion element, then itspecifies the simple duration of the region.

For the purpose of determining the semantics of presentation processing, aregion that is temporally inactive must not produce any visible marks whenpresented on a visual medium.

Note:

Aregion element may be associated with a time interval for twopurposes: (1) in order to temporally bound the presentation of the region andits content, and (2) to provide a temporal context in which animations of regionstyles may be effected.

For example, an author may wish to specify a region that is otherwise empty, butmay have a visible background color to be presented starting at some time andcontinuing over the region's duration. The simple duration of the region servesadditionally to scope the presentation effects of content that is targeted to theregion. An author may also wish to move a region within theRoot Container Regionor change a region's background color by means of animation effects. Inboth of these cases, it is necessary to posit an active time interval for aregion.

If notimeContainer attribute is specified onaregion element, then it must be interpreted as havingparallel time containment semantics.

If attm:role attribute isspecified on aregion element, then it must adhere to thevalue syntax defined bySyntax Representation – ttm:role, and where the roles identifiedby this attribute express the semantic roles of the regionindependently from the semantic roles of any content targeted to(associated with) the region.

9.2 Layout Attribute Vocabulary

This section defines the9.2.1 region attribute used withContent elements.

9.2.1 region

Theregion attribute is used to reference aregionelement which defines a space or area into which aContent element is intended to be flowed.

If specified, the value of aregion attribute mustadhere to theIDREF data type defined by[XML Schema Part 2],§ 3.3.9, and, furthermore, this IDREF must reference aregion elementwhich has alayout element as an ancestor.

Theregion attribute may be specified by an instance of the followingelement types:

Note:

See9.3 Region Layout and Presentation below for further information on contentflow in a region.

9.3 Region Layout and Presentation

This section defines the semantics of region layout andpresentation in terms of a standard processing model asfollows:

Anyimplementation is permitted provided that the externally observableresults are consistent with the results produced by this model.

9.3.1 Default Region

If aDocument Instance does not specify aregion element,then adefault region is implied with the following characteristics:

  • the identity of the default region is considered to be anonymous;

  • the extent of the default region is the same as the extent of theRoot Container Region;

  • the temporal interval of the default region is the same as the interval defined by theRoot Temporal Extent;

Furthermore, if noregion element isspecified, then theregion attribute mustnot be specified on anyContent element in theDocument Instance.

If a default region is implied for a givenDocument Instance, thenthebody elementis implicitly targeted to (associated with) the default region.

When implying a default region, theDocument Instance is to betreated as if aregion element and itsparentlayoutelement were specified in aheadelement, and a matchingregion attribute werespecified on thebody elementas shown in the following example:

Example – Implied Default Region
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">  <head><layout>      <region xml:id="anonymous"/>    </layout>  </head>  <bodyregion="anonymous"/></tt>

Note:

In the above example, a defaultregion element andregionattribute are implied. In addition, alayout container element is implied forthe impliedregion element.

9.3.2 Anonymous Span Construction

For the purposes of performing presentation processing, anonymous spans are createdaccording to the following[construct anonymous spans] procedure:

[construct anonymous spans]
  1. for each significant text node in aContent element,synthesize an anonymous span to enclose the text node, substitutingthe new anonymous span for the original text node child in its siblingand parent hierarchy;

  2. for each contiguous sequence of anonymous spans, replace thesequence with a single anonymous span which contains a sequence oftext nodes representing the individual text node children of theoriginal sequence of anonymous spans;

  3. for each span element whose child is a single anonymous span,replace the anonymous span with its sequence of child textnodes;

9.3.3 Intermediate Synchronic Document Construction

For the purposes of performing presentation processing, the active timeduration of aDocument Instance is divided into a sequence of time coordinates where ateach time coordinate, some element becomes temporally active or inactive,then, at each such time coordinate, aDocument Instance is mapped from its original, sourceform,DOCsource , to an intermediatesynchronic document form,DOCinter , according to the[construct intermediate document] procedure:

[construct intermediate document]
  1. for each temporally active regionR, replicate thesub-tree ofDOCsourceheaded by thebody element;

  2. evaluating this sub-tree in a postorder traversal, prune elements if any of the following conditions is true:

    1. they are neitherContent norAnimation elements; or

    2. they are temporally inactive; or

    3. they are empty and neitherAnimation elements norbr elements; or

    4. they areContent elements and aren't associated with regionR according to the[associate region] procedure.

  3. if the pruned sub-tree is non-empty, then reparent it to theRelement;

  4. finally, after completing the above steps, prune the originalbodyelement from the intermediate document, then prune allregion,begin,end, anddur attributes, which are nolonger semantically relevant;

Note:

In this section, the termprune, when used in reference toan 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 longerbe descendants of the element's parent. Whenprune is used inreference to an attribute, it means that attribute is to be removed from itsassociated (owning) element node.

[associate region]

AContent element is associated with a region accordingto the following ordered rules, where the first rule satisfiedis used and remaining rules are skipped:

  1. if the element specifies aregion attribute,then the element is associated with the region referenced by thatattribute;

  2. if some ancestor of that element specifies aregion attribute,then the element is associated with the region referenced by the mostimmediate ancestor that specifies this attribute;

  3. if the element contains a descendant element thatspecifies aregion attribute,then the element is associated with the region referenced by thatattribute;

  4. if a default region was implied (due to the absence of anyregion element),then the element is associated with the default region;

  5. the element is not associated with any region.

The result of performing the processing described above will be a sequence ofN intermediate synchronicDocument Instances,DOCinter0DOCinterN−1.

Note:

Where an implementation is able to detect significant similarity between twoadjacent synchronicDocument Instances,DOCinterNDOCinterN−1,then the implementation can apply processing to make the transition betweenpresenting the two instances as smooth as possible, e.g., as describedby[CEA-608-E], § C.3, and[CC-DECODER-REQ].

9.3.4 Synchronic Flow Processing

Subsequent to performing a temporal (synchronic) slice and subsequentremapping of regionally selected content hierarchy, the resulting intermediatesynchronic 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[XSL 1.1],and semantically extended by TTML specific style properties that have no XSLFO counterpart.

Note:

In this section, the use of XSL FO is intended to be conceptual only, employedsolely for the purpose of defining the normative presentation semantics ofTTML. An actual implementation of this algorithm is not required to create or processXSL-FO representations. In particular, it is possible to implement these semanticsusing alternative presentation models, such as Cascading Style Sheets (CSS).

Each intermediate synchronic document produced by9.3.3 Intermediate Synchronic Document Construction is mapped to an XSL FO document instance,F, as follows:

  1. perform the[construct anonymous spans] procedure;

  2. resolve styles according to8.4.4.4 Style Resolution Process;

  3. map thett element to anfo:root element, populatedinitially with anfo:layout-master-set element that contains a validfo:simple-page-master that, in turn, contains anfo:region-body child, where the extent of theRoot Container Region expressed on thett element is mapped topage-width andpage-height attributes on thefo:simple-page-masterelement;

  4. map thelayout element to anfo:page-sequence element and achildfo:flow element that reference the page master and page regiondefined by the simple page master produced above;

  5. map each non-emptyregion element to anfo:block-containerelement with anabsolute-position attribute with valueabsolute, withtop,left,bottom, andrightattributes that express a rectangle equivalent to the region's origin, extent (including padding), and with aline-stacking-strategy attribute with valueline-height;

    Note:

    The region's extent corresponds with the allocation rectangle of the block area generated by thefo:block-container.

  6. for eachbody,div, andp element that is notassociated with atts:display style property with the valuenone, map the element to a distinctfo:block element,populating the style properties offo:block by using the computedstyle set associated with each original TTMLContent element;

  7. for the resultingfo:block formatting objectproduced in the previous step that corresponds to thebodyelement, perform the following ordered sub-steps:

    1. if thedisplay-align style property of thisfo:blockhas the valuecenter orafter,then synthesize and insert as the first child of thisfo:blockan emptyfo:block with the following attributes:space-after.optimum,space-after.maximum, andspace-after.conditionality, where the value of the formertwo attributes is the height or width of the containingfo:block-container element, whichever of these is designatedas the block progression dimension, and where the value of the last isretain;

    2. if thedisplay-align style property of thisfo:blockhas the valuecenter orbefore,then synthesize and insert as the last child of thisfo:blockan emptyfo:block with the following attributes:space-after.optimum,space-after.maximum, andspace-after.conditionality, where the value of the formertwo attributes is the height or width of the containingfo:block-container element, whichever of these is designatedas the block progression dimension, and where the value of the last isretain;

  8. for eachspan element that is notassociated with atts:display style property with the valuenone and for each anonymousspan that is a child of ap orspan element,map the element orsequence of character items to a distinctfo:inline element,populating the style properties offo:inline by using the computedstyle set associated with each original TTMLContent elementor anonymous span;

  9. for eachbr element that is notassociated with atts:display style property with the valuenone, map the element toa distinctfo:character element having the followingproperties:

    • character="&#x000A;"

    • suppress-at-line-break="retain"

  10. for each TTML style property attribute in some computedstyle set thathas no counterpart in[XSL 1.1], map that attribute directly throughto the relevant formatting object produced by the input TTMLContent element towhich the style property applies;

  11. optionally, synthesize a uniqueid attribute on each resultingformatting object element that relates that element to the input element thatresulted in that formatting object element;

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[XSL 1.1].

Note:

In an XSL FO area tree produced by formattingF using an[XSL 1.1] formatting processor, thepage-viewport-area,which is generated byfo:page-sequence element byreference to the sole generatedfo:simple-page-masterelement, would correspond to theRoot Container Region definedabove in2 Definitions.

Note:

When mapping aregion element tofo:block-container, it maybe necessary to use a negative offset as a value for one or more of thetop,left,bottom, andrightXSL-FO properties in case the region extends outside of its containing block.

Note:

Due to the possible presence of TTML style properties or style property valuesin a givenDocument Instance for which there is no[XSL 1.1] counterpart,Implementors should recognize that it is the layout model of[XSL 1.1] that is being referencedby this specification, not the requirement to use a compliant[XSL 1.1] formatting processor,since such would not necessarily be sufficient to satisfy the full presentation semanticsdefined by this specification, and would contain a large number of features not needed toimplement the presentation semantics of TTML.

Note:

The purpose of inserting additional, collapsible space in the block progressiondimension of thefo:block that corresponds with thebody elementis to ensure that the before and after edges of thisfo:block are coincidentwith the before and after edges of thefo:block-container that correspondsto the containingregion, while simultaneously taking into account the needsto satisfy alignment in the block progression dimension. For example, this assures thatthe background color associated with thebody element, if nottransparent, will fill the containing region wholly.

9.3.5 Elaborated Example (Informative)

An example of the processing steps described above is elaborated below, starting withExample – Sample Source Document.

Example – Sample Source Document
<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>

In the above document, the content hierarchy consists of two divisions, eachcontaining two paragraphs. This content is targeted (associated with) one of twonon-overlapping regions that are styled identically except for their positionand their foreground colors, the latter of which is inherited by and applies tothe (and, in this case, anonymous) spans reparented into the regions.

The following, first intermediate document shows the synchronic state for timeinterval [0,1), during which time only divisiond1 is temporally active,and where paragraphsp1 andp2 (and their ancestors)are associated with regionsr1 andr2, respectively.

Note:

The intermediate documents shown below are not validDocument Instances,but rather, are representations of possible internal processing states used fordidactic purposes.

Example – Intermediate Document – [0s,1s)
<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>

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.

Example – XSL FO Document – [0s,1s)
<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 absolute-position="absolute"        left="10px" top="100px" width="620px" height="96px"        background-color="black" display-align="center">        <!-- body (b1) -->        <fo:block>          <!-- body's space (before) filler -->          <fo:block            space-after.optimum="96px"            space-after.maximum="96px"            space-after.conditionality="retain"/>          <!-- div (d1) -->          <fo:block>            <!-- p (p1) -->            <fo:block 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 absolute-position="absolute"        left="10px" top="300px" width="620px" height="96px"        background-color="black" display-align="center">        <!-- body (b1) -->        <fo:block>          <!-- body's space (before) filler -->          <fo:block            space-after.optimum="96px"            space-after.maximum="96px"            space-after.conditionality="retain"/>          <!-- div (d1) -->          <fo:block>            <!-- p (p2) -->            <fo:block 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>

The following, second intermediate document shows the synchronic state fortime interval [1,2), during which time both divisionsd1 andd2 are temporally active, and where paragraphsp1 andp4 (and their ancestors) are associated with regionr1and paragraphsp2 andp3 (and their ancestors) areassociated with regionr2.

Example – Intermediate Document – [1s,2s)
<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>

The following, third intermediate document shows the synchronic state for timeinterval [2,3), during which time only divisiond2 is temporally active,and where paragraphsp4 andp3 (and their ancestors)are associated with regionsr1 andr2, respectively.

Example – Intermediate Document – [2s,3s)
<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>

9.4 Line Layout

If a profile that applies to aDocument Instancerequires use of the#lineBreak-uax14 feature(i.e., the value attribute for the feature is specified asuse), thenthe recommendations defined byLineBreaking Algorithm[UAX14] apply when performingline layout on the content of theDocument Instance.

10 Timing

This section specifies thetiming matter of the corevocabulary catalog, wheretiming is to be understood as a separable layer of information that applies tocontent and that denotes authorial intentions about the temporal presentation ofthat content.

10.1 Timing Element Vocabulary

No timing related element vocabulary is defined for use in the corevocabulary catalog.

10.2 Timing Attribute Vocabulary

This section defines the following basic timing attributes for use with timed elements:

In addition, this section defines the10.2.4 timeContainer attribute for use with timed elementsthat serve simultaneously as timing containers.

10.2.1 begin

Thebegin attribute is used to specify the beginpoint of a temporal interval associated with a timed element. Ifspecified, the value of abegin attribute must adhere toa <timeExpression> specification as defined by10.3.1 <timeExpression>.

The begin point of a temporal interval is included in theinterval; i.e., the interval is left-wise closed.

The semantics of thebegin attribute are those definedby[SMIL 2.1], § 10.4.1,while taking into account any overriding semantics defined by this specification.

Note:

See[SMIL 2.1], § 10.4.1,Begin value semantics when nobegin attribute is specified.

10.2.2 end

Theend attribute is used to specify the ending pointof a temporal interval associated with a timed element. Ifspecified, the value of anend attribute must adhere to a<timeExpression> specification as defined by10.3.1 <timeExpression>.

The ending point of a temporal interval is not included in theinterval; i.e., the interval is right-wise open.

The presentation effects of a non-empty activetemporal interval include the frame immediately prior to the frame(or tick) equal to or immediately following the time specified by the endingpoint, but do not extend into this latter frame (or tick).

Note:

For example, if an active interval is [10s,10.33333s), and theframe rate is 30 frames per second, then the presentation effects of the intervalare limited to frames 300 through 309 only (assuming that 0s correspondswith frame 0). The same holds if the active interval is specifiedas [300f,310f).

The semantics of theend attribute are those definedby[SMIL 2.1], § 10.4.1,while taking into account any overriding semantics defined by this specification.

10.2.3 dur

Thedur attribute is used to specify the duration of atemporal interval associated with a timed element. If specified,the value of adur attribute must adhere to a<timeExpression> specification as defined by10.3.1 <timeExpression>.

Note:

When theclock-time form of a <timeExpression> specificationis used with adur attribute, it is intended to be interpreted asa difference between two implied clock time expressions.

When aDocument Instance specifies the use of thesmpte time base anddiscontinuous markermode, a (well-formed)dur attribute must not be specified on anyelement.

The semantics of thedur attribute are those definedby[SMIL 2.1], § 10.4.1,while taking into account any overriding semantics defined by this specification. In a deliberate divergence from[SMIL 2.1], § 10.4.1, the value of thedur attribute is permitted to be zero (0).

Note:

In the context of the subset of[SMIL 2.1] semantics supported bythis specification, the active duration of an element that specifies bothend anddur attributes is equal to the lesser of the value ofthedur attribute and the difference between the value of theend attribute and the element's begin time.

10.2.4 timeContainer

ThetimeContainer attribute is used to specify a local temporalcontext by means of which timed child elements are temporally situated.

If specified, the value of atimeContainer attribute must be oneof the following:

  • par

  • seq

If the time container semantics of an element instance ispar,then the temporal intervals of child elements are considered to apply inparallel, i.e., simultaneously in time. Furthermore, the specification ofthe time interval of each child element is considered to be relative to the temporalinterval of the container element instance. For the purpose of determining the[SMIL 2.1]endsync semantics of apartime container, a default value ofall applies.

Note:

The use of a default value ofall for theendsyncbehavior is distinct from[SMIL 2.1] which uses a default valueoflast.

If the time container semantics of an element instance isseq,then the temporal intervals of child elements are considered to apply insequence, i.e., sequentially in time. Furthermore, the specification ofthe time interval of each child element is considered to be relative to the temporalinterval of its sibling elements, unless it is the first child element, in which caseit is considered to be relative to the temporal interval of the containerelement instance.

Each time container is considered to constitute an independent time base, i.e.,time coordinate system.

If atimeContainer attribute is not specified on an element thathas time container semantics, thenpar time container semantics must apply.

Time container semantics applies only to the following element types:

The semantics of parallel and sequential timecontainment are those defined by[SMIL 2.1], § 10.4.2,while taking into account any overriding semantics defined by this specification.

10.3 Time Value Expressions

Timing attribute values include the use of the following expressions:

10.3.1 <timeExpression>

A <timeExpression> is used to specify a coordinate withinsome time base, where the applicable time base is determined by thettp:timeBase parameter, and where the semantics definedbyN Time Expression Semantics apply.

Note:

See6.2.4 ttp:frameRate,6.2.9 ttp:subFrameRate,6.2.10 ttp:tickRate, and6.2.11 ttp:timeBase for further information onexplicit specification of frame rate, sub-frame rate, tick rate, and time base.

Syntax Representation – <timeExpression>
<timeExpression>  : clock-time  | offset-timeclock-time  : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?offset-time  : time-count fraction? metrichours  :<digit><digit>  |<digit><digit><digit>+minutes | seconds  :<digit><digit>frames  :<digit><digit>  |<digit><digit><digit>+sub-frames  :<digit>+fraction  : "."<digit>+time-count  :<digit>+metric  : "h"                 // hours  | "m"                 // minutes  | "s"                 // seconds  | "ms"                // milliseconds  | "f"                 // frames  | "t"                 // ticks

If a <timeExpression> is expressed in terms of aclock-time, 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 closedinterval [0,60], where the value 60 applies only to leap seconds. Except whenttp:timeBase isclock andttp:clockMode islocal orutc, use of the special value of 60 seconds to denote a leap second is undefined and should not be used.

If a <timeExpression> is expressed in terms of aclock-time and aframes term is specified,then the value of this term must be constrained to the interval[0…F-1], whereF is the frame ratedetermined by thettp:frameRate parameter as definedby6.2.4 ttp:frameRate.It is considered an error if aframes term orf (frames) metric is specified when theclock time base applies.

If a <timeExpression> is expressed in terms of aclock-time and asub-frames term isspecified, then the value of this term must be constrained to theinterval [0…S-1], whereS is thesub-frame rate determined by thettp:subFrameRate parameter as defined by6.2.9 ttp:subFrameRate.It is considered an error if asub-frames term is specifiedwhen theclock time base applies.

If the governing time base issmpte, then (1) theoffset-time form is not defined and should not be used, and (2) thefraction seconds component in aclock-time form is not defined and should not be used.

10.4 Time Intervals

The semantics of time containment, durations, and intervals defined by[SMIL 2.1] apply to the interpretation of like-named timed elements and timingvocabulary defined by this specification, given the followingconstraints:

  • The implicit duration of an anonymous span, abr element, aset element, or aspan element whose children are exclusively text nodes, is defined as follows: ifthe parent time container is a parallel time container, thenthe implicit duration is equivalent to theindefiniteduration value as defined by[SMIL 2.1]; if theparent time container is a sequential time container, then the implicit durationis equivalent to zero.

  • The implicit duration of abody element,div element,p element,orspan element whose children are not exclusively text nodes, is determined in accordance to (1) whether the element is a parallel or sequential time container, (2) the defaultendsync semantics defined above by10.2.4 timeContainer,and (3) the semantics of[SMIL 2.1] as applied to these timecontainers.

  • The implicit duration of theregion element is defined tobe equivalent to theindefiniteduration value as defined by[SMIL 2.1].

  • If the governing time base isclock, then timeexpressions are considered to be equivalent to wall-clockbased timing in[SMIL 2.1], where the specific semantics ofN.1 Clock Time Base apply.

  • If the governing time base ismedia, then timeexpressions are considered to be equivalent to offset based timingin[SMIL 2.1], where the specific semantics ofN.2 Media Time Base apply.

  • If the governing time base issmpte, then timeexpressions are considered to be equivalent to either offsetbased timing or event based timing in[SMIL 2.1], where the specific semantics ofN.3 SMPTE Time Base apply.

For the purposes of performing presentation processing, the[construct anonymous spans] procedure is applied before resolving begin and end times of content elements.

The following example illustrates the timing semantics of anonymous spans that are children of sequential and parallel time containers. The wordsHello andAllo are both contained in anonymous spans that are children of a sequential time container (thep element). As such, neitherHello norAllo will be displayed since the implicit duration of the anonymous spans is 0. In contrast, the anonymous span that contains the wordGuten and the innermostspan that contains the wordTag are children of an element with parallel time container semantics (the outermostspan element).As a result, bothGuten andTag will be displayed since the implicit duration of their respective parent anonymous span andspan element are indefinite, resulting in the implicit duration of itsspan,p,div andbody ancestors to also be indefinite.

Example Fragment – Timing of Anonymous Spans in a Sequential and Parallel Time Containers
...<body>  <div>    <p timeContainer="seq">      Hello      <span>Guten <span>Tag</span></span>      Allo    </p>  </div></body>

11 Animation

This section specifies theanimation matter of thecore vocabulary catalog, whereanimation is to be understood as a separable layer of information that combinestiming and styling in order to denote authorial intention about (temporally) dynamicstyling of content.

11.1 Animation Element Vocabulary

The following elements specify the structure and principal animation aspects of aDocument Instance:

11.1.1 set

Theset element is used as a child element of aContent element or aregion elementin order to express a discrete change of some style parameter valuethat applies over some time interval.

Theset element accepts as its children zero or moreelements in theMetadata.class element group.

XML Representation – Element Information Item: set
<setbegin =<timeExpression>dur =<timeExpression>end =<timeExpression>xml:id = IDxml:lang = stringxml:space = (default|preserve)  {a single attribute in TT Style namespace}  {any attribute not in default or any TT namespace}>Content:Metadata.class*</set>

Note:

The use of multipleset element children may be used to effect fade andposition transitions.

An example of using theset element to animate contentstyling is illustrated below:

Example Fragment – Content Style Animation
...<p dur="5s" tts:color="yellow"><set begin="1s" dur="1s" tts:color="red"/><set begin="2s" dur="1s" tts:color="green"/><set begin="3s" dur="1s" tts:color="red"/>Text with Flashing Colors!</p>...

Note:

In the above example, the foreground color of the content "Textwith Flashing Colors" is animated from yellow, to red, to green, tored, then back to yellow over a 5 second period.

An example of using theset element to animate regionstyling is illustrated below:

Example Fragment – Region Style Animation
<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"><set dur="10s" tts:origin=" 8c 14c"/><set dur="2s"  tts:origin=" 2c  2c"/><set dur="3s"  tts:origin=" 8c 14c"/><set dur="2s"  tts:origin="14c  4c"/><set dur="10s" tts:origin=" 8c 14c"/>  <style tts:extent="24c 2c"/></region>      </layout>    </head>    <body region="r1">...</body></tt>

Note:

In the above example, theRoot Container Region is divided into acell grid of 40 columns and 16 rows. A region,r1, withdimensions of 24 columns and 2 rows is then positioned within theRoot Container Region, with its position varying over time in order tocreate an effect of moving the region, which may be desirable so asto avoid obscuring characters in an underlying video with captions.

Note:

The semantics of theset elementare based upon that defined by[SVG 1.1],§ 6.2.13.

11.2 Animation Attribute Vocabulary

No animation related attribute vocabulary is defined for use in thecore vocabulary catalog.

12 Metadata

This section specifies themetadata matter of the corevocabulary catalog, wheremetadata is to be understood as a separable layer of information that applies toparameters, content,style, layout, timing, and even metadata itself, where the informationrepresented by metadata takes one of two forms: (1) metadata defined by thisspecification for standardized use in aDocument Instance, and (2) arbitrarymetadata defined outside of the scope of this specification, whose use andsemantics depend entirely upon an application's use of TTML Content.

12.1 Metadata Element Vocabulary

The12.1.1 metadata element serves asa generic container element for grouping metadata information.

In addition, the following elements, all defined in the TT Metadata Namespace,provide standard representations for metadata that is expected to be commonlyused in aDocument Instances:

12.1.1 metadata

Themetadata element functions as a generic container for metadatainformation.

Metadata information may be expressed with ametadata element by specifying(1) one or more metadata attributes on themetadata element,(2) one or more metadata child elements in themetadata element, or(3) a combination of metadata attributes and metadata child elements. Both typesof metadata information are referred to in this document asmetadataitems.

XML Representation – Element Information Item: metadata
<metadataxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute in TT Metadata namespace}  {any attribute not in default or any TT namespace}>Content: ({any element in TT Metadata namespace}|{any element not in any TT namespace})*</metadata>

Note:

The meaning of a specific metadata item must be evaluated in thecontext where it appears. The core vocabulary catalog permits anarbitrary number ofmetadata element children on anyContent element type. See specific elementvocabulary definitions for any constraints that apply to suchusage.

The use of document metadata is illustrated by the following example.

Example Fragment – Document Metadata
...<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>...

The use of element metadata is illustrated by the following example.

Example Fragment – Element Metadata
...<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>...

The use of metadata attribute items is illustrated by the following example.

Example Fragment – Foreign Metadata Attribute Items
...<div xmlns:ext="http://example.org/ttml#metadata">  <metadata ext:ednote="remove this division prior to publishing"/></div>...

Note:

In the above example, a global attribute from a foreign (external)namespace is used to express a metadata attribute that appliessemantically to the containingdiv element. Note that theattribute may also be expressed directly on thediv element;however, in this case the author wishes to segregate certain metadataattributes by expressing them indirectly onmetadataelements.

The use of foreign element metadata is illustrated by the following example.

Example Fragment – Foreign Element Metadata
...<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>...

Note:

In the above example, a number of elements defined by the DublinCore metadata vocabulary are used to express document level metadata.

12.1.2 ttm:title

Thettm:title element is used to express a human-readable title ofa specific element instance.

XML Representation – Element Information Item: ttm:title
<ttm:titlexml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content: #PCDATA</ttm:title>

Note:

No specific use of thettm:title element is defined by this specification.

Examples of thettm:title element are shown above inExample Fragment – Document Metadata andExample Fragment – Element Metadata.

12.1.3 ttm:desc

Thettm:desc element is used to express a human-readable description ofa specific element instance.

XML Representation – Element Information Item: ttm:desc
<ttm:descxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content: #PCDATA</ttm:desc>

Note:

No specific use of thettm:desc element is defined by this specification.

Examples of thettm:desc element are shown above inExample Fragment – Document Metadata andExample Fragment – Element Metadata.

12.1.4 ttm:copyright

Thettm:copyright element is used to express a human-readable copyright thatapplies to some scoping level.

A copyright statement that applies to a document as a whole should appear as achild of thehead element.

XML Representation – Element Information Item: ttm:copyright
<ttm:copyrightxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content: #PCDATA</ttm:copyright>

Note:

No specific use of thettm:copyright element is defined by this specification.

12.1.5 ttm:agent

Thettm:agent element is used to define an agent for the purpose of associatingcontent information with an agent who is involved in the production or expression of that content.

Thettm:agent element accepts as its children zero or morettm:name elements followed byzero or onettm:actor element.

At least onettm:name element child should be specified that expresses a name for theagent, whether it be the name of a person, character, group, or organization.

XML Representation – Element Information Item: ttm:agent
<ttm:agenttype = (person|character|group|organization|other)xml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content:ttm:name*,ttm:actor?</ttm:agent>

Atype attribute must be specified on eachttm:agent element, and,if specified, must have one of the following values:

  • person

  • character

  • group

  • organization

  • other

If the value of thetype attribute ischaracter, then thettm:agent element instance should specify attm:actor child thatspecifies the agent that plays the role of the actor.

Attm:agent metadata item is considered to be significant onlywhen specified as a child of thehead element or as a child of ametadata element child of thehead element.

Note:

Attm:agent element instance is typically referenced using attm:agentattribute on aContent element type.

Note:

If a character agent is played by multiple actors, then multiple characteragents may be specified (and referenced) wherein different definitions of thecharacter specify different actors.

The use of agent metadata is illustrated by the following example.

Example Fragment – Agent Metadata
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml" xmlns:ttm="http://www.w3.org/ns/ttml#metadata">  <head><ttm:agent xml:id="connery" type="person">      <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></ttm:agent><ttm:agent xml:id="bond" type="character">      <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"/></ttm:agent>  </head>  <body>    <div>      ...        <pttm:agent="bond">I travel, a sort of licensed troubleshooter.</p>      ...      </div>  </body></tt>

Note:

In the above example, two agents, a real (person) agent, SeanConnery, and a fictitious (character) agent, James Bond, are defined,where the latter is linked to the former by means of the attm:actor element. A reference is then made from content (thep element) to the character agent associated with(responsible for producing) that content. Note that in this examplethettm:agent metadata items are specified as immediatechildren of the document'shead element rather than beingplaced in a containermetadata element.

12.1.6 ttm:name

Thettm:name element is used to specify a name of a person, character,group, or organization.

XML Representation – Element Information Item: ttm:name
<ttm:nametype = (full|family|given|alias|other)xml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content: #PCDATA</ttm:name>

Atype attribute must be specified on eachttm:name element, and,if specified, must have one of the following values:

  • full

  • family

  • given

  • alias

  • other

The relationship between the type of a name and the syntactic expression of the nameis not defined by this specification.

Two examples of thettm:name element are shown above inExample Fragment – Agent Metadata.

12.1.7 ttm:actor

Thettm:actor element is used to link the definition of a (role-based) characteragent with another agent that portrays the character.

XML Representation – Element Information Item: ttm:actor
<ttm:actoragent = IDREFxml:id = IDxml:lang = stringxml:space = (default|preserve)  {any attribute not in default or any TT namespace}>Content: EMPTY</ttm:actor>

Theagent attribute of attm:actor element mustreference asignificantttm:agent element that denotes the agentacting the part of a character.

Anttm:actor element referencing its parentttm:agent element should be considered an error.

Note:

The semantics of anttm:actor element referencing its parentttm:agent element are not defined. While discouraged, the relationship is syntactically permitted. It is therefore recommended that implementations be prepared to process this syntax, e.g. by avoiding infinite loops etc.

Note:

In the case of an actor playing themselves, like Steve Coogan in The Trip playing Steve Coogan, the expected practice is to use twottm:agent elements. The first element (corresponding to Steve Coogan the person) hastype attribute equal toperson, while the second element (corresponding to Steve Coogan the character) has (i) atype attribute equal tocharacter and (ii) a childttm:actor element that references the firstttm:agent element.

An example of thettm:actor element is shown above inExample Fragment – Agent Metadata.

12.2 Metadata Attribute Vocabulary

This section specifies the following attributes in the TT Metadata Namespacefor use with themetadata element and with certainContent element types:

Note:

Only certain metadata item attributes may be used withContent elements. Seethe definitions ofContent elements to determine permissible usage.

12.2.1 ttm:agent

Thettm:agent attribute takes anIDREFSvalue, and is used with certainContent elements to designate theagents that perform or areinvolved in the performance of the content.

If specified, attm:agent attribute must referencesignificantttm:agent element instances.

The same IDREF,ID, should not appear more than once in the value of attm:agent attribute.

Note:

This constraint is intended to discourage the use of redundant agent references.

An example of thettm:agent attribute is shown above inExample Fragment – Agent Metadata.

12.2.2 ttm:role

Thettm:role attribute may be used by a content authorto expressthe roles, functions, or characteristicsof someContent element that is so labeled.

If specified, the value of this attribute must adhere to the followingsyntax, wherethe syntactic elementS must adhere to production[3]S as defined by[XML 1.0] §2.3:

Syntax Representation – ttm:role
ttm:role  role (S role )*role  : "action"  | "caption"  | "description"  | "dialog"  | "expletive"  | "kinesic"  | "lyrics"  | "music"  | "narration"  | "quality"  | "sound"  | "source"  | "suppressed"  | "reproduction"  | "thought"  | "title"  | "transcription"  | extension-roleextension-role  : "x-" token-char+token-char  : { XML NameChar }    // XML 1.1 Production [4a]

The samerole token,R, should not appear more than once in the value of attm:role attribute.

Note:

This constraint is intended to discourage the use of redundant role tokens.

Note:

All values ofttm:role that do not start with the prefixx- are reserved for future standardization.

Note:

If using a customx- prefixed form ofttm:role, itis recommended that an organization unique infix be used as well in order toprevent collisions. For example,x-example-org-custom-role. Furthermore,a registry for role values is available athttp://www.w3.org/wiki/TTML/RoleRegistryin order to promote interoperability and collision avoidance.

A Reduced XML Infoset

This appendix is normative.

For the purposes of this specification, aReduced XML Infoset isan XML Information Set[XML InfoSet] that consists of only the following information itemsand information item properties:

A.1 Document Information Item

  • [document element]

A.2 Element Information Item

  • [namespace URI]

  • [local name]

  • [children]

  • [attributes]

Child information items[children] are reduced to only element and character information items.

A.3 Attribute Information Item

  • [namespace URI]

  • [local name]

  • [normalized value]

A.4 Character Information Item

  • [character code]

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).

B Schemas

This appendix is normative.

This appendix specifies the following schemas for use withDocument Instances:

In any case where a schema specified by this appendix differs from thenormative definitions of document type, element type, or attribute typeas defined by the body of this specification, then the body of thisspecification takes precedence.

B.1 Relax NG Compact (RNC) Schema

A Relax NG Compact Syntax (RNC)[RELAX NG] based schemafor TTML Content is available atZIPArchive. This schema does not normatively define the validityof Timed Text Markup Language content as defined by this specification.In particular, the formal validity of TTML Contentis defined by3.1 Content Conformance.

B.2 XML Schema Definition (XSD) Schema

A W3C XML Schema Definition (XSD)[XML Schema Part 1] based schemafor TTML Content is available atZIPArchive. This schema does not normatively define the validityof Timed Text Markup Language content as defined by this specification.In particular, the formal validity of TTML Contentis defined by3.1 Content Conformance.

C Media Type Registration

This appendix is normative.

This appendix registers a new media type,"application/ttml+xml" in conformance withBCP 13 andW3CRegMedia.The information in this appendix is being submitted to the InternetEngineering Steering Group (IESG) for review, approval, andregistration with the Internet Assigned Numbers Authority (IANA).

Type name:

application

Subtype name:

ttml+xml

Required parameters:

None.

Optional parameters:
charset

If specified, thecharset parameter must match the XML encoding declaration, or if absent, the actual encoding.

profile

The document profile of a TTMLDocument Instance may be specified usingan optionalprofile parameter, which, if specified,the value of which must adhere to the syntax and semantics ofttp:profile parameter defined bySection6.2.8 ttp:profileof the published specification.

Encoding considerations:

binary

Security considerations:

As with other XML types and as noted in[XML Media Types] (http://www.rfc-editor.org/rfc/rfc3023.txt),Section 10, repeated expansion of maliciously constructed XML entitiescan be used to consume large amounts of memory, which may cause XMLprocessors in constrained environments to fail.

In addition, because of the extensibility features for TTML and of XMLin general, it is possible that "application/ttml+xml" may describe contentthat has security implications beyond those described here. However,TTML does not provide for any sort of active or executable content, andif the processor follows only the normative semantics of the publishedspecification, this content will be outside TTML namespaces andmay be ignored. Only in the case where the processor recognizes andprocesses the additional content, or where further processing of thatcontent is dispatched to other processors, would security issuespotentially arise. And in that case, they would fall outside thedomain of this registration document.

Although not prohibited, there are no expectations that XML signaturesor encryption would normally be employed.

Interoperability considerations:

The published specification describes processing semantics that dictatebehavior that must be followed when dealing with, among other things,unrecognized elements and attributes, both in TTML namespaces and inother namespaces.

Because TTML is extensible, conformant "application/ttml+xml" processors mayexpect (and enforce) that content received is well-formed XML, but it cannot beguaranteed that the content is valid to a particular DTD or Schema orthat the processor will recognize all of the elements and attributesin the document.

Published specification:

This media type registration is extracted from Appendix C Media TypeRegistration of the Timed Text Markup Language (TTML) 1.0 specification:Timed Text Markup Language 1 (TTML1).

Applications that use this media type:

TTML is used in the television industry for the purpose of authoring, transcoding and exchanging timed text information and for delivering captions, subtitles, andother metadata for television material repurposed for the Web or, more generally, the Internet.

There is partial and full support of TTML in components used by several Web browsers plugins, and in a number of caption authoring tools.

Additional information:
Magic number(s):
File extension(s):

.ttml

Macintosh file type code(s):

"TTML"

Fragment identifiers:

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 theTimed Text Markup Language 1 (TTML1) specification.

Person & email address to contact for further information:

Timed Text Working Group (public-tt@w3.org)

Intended usage:

COMMON

Restrictions on usage:

None

Author:

The published specification is a work product of the World Wide WebConsortium's Timed Text (TT) Working Group.

Change controller:

The W3C has change control over this specification.

D Features

This appendix is normative.

This appendix specifies (1) a set of feature designations, each of whichlabels one or more syntactic and/or semantic features defined by thisspecification, and (2) for each designated feature, whether the feature is mandatoryor optional for a transformation or presentation processor.

Note:

A TTML processor is said toimplement the transformation semantics orimplement the presentation semantics of feature designationFif it satisfies the requirements of this appendix with respect to the definition offeature designationF as pertains to transformation orpresentation processing, respectively.

D.1 Feature Designations

A feature designation is expressed as a string that adheres to the followingform:

feature-designation  : feature-namespace designationfeature-namespace  :TT Feature Namespace                    // http://www.w3.org/ns/ttml/feature/designation  : "#" token-char+token-char  : { XML NameChar }                        // XML 1.1 Production [4a]

All values offeature-designation not defined by this specification are reservedfor future standardization.

The following sub-sections define all feature designations, expressedas relative URIs (fragment identifiers) with respect to the TT Feature Namespace base URI.

D.1.1 #animation

A TTML transformation processor supports the#animationfeature if it recognizes and is capable of transforming the followingvocabulary defined by11 Animation:

A TTML presentation processor supports the#animationfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

D.1.2 #backgroundColor

A TTML transformation processor supports the#backgroundColor feature if it recognizes and is capable oftransforming thetts:backgroundColorattribute.

A TTML presentation processor supports the#backgroundColor feature if it (1) implements presentation semantic supportfor thetts:backgroundColorattributeand (2) is capable of displaying or generating an output displaysignal that distinguishes between at least sixteen (16) values of color,including all primary and secondary colors of the SRGB color space.

Note:

Support for this feature is intended to imply support for the following features:#backgroundColor-block,#backgroundColor-region, and#backgroundColor-inline.

D.1.3 #backgroundColor-block

A TTML transformation processor supports the#backgroundColor-block feature if it recognizes and iscapable of transforming all defined values of thetts:backgroundColorattribute when applied to a content element that would generate ablock area during presentation processing.

A TTML presentation processor supports the#backgroundColor-block feature if it (1) implements presentation semanticsupport for thetts:backgroundColorattribute when applied to a content element that generates ablock areaand (2) is capable of displaying or generating an output displaysignal that distinguishes between at least sixteen (16) values of color,including all primary and secondary colors of the SRGB color space.

D.1.4 #backgroundColor-inline

A TTML transformation processor supports the#backgroundColor-inline feature if it recognizes and iscapable of transforming all defined values of thetts:backgroundColorattribute when applied to a content element that would generate aninline area during presentation processing.

A TTML presentation processor supports the#backgroundColor-inline feature if it (1) implements presentation semanticsupport for thetts:backgroundColorattribute when applied to a content element that generates aninline areaand (2) is capable of displaying or generating an output displaysignal that distinguishes between at least sixteen (16) values of color,including all primary and secondary colors of the SRGB color space.

D.1.5 #backgroundColor-region

A TTML transformation processor supports the#backgroundColor-region feature if it recognizes and iscapable of transforming all defined values of thetts:backgroundColorattribute when applied to aregion element.

A TTML presentation processor supports the#backgroundColor-region feature if it (1) implements presentation semanticsupport for thetts:backgroundColorattribute when applied to aregion elementand (2) is capable of displaying or generating an output displaysignal that distinguishes between at least sixteen (16) values of color,including all primary and secondary colors of the SRGB color space.

D.1.6 #bidi

A TTML processor supports the#bidi feature if itsupports the following features:

D.1.7 #cellResolution

A TTML transformation processor supports the#cellResolution feature if it recognizes and is capable oftransforming thettp:cellResolutionattribute.

A TTML presentation processor supports the#cellResolution feature if it implements presentation semantic supportfor thettp:cellResolutionattribute.

D.1.8 #clockMode

A TTML transformation processor supports the#clockMode feature if it recognizes and is capable oftransforming thettp:clockModeattribute.

A TTML presentation processor supports the#clockMode feature if it implements presentation semantic supportfor thettp:clockModeattribute.

D.1.9 #clockMode-gps

A TTML transformation processor supports the#clockMode-gps feature if it recognizes and is capable oftransforming thegps value of thettp:clockModeattribute.

A TTML presentation processor supports the#clockMode-gps feature if it implements presentation semantic supportfor thegps value of thettp:clockModeattribute.

D.1.10 #clockMode-local

A TTML transformation processor supports the#clockMode-local feature if it recognizes and is capable oftransforming thelocal value of thettp:clockModeattribute.

A TTML presentation processor supports the#clockMode-local feature if it implements presentation semantic supportfor thelocal value of thettp:clockModeattribute.

D.1.11 #clockMode-utc

A TTML transformation processor supports the#clockMode-utc feature if it recognizes and is capable oftransforming theutc value of thettp:clockModeattribute.

A TTML presentation processor supports the#clockMode-utc feature if it implements presentation semantic supportfor theutc value of thettp:clockModeattribute.

D.1.12 #color

A TTML transformation processor supports the#color feature if it recognizes and is capable oftransforming thetts:colorattribute.

A TTML presentation processor supports the#color feature if it (1) implements presentation semantic supportfor thetts:colorattributeand (2) is capable of displaying or generating an output displaysignal that distinguishes between at least sixteen (16) values of color,including all primary and secondary colors of the SRGB color space.

D.1.13 #content

A TTML transformation processor supports the#contentfeature if it recognizes and is capable of transforming the followingvocabulary defined by7 Content:

A TTML presentation processor supports the#contentfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

D.1.14 #core

A TTML transformation processor supports the#corefeature if it recognizes and is capable of transforming the followingcore attributes vocabulary defined by7 Content:

A TTML presentation processor supports the#corefeature if it implements presentation semantic support for thesame vocabulary enumerated above.

D.1.15 #direction

A TTML transformation processor supports the#direction feature if it recognizes and is capable oftransforming all defined values of thetts:directionattribute.

A TTML presentation processor supports the#direction feature if it implements presentation semantic supportfor all defined values of thetts:directionattribute.

D.1.16 #display

A TTML transformation processor supports the#display feature if it recognizes and is capable oftransforming all defined values of thetts:displayattribute.

A TTML presentation processor supports the#display feature if it implements presentation semantic supportfor all defined values of thetts:displayattribute.

D.1.17 #display-block

A TTML transformation processor supports the#display-block feature if it recognizes and iscapable of transforming all defined values of thetts:displayattribute when applied to a content element that would generate ablock area during presentation processing.

A TTML presentation processor supports the#display-block feature if it implements presentation semanticsupport for all defined values of thetts:displayattribute when applied to a content element that generates ablock area.

D.1.18 #display-inline

A TTML transformation processor supports the#display-inline feature if it recognizes and iscapable of transforming all defined values of thetts:displayattribute when applied to a content element that would generate aninline area during presentation processing.

A TTML presentation processor supports the#display-inline feature if it implements presentation semanticsupport for all defined values of thetts:displayattribute when applied to a content element that generates aninline area.

D.1.19 #display-region

A TTML transformation processor supports the#display-region feature if it recognizes and iscapable of transforming all defined values of thetts:displayattribute when applied to aregion element.

A TTML presentation processor supports the#display-region feature if it implements presentation semanticsupport for all defined values of thetts:displayattribute when applied to aregion element.

D.1.20 #displayAlign

A TTML transformation processor supports the#displayAlign feature if it recognizes and is capable oftransforming all defined values of thetts:displayAlignattribute.

A TTML presentation processor supports the#displayAlign feature if it implements presentation semantic supportfor all defined values of thetts:displayAlignattribute.

D.1.21 #dropMode

A TTML transformation processor supports the#dropMode feature if it recognizes and is capable oftransforming thettp:dropModeattribute.

A TTML presentation processor supports the#dropMode feature if it implements presentation semantic supportfor thettp:dropModeattribute.

D.1.22 #dropMode-dropNTSC

A TTML transformation processor supports the#dropMode-dropNTSC feature if it recognizes and is capable oftransforming thedropNTSC value of thettp:dropModeattribute.

A TTML presentation processor supports the#dropMode-dropNTSC feature if it implements presentation semantic supportfor thedropNTSC value of thettp:dropModeattribute.

D.1.23 #dropMode-dropPAL

A TTML transformation processor supports the#dropMode-dropPAL feature if it recognizes and is capable oftransforming thedropPAL value of thettp:dropModeattribute.

A TTML presentation processor supports the#dropMode-dropPAL feature if it implements presentation semantic supportfor thedropPAL value of thettp:dropModeattribute.

D.1.24 #dropMode-nonDrop

A TTML transformation processor supports the#dropMode-nonDrop feature if it recognizes and is capable oftransforming thenonDrop value of thettp:dropModeattribute.

A TTML presentation processor supports the#dropMode-nonDrop feature if it implements presentation semantic supportfor thenonDrop value of thettp:dropModeattribute.

D.1.25 #extent

A TTML transformation processor supports the#extent feature if it recognizes and is capable oftransforming thetts:extentattribute.

A TTML presentation processor supports the#extent feature if it implements presentation semantic support forthetts:extentattribute.

D.1.26 #extent-region

A TTML transformation processor supports the#extent-region feature if it recognizes and is capable oftransforming thetts:extentattribute when applied to aregion element.

A TTML presentation processor supports the#extent-region feature if it implements presentation semantic support forthetts:extentattribute when applied to aregion element.

D.1.27 #extent-root

A TTML transformation processor supports the#extent-root feature if it recognizes and is capable oftransforming thetts:extentattribute when applied to thett element.

A TTML presentation processor supports the#extent-root feature if it implements presentation semantic support forthetts:extentattribute when applied to att element.

D.1.28 #fontFamily

A TTML transformation processor supports the#fontFamily feature if it recognizes and is capable oftransforming thetts:fontFamilyattribute.

A TTML presentation processor supports the#fontFamily feature if it implements presentation semantic supportfor thetts:fontFamilyattribute.

D.1.29 #fontFamily-generic

A TTML transformation processor supports the#fontFamily-generic feature if it recognizes and iscapable of transforming<genericFamilyName>values when used with thetts:fontFamilyattribute.

A TTML presentation processor supports the#fontFamily-generic feature if it implements presentation semanticsupport for<genericFamilyName>values when used with thetts:fontFamilyattribute.

D.1.30 #fontFamily-non-generic

A TTML transformation processor supports the#fontFamily-non-generic feature if it recognizes and iscapable of transforming<familyName>values when used with thetts:fontFamilyattribute.

A TTML presentation processor supports the#fontFamily-non-generic feature if it implements presentation semanticsupport for<familyName>values when used with thetts:fontFamilyattribute.

D.1.31 #fontSize

A TTML transformation processor supports the#fontSize feature if it recognizes and is capable oftransforming thetts:fontSizeattribute.

A TTML presentation processor supports the#fontSize feature if it implements presentation semantic supportfor thetts:fontSizeattribute.

D.1.32 #fontSize-anamorphic

A TTML transformation processor supports the#fontSize-anamorphic feature if it recognizes and iscapable of transforming values of thetts:fontSizeattribute that consist of two<length> specifications.

A TTML presentation processor supports the#fontSize-anamorphic feature if it implements presentation semanticsupport for defined values of thetts:fontSizeattribute that consist of two<length> specifications.

D.1.33 #fontSize-isomorphic

A TTML transformation processor supports the#fontSize-isomorphic feature if it recognizes and iscapable of transforming values of thetts:fontSizeattribute that consist of a single<length> specification.

A TTML presentation processor supports the#fontSize-isomorphic feature if it implements presentation semanticsupport for defined values of thetts:fontSizeattribute that consist of a single<length> specification.

D.1.34 #fontStyle

A TTML transformation processor supports the#fontStyle feature if it recognizes and is capable oftransforming all defined values of thetts:fontStyleattribute.

A TTML presentation processor supports the#fontStyle feature if it implements presentation semantic supportfor all defined values of thetts:fontStyleattribute.

D.1.35 #fontStyle-italic

A TTML transformation processor supports the#fontStyle-italic feature if it recognizes and iscapable of transforming theitalic value of thetts:fontStyleattribute.

A TTML presentation processor supports the#fontStyle-italic feature if it implements presentation semanticsupport for theitalic of thetts:fontStyleattribute.

D.1.36 #fontStyle-oblique

A TTML transformation processor supports the#fontStyle-oblique feature if it recognizes and iscapable of transforming theoblique value of thetts:fontStyleattribute.

A TTML presentation processor supports the#fontStyle-oblique feature if it implements presentation semanticsupport for theoblique of thetts:fontStyleattribute.

D.1.37 #fontWeight

A TTML transformation processor supports the#fontWeight feature if it recognizes and is capable oftransforming all defined values of thetts:fontWeightattribute.

A TTML presentation processor supports the#fontWeight feature if it implements presentation semantic supportfor all defined values of thetts:fontWeightattribute.

D.1.38 #fontWeight-bold

A TTML transformation processor supports the#fontWeight-bold feature if it recognizes and iscapable of transformingbold value of thetts:fontWeightattribute.

A TTML presentation processor supports the#fontWeight-bold feature if it implements presentation semanticsupport for thebold of thetts:fontWeightattribute.

D.1.39 #frameRate

A TTML transformation processor supports the#frameRate feature if it recognizes and is capable oftransforming thettp:frameRateattribute.

A TTML presentation processor supports the#frameRate feature if it implements presentation semantic supportfor thettp:frameRateattribute.

D.1.40 #frameRateMultiplier

A TTML transformation processor supports the#frameRateMultiplier feature if it recognizes and is capable oftransforming thettp:frameRateMultiplierattribute.

A TTML presentation processor supports the#frameRateMultiplier feature if it implements presentation semantic supportfor thettp:frameRateMultiplierattribute.

D.1.41 #layout

A TTML transformation processor supports the#layoutfeature if it (1) recognizes and is capable of transforming the followingvocabulary defined by9 Layout:

and (2) supports the following attributes when applied to theregion element:

A TTML presentation processor supports the#layoutfeature if it implements presentation semantic support for thesame vocabulary and features enumerated above.

D.1.42 #length

A TTML transformation processor supports the#lengthfeature if it recognizes and is capable of transforming all definedvalues of the<length>style value expression.

A TTML presentation processor supports the#lengthfeature if it implements presentation semantic support for all defined values ofthe<length> style valueexpression.

Note:

Support for#length is intended to imply support for the following features:#length-integer,#length-real,#length-positive,#length-negative,#length-cell,#length-em,#length-percentage, and#length-pixel.

D.1.43 #length-cell

A TTML transformation processor supports the#length-cell feature if it recognizes and is capable oftransforming scalar values of the<length> style value expressionthat usec (cell) units.

A TTML presentation processor supports the#length-cell feature if it implements presentation semantic supportfor scalar values of the<length> style value expressionthat usec (cell) units.

Note:

Support for#length-cell does not, by itself, imply support for#length-integer,#length-real,#length-positive, or#length-negative features.

D.1.44 #length-em

A TTML transformation processor supports the#length-em feature if it recognizes and is capable oftransforming scalar values of the<length> style value expressionthat useem (EM) units.

A TTML presentation processor supports the#length-em feature if it implements presentation semantic supportfor scalar values of the<length> style value expressionthat useem (EM) units.

Note:

Support for#length-em does not, by itself, imply support for#length-integer,#length-real,#length-positive, or#length-negative features.

D.1.45 #length-integer

A TTML transformation processor supports the#length-integer feature if it recognizes and iscapable of transforming integer values of the<length> style valueexpression.

A TTML presentation processor supports the#length-integer feature if it implements presentation semanticsupport for integer values of the<length> style valueexpression.

Note:

Support for#length-integer does not, by itself, imply support for#length-positive or#length-negative features.

D.1.46 #length-negative

A TTML transformation processor supports the#length-negative feature if it recognizes and iscapable of transforming negative values of the<length> style valueexpression.

A TTML presentation processor supports the#length-negative feature if it implements presentation semanticsupport for negative values of the<length> style valueexpression.

Note:

Support for#length-negative does not, by itself, imply support for#length-integer or#length-real features.

D.1.47 #length-percentage

A TTML transformation processor supports the#length-percentage feature if it recognizes and iscapable of transforming percentage values of the<length> style valueexpression.

A TTML presentation processor supports the#length-percentage feature if it implements presentation semanticsupport for percentage values of the<length> style valueexpression.

Note:

Support for#length-percentage does not, by itself, imply support for#length-integer,#length-real,#length-positive, or#length-negative features.

D.1.48 #length-pixel

A TTML transformation processor supports the#length-pixel feature if it recognizes and is capable oftransforming scalar values of the<length> style value expressionthat usepx (pixel) units.

A TTML presentation processor supports the#length-pixel feature if it implements presentation semantic supportfor scalar values of the<length> style value expressionthat usepx (pixel) units.

Note:

Support for#length-pixel does not, by itself, imply support for#length-integer,#length-real,#length-positive, or#length-negative features.

D.1.49 #length-positive

A TTML transformation processor supports the#length-positive feature if it recognizes and iscapable of transforming positive values of the<length> style valueexpression.

A TTML presentation processor supports the#length-positive feature if it implements presentation semanticsupport for positive values of the<length> style valueexpression.

Note:

Support for#length-positive is intended to imply support for zero valued<length> style valueexpressions.

Note:

Support for#length-positive does not, by itself, imply support for#length-integer or#length-real features.

D.1.50 #length-real

A TTML transformation processor supports the#length-real feature if it recognizes and iscapable of transforming real values of the<length> style valueexpression.

A TTML presentation processor supports the#length-real feature if it implements presentation semanticsupport for real values of the<length> style valueexpression.

Note:

Support for#length-real is intended to imply support forinteger valued<length> style valueexpressions as well as real valued expressions.

Note:

Support for#length-real does not, by itself, imply support for#length-positive or#length-negative features.

D.1.51 #lineBreak-uax14

A TTML transformation processor supports the#lineBreak-uax14 feature if it recognizes and is capable oftransforming requirements expressed by[UAX14] into itstarget document space.

A TTML presentation processor supports the#lineBreak-uax14 feature if it implements presentation semantic supportfor[UAX14] as applies to line breaking.

D.1.52 #lineHeight

A TTML transformation processor supports the#lineHeight feature if it recognizes and is capable oftransforming thetts:lineHeightattribute.

A TTML presentation processor supports the#lineHeight feature if it implements presentation semantic support forthetts:lineHeightattribute.

D.1.53 #markerMode

A TTML transformation processor supports the#markerMode feature if it recognizes and is capable oftransforming thettp:markerModeattribute.

A TTML presentation processor supports the#markerMode feature if it implements presentation semantic supportfor thettp:markerModeattribute.

D.1.54 #markerMode-continuous

A TTML transformation processor supports the#markerMode-continuous feature if it recognizes and is capable oftransforming thecontinuous value of thettp:markerModeattribute.

A TTML presentation processor supports the#markerMode-continuous feature if it implements presentation semantic supportfor thecontinuous value of thettp:markerModeattribute.

D.1.55 #markerMode-discontinuous

A TTML transformation processor supports the#markerMode-discontinuous feature if it recognizes and is capable oftransforming thediscontinuous value of thettp:markerModeattribute.

A TTML presentation processor supports the#markerMode-discontinuous feature if it implements presentation semantic supportfor thediscontinuous value of thettp:markerModeattribute.

D.1.56 #metadata

A TTML transformation processor supports the#metadatafeature if it recognizes and is capable of transforming the followingvocabulary defined by12 Metadata:

A TTML presentation processor supports the#metadatafeature if it recognizes and is capable of presenting the informationexpressed by the same vocabulary enumerated above.

Note:

This specification does not define a standardized form for thepresentation of metadata information. The presentation or ability topresent metadata information is considered to be implementationdependent.

D.1.57 #nested-div

A TTML transformation processor supports the#nested-divfeature if it recognizes and is capable of transforming nesteddiv elements.

A TTML presentation processor supports the#nested-divfeature if it implements presentation semantic support for nesteddiv elements.

D.1.58 #nested-span

A TTML transformation processor supports the#nested-spanfeature if it recognizes and is capable of transforming nestedspan elements.

A TTML presentation processor supports the#nested-spanfeature if it implements presentation semantic support for nestedspan elements.

D.1.59 #opacity

A TTML transformation processor supports the#opacity feature if it recognizes and is capable oftransforming thetts:opacityattribute.

A TTML presentation processor supports the#opacity feature if it (1) implements presentation semantic support forthetts:opacityattribute and (2) is capable of displaying or generating an output displaysignal that distinguishes between at least eight (8) values of opacity.

D.1.60 #origin

A TTML transformation processor supports the#origin feature if it recognizes and is capable oftransforming thetts:originattribute.

A TTML presentation processor supports the#origin feature if it implements presentation semantic support forthetts:originattribute.

D.1.61 #overflow

A TTML transformation processor supports the#overflow feature if it recognizes and is capable oftransforming all defined values of thetts:overflowattribute.

A TTML presentation processor supports the#overflow feature if it implements presentation semantic support forall defined values of thetts:overflowattribute.

D.1.62 #overflow-visible

A TTML transformation processor supports the#overflow-visible feature if it recognizes and is capable oftransforming thevisible value of thetts:overflowattribute.

A TTML presentation processor supports the#overflow-visible feature if it implements presentation semantic support forthevisible value of thetts:overflowattribute.

D.1.63 #padding

A TTML transformation processor supports the#padding feature if it recognizes and is capable oftransforming thetts:paddingattribute.

A TTML presentation processor supports the#padding feature if it implements presentation semantic support forthetts:paddingattribute.

D.1.64 #padding-1

A TTML transformation processor supports the#padding-1 feature if it recognizes and is capable oftransforming values of thetts:padding attributethat consist of one<length> specification.

A TTML presentation processor supports the#padding-1feature if it implements presentation semantic support for values of thetts:padding attributethat consist of one<length> specification.

D.1.65 #padding-2

A TTML transformation processor supports the#padding-2 feature if it recognizes and is capable oftransforming values of thetts:padding attributethat consist of two<length> specification.

A TTML presentation processor supports the#padding-2feature if it implements presentation semantic support for values of thetts:padding attributethat consist of two<length> specification.

D.1.66 #padding-3

A TTML transformation processor supports the#padding-3 feature if it recognizes and is capable oftransforming values of thetts:padding attributethat consist of three<length> specification.

A TTML presentation processor supports the#padding-3feature if it implements presentation semantic support for values of thetts:padding attributethat consist of three<length> specification.

D.1.67 #padding-4

A TTML transformation processor supports the#padding-4 feature if it recognizes and is capable oftransforming values of thetts:padding attributethat consist of four<length> specification.

A TTML presentation processor supports the#padding-4feature if it implements presentation semantic support for values of thetts:padding attributethat consist of four<length> specification.

D.1.68 #pixelAspectRatio

A TTML transformation processor supports the#pixelAspectRatio feature if it recognizes and is capable oftransforming thettp:pixelAspectRatioattribute.

A TTML presentation processor supports the#pixelAspectRatio feature if it implements presentation semantic supportfor thettp:pixelAspectRatioattribute.

D.1.69 #presentation

A TTML processor supports the#presentation feature if it(1) satisfies the generic processor criteria defined by3.2.1 Generic Processor Conformance,(2) implements support for the region and line layoutsemantics defined by9.3 Region Layout and Presentation and9.4 Line Layout, respectively, and(3) implements presentation semantics for the following features:

In addition, a TTML processor that supports the#presentation feature should satisfy the user agentaccessibility guidelines specified by[UAAG].

D.1.70 #profile

A TTML transformation processor supports the#profilefeature if it recognizes and is capable of transforming thettp:profileattribute on thett element andtransforming the following vocabulary defined by6.1 Parameter Element Vocabulary:

A TTML presentation processor supports the#profile feature if it implements presentation semantic supportfor the same vocabulary specified above.

D.1.71 #showBackground

A TTML transformation processor supports the#showBackground feature if it recognizes and is capableof transforming all defined values of thetts:showBackgroundattribute.

A TTML presentation processor supports the#showBackground feature if it implements presentation semantic supportfor all defined values of thetts:showBackgroundattribute.

D.1.72 #structure

A TTML transformation processor supports the#structurefeature if it recognizes and is capable of transforming the followingvocabulary defined by7 Content:

A TTML presentation processor supports the#structurefeature if it implements presentation semantic support for thesame vocabulary enumerated above.

D.1.73 #styling

A TTML transformation processor supports the#stylingfeature if it recognizes and is capable of transforming the followingvocabulary defined by8 Styling:

A TTML presentation processor supports the#stylingfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

D.1.74 #styling-chained

A TTML transformation processor supports the#styling-chained feature if it recognizes and is capableof transforming chained style association as defined by8.4.1.3 Chained Referential Styling.

A TTML presentation processor supports the#styling-chained feature if it implements presentation semanticsupport for chained style association as defined by8.4.1.3 Chained Referential Styling.

D.1.75 #styling-inheritance-content

A TTML transformation processor supports the#styling-inheritance feature if it recognizes and iscapable of transforming content style inheritance as defined by8.4.2.1 Content Style Inheritance.

A TTML presentation processor supports the#styling-inheritance-content feature if it implementspresentation semantic support for content style inheritance as defined by8.4.2.1 Content Style Inheritance.

D.1.76 #styling-inheritance-region

A TTML transformation processor supports the#styling-inheritance feature if it recognizes and iscapable of transforming region style inheritance as defined by8.4.2.2 Region Style Inheritance.

A TTML presentation processor supports the#styling-inheritance-region feature if it implementspresentation semantic support for region style inheritance as defined by8.4.2.2 Region Style Inheritance.

D.1.77 #styling-inline

A TTML transformation processor supports the#styling-inline feature if it recognizes and is capableof transforming inline style association as defined by8.4.1.1 Inline Styling.

A TTML presentation processor supports the#styling-inline feature if it implements presentation semantic supportfor inline style association as defined by8.4.1.1 Inline Styling.

D.1.78 #styling-nested

A TTML transformation processor supports the#styling-nested feature if it recognizes and is capableof transforming nested style association as defined by8.4.1.4 Nested Styling.

A TTML presentation processor supports the#styling-nested feature if it implements presentation semantic supportfor nested style association as defined by8.4.1.4 Nested Styling.

D.1.79 #styling-referential

A TTML transformation processor supports the#styling-referential feature if it recognizes and is capableof transforming referential style association as defined by8.4.1.2 Referential Styling.

A TTML presentation processor supports the#styling-referential feature if it implements presentation semanticsupport for referential style association as defined by8.4.1.2 Referential Styling.

D.1.80 #subFrameRate

A TTML transformation processor supports the#subFrameRate feature if it recognizes and is capable oftransforming thettp:subFrameRateattribute.

A TTML presentation processor supports the#subFrameRate feature if it implements presentation semantic supportfor thettp:subFrameRateattribute.

D.1.81 #textAlign

A TTML transformation processor supports the#textAlign feature if it recognizes and is capableof transforming all defined values of thetts:textAlignattribute.

A TTML presentation processor supports the#textAlign feature if it implements presentation semantic supportfor all defined values of thetts:textAlignattribute.

D.1.82 #textAlign-absolute

A TTML transformation processor supports the#textAlign-absolute feature if it recognizes and iscapable of transforming theleft,center,andright values of thetts:textAlignattribute.

A TTML presentation processor supports the#textAlign-absolute feature if it implements presentation semanticsupport for theleft,center, andright values of thetts:textAlignattribute.

D.1.83 #textAlign-relative

A TTML transformation processor supports the#textAlign-relative feature if it recognizes and iscapable of transforming thestart,center,andend values of thetts:textAlignattribute.

A TTML presentation processor supports the#textAlign-relative feature if it implements presentation semanticsupport for thestart,center, andend values of thetts:textAlignattribute.

D.1.84 #textDecoration

A TTML transformation processor supports the#textDecoration feature if it recognizes and is capableof transforming all defined values of thetts:textDecorationattribute.

A TTML presentation processor supports the#textDecoration feature if it implements presentation semantic supportfor all defined values of thetts:textDecorationattribute.

D.1.85 #textDecoration-over

A TTML transformation processor supports the#textDecoration-over feature if it recognizes and iscapable of transforming theoverline andnoOverline values of thetts:textDecorationattribute.

A TTML presentation processor supports the#textDecoration-over feature if it implementspresentation semantic support for theoverline andnoOverline values of thetts:textDecorationattribute.

D.1.86 #textDecoration-through

A TTML transformation processor supports the#textDecoration-through feature if it recognizes and iscapable of transforming thelineThrough andnoLineThrough values of thetts:textDecorationattribute.

A TTML presentation processor supports the#textDecoration-through feature if it implementspresentation semantic support for thelineThrough andnoLineThrough values of thetts:textDecorationattribute.

D.1.87 #textDecoration-under

A TTML transformation processor supports the#textDecoration-under feature if it recognizes and iscapable of transforming theunderline andnoUnderline values of thetts:textDecorationattribute.

A TTML presentation processor supports the#textDecoration-under feature if it implementspresentation semantic support for theunderline andnoUnderline values of thetts:textDecorationattribute.

D.1.88 #textOutline

A TTML processor supports the#textOutline feature if itsupports the following features:

D.1.89 #textOutline-blurred

A TTML transformation processor supports the#textOutline-blurred feature if it recognizes and is capable oftransforming values of thetts:textOutlineattribute that includes a blur radius specification.

A TTML presentation processor supports the#textOutline-blurred feature if it implements presentation semantic supportfor values of thetts:textOutlineattribute that includes a blur radius specification.

D.1.90 #textOutline-unblurred

A TTML transformation processor supports the#textOutline-unblurred feature if it recognizes and is capable oftransforming values of thetts:textOutlineattribute that does not include a blur radius specification.

A TTML presentation processor supports the#textOutline-unblurred feature if it implements presentation semantic supportfor values of thetts:textOutlineattribute that does not include a blur radius specification.

D.1.91 #tickRate

A TTML transformation processor supports the#tickRate feature if it recognizes and is capable oftransforming thettp:tickRateattribute.

A TTML presentation processor supports the#tickRate feature if it implements presentation semantic supportfor thettp:tickRateattribute.

D.1.92 #timeBase-clock

A TTML transformation processor supports the#timeBase-clock feature if it recognizes and is capableof transforming theclock value of thettp:timeBaseattribute and if it supports the#clockMode feature.

A TTML presentation processor supports the#timeBase-clock feature if it implements presentationsemantic support for theclock value of thettp:timeBaseattribute and if it supports the#clockMode feature.

D.1.93 #timeBase-media

A TTML transformation processor supports the#timeBase-media feature if it recognizes and is capableof transforming themedia value of thettp:timeBaseattribute.

A TTML presentation processor supports the#timeBase-media feature if it implements presentationsemantic support for themedia value of thettp:timeBaseattribute.

D.1.94 #timeBase-smpte

A TTML transformation processor supports the#timeBase-smpte feature if it recognizes and is capableof transforming thesmpte value of thettp:timeBaseattribute and if it supports the#dropMode feature.

A TTML presentation processor supports the#timeBase-smpte feature if it implements presentationsemantic support for thesmpte value of thettp:timeBaseattribute and if it supports the#dropMode feature.

D.1.95 #timeContainer

A TTML transformation processor supports the#timeContainer feature if it recognizes and is capable oftransforming thetimeContainerattribute.

A TTML presentation processor supports the#timeContainer feature if it implements presentation semantic supportfor thetimeContainerattribute.

D.1.96 #time-clock

A TTML transformation processor supports the#time-clock feature if it recognizes and is capable oftransforming all values of the<timeExpression> thatsatisfy the following subset of time expression syntax:

<timeExpression>  : hours ":" minutes ":" seconds ( fraction )?

A TTML presentation processor supports the#time-clock feature if it implements presentationsemantic support for the same syntax specified above.

D.1.97 #time-clock-with-frames

A TTML transformation processor supports the#time-clock-with-frames feature if it supports the#frameRate,#frameRateMultiplier, and#subFrameRate featuresand if it recognizes and is capable oftransforming all values of the<timeExpression> thatsatisfy the following subset of time expression syntax:

<timeExpression>  : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?

A TTML presentation processor supports the#time-clock-with-frames feature if it implementspresentation semantic support for the same features and syntaxspecified above.

D.1.98 #time-offset

A TTML transformation processor supports the#time-offset feature if it recognizes and is capable oftransforming all values of the<timeExpression> thatsatisfy the following subset of time expression syntax:

<timeExpression>  : time-count fraction? ( "h" | "m" | "s" | "ms" )

A TTML presentation processor supports the#time-offset feature if it implements presentationsemantic support for the same syntax specified above.

D.1.99 #time-offset-with-frames

A TTML transformation processor supports the#time-offset-with-frames feature if it supports the#frameRate,#frameRateMultiplier, and#subFrameRate featuresand if it recognizes and is capable oftransforming all values of the<timeExpression> thatsatisfy the following subset of time expression syntax:

<timeExpression>  : time-count fraction? "f"

A TTML presentation processor supports the#time-offset-with-frames feature if it implementspresentation semantic support for the same features and syntaxspecified above.

D.1.100 #time-offset-with-ticks

A TTML transformation processor supports the#time-offset-with-ticks feature if it supports the#tickRate featureand if it recognizes and is capable oftransforming all values of the<timeExpression> thatsatisfy the following subset of time expression syntax:

<timeExpression>  : time-count fraction? "t"

A TTML presentation processor supports the#time-offset-with-ticks feature if it implements presentationsemantic support for the same features and syntax specified above.

D.1.101 #timing

A TTML transformation processor supports the#timingfeature if it recognizes and is capable of transforming the followingvocabulary defined by10 Timing:

A TTML presentation processor supports the#timingfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

D.1.102 #transformation

A TTML processor supports the#transformation feature if it(1) satisfies the generic processor criteria defined by3.2.1 Generic Processor Conformance and(2) implements the transformation semantics of the following features:

D.1.103 #unicodeBidi

A TTML transformation processor supports the#unicodeBidi feature if it recognizes and is capable oftransforming all defined values of thetts:unicodeBidiattribute.

A TTML presentation processor supports the#unicodeBidi feature if it implements presentation semantic supportfor all defined values of thetts:unicodeBidiattribute.

D.1.104 #visibility

A TTML transformation processor supports the#visibility feature if it recognizes and is capableof transforming all defined values of thetts:visibilityattribute.

A TTML presentation processor supports the#visibility feature if it implements presentation semantic supportfor all defined values of thetts:visibilityattribute.

D.1.105 #visibility-block

A TTML transformation processor supports the#visibility-block feature if it recognizes and iscapable of transforming all defined values of thetts:visibilityattribute when applied to a content element that would generate ablock area during presentation processing.

A TTML presentation processor supports the#visibility-block feature if it implements presentation semanticsupport for all defined values of thetts:visibilityattribute when applied to a content element that generates ablock area.

D.1.106 #visibility-inline

A TTML transformation processor supports the#visibility-inline feature if it recognizes and iscapable of transforming all defined values of thetts:visibilityattribute when applied to a content element that would generate aninline area during presentation processing.

A TTML presentation processor supports the#visibility-inline feature if it implements presentation semanticsupport for all defined values of thetts:visibilityattribute when applied to a content element that generates aninline area.

D.1.107 #visibility-region

A TTML transformation processor supports the#visibility-region feature if it recognizes and iscapable of transforming all defined values of thetts:visibilityattribute when applied to aregion element.

A TTML presentation processor supports the#visibility-region feature if it implements presentation semanticsupport for all defined values of thetts:visibilityattribute when applied to aregion element.

D.1.108 #wrapOption

A TTML transformation processor supports the#wrapOption feature if it recognizes and is capableof transforming all defined values of thetts:wrapOptionattribute.

A TTML presentation processor supports the#wrapOption feature if it implements presentation semantic supportfor all defined values of thetts:wrapOptionattribute.

D.1.109 #writingMode

A TTML processor supports the#writingMode feature if itsupports the following features:

D.1.110 #writingMode-vertical

A TTML transformation processor supports the#writingMode-vertical feature if it recognizes and iscapable of transforming thetbrl,tblr, andtb values of thetts:writingModeattribute.

A TTML presentation processor supports the#writingMode-vertical feature if it implements presentation semanticsupport for thetbrl,tblr, andtb values of thetts:writingModeattribute.

D.1.111 #writingMode-horizontal

A TTML processor supports the#writingMode-horizontal feature if itsupports the following features:

D.1.112 #writingMode-horizontal-lr

A TTML transformation processor supports the#writingMode-horizontal feature if it recognizes and iscapable of transforming thelrtb andlrvalues of thetts:writingModeattribute.

A TTML presentation processor supports the#writingMode-horizontal-lr feature if it implements presentation semanticsupport for thelrtb andlr values of thetts:writingModeattribute.

D.1.113 #writingMode-horizontal-rl

A TTML transformation processor supports the#writingMode-horizontal feature if it recognizes and iscapable of transforming therltb andrlvalues of thetts:writingModeattribute.

A TTML presentation processor supports the#writingMode-horizontal-rl feature if it implements presentation semanticsupport for therltb andrl values of thetts:writingModeattribute.

D.1.114 #zIndex

A TTML transformation processor supports the#zIndex feature if it recognizes and is capable oftransforming thetts:zIndexattribute.

A TTML presentation processor supports the#zIndex feature if it implements presentation semantic support forthetts:zIndexattribute.

D.2 Feature Support

The following table,Table D-1 – Feature Support,enumerates every defined feature designation (expressed without the TTFeature Namespace), and, for each designated feature, specifieswhether the feature must be implemented, i.e., is mandatory (M), or may be implemented, i.e.,is optional (O), for transformation and presentation processors.

Table D-1 – Feature Support
FeatureTransformationPresentation
#animationOO
#backgroundColorOO
#backgroundColor-blockOO
#backgroundColor-inlineOO
#backgroundColor-regionOO
#bidiOO
#cellResolutionOO
#clockModeOO
#clockMode-gpsOO
#clockMode-localOO
#clockMode-utcOO
#colorOO
#contentMM
#coreMM
#directionOO
#displayOO
#display-blockOO
#display-inlineOO
#display-regionOO
#displayAlignOO
#dropModeOO
#dropMode-dropNTSCOO
#dropMode-dropPALOO
#dropMode-nonDropOO
#extentOO
#extent-regionOO
#extent-rootOO
#fontFamilyOO
#fontFamily-genericOO
#fontFamily-non-genericOO
#fontSizeOO
#fontSize-anamorphicOO
#fontSize-isomorphicOO
#fontStyleOO
#fontStyle-italicOO
#fontStyle-obliqueOO
#fontWeightOO
#fontWeight-boldOO
#frameRateOO
#frameRateMultiplierOO
#layoutOO
#lengthOO
#length-cellOO
#length-emOO
#length-integerOO
#length-negativeOO
#length-percentageOO
#length-pixelOO
#length-positiveOO
#length-realOO
#lineBreak-uax14OO
#lineHeightOO
#markerModeOO
#markerMode-continuousOO
#markerMode-discontinuousOO
#metadataOO
#nested-divOO
#nested-spanOO
#opacityOO
#originOO
#overflowOO
#overflow-visibleOO
#paddingOO
#padding-1OO
#padding-2OO
#padding-3OO
#padding-4OO
#pixelAspectRatioOO
#presentationOM
#profileMM
#showBackgroundOO
#structureMM
#stylingOO
#styling-chainedOO
#styling-inheritance-contentOO
#styling-inheritance-regionOO
#styling-inlineOO
#styling-nestedOO
#styling-referentialOO
#subFrameRateOO
#textAlignOO
#textAlign-absoluteOO
#textAlign-relativeOO
#textDecorationOO
#textDecoration-overOO
#textDecoration-throughOO
#textDecoration-underOO
#textOutlineOO
#textOutline-blurredOO
#textOutline-unblurredOO
#tickRateOO
#timeBase-clockOO
#timeBase-mediaOO
#timeBase-smpteOO
#timeContainerOO
#time-clockOO
#time-clock-with-framesOO
#time-offsetMM
#time-offset-with-framesOO
#time-offset-with-ticksOO
#timingMM
#transformationMO
#unicodeBidiOO
#visibilityOO
#visibility-blockOO
#visibility-inlineOO
#visibility-regionOO
#wrapOptionOO
#writingModeOO
#writingMode-verticalOO
#writingMode-horizontalOO
#writingMode-horizontal-lrOO
#writingMode-horizontal-rlOO
#zIndexOO

For the sake of convenience, the following table,Table D-2 – Mandatory Features - Transformation, enumerates allmandatory features for a TTML Transformation Processor, providing additionalcomments to summarize the context of usage or the nature of the feature.TheProfile Definition Document that defines the correspondingDFXP Transformation Profile is specified inF.1 DFXP Transformation Profile.

Table D-2 – Mandatory Features - Transformation
FeatureComments
#contentbody,div,p,span,br
#core@xml:id,@xml:lang,@xml:space
#profile
#structurett,head
#time-offset
#timing@begin,@dur,@end
#transformation

For the sake of convenience, the following table,Table D-3 – Mandatory Features - Presentation, enumerates allmandatory features for a TTML Presentation Processor, providing additionalcomments to summarize the context of usage or the nature of the feature.TheProfile Definition Document that defines the correspondingDFXP Presentation Profile is specified inF.2 DFXP Presentation Profile.

Table D-3 – Mandatory Features - Presentation
FeatureComments
#contentbody,div,p,span,br
#core@xml:id,@xml:lang,@xml:space
#profile
#presentation
#structurett,head
#time-offset
#timing@begin,@dur,@end

E Extensions

This appendix is normative.

This appendix specifies the syntactic form of extension designations, which areused to express authorial intent regarding the support for extensionmechanisms in a TTML processor.

E.1 Extension Designations

An extension designation is expressed as a string that adheres to the followingform:

extension-designation  : extension-namespace designationextension-namespace  :TT Extension Namespace                  // http://www.w3.org/ns/ttml/extension/  |Other Extension Namespace               // expressed as an absolute URIdesignation  : "#" token-char+token-char  : { XML NameChar }                        // XML 1.1 Production [4a]

If the extension namespace of an extension designation is the TTExtension Namespace, then all values of the followingdesignation token are reserved for futurestandardization.

If the extension namespace of an extension designation is not theTT Extension Namespace, i.e., is anOther Extension Namespace,then the extension namespace must be expressed as an absolute URIcapable of serving as a base URI used in combination with adesignation token that takes the form of a fragmentidentifier.

F Profiles

This appendix is normative.

This appendix specifies the following standard TTML profiles:

The SDP US profile is defined inTTML Simple Delivery Profile for Closed Captions (US).

Each TTML profile is defined in terms of aProfile Definition Document,which is expressed as an XML document wherein the root element adheres to6.1.1 ttp:profile.

F.1 DFXP Transformation Profile

The DFXP Transformation Profile is intended to be used toexpress minimum compliance for transformation processing.

<?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</feature>    <feature value="optional">#clockMode-gps</feature>    <feature value="optional">#clockMode-local</feature>    <feature value="optional">#clockMode-utc</feature>    <feature value="optional">#color</feature>    <feature value="optional">#direction</feature>    <feature value="optional">#display</feature>    <feature value="optional">#display-block</feature>    <feature value="optional">#display-inline</feature>    <feature value="optional">#display-region</feature>    <feature value="optional">#displayAlign</feature>    <feature value="optional">#dropMode</feature>    <feature value="optional">#dropMode-dropNTSC</feature>    <feature value="optional">#dropMode-dropPAL</feature>    <feature value="optional">#dropMode-nonDrop</feature>    <feature value="optional">#extent</feature>    <feature value="optional">#extent-region</feature>    <feature value="optional">#extent-root</feature>    <feature value="optional">#fontFamily</feature>    <feature value="optional">#fontFamily-generic</feature>    <feature value="optional">#fontFamily-non-generic</feature>    <feature value="optional">#fontSize</feature>    <feature value="optional">#fontSize-anamorphic</feature>    <feature value="optional">#fontSize-isomorphic</feature>    <feature value="optional">#fontStyle</feature>    <feature value="optional">#fontStyle-italic</feature>    <feature value="optional">#fontStyle-oblique</feature>    <feature value="optional">#fontWeight</feature>    <feature value="optional">#fontWeight-bold</feature>    <feature value="optional">#frameRate</feature>    <feature value="optional">#frameRateMultiplier</feature>    <feature value="optional">#layout</feature>    <feature value="optional">#length</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">#lineBreak-uax14</feature>    <feature value="optional">#lineHeight</feature>    <feature value="optional">#markerMode</feature>    <feature value="optional">#markerMode-continuous</feature>    <feature value="optional">#markerMode-discontinuous</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</feature>    <feature value="optional">#overflow-visible</feature>    <feature value="optional">#padding</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">#pixelAspectRatio</feature>    <feature value="optional">#presentation</feature>    <feature value="optional">#showBackground</feature>    <feature value="optional">#styling</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">#subFrameRate</feature>    <feature value="optional">#textAlign</feature>    <feature value="optional">#textAlign-absolute</feature>    <feature value="optional">#textAlign-relative</feature>    <feature value="optional">#textDecoration</feature>    <feature value="optional">#textDecoration-over</feature>    <feature value="optional">#textDecoration-through</feature>    <feature value="optional">#textDecoration-under</feature>    <feature value="optional">#textOutline</feature>    <feature value="optional">#textOutline-blurred</feature>    <feature value="optional">#textOutline-unblurred</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</feature>    <feature value="optional">#visibility-block</feature>    <feature value="optional">#visibility-inline</feature>    <feature value="optional">#visibility-region</feature>    <feature value="optional">#wrapOption</feature>    <feature value="optional">#writingMode</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">#zIndex</feature>  </features>  <extensions xml:base="http://www.w3.org/ns/ttml/extension/">    <!-- required (mandatory) extension support -->    <!-- optional (voluntary) extension support -->  </extensions></profile>

F.2 DFXP Presentation Profile

The DFXP Presentation Profile is intended to be used toexpress minimum compliance for presentation processing.

<?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</feature>    <feature value="optional">#backgroundColor-block</feature>    <feature value="optional">#backgroundColor-inline</feature>    <feature value="optional">#backgroundColor-region</feature>    <feature value="optional">#bidi</feature>    <feature value="optional">#cellResolution</feature>    <feature value="optional">#clockMode</feature>    <feature value="optional">#clockMode-gps</feature>    <feature value="optional">#clockMode-local</feature>    <feature value="optional">#clockMode-utc</feature>    <feature value="optional">#color</feature>    <feature value="optional">#direction</feature>    <feature value="optional">#display</feature>    <feature value="optional">#display-block</feature>    <feature value="optional">#display-inline</feature>    <feature value="optional">#display-region</feature>    <feature value="optional">#displayAlign</feature>    <feature value="optional">#dropMode</feature>    <feature value="optional">#dropMode-dropNTSC</feature>    <feature value="optional">#dropMode-dropPAL</feature>    <feature value="optional">#dropMode-nonDrop</feature>    <feature value="optional">#extent</feature>    <feature value="optional">#extent-region</feature>    <feature value="optional">#extent-root</feature>    <feature value="optional">#fontFamily</feature>    <feature value="optional">#fontFamily-generic</feature>    <feature value="optional">#fontFamily-non-generic</feature>    <feature value="optional">#fontSize</feature>    <feature value="optional">#fontSize-anamorphic</feature>    <feature value="optional">#fontSize-isomorphic</feature>    <feature value="optional">#fontStyle</feature>    <feature value="optional">#fontStyle-italic</feature>    <feature value="optional">#fontStyle-oblique</feature>    <feature value="optional">#fontWeight</feature>    <feature value="optional">#fontWeight-bold</feature>    <feature value="optional">#frameRate</feature>    <feature value="optional">#frameRateMultiplier</feature>    <feature value="optional">#layout</feature>    <feature value="optional">#length</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">#lineBreak-uax14</feature>    <feature value="optional">#lineHeight</feature>    <feature value="optional">#markerMode</feature>    <feature value="optional">#markerMode-continuous</feature>    <feature value="optional">#markerMode-discontinuous</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</feature>    <feature value="optional">#overflow-visible</feature>    <feature value="optional">#padding</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">#pixelAspectRatio</feature>    <feature value="optional">#showBackground</feature>    <feature value="optional">#styling</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">#subFrameRate</feature>    <feature value="optional">#textAlign</feature>    <feature value="optional">#textAlign-absolute</feature>    <feature value="optional">#textAlign-relative</feature>    <feature value="optional">#textDecoration</feature>    <feature value="optional">#textDecoration-over</feature>    <feature value="optional">#textDecoration-through</feature>    <feature value="optional">#textDecoration-under</feature>    <feature value="optional">#textOutline</feature>    <feature value="optional">#textOutline-blurred</feature>    <feature value="optional">#textOutline-unblurred</feature>    <feature value="optional">#tickRate</feature>    <feature value="optional">#time-clock</feature>    <feature value="optional">#time-clock-with-frames</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</feature>    <feature value="optional">#visibility-block</feature>    <feature value="optional">#visibility-inline</feature>    <feature value="optional">#visibility-region</feature>    <feature value="optional">#wrapOption</feature>    <feature value="optional">#writingMode</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">#zIndex</feature>  </features>  <extensions xml:base="http://www.w3.org/ns/ttml/extension/">    <!-- required (mandatory) extension support -->    <!-- optional (voluntary) extension support -->  </extensions></profile>

F.3 DFXP Full Profile

The DFXP Full Profile is intended to be used toexpress maximum compliance for both transformation and presentation processing.

<?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</feature>    <feature value="required">#display-block</feature>    <feature value="required">#display-inline</feature>    <feature value="required">#display-region</feature>    <feature value="required">#displayAlign</feature>    <feature value="required">#dropMode</feature>    <feature value="required">#dropMode-dropNTSC</feature>    <feature value="required">#dropMode-dropPAL</feature>    <feature value="required">#dropMode-nonDrop</feature>    <feature value="required">#extent</feature>    <feature value="required">#extent-region</feature>    <feature value="required">#extent-root</feature>    <feature value="required">#fontFamily</feature>    <feature value="required">#fontFamily-generic</feature>    <feature value="required">#fontFamily-non-generic</feature>    <feature value="required">#fontSize</feature>    <feature value="required">#fontSize-anamorphic</feature>    <feature value="required">#fontSize-isomorphic</feature>    <feature value="required">#fontStyle</feature>    <feature value="required">#fontStyle-italic</feature>    <feature value="required">#fontStyle-oblique</feature>    <feature value="required">#fontWeight</feature>    <feature value="required">#fontWeight-bold</feature>    <feature value="required">#frameRate</feature>    <feature value="required">#frameRateMultiplier</feature>    <feature value="required">#layout</feature>    <feature value="required">#length</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">#lineBreak-uax14</feature>    <feature value="required">#lineHeight</feature>    <feature value="required">#markerMode</feature>    <feature value="required">#markerMode-continuous</feature>    <feature value="required">#markerMode-discontinuous</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</feature>    <feature value="required">#overflow-visible</feature>    <feature value="required">#padding</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">#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</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">#subFrameRate</feature>    <feature value="required">#textAlign</feature>    <feature value="required">#textAlign-absolute</feature>    <feature value="required">#textAlign-relative</feature>    <feature value="required">#textDecoration</feature>    <feature value="required">#textDecoration-over</feature>    <feature value="required">#textDecoration-through</feature>    <feature value="required">#textDecoration-under</feature>    <feature value="required">#textOutline</feature>    <feature value="required">#textOutline-blurred</feature>    <feature value="required">#textOutline-unblurred</feature>    <feature value="required">#tickRate</feature>    <feature value="required">#time-clock</feature>    <feature value="required">#time-clock-with-frames</feature>    <feature value="required">#time-offset</feature>    <feature value="required">#time-offset-with-frames</feature>    <feature value="required">#time-offset-with-ticks</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</feature>    <feature value="required">#visibility-block</feature>    <feature value="required">#visibility-inline</feature>    <feature value="required">#visibility-region</feature>    <feature value="required">#wrapOption</feature>    <feature value="required">#writingMode-horizontal</feature>    <feature value="required">#writingMode-horizontal-lr</feature>    <feature value="required">#writingMode-horizontal-rl</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>

G References

This appendix is normative.

CSS3 Color
Tantek Çelik and Chris Lilley,CSS ColorModule Level 3, W3C Recommendation, 07 June 2011. (Seehttp://www.w3.org/TR/2011/REC-css3-color-20110607/.)
GPS
GlobalPositioning System, US Naval Observatory.(Seehttps://tycho.usno.navy.mil/gpsinfo.html.)
Media Types
Ned Freed and Nathaniel Borenstein,Multipurpose InternetMail Extensions (MIME) Part Two: Media Types,RFC 2046, November 1996, IETF.(Seehttp://www.rfc-editor.org/rfc/rfc2046.txt.)
RELAX NG
ISO/IEC 19757-2,Information technology – DocumentSchema Definition Language (DSDL) – Part 2: Regular-grammar-based validation – RELAX NG,International Organization for Standardization (ISO).
SMIL 2.1
Dick Bultermann, et al.,SynchronizedMultimedia Integration Language (SMIL 2.1),W3C Recommendation, 13 December 2005. (Seehttp://www.w3.org/TR/2005/REC-SMIL2-20051213/.)
SMPTE 12M
ANSI/SMPTE 12M,Television, Audio and Film –Time and Control Code, SMPTE Standard.
SRGB
IEC 61966-2-1,Multimediasystems and equipment – Colour measurement and management– Part 2-1: Colour management – Default RGB colour space– sRGB, International ElectrotechnicalCommission (IEC).
UAAG
Ian Jacobs, Jon Gunderson, and Eric Hansen, Eds.,UserAgent Accessibility Guidelines 1.0, W3C Recommendation, 17December 2002. (Seehttp://www.w3.org/TR/2002/REC-UAAG10-20021217/.)
UAX9
M. Davis, A. Lanin, and A. Glass,Unicode BidirectionalAlgorithm, Unicode Consortium, 14 May 2017. (Seehttp://www.unicode.org/reports/tr9/tr9-37.html.)
UAX14
Asmus Freytag,Line BreakingProperties, Unicode Consortium, 29 August 2005. (Seehttp://www.unicode.org/reports/tr14/tr14-17.html.)
UTC
Recommendation TF.460,Standard-Frequency and Time-SignalEmissions, InternationalTelecommunciations Union, Radio Sector (ITU-R).
WCAG
Ben Caldwell, et al., Eds.,WebContent Accessibility Guidelines (WCAG) 2.0, W3C Recommendation, 11 December 2008. (Seehttp://www.w3.org/TR/2008/REC-WCAG20-20081211/.)
XML 1.0
Tim Bray, et al.Extensible Markup Language (XML)1.0 (Fifth Edition), W3C Recommendation, 26 November 2008. (Seehttp://www.w3.org/TR/2008/REC-xml-20081126/.)
XML 1.1
Tim Bray, et al.Extensible Markup Language (XML)1.1 (Second Edition), W3C Recommendation, 16 August 2006, edited in place 29 September 2006. (Seehttp://www.w3.org/TR/2006/REC-xml11-20060816/.)
XML Base
Jonathan Marsh and Richard Tobin, Eds.,XML Base (Second Edition),W3C Recommendation, 28 January 2009. (Seehttp://www.w3.org/TR/2009/REC-xmlbase-20090128/.)
XML ID
Jonathan Marsh, Daniel Veillard, Norman Walsh, Eds.,xml:id Version 1.0,W3C Recommendation, 09 September 2005. (Seehttp://www.w3.org/TR/2005/REC-xml-id-20050909/.)
XML InfoSet
John Cowan and Richard Tobin, Eds.,XML Information Set (Second Edition),W3C Recommendation, 04 February 2004. (Seehttp://www.w3.org/TR/2004/REC-xml-infoset-20040204/.)
XML Media Types
Makato Murata, Simon St. Laurent,Kan Khon, Eds.,XML Media Types,RFC 3023, January 2001, IETF.(Seehttp://www.rfc-editor.org/rfc/rfc3023.txt.)
XML Namespaces 1.0
Tim Bray, et al.Namespacesin XML 1.0 (Third Edition), W3C Recommendation, 8 December 2009. (Seehttp://www.w3.org/TR/2009/REC-xml-names-20091208/.)
XML Schema Part 1
Henry S. Thompson, David Beech,Murray Maloney, Noah Mendelsohn, Eds.,XML Schema Part 1: Structures,W3C Recommendation, 28 October 2004. (Seehttp://www.w3.org/TR/xmlschema-1/.)
XML Schema Part 2
Paul Biron and Ashok Malhotra,XML Schema Part 2: Datatypes,W3C Recommendation, 28 October 2004. (Seehttp://www.w3.org/TR/xmlschema-2/.)
XSL 1.1
Anders Berglund,Extensible Stylesheet Language (XSL) Version 1.1,W3C Recommendation, 05 December 2006. (Seehttp://www.w3.org/TR/2006/REC-xsl11-20061205/.)

H Other References (Non-Normative)

CC-DECODER-REQ
Closed Caption DecoderRequirements for Analog Television Receivers,United States Code of Federal Regulations, Title 47, Volume 1, Part 79, § 79.101. (Seehttp://www.gpo.gov/fdsys/pkg/CFR-2012-title47-vol4/pdf/CFR-2012-title47-vol4-sec79-101.pdf.)
CEA-608-E
EIA/CEA-608-E,Line 21 DataServices, EIA/CEA Standard,Consumer Electronics Association (CEA).
CEA-708-E
CEA-708-E,Digital Television (DTV) Closed Captioning, CEA Standard,Consumer Electronics Association (CEA).
CSS2
Bert Bos et al.,CascadingStyle Sheets, Level 2 Revision 1, W3C Recommendation, 07 June 2011.(Seehttp://www.w3.org/TR/2011/REC-CSS2-20110607/.)
MPEG DASH
ISO/IEC 23009-1,Information technology – Dynamic adaptive streaming over HTTP (DASH),International Organization for Standardization (ISO).
DCMES 1.1
Dublin Core Metadata Initiative,Dublin Core Metadata Element Set, Version 1.1: Reference Description. (Seehttp://dublincore.org/documents/dces/.)
EBU-TT Live
EBU Tech3370,EBU-TT Part 3 Live Subtitling, European Broadcasting Union (EBU)
ISOBMFF
ISO/IEC 14496-30,Information technology – Coding of audio-visual objects – Part 30: Timed text and other visual overlays in ISO base media file format, International Organization for Standardization (ISO).
MPEG7-5
ISO/IEC 15938-5,Information technology – Multimedia content descriptioninterface – Part 5: Multimedia description schemes,International Organization for Standardization (ISO).
NSState
Norman Walsh, Ed.,The Dispositionof Names in an XML Namespace, TAG Finding, 9 January 2006. (Seehttp://www.w3.org/2001/tag/doc/namespaceState-2006-01-09.)
QAF SG
Karl Dubost, et al.,QAFramework: Specifications Guidelines, W3C Recommendation, 17August 2005. (Seehttp://www.w3.org/TR/qaframe-spec/.)
SMPTE 170M
ANSI/SMPTE 170M,Television – Composite Analog VideoSignal – NTSC for Studio Applications, SMPTE Standard.
SMPTE 2052-11
SMPTE 2052-11,Conversion from CEA-708 Caption Data to SMPTE-TT,SMPTE Recommended Practice.
SVG 1.1
Jon Ferraiolo, Jun Fujisawa, Dean Jackson, Eds.,ScalableVector Graphics (SVG) 1.1 Specification, W3C Recommendation, 14January 2003. (Seehttp://www.w3.org/TR/2003/REC-SVG11-20030114/.)
TTAF1-REQ
Glenn Adams, Ed.,Timed Text (TT) Authoring Format 1.0 UseCases and Requirements,W3C Working Group Note, 27 April 2006. (Seehttp://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/.)
TTML10
Glenn Adams, Ed.,Timed Text Markup Language (TTML) 1.0,W3C Recommendation, 18 November 2010. (Seehttp://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/.)
XHTML 1.0
Steven Pemberton, et al.,XHTML™ 1.0,The Extensible Hypertext Markup Language (Second Edition),W3C Recommendation, 01August 2002. (Seehttp://www.w3.org/TR/2002/REC-xhtml1-20020801/.)

I Requirements (Non-Normative)

The Timed Text Markup Language (TTML), also known as the Distribution Format Exchange Profile (DFXP) of the Timed Text AuthoringFormat (TTAF), satisfies a subset of the requirements established by[TTAF1-REQ]. The following table enumerates these requirements andindicates the extent to which they are satisfied by this specification, whereS denotes a requirement is satisfied,P denotesa requirement is partially satisfied, andN denotes arequirement is not satisfied.

Table I-1 – Requirement Satisfaction
IDNameStatusComments
R100Specification FormatS
R101Specification ModularityS
R102Specification OrganizationS
R103Core and PeripherySTT extension namespaces
R104Evolution of CoreSTT extension namespaces
R105Ownership of CoreSTT namespaces
R106Surjection of CoreS
R107Evolution of PeripherySTT extension namespaces
R108Ownership of PeripherySNon-TT namespaces
R109TransformationSSupports 3GPP, QText, RealText, SAMI
R110Streamable TransformationSProgressive decoding
R111Accessibility – ContentSAlternative document instances
R112Accessibility – Authoring SystemS
R200AuthorabilityS
R201Multiple Natural LanguagesSAlternative document instances
R202Natural Language CoverageSUnicode 4.0
R203Natural Language Association GranularitySSeexml:lang
R204Minimum Character RepresentabilitySUnicode 4.0
R205Intrinsic and Extrinsic Text ContentPIntrinsic only
R206Markup AssociationPIntrinsic only
R207Conditional ContentN
R208Flowed TextS
R209Logical Flowed Text VocabularyS
R210Presentational Flowed Text VocabularySImplied mapping from logical flowed text.
R211Flowed Text Vocabulary RelationshipS
R212Flowed Text Vocabulary SeparationN
R213Non-Flowed TextN
R214Non-Flowed Text VocabularyN
R215Hybrid Flowed and Non-Flowed TextN
R216HyperlinkingNCan support via XLink
R217Embedded GraphicsN
R218Non-Embedded GraphicsN
R219Embedded FontsN
R220Non-Embedded FontsN
R221Descriptive VocabularySSeettm:agent,ttm:role
R222Embedded AudioN
R223Non-Embedded AudioN
R290Markup FormatS
R291Markup Format and Unicode InteractionS
R292Extrinsic Resource ReferencesNNo extrinsic references
R293Schema Validity SpecificationS
R300Inline StylingS
R301Inline Styling FormPInline and referential styling
R301Out-of-Line StylingN
R301Out-of-Line Styling FormN
R304Styling PrioritizationS
R305Style Parameters – AuralN
R306Style Parameters – VisualPSupports 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
R390Style Parameter SymmetryS
R391Style Parameter DefinitionsS
R392Style Parameter ShorthandsS
R401Inline TimingS
R402Out-of-Line TimingN
R403Synchronization ParametersPSupports begin, end, dur
R404Synchronization Parameter Value SpacesPSupports offset values, media marker values (SMPTE 12M), wall-clock values
R405Time Containment SemanticsPSupports sequential, parallel
R500Animation ModesPSupports discrete
R502Highlight AnimationS<set tts:backgroundColor="..."/>
R503Fade Transition AnimationS<set tts:opacity="..."/>
R504Animated Style Parameters – AuralN
R505Animated Style Parameters – VisualPSupports animating background color, color, display, opacity, origin, visibility
N506Animated ContentS
R600Metadata Item AssociationSSeemetadata,Metadata.class
R601Metadata Item ConstituentsPSupports name, value
R602Metadata Item Value RepresentationPSeemetadata
R603Metadata Item ExtensibilitySSeemetadata
R604Metadata Item ValidationSSeemetadata
R690Dublin Core PreferenceNUsesttm:copyright,ttm:desc,ttm:title

J Vocabulary Derivation (Non-Normative)

This appendix provides information about the derivation of TTMLvocabulary, separately describing derivation of elements andattributes.

J.1 Element Derivation

The first column ofTable J-1 – Elementsspecifies a TTML element vocabulary item; the second column specifies thesyntactic and/or semantic model on which the vocabulary item is based;the third column specifies the reference that definesthe model (if a model is indicated);the fourth column specifies details about the derivation; the lastcolumn refers to additional notes describing the nature of thederivation.

In the fourth column, which describes details of derivation, anotation is use to indicate the addition or removal of an attribute.For example, in the derivation of thett:div element, thedetails column includes "-@class", which denotes that theclass attribute that is specified for use with thexhtml:div model element is not specified for use with thecorresponding TTML element; in contrast, the details column includes"+@begin", which denotes that abegin attribute is addedthat is not specified for use with thexhtml:div modelelement.

Table J-1 – Elements
ElementModelReferenceDetailsNotes
tt:bodyxhtml:body[XHTML 1.0]-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,+@timeContainer, +@ttm:*, +@tts:*; content modelsubsetted to zero or more division (div) children, and supersetted byoptional metadata and animation children1,2
tt:brxhtml:br[XHTML 1.0]-@class, -@title; +@ttm:*, +@tts:*, +@xml:lang, +@xml:space;content model supersetted byoptional metadata and animation children for congruity with othercontent vocabulary1,2
tt:divxhtml:div[XHTML 1.0]-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,+@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content modelsubsetted to zero or more paragraph (p) children, and supersetted byoptional metadata and animation children1,2,3
tt:headxhtml:head[XHTML 1.0]-@dir, -@lang, -@profile; +@id, +@xml:space; content model changed tooptional metadata children, followed by optional styling child,followed by optional layout child1,3
tt:layoutfo:simple-page-master[XSL 1.1]conceptual derivation4
tt:metadatasvg:metadata[SVG 1.1]-@xml:base; +@ttm:*, +@xml:lang, +@xml:space; content modelsubsetted to foreign namespace element content only (no #PCDATA)3,5
tt:pxhtml:p[XHTML 1.0]-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,+@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content modelsubsetted to zero or more span children, and supersetted by optionalmetadata and animation children1,2,3
tt:regionfo:region-*[XSL 1.1]conceptual derivation4
tt:setsvg:set[SVG 1.1]-@* except begin, dur, end; +@tts:*, +@xml:lang, +@xml:space3,6
tt:spanxhtml:span[XHTML 1.0]-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,+@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content modelsubsetted to zero or more #PCDATA or break (br) children, andsupersetted by optional metadata and animation children1,2,3
tt:stylestyle specification[CSS2]XML representation of identified set of pairs of style propertyname and value, with optional inclusion of other styles by referenceto other style elements7
tt:stylingxhtml:style[XHTML 1.0]XML representation of a set of style specifications sets, eachrepresented by a style child element1,7
tt:ttxhtml:html[XHTML 1.0]-@dir, -@lang; +@id, +@ttp:*, +@xml:space; content model subsetted bypermitting body and/or head to be optional1,8
ttm:actormpeg7:Creator[MPEG7-5]conceptual derivation4
ttm:agentmpeg7:Agent[MPEG7-5]conceptual derivation4
ttm:copyrightmpeg7:CopyrightString[MPEG7-5]conceptual derivation4
ttm:descsvg:desc[SVG 1.1]-@class, -@style, -@xml:base2,5,9
ttm:namempeg7:Name[MPEG7-5]conceptual derivation4
ttm:titlesvg:title[SVG 1.1]-@class, -@style, -@xml:base2,5,9
ttp:extension@requiredExtensions[SVG 1.1]conceptual derivation10
ttp:extensions@requiredExtensions[SVG 1.1]conceptual derivation10
ttp:feature@requiredFeatures[SVG 1.1]conceptual derivation10
ttp:features@requiredFeatures[SVG 1.1]conceptual derivation10
ttp:profile@baseProfile[SVG 1.1]conceptual derivation11

Note:

  1. Derivation is indicated with respect to the strict DTD definedby[XHTML 1.0], §A.1.

  2. Theclass attribute is effectively replaced by thestyleattribute, which, instead of specifying an inline style,refers indirectly to one or morestyleelements that define a set of style specification sets.

  3. Thexml:lang andxml:space attributes are defined for all elementtypes in order to support their inheritance semantics to operate inthe context of foreign namespace elements.

  4. Derivation is conceptual (notional) only.

  5. Thexml:base attribute is not used since there are no externalreferences from core vocabulary.

  6. TheattributeName andto attributes ofsvg:set are replaced by thedirect expression of the target attribute name and value by use of atts:* attribute.

  7. CSS style specification syntax is mapped to XML by use ofattributes defined in the TT Style Namespace.

  8. Thexml:id attribute is defined for use on all element types.

  9. Thestyle attribute is supported only onContent elements.

  10. Derived from the use of@requiredExtensionsand@requiredFeatures on thesvg:svg element,but extended to support distinct specification of optionality.

  11. Derived from the use of@baseProfileand@version on thesvg:svg element.

J.2 Attribute Derivation

The first column ofTable J-2 – Attributesspecifies a TTML attribute vocabulary item; the second column specifies thesyntactic and/or semantic model on which the vocabulary item is based;the third column specifies the reference that definesthe model (if a model is indicated);the fourth column specifies details about the derivation; the lastcolumn refers to additional notes describing the nature of thederivation.

In the fourth column, which describes details of derivation, anotation is use to indicate the addition or removal of an attributevalue. For example, in the derivation of thetimeContainerattribute,the details column includes "-excl", which denotes that theexcl value that is specified for use with thetimeContainer model attribute is not specified for use with thecorresponding TTML attribute; similarly, an "+value"in the details column indicates that the attribute's values have beenextended to includevalue.

Only those attributes that are specified for use on more than one TTMLelement type are listed below. Those per-element namespace attributesthat are uniquely defined for a specific TTML element type are notlisted below, but are considered to be part of the specific elementtype's derivation described inTable J-1 – Elementsabove.

Table J-2 – Attributes
AttributeModelReferenceDetailsNotes
beginbegin[SMIL 2.1]see notes2,3,4
durdur[SMIL 2.1]see notes2,3,4
endend[SMIL 2.1]see notes2,3,4
regionmaster-reference[XSL 1.1]conceptual derivation
styleclass[CSS2]dereferences style specification(s) directly
timeContainertimeContainer[SMIL 2.1]-excl, -none; no default attribute value5
ttm:agentnoneused to attribute agent of content
ttm:rolenoneused to attribute role of content
ttp:cellResolutionnoneexpresses uniform grid resolution for cell based coordinates
ttp:clockModenonedetermines how to interpret time expressions
ttp:frameRatenoneexpresses integral frame rate
ttp:frameRateMultipliernoneused to express non-integral, rational frame rates
ttp:markerModenoneexpresses marker continuity semantics
ttp:pixelAspectRationoneexpresses pixel aspect ratio of related media
ttp:profilenoneexpresses profile of TTML used by aDocument Instance
ttp:dropModenoneexpresses frame counting (drop) modes
ttp:subFrameRatenoneexpresses sub-frame rate
ttp:tickRatenoneused to interpret tick based time expressions
ttp:timeBasenoneused to interpret semantics of time expressions
tts:backgroundColorbackground-color[XSL 1.1]-inherit1,6
tts:colorcolor[XSL 1.1]-inherit6
tts:directiondirection[XSL 1.1]-inherit
tts:displaydisplay[CSS2]onlyauto,none
tts:displayAligndisplay-align[XSL 1.1]-inherit1
tts:extentwidth,height[XSL 1.1]shorthand property
tts:fontFamilyfont-family[XSL 1.1]-inherit, extends generic family names1
tts:fontSizefont-size[XSL 1.1]-inherit1,7
tts:fontStylefont-style[XSL 1.1]-inherit,-backslant1
tts:fontWeightfont-weight[XSL 1.1]-inherit,-bolder,-lighter,-<number>1
tts:lineHeightline-height[XSL 1.1]-inherit,-<number>,-<space>1
tts:opacityopacity[CSS3 Color]-inherit
tts:origintop,left[XSL 1.1]shorthand property
tts:overflowoverflow[XSL 1.1]-inherit,-auto,-error-if-overflow
tts:paddingpadding[XSL 1.1]-inherit8
tts:showBackgroundshowBackground[SMIL 2.1]-inherit
tts:textAligntext-align[XSL 1.1]-inherit1
tts:textDecorationtext-decoration[XSL 1.1]-inherit1,9,12
tts:textOutlinetext-shadow[XSL 1.1]-inherit10,12
tts:unicodeBidiunicode-bidi[XSL 1.1]-inherit1
tts:visibilityvisibility[XSL 1.1]-inherit,-collapse
tts:wrapOptionwrap-option[XSL 1.1]-inherit1
tts:writingModewriting-mode[XSL 1.1]-inherit,+tblr1
tts:zIndexz-index[XSL 1.1]-inherit1
xml:idxml:id[XML ID]complies with model
xml:langxml:lang[XML 1.0]complies with model
xml:spacexml:space[XML 1.0]see notes11

Note:

  1. Attribute name and/or value(s) are normalized to uselowerCamelCase naming convention.

  2. Restricted to expressing a clock value that denotes one of thefollowing in accordance to whether the parameter expressed by thettp:timeBase attribute ismedia,smpte,orclock, respectively:(1) an offset from an implicit syncbase that is linked to a media timeline, (2) an event timethat represents the occurrence of an implicit media marker, or (3) a wall-clocktime.

  3. Syntactically subsets and supersets the[SMIL 2.1] Clock-value syntax as follows:(1) requires non-negativeFull-clock-value orTimecount-value;(2) ifFull-clock-valuethenhours must be two or more digits;(3) ifTimecount-value, thenmetric must bespecified;(4) usesm as alias formin metric to denoteminutes;(5) addsf andt metrics denoting frames andticks, respectively;(6) adds alternative expression of optionalFraction inFull-clock-value by specifying frame count or framecount with subframe count.

  4. Interpretation of time expression is further constrained byparameters expressed byttp:clockMode,ttp:dropMode,ttp:frameRate,ttp:frameRateMultiplier,ttp:markerMode,ttp:subFrameRate,ttp:tickRate, andttp:timeBase attributes.

  5. Uses subset of named colors from model to which two aliases areadded as follows:magenta asfuchsia, andcyanasaqua.

  6. If not specified, then parallel (par) container semantics apply tothe element types specified by10.2.4 timeContainer.

  7. Restricts size to length specification which can be a percentage;adds optional second length (or percentage) forspecifying separate horizontal and vertical scaling of glyph's EMsquare.

  8. Expressed in terms of writing mode relative padding propertiesrather than absolute padding properties.

  9. Excludesblink andno-blink values.

  10. Uses only one length specification instead of two, where one lengthdefines distance of outline effect from nominal edge of glyph contouroutline perpendicular to point of glyph contour. Percentage lengthsare also added to express outline effect in relative to font size.Outline effects are intended to be drawn both outside of outer closedcontours and inside of inner closed contours.

  11. On root element, default attribute value specified asdefault, which is defined in terms of whitespacenormalization. Semantics of preservation and default normalization aredefined in terms of presentation semantics by7.2.3 xml:space.

  12. Defined to be inheritable.

K QA Framework Compliance (Non-Normative)

This appendix specifies the compliance of this specification with therequirements and guidelines defined byQAFramework Specifications Guidelines [QAF SG].

K.1 Requirements

Table K-1 – QA Framework Requirements Checklist
RequirementYESNON/ANotes
Requirement 01: Include a conformanceclauseYES
Requirement 02: Define the scope.YES
Requirement 03: Identify who or what will implement the specification.YES
Requirement 04: Make a list of normative references.YES
Requirement 05: Define the terms used in the normative parts of the specification.YES
Requirement 06: Create conformance labels for each part of the conformance model.YES
Requirement 07: Use a consistent style for conformance requirements and explain how to distinguish them.YES
Requirement 08: Indicate which conformance requirements are mandatory, which are recommended, and which are optional.YES
Requirement 09: If the technology is subdivided, then indicate which subdivisions are mandatory for conformance.YES
Requirement 10: If the technology is subdivided, then address subdivision constraints.YES
Requirement 11: Address Extensibility.YES
Requirement 12: Identify deprecated features.N/A1
Requirement 13: Define how each class of product handles each deprecated feature.N/A1

Note:

  1. No feature is deprecated by this version of this specification.

K.2 Guidelines

Table K-2 – QA Framework Guidelines Checklist
GuidelineYESNON/ANotes
Good Practice 01: Define the specification's conformance model in the conformance clause.YES
Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.YES
Good Practice 03: Provide the wording for conformance claims.YES
Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.NO
Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.YES
Good Practice 06: Provide examples, use cases, and graphics.YES
Good Practice 07: Write sample code or tests.YES
Good Practice 08: When imposing requirements by normative references, address conformance dependencies.YES1
Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.YES
Good Practice 10: Use terms already defined without changing their definition.YES2
Good Practice 11: Use formal languages when possible.YES
Good Practice 12: Write Test Assertions.NO3
Good Practice 13: Create subdivisions of the technology when warranted.YES
Good Practice 14: If the technology is profiled, define rules for creating new profiles.YES
Good Practice 15:Use optional features as warranted.YES
Good Practice 16: Clearly identify optional features.YES
Good Practice 17: Indicate any limitations or constraints on optional features.YES
Good Practice 18: If extensibility is allowed, define an extension mechanism.YES
Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.YES
Good Practice 20: Define error-handling for unknown extensions.YES4
Good Practice 21: Explain how to avoid using a deprecated feature.N/A5
Good Practice 22: Identify obsolete features.N/A5
Good Practice 23: Define an error handling mechanism.YES

Note:

  1. When making normative references to external specifications,specific clauses or sections are cited.

  2. See alsoJ Vocabulary Derivation.

  3. Test assertions and test suites will be provided prior to enteringProposed Recommendation (PR) phase.

  4. See criterion #3 in3.2 Processor Conformance and definition ofTTMLAbstract Document Instance.

  5. No feature is deprecated or obsoleted by this version of this specification.

L Streaming TTML Content (Non-Normative)

TTML Content can be authored to meet the following characteristics that may be useful instreaming scenarios:

L.1 Root and Branch Fragmentation

One possible means by which TTML Content may be streamed is topartition aDocument Instance's information set intonon-overlapping fragments, where one particular fragment, call it theroot fragment, represents the front matter (head) of theDocument Instance as well as its top level structural elements, andother fragments represent content whose time intervals are expected tobe active in parallel.

In applications that require arbitrary (random) entry into astream, i.e., the property of being able to start reading data at anarbitrary data access unit, the root fragment will be repetitivelytransmitted (inserted) into the stream in order to permit a decoder toresynchronize and acquire sufficient structural information in theinformation set in order to interpret subsequent contentfragments.

An example of such a fragmentation of aDocument Instance isshown inFigure 3 – Fragment Streaming.

Figure 3 – Fragment Streaming
Fragment Streaming

Note:

This specification does not define a transport buffer model or a decodercapabilities model.

L.2 Temporal Fragmentation

Another means by which TTML Content may be streamed is topartition aDocument Instance's information set intotemporally bound fragments, each of which is itself a document instance that contains all thefront matter (head) and content required to present it, where the temporal interval for eachfragment is constrained, either by theDocument Interchange Context or by theDocument Processing Context or by both, such that temporal overlaps with other fragments are resolved.

For example, some document processing contexts resolve temporal overlap by specifying that amaximum of one document instance can be active at any moment in the timeline, and additionallyspecify precedence rules to establish which document instance that is, in case there are multiplecandidates.

In order to ensure that all the content is correctly displayed, any content that falls into anIntermediate Synchronic Document (ISD) whose interval overlaps with morethan one fragmentation interval might need to be duplicated within each fragment that is required togenerate that ISD. It is possible for implementations to identify adjacent ISDs that are identicalexcept in their intervals and replace them with a single ISD covering the combined interval.

The intent of this approach is that presentation processors are able to generate an equivalentsequence of ISDs to that which would be generated by a non-streamed version of the documentinstance, while taking advantage of the ability to avoid duplicating some controllable amount offront matter, by varying the segment duration. Reconstruction of the original source is notguaranteed to result in an identical document instance.

Note:

This technique is used for example in[ISOBMFF] and in[EBU-TT Live].

An example of such a fragmentation of aDocument Instance isshown inFigure 4 – Temporal fragmentation.

Figure 4 – Temporal fragmentation
Temporal Fragment Streaming

Note:

In the above example, a single document instance has content visible during intervalsT1 through T6 and is fragmented into two document instances (segments),the first including all content and referenced styles and regions required during T1through T3, the second including all content and referenced styles and regions requiredduring T4 through T6.

M Concrete Encoding (Non-Normative)

In the absence of other requirements, it is recommended that aDocument Instance be concretely encoded as awell-formed XML 1.0[XML 1.0] document using the UTF-8 character encoding.

Note:

When using XML 1.0[XML 1.0] as the concrete encoding of TTML, only the following named character entities are defined:&amp;,&apos;,&lt;,&gt;, and&quot;.

N Time Expression Semantics (Non-Normative)

This appendix describes the intended semantics for interpreting time expressions inDocument Instances.

Note:

It is expected that the information in this appendix will be elevated to normative status in a future revision of this specification.

Note:

The phraselocal real time as used below is intended to model a virtual real time clock in the document processing context, wherelocal means in the immediate proximity of the implementation of this processing context. The intentof defining relationships with this virtual clock is to establish a locally valid physical realization of time for didactic purposes.

Note:

The phraseplay rate as used below is intended to model a (possibly variable) parameter in the document processing context whereinthe rate of playback (or interpretation) of time may artificially dilated or narrowed, for example, when slowing down or speeding up the rate ofplayback of aRelated Media Object. Without loss of generality, the following discussion assumes a fixed play(back) rate. In the case ofvariable play rates, appropriate adjustments may need to be made to the resulting computations.

TheDocument Processing Context defines the applicable epoch and any epoch-related offsets to be used when establishing theSynthetic Document Syncbase.

N.1 Clock Time Base

When operating with theclock time base, the following semantics should be applied for interpreting time expressions,as defined by<timeExpression>, and their relationship to media time and local real time.

The clock time baseC is related to local real timeRexpressed in the epochE (defined by theDocument Processing Context) as follows:

TTML Semantics – Clock Time and Real Time Relationship


R = C + epochOffset + discontinuityOffset

whereC ∈ ℜ,0 ≤ C < ∞,C in seconds since the most immediately prior midnight of the reference clock base;

epochOffset ∈ ℜ,0 ≤ epochOffset < ∞,epochOffset in seconds, with 0 being the beginningof epochE, and where the value ofepochOffset is determined from the computed value of thettp:clockMode parameteras follows:

(1) iflocal, then the difference between the local real time at the most immediately prior local midnight and the local real timeat the beginning of epochE, expressed in seconds;

(2) ifgps, then the difference between the GPS time at the most immediately prior GPS midnightand the GPS time at the beginning of epochE, expressed in seconds;

(3) ifutc, then the difference between the UTC time at the most immediately prior UTC midnightand the UTC time at the beginning of epochE, expressed in seconds;

discontinuityOffset ∈ ℜ,−∞ < discontinuityOffset < ∞,discontinuityOffset in seconds,and where the value ofdiscontinuityOffset is equal to the sum of leap seconds (and fractions thereof) that have been added (or subtracted) since themost immediately prior midnight in the reference clock base;

andepochOffset anddiscontinuityOffset are determined once and only once prior to the beginning of theRoot Temporal Extent such thatduring the period between value determination and the beginning of theRoot Temporal Extent there occurs no local midnight or reference clock base discontinuity.

Time value expressions, as denoted by a<timeExpression>, are related toclock timeC as follows:

TTML Semantics – Time Expressions and Clock Time Relationship


If a time expression uses theclock-time form or anoffset-time form that doesn't use the ticks (t) metric, then:

C = 3600 * hours + 60 * minutes + seconds

wherehours,minutes,seconds components are extracted from time expression if present, or zero if not present. Furthermore, afraction component, if present, is added to theseconds component to form a real-valuedseconds component.

Otherwise, if a time expression uses anoffset-time form that uses the ticks (t) metric, then:

C = ticks / tickRate

Note:

Theframes andsub-frames terms and the frames (f) metric of time expressions do not apply when usingtheclock time base.

The clock time baseC is independent of media timeM:

TTML Semantics – Clock Time and Media Time Relationship


M ¬∝ C

Note:

That is to say, timing is disconnected from (not necessarily proportional to) media time whentheclock time base is used. For example, if the media play rate is zero (0), media playback is suspended; however, timing coordinateswill 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 changesduring playback, presentation timing is not affected.

N.2 Media Time Base

When operating with themedia time base, the following semantics should be applied for interpreting time expressions,as defined by<timeExpression>, and their relationship to media time, document time, and local real time.

N.2.1 Relationship to Local Real Time

The media time baseM is related to local real timeRexpressed in the epochE (defined by theDocument Processing Context) as follows:

TTML Semantics – Media Time and Real Time Relationship


R = playRate * M + epochOffset

whereM ∈ ℜ,0 ≤ M < ∞,M in seconds, with 0 corresponding to the beginning of theRoot Temporal Extent;

playRate ∈ ℜ,−∞ < playRate < ∞,playRate is unit-less, and where the value ofplayRate is determined by the document processing context;

andepochOffset ∈ ℜ,0 ≤ epochOffset < ∞,epochOffset in seconds, with 0 corresponding to the beginning ofan epochE, and where the value ofepochOffset is the difference between the local real time at the beginning of theRoot Temporal Extent and the local real time at the the beginning of epochE, expressed in seconds.

N.2.2 Relationship to Media Time

Time value expressions, as denoted by a<timeExpression>, are related tomedia timeM in accordance to thettp:frameRate,ttp:subFrameRate, andttp:frameRateMultiplier parameters as follows:

TTML Semantics – Time Expressions and Media Time Relationship


If a time expression uses aclock-time form or anoffset-time form that doesn't use the ticks (t) metric, then:

M = referenceBegin + 3600 * hours + 60 * minutes + seconds + ((frames + (subFrames / subFrameRate)) / effectiveFrameRate)

wherereferenceBegin is determined according to whether the nearest ancestor time container employsparallel (par) or sequential (seq) semantics: if parallel or if sequential and no prior siblingtimed element exists, thenreferenceBeginis the media time that corresponds to the beginning of the nearest ancestor time container orzero (0) if this time container is theRoot Temporal Extent; otherwise, if sequential and a prior siblingtimed element exists, thenreferenceBegin is the media time that corresponds to the active end of theimmediate prior sibling timed element;

thehours,minutes,seconds,frames,subFrames componentsare extracted from time expression if present, or zero if not present;furthermore, if the time expression takes the form of aclock-time expression, then thefraction component, if present, is added to theseconds component to form a real-valuedseconds component, or, if the time expression takes the form of anoffset-time expression, then thefraction component, if present, is added to thetime-count component to form a real-valuedtime-count component according to the specified offset metric;

subFrameRate is the computed value of thettp:subFrameRate parameter;

andeffectiveFrameRate (in frames per second) isframeRate * frameRateMultiplier whereframeRate is the computed value of thettp:frameRate parameter andframeRateMultiplier is the computed value of thettp:frameRateMultiplier parameter.

Otherwise, if a time expression uses anoffset-time form that uses the ticks (t) metric, then:

M = referenceBegin + ticks / tickRate

wherereferenceBegin is as described above;

theticks component is extracted from time expression;

andtickRate is the computed value of thettp:tickRate parameter;

Note:

If the computedframeRateMultiplier ratio is not integral, theneffectiveFrameRate will be a non-integral rational.

Note:

The above formalisms assumes that theRoot Temporal Extent corresponds with the beginning of a related media object. Ifthis assumption doesn't hold, then an additional offset that accounts for the difference may be introduced when computing media timeM.

N.2.3 Relationship to Document Time

The computed document times are used as the equivalent media times with no offset.

Note:

Any additional media time processing imposed by e.g. a wrapper format is out of scope of the TTML specification.

For example[ISOBMFF] and[MPEG DASH] provide mechanisms for wrapping TTML documents as samples or segments and defining the offset of their media timelines relative to other media such as audio or video.

The following document fragments are equivalent in timing:

Example Fragment – 1
<tt ttp:timeBase="media" ...>...<body>   <div xml:id="d1" begin="1s">      <p xml:id="p1" begin="0s" end="1s">First paragraph</p>      <p xml:id="p2" begin="2s" end="3s">Second paragraph</p>   </div></body></tt>

Example Fragment – 2
<tt ttp:timeBase="media" ...>...<body>   <div xml:id="d1">      <p xml:id="p1" begin="1s" end="2s">First paragraph</p>      <p xml:id="p2" begin="3s" end="4s">Second paragraph</p>   </div></body></tt>

Timing diagram showing the mapping of document times to media times in the absence of other external information.
Media time
In this example, using the the terminology of[SMIL 2.1], the implicit duration of thebody element is identical to its computed duration which is also theRoot Temporal Extent.

However if theDocument Processing Context specifies a range of applicable media times, those limit the resolved begin and end times and therefore theRoot Temporal Extent.

In the following example the processing context defines that the media time range over which the document is active is from 1.5s to 3.5s, and this defines the Root Temporal Extent since timed content is present at both of those times.

Timing diagram showing the mapping of document times to media times when the media time range is constrained by the processing context.
Media time
The grey background indicates the periods when theDocument Processing Context defines the document to be inactive.
If the document processing context were to define that the media time range is 0-3s then theRoot Temporal Extent would be from 1s to 2s as defined by p1 and p2 would never be shown.

N.3 SMPTE Time Base

When operating with thesmpte time base, the following semantics should be applied for interpreting time expressions,as defined by<timeExpression>, and their relationship to media time and local real time.

If the computed value of thettp:markerMode parameter isdiscontinuous, then there is no direct relationship betweentime expressions and media timeM or local real timeR. Inthis case, time expressions refer to synchronization events (markers) emitted by theDocument Processing Context whenSMPTE TimeCodes are encountered in theRelated Media Object.

Otherwise, if the computed value of thettp:markerMode parameter iscontinuous, then the relationships between time expressions andlocal real time and media time are as described below in terms of aSynthetic SMPTE Document Syncbase, here referred to as theSMPTE time baseS.

TTML Semantics – Time Expressions and SMPTE Time Relationship


S = (countedFrames - droppedFrames + (subFrames / subFrameRate)) / effectiveFrameRate

where

countedFrames = (3600 * hours + 60 * minutes + seconds) * frameRate + frames

hours,minutes,seconds,frames,subFrames componentsare extracted from time expression if present, or zero if not present;

droppedFrames is computed as follows:

1. letdropMode be the computed value of thettp:dropMode parameter;

2. ifdropMode isdropNTSC, letdroppedFrames = (hours * 54 + minutes - floor(minutes/10)) * 2;

3. otherwise, ifdropMode isdropPAL, letdroppedFrames = (hours * 27 + floor(minutes/2) - floor(minutes/20)) * 4;

4. otherwise, letdroppedFrames = 0;

frameRate is the computed value of thettp:frameRate parameter;

subFrameRate is the computed value of thettp:subFrameRate parameter;

andeffectiveFrameRate (in frames per second) isframeRate * frameRateMultiplier whereframeRate is the computed value of thettp:frameRate parameter andframeRateMultiplier is the computed value of thettp:frameRateMultiplier parameter.

Notwithstanding the above, if a time expression contains a frame code that is designated asdropped according to6.2.3 ttp:dropMode, then that time expressionshould be considered to be invalid for purposes of validation assessment.

The SMPTE time baseS is related to the media time baseM as follows:

TTML Semantics – SMPTE Time and Media Time Relationship


M = referenceBegin + S

wherereferenceBegin is determined according to whether the nearest ancestor time container employsparallel (par) or sequential (seq) semantics: if parallel or if sequential and no prior siblingtimed element exists, thenreferenceBeginis the SMPTE time that corresponds to the beginning of the nearest ancestor time container orzero (0) if this time container is theRoot Temporal Extent; otherwise, if sequential and a prior siblingtimed element exists, thenreferenceBegin is the SMPTE time that corresponds to the active end of theimmediate prior sibling timed element;

Given the derived media time base as described above, then media time baseM is related to the local real timeRas described inN.2 Media Time Base above.

O Common Caption Style Examples (Non-Normative)

This section provides examples of the following common caption styles using TTML Contentto obtain the desired behavior:

O.1 Pop-On Caption Example

An example of paint-on captions. In this example, two regions are targeted with alternating, paint-on content, where content is timedusing explicit sequential time containment rules. Each paragraph is non-overlapping in time and appears in the same single rowof its targeted region.

Example – Pop-On Captions
<tt ttp:cellResolution="60 20" xml:lang="en" 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">  <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>

O.2 Roll-Up Caption Example

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 regionat a given time. Each paragraph consumes a single row (line) of the region since no wrapping occurs. Depending on whether a presentation processor supportssmooth scrolling between adjacent synchronic intermediate document instances, the transitions, i.e., moving anold paragraph (line) out and a new paragraph (line) in, will be either smooth or discrete.

Example – Roll-Up Captions
<tt ttp:cellResolution="60 20" xml:lang="en" 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">  <head>    <layout>      <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 2c" tts:displayAlign="after"/>    </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>

O.3 Paint-On Caption Example

An example of paint-on captions. Paint-on effects are achieved by using timedspan 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 ofeach inline element coincides with the end of thediv element's parallel time container, so that once a word is painted, it remains in the region (on its rendered line) until thediv element's active time interval lapses.

Example – Paint-On Captions
<tt ttp:cellResolution="60 20" xml:lang="en" 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">  <head>    <layout>      <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 5c" tts:displayAlign="after"/>    </layout>  </head>  <body>    <div region="r1" 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>

P Acknowledgments (Non-Normative)

The editor acknowledges the current and former members of the Timed Text WorkingGroup, the members of other W3C Working Groups, and industry expertsin other forums who have contributed directly or indirectly to theprocess or content of this document as follows:

Glenn Adams,Thomas Bause-Mason,John Birch,Kees Blom,Bert Bos,Brad Botkin,Dick Bulterman,Frans de Jong,Michael 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,Pierre-Anthony Lemieux,Chris Lilley,Jason Livingston,Monica Martin,Matthew May,Nigel Megitt,Thierry Michel,Frank Olivier,Soohong Daniel Park,Silvia Pfeiffer,Brian Raymor,David Ronca,Patrick Schmitz,David Singer,Craig Smithpeters,Andreas Tai,and Mohamed Zergaoui.

The editor wishes to especially acknowledge the following contributionsby members: Michael Dolan (SMPTE time codes, streaming; SMPTE liaison), DavidKirby (introductory example document; SMPTE time codes, descriptive metadata; EBU/AAF liaison), Geoff Freed (stylingand example images of style properties), Sean Hayes (advanced profileconcepts, including applicative timing), Eric Hodge (timing),Thierry Michel (metadata), and Dave Singer (animation, scrolling).

The Working Group dedicates this specification to our colleague David Kirby.


[8]ページ先頭

©2009-2025 Movatter.jp