Movatterモバイル変換


[0]ホーム

URL:


W3C

Timed Text Markup Language 2 (TTML2)

W3C Recommendation 08 November 2018

This version:
https://www.w3.org/TR/2018/REC-ttml2-20181108/
Latest version:
https://www.w3.org/TR/ttml2/
Previous version:
https://www.w3.org/TR/2018/PR-ttml2-20181004/
Editors:
Glenn Adams, Skynav
Cyril Concolato, Netflix
Contributing Authors:
Glenn Adams, Skynav
Cyril Concolato, Netflix
Mike Dolan, Invited Expert
Sean Hayes, Microsoft
Frans de Jong, European Broadcasting Union
Dae Kim, Netflix
Pierre-Anthony Lemieux, MovieLabs
Nigel Megitt, British Broadcasting Corporation
Dave Singer, Apple Computer
Jerry Smith, Microsoft
Andreas Tai, Institut für Rundfunktechnik GmbH

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

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


Abstract

This document specifies the Timed Text Markup Language (TTML),Version 2, also known as TTML2, in terms of a vocabulary and semanticsthereof.

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 used for the purpose of transcoding orexchanging timed text information among legacy distribution contentformats presently in use for subtitling 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[HTML 5.2] document, or a<text> or<textstream> media element in a[SMIL 3.0] document.

Status of This Document

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

This is the Timed Text Markup Language 2 (TTML2)W3C Recommendation,produced by theTimed Text (TT) Working Groupas part of the W3CVideo in the Web Activity,following the procedures set out for the W3CProcess.The authors of this document are listed in the header of this document.

Animplementationreport demonstrates that the specification is implementable.A cumulative summary of all changes from TTML1, 3rd Edition,[TTML1]is available atTimed Text Markup Language 2 (TTML2)Change Summary. An abbreviated list of changes affectinglanguage syntax can be found atU Changes to Vocabulary from TTML1.

Comments about this document are welcome by filinganissue on GitHub or sending emailtopublic-tt@w3.org(subscribe,archives)with a subject line starting with[ttml2].

This document has been reviewed by W3C Members, by softwaredevelopers, and by other W3C groups and interested parties, and isendorsed by the Director as a W3C Recommendation. It is a stabledocument and may be used as reference material or cited from anotherdocument. W3C's role in making the Recommendation is to draw attentionto the specification and to promote its widespread deployment. Thisenhances the functionality and interoperability of the Web.

This document was produced by a group operating under theW3C PatentPolicy. W3C maintains apubliclist of any patent disclosures made in connection with thedeliverables of the group; that page also includes instructions fordisclosing a patent. An individual who has actual knowledge of apatent which the individual believes containsEssentialClaim(s) must disclose the information in accordance withsection6 of the W3C Patent Policy.

This document is governed by the1 February 2018 W3CProcess Document.

1 Introduction

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

The Timed Text Markup Language (TTML), Version 2, also referred to as TTML2,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 inM 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[HTML 5.2] document, or a<text> or<textstream> media element in a[SMIL 3.0] document. Certain properties of TTML supportstreamability of content, as described inR 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 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.

1.1 System Model

Use of TTML is intended to function in a wider context of Timed TextAuthoring, Transcoding, Distribution and Presentation 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 a TTML Content Document.

Two classes of processor are described. Authoring systems and validation processorsare examples of Transformation Processors; transcoding systems and rendering processorsare examples of Presentation Processors. A TTML Profile Document can be associated witha TTML Content Document or a processor, to allow each to express those features that areavailable, prohibited or required. Collectively this allows the constraints of thechain from authoring to presentation to be expressed in a formal language.

Processors can implement the defined mapping to TTML Intermediate Documents.The system model depicts one such rendering processor that further maps those documentsinto HTML and CSS fragments that could be inserted into an[HTML 5.2] document fordisplay by a user agent.

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 expressedin its body, 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

BPD

Block Progression Dimension

DAR

Display Aspect Ratio

DFXP

Distribution Format Exchange Profile

IPD

Inline Progression Dimension

ISD

Intermediate Synchronic Document

PAR

Pixel Aspect Ratio

SAR

Storage Aspect Ratio

TT

Timed Text

TTML

Timed Text Markup Language

TTAF

Timed Text Authoring Format

TTWG

Timed Text Working Group

2.2 Terminology

[absolute dimension]

A scalar value that denotes a length on either thehorizontal axis or thevertical axis.

[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].

[anonymous profile]

Seeundesignated profile.

[anonymous span]

Aspan element that is not present in adocument instance, but is synthesized and inserted into the correspondingabstract document instance by the[construct anonymous spans] procedureduring the11.3.1.3 Intermediate Synchronic Document Construction or11.3.1.4 Synchronic Flow Processing steps.

[area]

A collection of addressablelogical pixels that represent the visual content of a bounded, rectangular region of a planeon some output medium, as defined by[XSL-FO 1.1],Rectangular Areas, §4.2.Also referred to as abox, particularly in the context of[CSS2] and[HTML 5.2].

[attribute information item]

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

[audio defining context]

The context in which anaudio element is specified to serve asa sharable definition to be referenced by anotheraudio elementin anaudio presentation context.

[audio generating element]

Anaudio element in anaudio presentation context or aspan element whose character content isused to generate aspeech data resource.

[audio presentation context]

The context in which anaudio element is specified for thepurpose of being presented (rendered). Such anaudio elementmay specify the audio data inline by using adata element withinasource element child, or it may reference anotheraudio element specified in aaudio defining context, or it may do both.

[audio resource]

Adata resource that contains coded or unencoded audio samples.

[audio stream]

A sequence of audio samples.

[background painting rectangle]

A rectangle in thedocument coordinate spacewith respect to which a background presentation artifact, e.g., color or image, is (possibly) clipped and painted; morespecifically, one of three rectangles: the border rectangle, the padding rectangle, or the content rectangleof an area generated by an element associated with a background. The computed value of the style property specified by thetts:backgroundClip attribute determines which rectangle applies.

[background positioning rectangle]

A rectangle in thedocument coordinate spacewith respect to which a background presentation artifact, e.g., color or image, is positioned or sized; morespecifically, one of three rectangles: the border rectangle, the padding rectangle, or the content rectangleof an area generated by an element associated with a background. The computed value of the style property specified by thetts:backgroundOrigin attribute determines which rectangle applies.

[baseline profile]

Aprofile referenced by theuse attribute of attp:profile element,which serves as a baseline (initial) set of specifications with which to populate the referencing profile.

[block area]

A fundamental type ofarea defined by[XSL-FO 1.1],Block-areas, §4.4, which childrenconsist of either allblock areas (if the block area is not aline area)or allinline areas (if the block area is aline area).

[block display]

Block display is a set of layout semantics that may be applied to acontent element incertain contexts, wherein child areas are composed sequentially in the block progression direction.

Note:

In[CSS2],block display is indicated when a CSSdisplay property with the valueblock is applied to acontent element during presentation processing. In[XSL-FO 1.1], a block displayoccurs when composing afo:block element.

[block progression dimension]

Arelative dimension on the block progression axis,i.e., in the positiveblock progression direction,abbreviated asbpd orBPD.

[block progression direction]

The direction taken by the progression of block areas in some formatting context. In the context of horizontal writing modes, the block progression direction is typically top-to-bottom; whereas, in the context of vertical writing modes, it is typically right-to-left or left-to-right.

[built-in data resource]

Adata resource the content of which is supplied by thecontent processor and not thetimed text content document instance, referenced by meansof asource element or asrcattribute of asource element orembeddedcontent element.

[character information item]

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

[chunked data embedding]

Adata element that directly embeds a representation of the actual bytesof anembedded data resource by making use of achildchunk element.

[combined profile]

Aprofile for which the constituents component of the combined specification set component of theassociatedprofile instance contains more than one non-null designator.

[computed cell size]

The size (extent) of a cell computed by dividing the width of theroot container regionby the cell column count, i.e., the number of cells in thehorizontal axis, and by dividingthe height of theroot container region by the cell row count, i.e., the number of cells in the verticalaxis, where the cell column and row counts are determined by thettp:cellResolution parameter attribute.

Note:

The width and height of theroot container region correspond to thewidth and height of the spatial extent of theroot container region as specifiedbyH.2 Resolution; consequently, the computed cell size is expressed inlogical pixels.

[computed style set]

Astyle set containing computed style values as determinedby10.4.4.3 Computed Style Set Processing.

[conditionalized element]

Any element of a type defined in or for use by this specification that permits the specification of acondition attribute the evaluation of whichdetermines whether the defined semantics of the element apply or are ignored. In the absence of suchattribute, the semantics of the element always apply.

[conditionally excluded (or included)]

If the condition expression of aconditionalized element evaluatestofalse, then the element and its descendant elements are said to beconditionally excluded.If an element is notconditionally excluded, then it is said to beconditionally included.

Note:

An element that is conditionally included but does not permit the use of or does not specify acondition attribute may be referred to asanunconditionally included element.

When an element is conditionally excluded, then, unless specified otherwise, all of its semantics are ignored, aboutwhich seecondition for the detailed semantics of conditional exclusion.

Note:

In the case of certain elements, for example thestyle element,conditional exclusion causes some but not all of the element's semantics to be ignored,in which case such behavior is described explicitly.

[content element]

Any of the element types defined by theContent Module, as well asany of the element types defined by theAudio Moduleand theImage Module when they occur in anaudio presentation context orimage presentation context, respectively.

Note:

Thett andhead element types, which are defined in8.1 Content Element Vocabulary, are intentionally not included in scope of the above definition, but are included in the definitions of theDocument andHead Modules inTable 5-3 – Element Vocabulary.

[content image]

Animage resource that contains semantically significant content, e.g., a raster imagerepresenting the rendering of a caption.

[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 profile]

Aprofile such that (1) the value of the type component of the associatedprofile instance iscontent and(2) the collection offeatures andextensions of whichmust not, must, or may be employed by Timed Text Markup Language content.

[content region]

A logical, rectangular region into which content is rendered when performing presentation processing. Abbreviated simply asregion when the context is unambiguous, each content region is defined by an explicitly specified or an impliedregion element which defines the extent of the content region in relation to aroot container region as well as other stylistic and temporal characteristics.

[data binding context]

The context in which adata element is specified for thepurpose of semantic binding (association). Such adata elementmay specify the data inline by using adata element withinasource element child, or it may reference anotherdata element specified in adata defining context, or it may do both. No presentation (rendering)semantics are implied by the mere presence of adata element in this (or any) context.

[data binding context for metadata]

Adata element the parent of which is ametadata element.

[data binding context for source]

Adata element the parent of which is asource element.

[data defining context]

The context in which adata element is specified to serve asa sharable definition to be referenced by anotherdata elementin adata binding context, namely, adata element the parent of which is aresources element.

[data element]

Any of the element types defined by theData Module.

[data resource]

An arbitrary data resource represented or referenced using adata element. For example,a data resource may be used to embed or refer to an audio clip, a font, an image, or arbitrary application data in atimed text content document instance.

[default processor profile]

A defaultprocessor profile used to compute aneffective processor profile in the absence of a declared or inferredprocessor profile, where this default processor profile is determined bytheconstruct default processor profileprocedure.

[default region]

A defaultout-of-line region that is implied in the absence ofan explicitly specified out-of-lineregion element, i.e.,when noregion element is specified as a child ofalayout element.

[designated profile]

Aprofile that is associated with a<profile-designator> bymeans of adesignator attribute or prose text in a specification of profile.

[display aspect ratio]

See definition ofDAR.

[document coordinate space]

A logical coordinate space which determines the aspect ratio and resolution of theroot container region used to format and present adocument instance, more about which seeH Root Container Region Semantics.

[document instance]

Atimed text document instance.

[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.

[document temporal coordinate space]

The temporal coordinate system relative to which computed time expressions are interpreted in adocument instance, more about which see7.2.11 ttp:timeBase.

[effective content profile]

Thecontent profile computed from the set of allcontent profilesexplicitly or implicitly referenced by or assigned to a TTMLdocument instance after applying anyexplicit or implicit profile and profile specification combination methods, about which see theconstruct effective content profile procedure.When performing validation on a givendocument instance,then this validation is performed by making use of a document'seffective content profile.

[effective processor profile]

Theprocessor profile computed from the set of allprocessor profilesexplicitly or implicitly referenced by or assigned to a TTMLdocument instance after applying anyexplicit or implicit profile and profile specification combination methods, about which see theconstruct effective processor profile procedure.When determining if acontent processorcan or cannot process a givendocument instance, then this determination is performedby making use of a document'seffective processor profile.

[effective validation profile]

A profile used to select a schema (or set of schemas) to be used duringvalidation processing,as determined by theconstruct effectivevalidation profile procedure.

[effective validation schemas]

A set of schemas used duringvalidation processing,as determined by theconstruct effectivevalidation schemas procedure.

Note:

Since no schema language captures all constraints on TTML content as defined by this specification, it is expected that additionalbuilt-in, programmatic (code-based) schemas will be employed by avalidating content processor.

[element information item]

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

[embedded content element]

Any of the element types defined by theAudio Module,Data Module,Font Module, orImage Module.

[embedded content resource]

Anaudio resource,data resource,font resource,orimage resource.

[embedded data resource]

Adata resource embedded in atimed text content document instance, represented by means ofadata element, whether or not thatdata element represents the actual bytes of thedata resource or refers to anexternal data resource.

[empty data resource]

Adata resource that contains no renderable content, and further,if an attempt is made to resolve this resource to a series of content samples, no samples are produced.

[enclosing document instance]

Thedocument instance that encloses or otherwise containsan enclosed feature or component.

[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.

[extension specification]

A specification of a constraint or requirement that relates to anextension, typically expressed byanttp:extension element.

[external data resource]

Adata resource external to atimed text content document instance, referenced by meansof asource element or asrcattribute of asource element orembeddedcontent element.

[external source]

Either (1) asource element or asrc attributethat refers to anexternal data resource or (2) the referencedexternal data resource.

[feature]

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

[feature specification]

A specification of a constraint or requirement that relates to anfeature, typically expressed byanttp:feature element.

[forced subtitle]

A subtitle (or caption) that is intended to always be displayed even if subtitles (captions) are not enabled. Forced subtitles (captions)are used to prevent open captioning of, i.e., burning in, subtitles (captions) related to foreign or alien language or translation of textthat appears in media, such as in a sign.

[font defining context]

The context in which afont element is specified to serve asa sharable definition to be referenced indirectly by afont selection process.

[font selection process]

An internal process used by apresentation processor which purpose is to selecta set of author defined fonts and platform fonts for use during layout and presentation processing, where input parameters to thisprocess include the computed values of font related properties, the capabilities of individual fonts, and the text content being presented.

[font resource]

Adata resource that contains font information, such as character to glyph mapping data, glyph outlines or images,glyph metrics, and other data used in the character to glyph mapping and rendering process.

[height]

Anabsolute dimension on thevertical axis.

Note:

In some exceptional cases, the termheight may refer to thehorizontal axis,more about which see10.2.27 tts:lineHeight.

[fragment identifier]

A syntactic subset of a<uri> value that adheres to thefragment identifer syntax defined by[URI], §3.5.

[glyph area]

A type ofinline area defined by[XSL-FO 1.1],Glyph-areas, §4.6.2.In this specification, a glyph area is associated with one or more content characters and one or more glyphs from a particular font, where it is theseglyphs that are rendered when presenting the glyph area. A spacing glyph area is a glyph area that is associated withat least one spacing glyph, i.e., a glyph that has non-zero advance (width or height). A non-spacing glyph area isa glyph area that is not a spacing glyph area, i.e., consists wholly of non-spacing glyphs.

[glyph area descendant]

Aglyph area that is a descendant area of some other area implied by the context of use.For example, a descendant area of an inline areaI that is aglyph area is aglyph area descendant ofI.

[image defining context]

The context in which animage element is specified to serve asa sharable definition to be referenced by anotherimage elementin animage presentation context.

[image presentation context]

The context in which animage element is specified for thepurpose of being presented (rendered). Such animage elementmay specify the image data inline by using adata element withinasource element child, or it may reference anotherimage element specified in aimage defining context, or it may do both.

[image resource]

Adata resource that contains a raster image.

[inferred processor profile]

Aprocessor profile determined by theconstruct inferred processor profile procedure which mayserve as theeffective processor profile used to performvalidation processing.

[inline animation]

Ananimate orset elementthat is defined inline as an immediate child ofacontent element orregion element associated with the animation.There is a one-to-one relation betweenan inline animation element and its parentcontent element orregion element.

[inline area]

A type ofarea defined by[XSL-FO 1.1],Inline-areas, §4.6, which childrenconsist of allinline areas, for example,glyph areas.

[inline block display]

Inline block display is a set of layout semantics that may be applied to acontent element incertain contexts, wherein a generated block area is treated as an atomic area to be composed in an inline layout context, i.e., the blockarea is treated as if it were itself an inline area when considered externally, but as a block area which considered internally.

[inline display]

Inline display is a set of layout semantics that may be applied to acontent element incertain contexts, wherein child areas are composed sequentially in the inline progression direction.

Note:

In[CSS2],inline display is indicated when a CSSdisplay property with the valueinline is applied to acontent element during presentation processing. In[XSL-FO 1.1], an inline displayoccurs when composing afo:inline element.

[inline progression dimension]

Arelative dimension on the inline progression axis,i.e., in the positiveinline progression direction,abbreviated asipd orIPD.

[inline progression direction]

The direction taken by the progression of inline areas in some formatting context. In the context of horizontal writing modes, the inline progression direction is typically left-to-right or right-to-left; whereas, in the context of vertical writing modes, it is typically top-to-bottom.

[inline region]

Aregion that is defined in an inline manner with respect to somecontent element to be selected into (targeted to) the region.An inline region is specified either explicitly by aregion element child ofcertaincontent elements.There is a one-to-one relation between an inlineregion element and itsparentcontent element. An inline region is assigned its parent element's time interval as its activetime interval. Noregion attribute makes reference to an inline region.

[intermediate synchronic document]

Atimed text intermediate document or atimed text intermediate document instance, according to the context of use,where the root (document) element is anisd:isd element, and which represents anon-overlapping temporal interval that intersects with the content, styling, layout, and timing of a sourcetimed text content document.

[intermediate synchronic document sequence]

Atimed text intermediate document or atimed text intermediate document instance, according to the context of use,where the root (document) element is anisd:sequence element, and which represents asequence ofintermediate synchronic document instancesthat effectively represent the content, styling, layout, and timing of a sourcetimed text content document.

[intermediate document syntax]

A formalism for use in the concrete representation of anintermediate synchronic document sequence oranintermediate synchronic document.

[intrinsic block content extent]

The extent, i.e., width and height, of a sequence of block level content determined by formatting the content to an unbounded blockcontainer area, and determining the width and height of the resulting, formatted block container.

[intrinsic image extent]

The extent, i.e., width and height of an image determined from information internal to the image itself, e.g.,the width and height of the image's pixel array.

[intrinsic inline content extent]

The extent, i.e., width and height, of a sequence of inline level content determined by formatting the content to an unbounded inlinecontainer area, and determining the width and height of the resulting, formatted inline container.

[higher level protocol]

A protocol or process of thedocument processing contextthat is outside the scope of this specification.

[horizontal axis]

An axis parallel to the plane of the horizon.

[line area]

A type ofblock area defined by[XSL-FO 1.1],Line-areas, §4.5, which childrenconsist of one or moreinline areas.

[metadata element]

Any of the element types defined by theMetadata Module.

[nested profile]

A constituentprofile of anesting profile, i.e., one of thedescendantttp:profile element(s) of a higher level (ancestor)ttp:profile element. A giventtp:profile may serveas both anested profile and anesting profile.

[nesting profile]

Aprofile defined by making reference to one or more childttp:profile element(s), wherein aprofile combination method determines how profile specifications from the multiple childttp:profile element(s) are combined.The constituents component of theprofile instance associated with anesting profile is notnull.

[nested embedded source]

Asource element that specifies a childdata element which embeds the actual bytes of theembedded data resource, whether bysimple data embedding orchunked data embedding.

[non-combined profile]

Aprofile for which the constituents component of the combined specification set component of theassociatedprofile instance contains no more than one non-null designator.

[non-content image]

Animage resource that does not contain semantically significant content, e.g., a raster imagerepresenting a background design, which, if not presented, would not affect the presentation of semntically significant content.

[non-nested embedded source]

Asource element that specifies a childdata element which does not embed a representation of the actual bytes of theembedded data resource.

[non-nesting profile]

Aprofile defined without making reference to one or more childttp:profile element(s), that is,by not including a childttp:profile element.The constituents component of theprofile instance associated with anon-nesting profile isnull.

[out-of-line animation]

Ananimate orset element that is defined out-of-line fromthecontent element orregion element associated with the animation.An out-of-line animation appears as a child of ananimation element in the header(head element)of adocument instance, and specifies anxml:id attributewhich value is referenced by ananimate attributeon the associated element to be animated. There is a one-to-many relation betweena referenced out-of-line animation element and referencingcontent elements andregion elements.

[out-of-line region]

Aregion element that is defined out-of-line fromacontent element associated with (to be selected into) the region.An out-of-line region appears as a child of alayout element in the header(head element)of adocument instance, and specifies anxml:id attributewhich value is referenced by aregion attributeon the associated element to be selected into the region. There is a one-to-many relation betweena referenced out-of-line region element and referencingcontent elements.Adefault out-of-line region is implied if noout-of-line region is specified explicitly.

[override content profile]

Acontent profile that is determined to override all otherpossible determinations of acontent profile.

[override processor profile]

Aprocessor profile that is determined to override all otherpossible determinations of aprocessor profile.

[pixel aspect ratio]

See definition ofPAR.

[presentation context]

Seepresentation processing context.

[presentation processing context]

A hypothetical display device on which theroot container region and arelated media object region are presented.

[presentation context coordinate space]

The coordinate space associated with thepresentation context.

Note:

For a given implementation of apresentation processor, it is possible thatdisplay pixels associated withlogical pixels in thedocument coordinate space correspond exactly withpresentation pixels inthepresentation context coordinate space;however, such an exact correspondence need not apply, and, in particular, the (implementation defined) mapping between these coordinate spacesmay be subject to a transformation of pixel aspect ratios, resolutions, color spaces, color sample depths,and other implementation specific properties.

[presentation related element]

Any element which (1) contains or expresses presentable content or (2) affects the presentation of content. Examples of the former include allcontent elements and certainembedded content elements, notablyaudio as well asimage. Examples of the latter include inlineanimate andset. Note well thatmetadata elements are excluded from this definition.

[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.

[processor profile]

Aprofile such that (1) the value of the type component of the associatedprofile instance isprocessor and(2) the collection offeatures andextensions of whichmust or may be implemented (supported) by a content processor.

[profile]

A collection offeatures andextensions, which, wheninterned (instantiated), is represented by aprofile instance state object.A profile is typed as acontent profile or aprocessor profile.

[profile definition document]

Atimed text profile document or atimed text profile document instance, according to the context of use.

[profile fragment identifier]

Afragment identifier used to label or reference an internally definedprofile, whereinternal refers to being internal to adocument instance.

[profile processing]

The process of performing the[abort ifunsupported processor profile] procedure, which, as a side effect, determines theeffective content profile (if required) andtheeffective processor profile of adocument instance.

[profile specification]

Afeature specification or anextension specificationor the internal state representation thereof.

[reduced xml infoset]

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

[region]

Theroot container region or acontent region, which, if used without qualification,refers to the latter.

Note:

While there is only one, unique root container region associated with document presentation, this specification does not place a restriction on the number of content regions used over time or at a given time. Somecontent profiles, however, do specify such restrictions.

[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]

A region of thepresentation processing context where a non-null, visualrelated media object is presented.

[relative dimension]

A scalar value that denotes a length on either the inline or block progression axis in accordance withthe applicable writing mode.

[root container region]

A unique, logical, rectangular region that establishes a coordinate system into whichcontent regions are placed and optionally clipped,about which see alsoH Root Container Region Semantics.

Note:

Theroot container region has no border or padding; consequently, its border, padding, andcontent rectangles are coterminous.

[root temporal extent]

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

[simple data embedding]

Adata element that directly embeds a representation of the actual bytesof anembedded data resource without making use of achildchunk element.

[smpte time code]

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

[sourced data embedding]

Adata element that indirectly references the contentof anembedded data resource by making use of achildsource element.

[specified style set]

Astyle set containing specified style values as determinedby10.4.4.2 Specified Style Set Processing.

[speech data resource]

Adata resource that consists of the samples generated by the output of thespeech synthesis processor.

[speech synthesis processor]

An optional component of acontent processor,the function of which is to synthesize an audio speech rendering of textual content.

[storage aspect ratio]

See definition ofSAR.

[style set]

A style property set as definedbystyle property set.

[styled element]

An element which is or may be associated with acomputed style set.

[synthetic document syncbase]

A document levelsyncbase[SMIL 3.0], §5.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 time codevalues 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 the selected time base intersects with theactive time interval of the feature.

[temporally active region]

Aregion that istemporally active.

[text orientation]

A characterization of the orientation of aglyph area in terms of degrees of rotation, where0° designates anupright orientation and90°, i.e, 90 degrees clockwise, designates asideways orientation,about which see also10.2.45 tts:textOrientation.

[timed element]

Any element of a type that permits the specification of abegin attribute.

[timed text]

Textual information that is intrinsically or extrinsicallyassociated with timing information.

[timed text authoring system]

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

[timed text content document]

An abstract document that is purported or confirmed to be avalid abstract document instance oftheTTML Content Document Type.

[timed text content document instance]

A concrete realization of atimed text content document,about which see alsoA Concrete Encoding.

[timed text document instance]

A concrete realization of atimed text markup language document,where the concrete form is specific to the context of reference.Also referred to as aTTML document instanceor simplydocument instance.

[timed text intermediate document]

An abstract document that is purported or confirmed to be avalid abstract document instance oftheTTML Intermediate Document Type.

[timed text intermediate document instance]

A concrete realization of atimed text intermediate document,about which seeA Concrete Encoding.

[timed text markup language]

A content type that represents timed text content, intermediate representations of this content, or profiles of this content or content processors.

[timed text markup language document]

An abstract document that is purported or confirmed to be avalid abstract document instance.

[timed text profile document]

An abstract document that is purported or confirmed to be avalid abstract document instance oftheTTML Profile Document Type.

[timed text profile document instance]

A concrete realization of atimed text profile document,about which seeA Concrete Encoding.

[top-level profile]

Aprofile defined by attp:profile element that appears as a childof thehead element.

[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.

[undesignated profile]

Aprofile that is not associated with aprofile designator,and which is referred to implicitly in the context of the profile's definition. Also referred to as ananonymous profile.

[valid abstract document instance]

Anabstract document instance which has been assessed for validityand found to be valid as defined by4 Document Types.

[validation processing]

The function(s) performed by avalidation processor.

[validation processor]

An optional component of acontent processor, the function of which is to perform validation processing on acandidatedocument instance prior to performing certain other type of processing,and where that validation processing consists of performing the[validate document] procedureas defined by5.3 Validation.

[validating content processor]

Acontent processor that implements avalidation processorcomponent as a pre-processing step prior to performing its primary function as acontent processor.

Note:

A validating content processor may have (1) the sole function of validating (or verifying) a document instance,in which case it may be considered a validatingtransformation processor theoutput of which indicates validity (or not), or (2) multiple functions, the first of which is validating (or verifying) a document instanceand then performing its primary function as atransformation processor orpresentation processor.

Note:

When validation processing is performed, a conforming validating content processor is permitted to interleave validationprocessing and content processing, provided that the latter does not temporally precede the former for a give unit of content.

[vertical axis]

An axis perpendicular to the plane of the horizon.

[width]

Anabsolute dimension on thehorizontal axis.

[writing mode]

An enumeration collection of tokens, each of which designates a combination of the axis and direction of flow ofboth inline and block oriented content, about which see10.2.51 tts:writingMode.

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 =xsd:integer  size = ("large" |"medium" |"small" |"tiny" |"micro") : 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.

Unqualified attributes are not permitted unless explicitly defined in this specification.

Note:

With the exception ofN.1 Element Derivation, the (possibly namespace qualified) name of an attributeis prefixed with an '@' (COMMERICAL AT) character in order to disambiguate between the attribute and a like-named element type, in which casethe '@' character is not intended to be part of the literal name of the attribute. For example,@ttm:agentrefers to thettm:agent attribute, whilettm:agent refers tottm:agent element.

An information item depicted with alight yellow orange background color is deprecated (e.g.,thetiny value of thesize attribute shown above).An information item that isdeprecated may but should not appear in a TTML document instance,and avalidating content processor should report a warning if it does appear.An information item depicted with alight magenta red background color is obsoleted (e.g.,themicro value of thesize attribute shown above).An information item that isobsoleted must not appear in a TTML document instance,and avalidating content processor should report an error if it does appear.These designations of an itemare also explicitly called out in specification text.

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].

The following conventions are used in the specification of value syntax expressions:

  • a literal term (specified within quotation marks), when present, must appear exactly as specified (excluding the quotation marks themselves);

  • concatenated (juxtaposed) terms mean that all terms must appear in the stated order, e.g.,a b means that the termsa andb are present and the former precedes the latter;

  • a vertical bar (|) separates two or more alternatives, of which exactly one must appear;

  • a double vertical bar (||) separates two or more options, of which one or more must appear in any order without duplication, separated by<lwsp>;

  • open and close parenthesis (()) are used for grouping and resolving operator precedence;

  • open and close square brackets ([]) are used to express character classes;

  • open and close curly braces ({}) are used in two ways, where the context is generally sufficient to determine which applies (and, if not, then the surrounding prose will make clear which applies):

    • to express a repetition count or range, which takes one of the following forms:

      • {count}

      • {minimum,maximum}

    • to express a collection of characters, one of which must appear; in addition, a collection may be specified as a difference of collections, such as{char-{specials}}, which denotes all XML characters minus a collection ofspecial characters.

  • the Kleene operators?,*, and+ respectively express zero or one, zero or more, and one or more of the preceding term;

  • operator precedence (from highest to lowest) is as follows, all of which have left to right associativity

    1. grouping

    2. concatenation (juxtaposition)

    3. ||

    4. |

Except for linear whitespace that is required to appear between expressions that satisfy the||value syntax, no whitespace is permitted unless explicitly marked in a value syntax definition by the appearance of a<lwsp> non-terminal.

Unless stated to the contrary, the termshorizontal andvertical are interpreted in an absolute sense, not relative to writing mode, whilewidth refers to a dimension along thehorizontal axis andheight refers to a dimension along thevertical axis. All exceptions are explicitly noted in the text.

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>

Note:

Although they are expressed in well-formed XML, example code fragments depicted herein are not intended to be complete, valid TTML documents;rather, they are generally abbreviated in order to focus on the intended example. In particular, fragments will typically need to be augmentedwith additional elements and/or attributes in order to satisfy TTML document conformance requirements.

Unless specified otherwise, the vocabulary defining sections of this specification define vocabulary in alphabetical order rather than logical order.

3 Conformance

This section specifies the general conformance requirements forTTML2 documents and processors.

3.1 Document Conformance

Atimed text document instance conforms to this specification if the following criteria aresatisfied:

  1. When transporting adocument instance in adocument interchange context in which aMedia Type[MIME 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 which conforms to a<profile-designator> expression.

  2. Thedocument instance is or can be represented as areduced xml infosetas defined byB Reduced XML Infoset.

  3. Thereduced xml infoset thatcorresponds 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

This section specifies the conformance requirements for TTML2 processors in terms ofGeneric Processor Conformanceand two types of specialized processor conformance,Transformation Processor Conformance andPresentation Processor Conformance.

Note:

The conformance requirements defined by this section are scoped to processors that operate on staticrepresentations of a TTMLdocument instance. In particular,processors that modify a TTMLdocument instance, such as anauthoring or editing tool, are not governed by this specification except to the extent that the finalresult of performing a series of modifications to a TTMLdocument instancesatisfies the formal validity of TTML Content as defined by3.1 Document Conformance.

3.2.1 Generic Processor Conformance

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

  1. The processor provides at least one mechanism for notionallyinstantiating areduced xml infosetrepresentation of a conformantdocument instance.

  2. The processor performsprofile processing.

    Note:

    The performance ofprofile processing implies a certain degree of partial validation,short of performing the[validate document] proceduredescribed in the next item below. In particular, the syntactic expression of profile related vocabulary and any essential syntactic orsemantic constraint that applies to the usage of this vocabulary are expected to be nominally verified by an implementation prior to makinguse of this vocabulary. Ifprofile processing is completed without detecting a significant violationof a syntactic or semantic constraint, then more complete validation may be performed by the[validate document] procedure.

  3. If a processor is avalidating content processor, then it

    1. provides at least one mechanism to implicitly or explicitly associate thereduced xml infoset representationof a candidatedocument instance with one of theAbstract Document Types defined by4 Document Types; and

    2. performs the[validate document] procedure.

    Note:

    This specification does not define a strict order between the performance ofvalidation processingand the performance ofprofile processing described in the previous item above. In particular, these twoprocessing steps may be interleaved (or repeated) such that both are completed prior to performing further (transformation or presentation) processingon adocument instance.

    Notwithstanding the above, there is an implied order relationship betweenvalidation processingandprofile processing; specifically, in order to performvalidation processing, it is necessary to resolve the value of theeffective validation profile, for which value it is necessary to resolve the value of theeffective content profile, or if that value isnull, then resolve the value of theeffective processor profile, the latter two values of which are obtained duringprofile processing.

    Note:

    For an example of interleavingvalidation processing andprofile processing, consider the following scenario (in the given order):

    • verify well-formedness of input document source (validation processing);

    • instantiate input document source as potentially valid abstract document instance (general processing);

    • initialize validation state using built-in application semantics (validation processing);

    • initialize profile state using built-in application semantics (profile processing);

    • validate validation related vocabulary (validation processing);

    • update validation state using valid validation related vocabulary (validation processing);

    • validate profile related vocabulary (validation processing);

    • update profile state using valid profile related vocabulary (profile processing);

    • perform abort steps of[abort ifunsupported processor profile] procedure (profile processing);

    • validate entire document, re-validating validation and profile vocabulary as required based on new profile state (validation processing);

    • if processing not aborted, continue with transformation or presentation processing (general processing).

  4. The processor does nota priori reject or abort theprocessing of a conformantdocument instanceunless:

    1. the processor does not support some required(mandatory) feature specified or implied by a TTML profiledeclared to apply to thedocument instance; or

    2. avalidation error occurs when performing the[validate document] procedure.

  5. 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.

    Note:

    Support for themandatory semantics of afeature orextension applies only when thefeature orextension is supported by a TTMLcontent processor.

  6. 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.

3.2.2 Transformation Processor Conformance

A TTMLcontent processor is a conformant TTML2transformation processor ifthe following criteria are satisfied:

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

  2. The processor supports the TTML Transformation profile as specifiedbyG.3 TTML2 Transformation Profile.

  3. The processor supports the DFXP Transformation profile as specifiedbyG.6 DFXP Transformation Profile.

3.2.3 Presentation Processor Conformance

A TTMLcontent processor is a conformant TTML2presentation processor ifthe following criteria are satisfied:

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

  2. The processor supports the TTML Presentation profile as specifiedbyG.2 TTML2 Presentation Profile.

  3. The processor supports the DFXP Presentation profile as specifiedbyG.5 DFXP Presentation Profile.

  4. The processor performs11.3.1.3 Intermediate Synchronic Document Construction and11.3.1.4 Synchronic Flow Processing.

Note:

Two conforming presentation processors are not required to produce the same presentation when processing the same conforming document.For example, different presentation processors may use different fonts, different font rasterizers, different line break algorithms,as well as different implementations of behavior not prescribed by this specification.

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 Profiling, and, if a subset orsuperset profile is used or supported, then what features are excludedor included in the subset or superset profile.

Note:

The definitions ofTransformation Processor Conformance andPresentation Processor Conformance specified above requirethat each of these types of processors support (at a minimum) two specific profiles, a type specific profile defined by[TTML1]and a type specific profile defined by this specification.

Notwithstanding this requirement, it is possible to construct aTTMLcontent processorthat performs transformation or presentation processing functions and satisfiesGeneric Processor Conformance requirements but supports neither ofthe profiles required byTransformation Processor Conformance orPresentation Processor Conformance, and, instead,supports only profile(s) defined outside the scope of this specification. In such a case, the processor may be claimed to becompliant withGeneric Processor Conformance, and, further, be aTTMLtransformation processor or aTTMLpresentation processor,but may not claim compliance withTransformation Processor Conformance orPresentation Processor Conformance.

Adocument instance for which a compliance claim is made must be associated with

  1. a non-nulleffective content profilederived from an explicitly specifiedttp:contentProfiles attributeor one or moretop-levelcontent profiles; or

  2. a non-nulleffective processor profilederived from an explicitly specifiedttp:processorProfiles orttp:profile attributeor one or moretop-levelprocessor profiles.

3.4 Compatibility

This sub-section is non-normative.

3.4.1 Forward Compatibility

A conforming TTML1 processor may be able to process a TTML2content document instance, provided it ignores unknown vocabulary and ignores known vocabulary that appears in a context where it is not permitted in a conforming TTML1content document instance; however, such processing may discard or fail to present content, or may present content differently than intended when processed by a conforming TTML2 processor.

Note:

For example, if a TTML1 processor ignores thetts:ruby attribute defined in TTML2, then that processor may still present TTML2 content that uses ruby features, even though it would not be presented as intended. Similarly, if a TTML1 processor encounters astyle element as a child of anotherstyle element, then the former nested style may be ignored (since this facility was not defined for TTML1).

3.4.2 Backward Compatibility

TTML2 is designed such that:

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 URIs of theexpanded names are not listed inTable 5-1 – Namespaces, or, if listed inTable 5-1 – Namespaces, are notmembers of the collection of attributes defined by the associatedabstract document type for usewith their owning element information items,

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 whosenamespace names are listed inTable 5-1 – Namespaces but whose local names are not part of the vocabulary defined by this versionof 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 theirnamespace names are listed inTable 5-1 – Namespaces.

Example Fragment – Pruning of Elements and Attributes
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml"  xmlns:tts="http://www.w3.org/ns/ttml#styling">  <body>    <foo>Foo</foo>    <div>      <p tts:foo="bar">Bar</p>    </div>  </body></tt>

4.1 TTML Content Document Type

The TTML Content Document Type is anabstract document type of a profileof the Timed Text Markup Language intended to be used for interchange among distribution systems. This document typeis defined in terms of the element and attribute vocabulary specified in5 Vocabulary.

This specification references two types of schemas that may be used to validate a superset/subsetoftimed text content document instances:

The (root) document element of a TTML Contentdocument instance must be att element, as defined by8.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 thexsd: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.

Note:

A conformingGeneric Processor is required to support the ingestion and processingof atimed text content document.

4.2 TTML Intermediate Document Type

The TTML Intermediate Document Type is anabstract document type intendedto be used to represent the content of atimed text content documentin such a manner that timing information is denoted in a non-hierarchical (flat), temporally linear manner, and wherecertain information, such as styling matter, may be resolved or merged in order to simplify subsequent processing.This document type is defined in terms of the element and attribute vocabularyspecified inJ Intermediate Document Syntax and5 Vocabulary.

This specification references two types of schemas that may be used to validatetimed text intermediate document instances:

The (root) document element of a TTML Intermediate Synchronicdocument instance must be anisd:sequence orisd:isd element, as defined byJ Intermediate Document Syntax.

Note:

A conformingGeneric Processor is not required to support the ingestion or processingof atimed text intermediate document.

4.3 TTML Profile Document Type

The TTML Profile Document Type is anabstract document type intendedto be used for defining and communicating constraints on the support or use of TTML features or extensions. This document typeis defined in terms of the element and attribute vocabulary specified in5 Vocabulary.

This specification references two types of schemas that may be used to validatetimed text profile document instances:

The (root) document element of a TTML Profiledocument instance must be attp:profile element, as defined by6.1.1 ttp:profile.

Note:

A conformingGeneric Processor is recommended, but not required to support the ingestion or processingof atimed text profile document. However, acontent processorthat claims to support thehttp://www.w3.org/ns/ttml/feature/#profile feature is required to support this (ingestion and processing ofatimed text profile document).

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.

Table 5-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 Audio Styletta:http://www.w3.org/ns/ttml#audio
TT Metadatattm:http://www.w3.org/ns/ttml#metadata
TT Intermediate Synchronic Documentisd:http://www.w3.org/ns/ttml#isd
TT Profilenonehttp://www.w3.org/ns/ttml/profile/
TT Featurenonehttp://www.w3.org/ns/ttml/feature/
TT Extensionnonehttp://www.w3.org/ns/ttml/extension/
TT Resourcenonehttp://www.w3.org/ns/ttml/resource/

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

The TT Style Namespace (http://www.w3.org/ns/ttml#styling) andthe TT Audio Style Namespace (http://www.w3.org/ns/ttml#audio) are collectively referred to astheTT Style Namespaces.In particular, if this latter collection is referred to by specification text,then it means that the vocabulary item in question is in either the TT Style Namespace or the TT Audio Style Namespace.

Note:

In a specificdocument instance, it is not required that the defaultprefixes shown above be 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.

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.

If a reference to an attribute is used in this specification and the nameof the attribute is not namespace qualified, then the attribute is implicitly qualified bythe element type with which it is used. That is, the attribute resides in the so-calledper-element-type namespace partition[NSOriginal], the members of which are interpreted in accordance with the definition of the element type on which they appear.

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.

5.2 Profiling

This section describes the TTML profiling sub-system and high level requirements that apply to this sub-system. At the end of this sectionappears a sub-section containing examples of profile specifications and examples of how these specifications are referenced and used.

5.2.1 Introduction

This sub-section is non-normative.

A given profile may be used by a Timed Text Markup Language content author for one of two functions: (1) to declare that adocument instance adheres to a collection of constraints on whatvocabulary is used and how it is used, or (2) to declare that aprocessor must satisfy certain conditions on howcontent is processed. The first of these functions is termed acontent profile, whilethe second is termed aprocessor profile.

Acontent profile is used to allow an author to declare, at authoring time,what constraints the author intends to apply to adocument instance. Such adeclaration permits downstream processors to perform content validation or verification, as well as to guide or limit subsequenttransformation or editing of content in order to maintain adherence to an author specified content profile. In addition, adownstream processor may use a content profile declaration to perform an early determination of its ability to process the featuresimplied by the content profile.

Content profiles are declared by using (1) thettp:contentProfilesattribute on the roottt element, (2) one or more top-levelttp:profileelements of typecontent, or (3) a combination of these two mechanisms. If not declared, no content profile is implied.

Aprocessor profile is used to allow an author to declare, at authoring time,what processing must be supported when processing adocument instance, such that, if aprocessor is not able to perform the indicated processing, then processing should be aborted. Such a declaration permits downstreamprocessors to avoid processing content that cannot be processed in a manner that meets the requirements of the content author.

Processor profiles are declared by using (1) thettp:processorProfilesattribute on the roottt element, (2) one or morettp:profileelements of typeprocessor, or (3) thettp:profile attributeon the roottt element. If not declared, a processor profile is inferred from a declared content profile or from adefault processor profile.

Note:

It is not a requirement on a conformantdocument instance that a processor profile be internallydeclared by use of attp:profile element or internally referenced by attp:profile orttp:processorProfiles attribute. More specifically, it ispermitted that thedocumentinterchange context determines the applicable processor profile through privateagreement, out-of-band protocol, or common use (between sender and receiver) of a processor profile definedby an external specification.

Note:

It is intended that thettp:profile orttp:processorProfiles attribute be used whenthe author wishes to reference one (or more) of the standard, predefined processor profiles ofTTML Content, and does not wish to modify (by supersetting or subsetting)that profile. These attributes 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 TTMLcontent 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.

A content author is not limited to using a single profile, but may make reference to multiple profiles of either type, i.e.,multiple content profiles and/or multiple processor profiles. When multiple profiles are referenced, their respective specificationsare combined to form a single effective content profile that applies to the document and a single effective processor profilethat applies to a processor when processing the document. In addition, an author is not limited to making reference to externallydefined profiles, but may define one or more profiles inline within a document.

5.2.2 Profile Examples

This sub-section is non-normative.

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

Example Fragment – TTML Additive Profile
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"> <head>   <profile use="ttml2-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 TTML2 Presentation profile, which is then additively modified by making the#fontStyle-italic feature required (rather thanoptional as it is definedinG.2 TTML2 Presentation Profile). Note also the resetting of thedefault XMLNS binding on theprofile element to the TT Parameter Namespace.

5.2.3 Profile Designators

A profile is referenced in one of two ways according to whether the profile is defined externally to the referring document oris defined inline within the referring document. When defined externally, a profile is referenced by means of an<absolute-profile-designator> or<relative-profile-designator> expression.When defined internally (inline), a profile is referenced either implicitlyor by means of a<fragment-profile-designator> expression.

A profile designator must adhere to the<uri> value syntax.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.

All profile designators which have the TT Profile Namespace as a prefix but are otherwise not listed inTable 5-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 5-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.

5.2.3.1 Standard Designators

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 inG Standard Profiles, in[TTML1],or in another TTWG specification.

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

Note:

For definitions of the DFXP profiles, see[TTML1]. For definition of the SDP US profile, see[SDP US].

5.2.4 Profile Semantics

5.2.4.1 Profile State Object Concepts

This section defines a number of conceptual state objects used by subsequently defined algorithms (procedures and functions). It is not required that animplementation create such objects in the form specified here, but may use any convenient, internal representation that represents equivalent information.

[profile specification]

Aprofile specificationrepresents the following internal state information that corresponds withattp:feature orttp:extensionelement

designator

A<uri> value denoting a feature or extension designator depending upon thetype

type

"feature" | "extension"

value

"optional" | "required" | "prohibited"

[combined profile specification set]

Acombined profile specification setrepresents the following internal state informationthat corresponds with a set ofprofile specifications,additionally recording the constituentprofiles from which these specifications were obtained (or derived).

constituents

An ordered list of<absolute-profile-designator> expressions,where each designator denotes a constituent profile, i.e., a profile from which this combined profile specification set is composed.

specifications

An ordered list ofprofile specifications.

[empty profile specification set]

Acombined profile specification set whichconstituents andspecifications fields are empty sets

[profile instance]

Aprofile instance represents the following internal stateinformation that corresponds with attp:profile element, whether specified explicitly or implied.

designator

An<absolute-profile-designator> expressionthat is associated with (and uniquely labels) this profile.

type

"content" | "processor"

combine

"leastRestrictive" | "mostRestrictive" | "replace"

use

Eithernull or an<profile-designator> expressiondenoting a profile that serves as the baseline profile for this profile.

constituents

If profile is anesting profile, then an ordered list of<fragment-profile-designator> expressions, where each designator denotes aconstituentnested profile; otherwise,null.

specifications

If profile is anon-nesting profile, then an ordered list ofprofile specifications; otherwise,null.

combined specification set

Acombined profile specification set thatrepresents the results of combining the specifications specified or referenced by this profile.

5.2.4.2 Content Profile Semantics
[construct effective content profile]

Every TTMLdocument instance is associated with a (possibly null)effective content profile which may be used byacontent processor to perform any (or all) of the following:

  1. infer an effective processor profile;

  2. performvalidation processing on thedocument instance;

  3. constrain transformation processing on thedocument instancein order to maintain content profile invariants.

Theeffective content profile is constructed according to thefollowing procedure:

  1. if thedocument processing context determines that a specificoverride content profilePO is to override all other determinations, then theeffective content profile isPO;

    Note:

    For example, an[EBU-TT-D] document that complies with this specificationmay specify anebuttm:conformsToStandard element to signal compliance with the[EBU-TT-D] content profile.In such a case, acontent processor that supports that profile may use the presence ofthat element as an override to determine theeffective content profile.

  2. otherwise, if attp:contentProfiles attribute is specified on the roottt element, then theeffective content profile is the combined profile specification setproduced by combining the combined profile specification sets of the designated profiles, where thecontent profile combination method specified by (or the default value of) thettp:contentProfileCombinationattribute on the roottt element applies;

  3. otherwise, if one or moretop-levelcontent profilesare defined, then theeffective content profile is the combined profile specification setproduced by combining the combined profile specification sets of all suchtop-levelcontent profiles, where thecontent profile combination method specified by (or the default value of) thettp:contentProfileCombinationattribute on the roottt element applies;

  4. otherwise, theeffective content profile isnull.

For the purpose of complying withGeneric Processor Conformance,when processing a givendocument instance,theeffective content profile, once set to a non-null reference to aprofile instance,remains a constant reference to a constantprofile instancefor the duration of that processing. Likewise, if set to anull reference, it remains a constantnull reference for theduration of that processing.

5.2.4.3 Processor Profile Semantics
[abort if unsupported processor profile]
  1. setEPP to theeffective processor profile obtained by performing theconstruct effective processor profile procedure;

  2. for each profile specificationS in the combined profile specification set ofEPP, perform the following steps:

    1. if thevalue field ofS isrequired, and thecontent processordoes not supportS, then abort processing of thedocument instance unless overriddenby the end-user or some implementation specific parameter traceable to an end-user or to a user or system configuration setting;

[construct effective processor profile]

Every TTMLdocument instance is associated with a (non-null)effective processor profile which is used byacontent processor to determine whether it meets theminimum processing requirements signaled by the content author.

Theeffective processor profile is constructed according to thefollowing procedure:

  1. if thedocument processing context determines that a specificoverride processor profilePO is to override all other determinations, then theeffective processor profile isPO;

  2. otherwise, if attp:processorProfiles attribute is specified on the roottt element, then

    1. if thettp:processorProfiles attribute is specified using theall(...) function syntax orusing no function syntax, i.e., as only a list of designators, then theeffective processor profile is the combined profile specification setproduced by combining the combined profile specification sets of the designated profiles, where thecontent profile combination method specified by (or the default value of) thettp:processorProfileCombinationattribute on the roottt element applies;

    2. otherwise, if thettp:processorProfiles attribute is specified using theany(...) function syntax,then, for each designated profile, theeffective processor profile is the combined profile specification setof the first profile in the list of designated profiles that is supported by thecontent processor;

  3. otherwise, if one or moretop-levelprocessor profilesare defined, then theeffective processor profile is the combined profile specification setproduced by combining the combined profile specification sets of all suchtop-levelprocessor profiles, where theprocessor profile combination method specified by (or the default value of) thettp:processorProfileCombinationattribute on the roottt element applies;

  4. otherwise, if attp:profile attribute is specified on the roottt element, then theeffective processor profile is the combined profile specification setof the profile designated by this attribute;

  5. otherwise, theeffective processor profile is theresult of performing theconstruct inferred processor profileprocedure;

For the purpose of complying withGeneric Processor Conformance,when processing a givendocument instance,theeffective processor profile, once set to a reference to aprofile instance,remains a constant reference to a constantprofile instancefor the duration of that processing.

[construct inferred processor profile]
  1. setECP to theeffective content profile;

  2. ifECP is notnull, then perform the following steps:

    1. if the computed value of thettp:inferProcessorProfileSource parameter iscombine, thentheinferred processor profile is the result of applying theinfer processor profile functionto the combined profile specification set ofECP;

    2. otherwise, if the computed value of thettp:inferProcessorProfileSource parameter isfirst, thentheinferred processor profile is the first inferred processor profile,IPP,produced by applying theinfer processor profile functionto the combined specification set component of theprofile instanceassociated with each constituent of the combined profile specification set ofECP such thatIPP is supported by thecontent processor;

  3. otherwise, theinferred processor profile is theresult of performing theconstruct default processor profileprocedure;

[infer processor profile](combined profile specification setCPSS)
  1. initialize inferred processor profileIPP to a content profile consisting of the empty combined profile specification set;

  2. for each profile specification,S, in the combined profile specification setCPSS:

    1. map content profile specificationS to processor profile specificationS'  according to the computedvalue of thettp:inferPresentationProfileMethod parameter andTable 6-2 – Infer Processor Profile Method;

    2. addS'  to the combined profile specification set ofIPP;

  3. returnIPP as the inferred processor profile;

[construct default processor profile]
  1. if thedocument interchange context is associated with aprocessor profile or with acontent profilefrom which aprocessor profile can be inferred, then thedefault processor profile is thatprocessor profile;

  2. otherwise, if thecontent processor is primarily characterized as apresentation processor, thenthedefault processor profile istheprofile instance constructed by interning the TTML2 Presentation profile(http://www.w3.org/ns/ttml/profile/ttml2-presentation);

  3. otherwise, if thecontent processor is primarily characterized as atransformation processor, thenthedefault processor profile istheprofile instance constructed by interning the TTML2 Transformation profile(http://www.w3.org/ns/ttml/profile/ttml2-transformation).

Note:

Acontent processor intended to be used withone or more distinct versions of TTML may choose adefault processor profile based upona future version of a TTML presentation or transformation profile.

5.3 Validation

This section describes the TTML validation sub-system and high level requirements that apply to this sub-system.

Validation is an optional function performed by avalidation processorthat may occur when a candidatedocument instance isconsumed or otherwise processed by avalidating content processor. If such processingtakes place and an exceptional condition occurs, then processing may be aborted, as described in further detail below.

If processing is aborted duringvalidation processing, then the consequences include:

  • only part of a non-conformant document may be transformed by atransformation processor,resulting in an incomplete transformation;

  • only part of a non-conformant document may be presented by apresentation processor,resulting in an incomplete presentation.

If abort processing does occur as a consequence ofvalidation processing, then the location inthedocument instance after which no further content is processed is not defined by this specification. Inparticular, an implementation may abort processing upon encountering the firstvalidation error ormay abort processing after encountering any number ofvalidation errors. As a consequence, the amountof input content consumed from a non-conformant document and the corresponding (transformation or presentation) output may vary by implementation.

5.3.1 Validation Semantics

5.3.1.1 Validation State Object Concepts

This section defines a number of conceptual state objects used by subsequently defined algorithms (procedures and functions). It is notrequired that an implementation create such objects in the form specified here, but may use any convenient, internal representationthat represents equivalent information.

[validation exception]

Avalidation exceptionrepresents the following internal state information that corresponds to an exception condition that occurs duringvalidation processing

message

An arbitrary (implementation defined) string that describes or characterizes the exception

type

error|warning

Avalidation exceptionof typeerror is referred to as avalidation error,while avalidation exceptionof typewarning is referred to as avalidation warning.

Unless ahigher level protocol applies,(1) if a violation of a prescription or proscription of this specification is detected,then avalidation error exception applies; and(2) if a violation of a recommendation or disrecommendation of this specification is detected, then avalidation warning applies.

Note:

An example of a higher level protocol in this context is a system or end-user definedconfiguration option of thedocument processing contextthat causes a warning to be treated as an error, or vice-versa.

5.3.1.2 Validation Processing Semantics
[construct effective validation profile]
  1. if a document'seffective content profile is notnull, then theeffective validation profile is theeffective content profile;

  2. otherwise, theeffective validation profile is theeffective processor profile.

For the purpose of complying withGeneric Processor Conformance,when processing a givendocument instance,theeffective validation profile, once set to a reference to aprofile instance,remains a constant reference to a constantprofile instancefor the duration of that processing.

[construct effective validation schemas]
  1. if a document'seffective validation profile is associated with one or moreschemas, then the set ofeffective validation schemas is an appropriate subsetof these associated schemas based upon the requirements of thedocument processing context;

  2. otherwise, theeffective validation schemas is a default set of schemas selected by thedocument processing context.

Note:

The determination of what constitutes anappropriate set of schemas is not formally defined by this specification; nevertheless,it is expected that the selection process will make use of (1) the types of schemas available to and supported by the implementation and(2) as a heuristic, the maximum version number associated with a required or optional feature as determined by theeffective validation profile.

[validate document]
  1. if validation is disabled by ahigher level protocolor if the computed value of thettp:validation parameter isprohibited,then exit this procedure unless the end-user or application overrides this prohibition;

  2. if the computed value of thettp:validation parameter isoptional and thedocument processing context determines that optional validation is not to be performed,then exit this procedure;

  3. otherwise, using theeffective validation schemas and othervalidation tools as required, validate document conformance such that

Whenvalidation processing is performed, the following semantics apply:

  • if the input document takes the form of a concrete XML representation, e.g., the concrete form defined byAppendixA Concrete Encoding, then verify that

    • the encoded characters of the input document are well-formed according to the document's resolved character encoding; and,

    • the input document is a well-formed XML document; and

  • verify the input document is valid with respect to theeffective validation schemas;and,

  • verify the input document adheres to all other syntactic and semantic constraints defined by this specification that are not directly expressedby theeffective validation schemas.

If any of the above verification steps detect a state of non-conformance with respect to a prescription (must) or proscription (must not), then avalidation error condition applies. If any of the above verification steps detect a state ofnon-conformance with respect to a recommendation (should) or disrecommendation (should not), then avalidation warning condition applies.

Note:

Since the determination ofeffective validation schemas is implementationdependent, and since there is no requirement that theeffective validation schemas detectevery possiblevalidation error, then performing the[validate document] procedure need not produce avalidation exception, in which case,the results ofvalidation processing may be considered afalse positive.

As an example, acontent profile may prohibit the use of a feature by means of theprohibited value of thevalue attribute of attp:featureorttp:extension element; however, a particular implementation of the[validate document] procedure may fail to detect such prohibited usage inadocument instance, and, therefore, producefalse positive validation results.

As a consequence of these limitations, the specification language of the[validate document]procedure is predicated upon whether a potentialvalidation error orvalidation warning is detected or not, but does not mandate that all possiblevalidation errors andvalidation warnings be detected.

See also the first note under4.1 TTML Content Document Type for more information onfalse positives.

5.4 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.4.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 5-3 – Element Vocabulary.

Table 5-3 – Element Vocabulary
ModuleElements
Animationanimate,animation,set
Audioaudio
Contentbody,br,div,p,span
Datachunk,data,resources,source
Documenttt
Fontfont
Headhead
Imageimage
Layoutlayout,region
Metadatametadata
Metadata Itemsttm:actor,ttm:agent,ttm:copyright,ttm:desc,ttm:item,ttm:name,ttm:title
Profilettp:features,ttp:feature,ttp:extensions,ttp:extension,ttp:profile
Stylinginitial,styling,style

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

Table 5-4 – Element Vocabulary Groups
GroupElements
Animation.classanimate |set
Block.classdiv |p
Data.classdata
Embedded.classaudio,image
Font.classfont
Inline.classspan |br |#PCDATA
Layout.classregion
Metadata.classmetadata |ttm:agent |ttm:copyright |ttm:desc |ttm:item |ttm:title
Profile.classttp:profile

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

Table 5-5 – Attribute Vocabulary
ModuleAttributes
Animation Binding Attributeanimate
Conditionalization Attributecondition
Core Attributesxml:base,xml:id,xml:lang,xml:space
Data Attributesencoding,format,src,type
Layout Binding Attributeregion
Linking Attributesxlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title
Metadata Attributesttm:agent,ttm:role
Parameter Attributesttp:cellResolution,ttp:clockMode,ttp:displayAspectRatio,ttp:dropMode,ttp:frameRate,ttp:frameRateMultiplier,ttp:markerMode,ttp:pixelAspectRatio,ttp:subFrameRate,ttp:tickRate,ttp:timeBase,
Profile Attributesttp:contentProfiles,ttp:contentProfileCombination,ttp:inferProcessorProfileMethod,ttp:inferProcessorProfileSource,ttp:permitFeatureNarrowing,ttp:permitFeatureWidening,ttp:processorProfiles,ttp:processorProfileCombination,ttp:profile,ttp:validation,ttp:validationAction
Style Binding Attributestyle
Styling Attributestts:backgroundClip,tts:backgroundColor,tts:backgroundExtent,tts:backgroundImage,tts:backgroundOrigin,tts:backgroundPosition,tts:backgroundRepeat,tts:border,tts:bpd,tts:color,tts:direction,tts:disparity,tts:display,tts:displayAlign,tts:extent,tts:fontFamily,tts:fontKerning,tts:fontSelectionStrategy,tts:fontShear,tts:fontSize,tts:fontStyle,tts:fontVariant,tts:fontWeight,tts:ipd,tts:letterSpacing,tts:lineHeight,tts:lineShear,tts:luminanceGain,tts:opacity,tts:origin,tts:overflow,tts:padding,tts:position,tts:ruby,tts:rubyAlign,tts:rubyPosition,tts:rubyReserve,tts:shear,tts:showBackground,tts:textAlign,tts:textCombine,tts:textDecoration,tts:textEmphasis,tts:textOrientation,tts:textOutline,tts:textShadow,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-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.4.2 Extension Catalog

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

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 Profile

This section specifies theprofile matter of thecore vocabulary catalog, where profile matter is to be understood as information that expresses requirements or optionality related to authoring or processingatimed text content document.

6.1 Profile Element Vocabulary

The following elements, all defined in the TT ParameterNamespace, specify parametric information that applies to adocument instanceorcontent processor:

Note:

The sub-sections of this section are ordered logically (from highest to lowest level construct).

6.1.1 ttp:profile

Thettp:profile element is used to specify acontent profile or aprocessor profile.Aprocessor profile specifies acollection of 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.Acontent profile specifies acollection of prohibited, required, and optional features and extensions that, respectively,must not, must, and may be present in adocument instance that declares itsadherence to the profile.

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 inE 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 contexts of use for thettp:profile element:

When attp:profile element appears within a TTMLdocument instance,its purpose is to express authorial intentions about (1) whichfeatures and extensions must or may be supported by a recipientcontent processor in order to process that document or (2) which features and extensions must not, must, or may beincluded or otherwise used in thatdocument 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 that may be referenced by TTMLdocument instances.This specification defines a number of standardProfile Definition Documents inG Standard Profiles.

Thettp:profile element accepts as its children zero or moreelements in theMetadata.class element group, followed by either (1)zero or morettp:features elements followed byzero or morettp:extensions elements or (2)zero or morettp:profile elements.When attp:profile element contains a childttp:profile element, then the child is referred to asanested profile and the parent is referred to as anesting profile;otherwise it is referred to as anon-nesting profile.

XML Representation – Element Information Item: ttp:profile
<ttp:profile  combine = ("leastRestrictive" |"mostRestrictive" |"replace") : replace  designator =xsd:string  type = ("processor" |"content") : processor  use =xsd:stringxml:base =<uri>xml:id = IDContent:Metadata.class*, ((ttp:features*,ttp:extensions*)|ttp:profile*)</ttp:profile>

Thetype attribute is used to determine whether a profile is acontent profile or aprocessor profile. If not specified,the profile is considered to be aprocessor profile.If attp:profile element references abaseline profile or anested profile, then the type of the referenced profile must be the same as the type of the referencing profile. Forexample, attp:profile element that defines aprocessor profile may only make reference to otherprocessor profiles, and may not reference acontent profile.

Thecombine attribute is used to specify howfeature or extension specifications are combined in the case thatmultiple specifications apply to the same feature or extension, respectively.

If the value of thecombine attribute isreplace, then alexically subsequent feature or extension specification replaces a lexically priorspecification, where specification elements are ordered as follows:

  1. specifications defined by abaseline profile referenced by auseattribute;

  2. specifications defined by descendantttp:profile elements in post-ordertraversal order;

  3. specifications defined as descendantttp:feature orttp:extensionelements in post-order traversal order.

If the value isleastRestrictive, then the least restrictive specification value applies;if the value ismostRestrictive, then the most restrictive specification valueapplies. The order of restrictiveness is as follows (from least to most):optional,required,prohibited.

If thecombine attribute is not specified, then replacement semantics apply.

If specified, thedesignator attribute must adhere to the<absolute-profile-designator> value syntax.Adesignator attribute maybe specified on attp:profile element that appears in a TTMLdocument instance, and, if not specified,the defined profile is considered to be an undesignated profile.Adesignator attribute shouldbe specified on attp:profile element that appears in a TTMLprofile definition document instance,and, if not specified, the defining context (e.g., an external specification) must specifya designator in its accompanying definition text.

If specified, theuse attribute must adhere to the<uri> value syntax, and, furthermore, must denote a profile designator inaccordance with5.2 Profiling. In this case,the profile designator must refer to (1) a standard, predefinedprofile definition document as defined by6 Profile,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 thebaseline profileof thettp:profile element must be considered to bethe empty (null) profile, i.e., an undesignated profile definition containing nofeature or extension specifications.

The combined profile specification setCPSS of features and extensions of a profilePis determined according to the following ordered rules, where merging a specificationSintoCPSS entails applying a combination method in accordance with the specified(or default) value of thecombine attribute, and where merging a combined specification setCPSS'  intoCPSS entails merging each ordered specification ofCPSS'  intoCPSS:

  1. initializeCPSS to the empty set;

  2. if ause attribute is present, then mergethe combined specification set of the referencedbaseline profile intoCPSS;

  3. for eachttp:profile child of theP,using a post-order traversal, merge the combined specification set of the child profileintoCPSS;

  4. for eachttp:feature andttp:extension child of thettp:profile element,using a post-order traversal, merge the feature or extension specificationintoCPSS.

A conformant TTML processor is not required to be able todereference aprofile definition document that is not one of thestandard, predefined profiles defined byG Standard 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.

A conformant TTML processor is not required to be able to support acombined profile oranesting profile. If(1)combined profiles are not supported and the processing of aprofilewould cause it to be considered acombined profile, or(2)nesting profiles are not supported and the processing of aprofilewould cause it to be considered anesting profile,then further processing of theprofile must not occur without the presence of an explicit override from an end-useror some implementation specific parameter traceable to an end-user or to a user or system configuration setting. If a TTML processor abortsprocessing of adocument instance due to lack of support forcombined profiles ornesting profiles,then some end-user notification should be given unless the end-user or system has disabled such a notification,or if the processor does not permit or entail the intervention of an end-user.

Note:

If adocument instance does not require support forcombined profiles, then it should not make use of:

Note:

If adocument instance does not require support fornesting profiles, then it should not make use of anested profile.

Thettp:profile element is illustrated by the following example.

Example Fragment – ttp:profile
<ttp:profile use="ttml2-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 TTML2 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 groupinformation about feature support and usage 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:featuresxml:base =<uri> :TT Feature Namespacexml:id = IDContent:Metadata.class*,ttp:feature*</ttp:features>

If specified, thexml:baseattribute must (1) adhere to the<uri> value syntax, (2) express an absolute URI thatadheres to[XML Base] and,(3) express a feature namespace as defined byE.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 specifyinformation about support and usage requirements for a particular feature.

XML Representation – Element Information Item: ttp:feature
<ttp:feature  extends =xsd:string  restricts =xsd:string  value = ("optional" |"required" |"use" |"prohibited") :see prose belowxml:id = IDContent: #PCDATA</ttp:feature>

The children of thettp:feature element must express a non-emptysequence ofcharacter information items the concatenation of which adheres to the<uri> value syntax.

If specified, theextends attribute and/or therestrictsattribute must (1) adhere to the<uri> value syntax, and(2) express a feature designation as defined byE.1 Feature Designations.

Theextends attribute may be used to indicate that the feature being definedis, from either (or both) a syntactic or (and) semantic perspective, a proper superset of thefeature referenced by theextends attribute.Therestricts attribute may be used to indicate that the feature being definedis, from either (or both) a syntactic or (and) semantic perspective, a proper subset of thefeature referenced by therestricts attribute.If anextends attribute is specified, then arestricts attribute mustnot be specified on attp:feature element; likewise, if arestricts attributeis specified, then anextends attribute must not be specified.

If the URI expressed by (1) the content of thettp:featureelement, (2) theextends attribute, or (3) therestricts attributeis 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 byE.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 element,by theextends attribute, or by therestricts attributeis a relative URI, then anxml:base attribute should bespecified on the nearest ancestorttp:features element.

Thevalue attribute specifies constraints on support for or use ofthe designated feature according to the profile type.

If the profile is aprocessor profilethen the following semantics apply:

  • if the value of thevalue attributeisoptional, then a processor may but neednot implement or otherwise support the feature in order to process the document;

  • if the value isrequired, then perform the following steps:

    1. if the feature is implemented or otherwise supported by a processor, then continue processingthe document;

    2. otherwise, if(1) theextends attribute is specified on thisttp:feature element,(2) the value of theextends attribute designates a feature that is implemented or otherwise supported bya processor, and(3) the computed value of thettp:permitFeatureNarrowingproperty of the roottt element is notfalse,then continue processing the document;

    3. otherwise, if(1) therestricts attribute is specified on thisttp:feature element,(2) the value of therestricts attribute designates a feature that is implemented or otherwise supported bya processor, and(3) the computed value of thettp:permitFeatureWideningproperty of the roottt element is notfalse,then continue processing the document;

    4. otherwise, abort processing the document unless overridden by the end-user or some implementation specific parametertraceable to an end-user or to a user or system configuration setting.

  • if the value attribute is not specified, then the feature specificationmust be interpreted as if the valuerequired were specified;

If the profile is acontent profilethen the following semantics apply:

  • if the value of thevalue attributeisoptional, then the feature may but need not appear in a document thatclaims conformance with that profile;

  • if the value of thevalue attributeisrequired, then the feature must appear in a document thatclaims conformance with that profile;

  • if the value of thevalue attributeisprohibited, then the feature must not appear in a document thatclaims conformance with that profile;

  • if the value attribute is not specified, then the feature specificationmust be interpreted as if the valueoptional were specified;

The valueuse of thevalue attribute isdeprecated. If itappears in a profile specification, then it must be interpreted as ifrequiredhad been specified.

If some defined (i.e., standardized) or otherwise well known feature is not specified byattp:feature element in a content profile, then it must be interpreted as if the feature were specifiedwith thevalue attribute equal tooptional. However, if not specified in a processor profile, no claimabout support or absence of support for the feature is implied.

Note:

In particular, if some feature is not present in a content profile definition, thenit is not to be interpreted as meaning the use of that feature (in adocument instance)is disallowed or otherwise prohibited. If a feature is intended to be disallowed by a content profile, thenit should be specified using theprohibited value.

If adocument instance makes use of a feature defined byE.1 Feature Designations and if the intended use of thedocument requires the recognition and processing of that feature, thenthe document must include arequired feature specification in one of its declared orreferenced profiles.

Thettp:feature element is illustrated by the following example.

Example Fragment – ttp:feature
<ttp:profile use="http://www.w3.org/ns/ttml/profile/ttml2-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:feature value="prohibited">#textOutline-blurred</ttp:feature>  </ttp:features></ttp:profile>

Note:

In the above example, the TTML presentation profile is used as thebaseline profile. This baseline profile is then modified by threettp:feature elements in order to (1)superset the baseline profile (since neither#fontStyle-italic nor#textDecoration-underare required by the TTML presentation profile), and(2) prohibit use of the#textOutline-blurred feature(which is optional in the TTML presentation profile).

The effect of this example is to express authorial intentions thatitalic font style and text underlining must besupported, and that text outline blurring must not be used by a document.

6.1.4 ttp:extensions

Thettp:extensions element is a container element used to groupinformation about extension support and usage 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:extensionsxml:base =<uri> :TT Extension Namespacexml:id = IDContent:Metadata.class*,ttp:extension*</ttp:extensions>

If specified, thexml:baseattribute must (1) adhere to the<uri> value syntax, (2) express an absolute URI thatadheres to[XML Base] and,(3) express an extension namespace as defined byF.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 specifyinformation about support and usage requirements for a particular extension.

XML Representation – Element Information Item: ttp:extension
<ttp:extension  extends =xsd:string  restricts =xsd:string  value = ("optional" |"required" |"use" |"prohibited") :see prose belowxml:id = IDContent: #PCDATA</ttp:extension>

The children of thettp:extension element must express a non-emptysequence ofcharacter information items the concatenation of which adheres to the<uri> value syntax.

If specified, theextends attribute and/or therestrictsattribute must (1) adhere to the<uri> value syntax, and(2) express a feature designation or extension designation as defined byE.1 Feature Designations orF.1 Extension Designations, respectively.

Theextends attribute may be used to indicate that the extension being definedis, from either (or both) a syntactic or (and) semantic perspective, a proper superset of thefeature or extension referenced by theextends attribute.Therestricts attribute may be used to indicate that the extension being definedis, from either (or both) a syntactic or (and) semantic perspective, a proper subset of thefeature or extension referenced by therestricts attribute.If anextends attribute is specified, then arestricts attribute mustnot be specified on attp:extension element; likewise, if arestricts attributeis specified, then anextends attribute must not be specified.

If the URI expressed by (1) the content of thettp:extensionelement, (2) theextends attribute, or (3) therestricts attributeis 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 designation asdefined byF.1 Extension Designations,while the URI expressed by theextends attribute and/or therestricts attribute must adhere to the syntax of a feature designationor an extension designation as defined byE.1 Feature Designations orF.1 Extension Designations, respectively.

If the URI expressed by the content of thettp:extension element,by theextends attribute, or by therestricts attributeis a relative URI, then anxml:base attribute should bespecified on the nearest ancestorttp:extensions element.

Thevalue attribute specifies constraints on support for or use ofthe designated extension according to the profile type.

If the profile is aprocessor profilethen the following semantics apply:

  • if the value of thevalue attributeisoptional, then a processor may but neednot implement or otherwise support the extension in order to process the document;

  • if the value isrequired, then perform the following steps:

    1. if the extension is implemented or otherwise supported by a processor, then continue processingthe document;

    2. otherwise, if(1) theextends attribute is specified on thisttp:extension element,(2) the value of theextends attribute designates an extension that is implemented or otherwise supported bya processor, and(3) the computed value of thettp:permitFeatureNarrowingproperty of the roottt element is notfalse,then continue processing the document;

    3. otherwise, if(1) therestricts attribute is specified on thisttp:extension element,(2) the value of therestricts attribute designates an extension that is implemented or otherwise supported bya processor, and(3) the computed value of thettp:permitFeatureWideningproperty of the roottt element is notfalse,then continue processing the document;

    4. otherwise, abort processing the document unless overridden by the end-user or some implementation specific parametertraceable to an end-user or to a user or system configuration setting.

  • if the value attribute is not specified, then the extension specificationmust be interpreted as if the valuerequired were specified;

If the profile is acontent profilethen the following semantics apply:

  • if the value of thevalue attributeisoptional, then the extension may but need not appear in a document thatclaims conformance with that profile;

  • if the value of thevalue attributeisrequired, then the extension must appear in a document thatclaims conformance with that profile;

  • if the value of thevalue attributeisprohibited, then the extension must not appear in a document thatclaims conformance with that profile;

  • if the value attribute is not specified, then the extension specificationmust be interpreted as if the valueoptional were specified;

The valueuse of thevalue attribute isdeprecated. If itappears in a profile specification, then it must be interpreted as ifrequiredhad been specified.

If some well known extension is not specified byattp:extension element in a content profile, then it must be interpreted as if the extension were specifiedwith thevalue attribute equal tooptional. However, if not specified in a processor profile, no claimabout support or absence of support for the extension is implied.

Note:

In particular, if some extension is not present in a content profile definition, thenit is not to be interpreted as meaning the use of that extension (in adocument instance)is disallowed or otherwise prohibited. If an extension is intended to be disallowed by a content profile, thenit should be specified using theprohibited value.

If adocument instance makes useof an extension designatable byF.1 Extension Designations and if the intended use of the documentrequires the recognition and processing of that extension, then thedocument must include arequired extension specificationin one of its declared or referenced profiles.

Thettp:extension element is illustrated by the following example.

Example Fragment – ttp:extension
<ttp:profile use="http://www.w3.org/ns/ttml/profile/ttml2-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 TTML 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 TTML transformation profile andmust also support and enable an extension defined by a third party.

6.2 Profile Attribute Vocabulary

The following attributes are defined in the TT Parameter Namespace.

6.2.1 ttp:contentProfiles

Thettp:contentProfiles attribute may be used by a content authorto express one or morecontent profiles ofthe Timed Text Markup Language (TTML) where theenclosing document instance claims conformance toall of a set ofspecifiedcontent profiles.

If specified, the value of this attribute must adhere to the following syntax,where eachprofile-designator item adheres to the<uri> value syntax, and,further, adheres to constraints defined on a profile designator in accordance with5.2 Profiling.

Syntax Representation – ttp:contentProfiles
ttp:contentProfiles  : designators  | "all("<lwsp> designators<lwsp> ")"designators  : designator (<lwsp> designator)*designator  :<profile-designator>

If the list of designators is enclosed in the function syntaxall(...) or no function syntax is used,then conformance is claimed with all designatedcontent profiles.

If multiple designators are specified, then the absolutized form of each designator must be distinct; that is,after converting to absolutized form, duplicate designators are not permitted.

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

6.2.2 ttp:contentProfileCombination

Thettp:contentProfileCombination attribute is used to specify themethod for combining multiplecontent profiles.

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

Syntax Representation – ttp:contentProfileCombination
ttp:contentProfileCombination  : "leastRestrictive"  | "mostRestrictive"  | "replace"  | "ignore"

If not specified, the value of this parameter must be considered to beignore.

Given two ordered profile specification values,arg1 andarg2, and a content profile combination method,Table 6-1 – Content Profile Combination specifies the result of combining the two specification values, where the orderof arguments is determined in accordance with the lexical order ofcontent profiles in adocument instance.

Table 6-1 – Content Profile Combination
arg1arg2leastRestrictivemostRestrictivereplaceignore
optionaloptionaloptionaloptionaloptionaloptional
optionalrequiredoptionalrequiredrequiredoptional
optionalprohibitedoptionalprohibitedprohibitedoptional
requiredoptionaloptionalrequiredoptionalrequired
requiredrequiredrequiredrequiredrequiredrequired
requiredprohibitedrequiredprohibitedprohibitedrequired
prohibitedoptionaloptionalprohibitedoptionalprohibited
prohibitedrequiredrequiredprohibitedrequiredprohibited
prohibitedprohibitedprohibitedprohibitedprohibitedprohibited

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

6.2.3 ttp:inferProcessorProfileMethod

Thettp:inferProcessorProfileMethod attribute is used to specify themethod for mapping a content profile specification value to a corresponding processorprofile specification value.

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

Syntax Representation – ttp:inferProcessorProfileMethod
ttp:inferProcessorProfileMethod  : "loose"  | "strict"

If this parameter's value isloose, then, when inferring a processor profile specification from a content profile specification,a loose (liberal) mapping applies.

If this parameter's value isstrict, then, when inferring a processor profile specification from a content profile specification,a strict (conservative) mapping applies.

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

Given an input content profile specification value,input, and an infer processor profile method,Table 6-2 – Infer Processor Profile Method specifies the result of mapping the input specification value.

Table 6-2 – Infer Processor Profile Method
inputloosestrict
optionaloptionalrequired
requiredrequiredrequired
prohibitedoptionaloptional

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

6.2.4 ttp:inferProcessorProfileSource

Thettp:inferProcessorProfileSource attribute is used to specify thesource for mapping a content profile specification value to a corresponding processorprofile specification value.

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

Syntax Representation – ttp:inferProcessorProfileSource
ttp:inferProcessorProfileSource  : "combined"  | "first"

If this parameter's value iscombined, then, when inferring a processor profile, the combined profile specificationset of theeffective content profile is used as the source of inference.

If this parameter's value isfirst, then, when inferring a processor profile, the first constituent profile ofthe combined profile specification set of theeffective content profile,where the processor profile inferred from that constituent profile is supported by thecontent processor,is used as the source of inference, about which see theconstruct inferred processor profile procedure for further details.

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

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

6.2.5 ttp:permitFeatureNarrowing

Thettp:permitFeatureNarrowing attribute is used to specify whetherrequirements related to a feature or extension may be satisfied by a (syntactically or semantically) narrower interpretationof the feature or extension.

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

Syntax Representation – ttp:permitFeatureNarrowing
ttp:permitFeatureNarrowing  :xsd:boolean                             // see[XML Schema Part 2], §3.2.2

If this parameter's value istrue, then, a requirement for support of a feature or extension may be satisfiedif the definition of the feature or extension specifies anextends attribute, and the feature or extension referencedby that attribute is supported by a processor.

If this parameter's value isfalse, then, a requirement for support of a feature or extension can not be satisfiedby a more narrowly defined feature or extension specified by anextends attribute.

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

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

6.2.6 ttp:permitFeatureWidening

Thettp:permitFeatureWidening attribute is used to specify whetherrequirements related to a feature or extension may be satisfied by a (syntactically or semantically) wider interpretationof the feature or extension.

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

Syntax Representation – ttp:permitFeatureWidening
ttp:permitFeatureWidening  :xsd:boolean                             // see[XML Schema Part 2], §3.2.2

If this parameter's value istrue, then, a requirement for support of a feature or extension may be satisfiedif the definition of the feature or extension specifies arestricts attribute, and the feature or extension referencedby that attribute is supported by a processor.

If this parameter's value isfalse, then, a requirement for support of a feature or extension can not be satisfiedby a more widely defined feature or extension specified by arestricts attribute.

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

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

6.2.7 ttp:profile

Thettp:profile attributedenotes aprocessor profileof the Timed Text Markup Language (TTML) that applies when processingadocument instance.

Note:

If an author wishes to specify that one or more of a collection of processor profiles apply rather than a single processor profile, then the content author is advised to use thettp:processorProfiles as specified by6.2.8 ttp:processorProfiles.

Note:

For information on signaling content profile(s), see6.2.1 ttp:contentProfiles.

If specified, the value of this attribute must adhere to the following syntaxwhere thedesignator adheres to the<uri> value syntax, and, further, must specify aprofile designator in accordance with5.2 Profiling.

Syntax Representation – ttp:profile
ttp:profile  : designatordesignator  :<profile-designator>

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

If atop-levelprocessor profileis defined in adocument instance, then thettp:profileattribute should not be specified on thett element.

Note:

See5.2.4 Profile Semantics for information on how aneffective processor profile is determined when one or more mechanismsdesignate one or more profiles for (possible) use when processing a document.

6.2.8 ttp:processorProfiles

Thettp:processorProfiles attribute may be used by a content authorto express one or moreprocessor profiles ofthe Timed Text Markup Language (TTML) where theenclosing document instance requires support for (1)all of a set ofspecifiedprocessor profiles or (2)any one of a set ofspecifiedprocessor profiles.

If specified, the value of this attribute must adhere to the following syntax,where eachprofile-designator item adheres to the<uri> value syntax, and,further, adheres to constraints defined on a profile designator in accordance with5.2 Profiling.

Syntax Representation – ttp:processorProfiles
ttp:processorProfiles  : designators  | "all("<lwsp> designators<lwsp> ")"  | "any("<lwsp> designators<lwsp> ")"designators  : designator (<lwsp> designator)*designator  :<profile-designator>

If the list of designators is enclosed in the function syntaxall(...) or no function syntax is used,then support is required for all designatedprocessor profiles. If the listof designators is enclosed in the function syntaxany(...), then support is required for at least oneof the designatedprocessor profiles.

If multiple designators are specified, then the absolutized form of each designator must be distinct; that is,after converting to absolutized form, duplicate designators are not permitted.

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

6.2.9 ttp:processorProfileCombination

Thettp:processorProfileCombination attribute is used to specify themethod for combining multipleprocessor profiles.

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

Syntax Representation – ttp:processorProfileCombination
ttp:processorProfileCombination  : "leastRestrictive"  | "mostRestrictive"  | "replace"  | "ignore"

If not specified, the value of this parameter must be considered to beignore.

Given two ordered profile specification values,arg1 andarg2, and a processor profile combination method,Table 6-3 – Processor Profile Combination specifies the result of combining the two specification values, where the orderof arguments is determined in accordance with the lexical order ofprocessor profiles in adocument instance.

Table 6-3 – Processor Profile Combination
arg1arg2leastRestrictivemostRestrictivereplaceignore
optionaloptionaloptionaloptionaloptionaloptional
optionalrequiredoptionalrequiredrequiredoptional
requiredoptionaloptionalrequiredoptionalrequired
requiredrequiredrequiredrequiredrequiredrequired

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

6.2.10 ttp:validation

Thettp:validation attribute is used to specify whethervalidation processingmay or must be performed on adocument instance by avalidating content processor.

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

Syntax Representation – ttp:validation
ttp:validation  : "required"  | "optional"  | "prohibited"

If this parameter's value isrequired, then, avalidating content processormust performvalidation processing on a TTMLdocument instance prior to performingother types of processing, e.g., presentation or transformation processing.

If this parameter's value isoptional, then, avalidating content processormay, but need not, performvalidation processing on a TTMLdocument instance prior to performingother types of processing, e.g., presentation or transformation processing.

If this parameter's value isprohibited, then, avalidating content processormust not performvalidation processing on a TTMLdocument instance prior to performingother types of processing, e.g., presentation or transformation processing, unless the end-user or application overrides this prohibition.

Ifvalidation processing is performed on a TTMLdocument instance and validation fails, then the computed value ofthettp:validationAction property is used to determine what action to take before performing further processing.

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

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

6.2.11 ttp:validationAction

Thettp:validationAction attribute is used to specify what action is to be takenby avalidating content processor whenvalidation of adocument instance fails.

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

Syntax Representation – ttp:validationAction
ttp:validationAction  : "abort"  | "warn"  | "ignore"

If this parameter's value isabort, then, unless abort processing is overridden by the end-user or application,avalidating content processormust abort processing of a TTMLdocument instance when avalidation error exception occurs.

If this parameter's value iswarn, then, avalidating content processorshould warn the end-user when avalidation error orvalidation warning exception occursand give the end-user the option to continue or abort processing.

If this parameter's value isignore, then, avalidating content processorshould not abort and should not warn the end-user when avalidation exceptionoccurs.

If not specified, the value of this parameter is determined as follows:if the computed value of thettp:validation property isrequired,then the value must be considered to beabort;if it isoptional,then the value must be considered to bewarn;otherwise, if it isprohibited,then the value must be considered to beignore.

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

7 Parameter

This section specifies theparameter 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.

7.1 Parameter Element Vocabulary

No parameter element vocabulary is defined in this specification.

7.2 Parameter Attribute Vocabulary

The following attributes are defined in the TT Parameter Namespace.

7.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<lwsp> 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[CTA-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.

7.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 by7.2.11 ttp:timeBase.

Note:

See12.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 by7.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 (and date) coordinates;ifutc, then time expressions areinterpreted as UTC time coordinates[UTC];ifgps, then time expressions areinterpreted as GPS time coordinates[GPS].

Note:

No specific timezone is implied by time (and date) expressions whenlocal clock mode applies. In particular, acontent processoris expected to interpret a local time (and date) expression in the local timezone, wherever processing takes place.If an author intends that time (and date) expressions be fixed to a specific time zone, then they may convert time (and date)expressions to UTC and specify use of theutc clock mode.

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.

7.2.3 ttp:displayAspectRatio

Thettp:displayAspectRatio attribute is used to specify thedisplay aspect ratio of theroot container region as elaborated inH Root Container Region Semantics.

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

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

If specified, then both numerator and denominator must be non-zero. If not specified, then the display aspect ratio oftheroot container region is determined byH Root Container Region Semantics.

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

7.2.4 ttp:dropMode

Thettp:dropMode attribute is used to specifyconstraints on the interpretation and use of frame countsthat correspond with[SMPTE ST 12-1] time coordinates when operatingwith time base ofsmpte as defined by7.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 by7.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.

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.

7.2.5 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 by12.3.1 <time-expression>.

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:

SeeI.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.

7.2.6 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<lwsp> 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 some application 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 ST 170]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.

7.2.7 ttp:markerMode

Thettp:markerMode attribute is used to specifyconstraints on the interpretation and use of time expressionsthat correspond with[SMPTE ST 12-1] time coordinates when operatingwith time base ofsmpte as defined by7.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 by7.2.11 ttp:timeBase, is designated assmpte, then this parameter applies as follows: if theparameter's value iscontinuous, then[SMPTE ST 12-1] 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 indicated thischoice was incorrect, and that the most common default isdiscontinuous.

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 in12.4 Timing Semantics.

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 ST 12-1] 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 monotonicity 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 ST 12-1]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 comparison of a<time-expression>and a labeled synchronization event (marker) is considered to be implementation dependent.In particular, this specification does not require an implementation to make use of a specific internal format fortime expressions or markers or a specific comparison algorithm. Nevertheless, it is expected that implementationswill respect the semantics of time expressions and any implied semantics that apply to marker labels whenperforming such a comparison.

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.

7.2.8 ttp:pixelAspectRatio

Thettp:pixelAspectRatio attribute is used to specify thepixel aspect ratio of theroot container region as elaborated inH Root Container Region Semantics

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

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

If specified, then both numerator and denominator must be non-zero. If not specified, then the pixel aspect ratio oftheroot container region is determined byH Root Container Region Semantics.

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

Thettp:pixelAspectRatio attribute should not be specifiedunless atts:extent attribute consistingof two<length> specifications usingpx (pixel) units is alsospecified on thett element,without which the use of attp:pixelAspectRatio attribute is deprecated.

7.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 by12.3.1 <time-expression>.

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:

SeeI.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 be equal to some application defined sub-frame rate, or if no application definedsub-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.

7.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 by12.3.1 <time-expression>.

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:

SeeI.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.

7.2.11 ttp:timeBase

Thettp:timeBase attribute is used to specify thedocument temporal coordinate space.

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 ST 12-1] timecoordinate with which the content of adocument instance is tobe synchronized. In this case, the value of thettp:markerModeandttp:dropMode parameters apply, as defined by7.2.7 ttp:markerMode and7.2.4 ttp:dropMode, respectively.

Note:

When the time base is designated assmpte,every time expression denotes a media marker value akin to thatdefined by[SMIL 3.0], §5.4.3, except insteadof using an opaque marker name, a structured[SMPTE ST 12-1]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:

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

8 Content

This section specifies thecontent matter of the corevocabulary catalog.

8.1 Content Element Vocabulary

The following elements specify the structure and principal content aspects of adocument instance:

Note:

The sub-sections of this section are ordered logically (from highest to lowest level construct).

8.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 =xsd:stringxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve") : default  {any attributes in TT Parameter 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 to10.2.16 tts:extent, in which case itspecifies thespatial extent of theroot container region inwhichcontent regions are located and presented. If notts:extentattribute is specified, then thespatial extent of theroot container region is determined by rules specified inH Root Container Region Semantics.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:

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 usingthettp:displayAspectRato parameter attribute.

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.

8.1.2 head

Thehead element is a container element used to group header matter, including metadata,profile, embedded content resources, 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 theProfile.class element group,followed by zero or oneresources element,followed by zero or onestyling element,followed by zero or onelayout element,followed by zero or oneanimation 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.

Aresources child element is used to specify embedded content constructsthat are referenced from certain style constructs andembedded content elements.

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.

Ananimation child element is used to specify animation constructs thattarget animatablecontent elementorLayout elements.

XML Representation – Element Information Item: 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.

8.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
<bodyanimate = IDREFSbegin =<time-expression>condition =<condition>dur =<time-expression>end =<time-expression>region = IDREFstyle = IDREFStimeContainer = ("par" |"seq")xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes in TT Metadata Namespace}  {any attributes inTT Style Namespaces}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 later of the beginningpoint of thedocument temporal coordinate spaceand the beginning point of theroot temporal extent.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 beginningof thedocument temporal coordinate space.

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.

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

8.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 by zero or oneelement in theLayout.class element group,followed by zero or more elements in theBlock.class orEmbedded.class element groups.

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
<divanimate = IDREFSbegin =<time-expression>condition =<condition>dur =<time-expression>end =<time-expression>region = IDREFstyle = IDREFStimeContainer = ("par" |"seq")xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes in TT Metadata Namespace}  {any attributes inTT Style Namespaces}Content:Metadata.class*,Animation.class*,Layout.class?, (Block.class|Embedded.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 associated withadiv element in adocument instanceare available for style inheritance by descendantcontent elements.

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

8.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 by zero or oneelement in theLayout.class element group,followed by zero or more elements in theInline.class orEmbedded.class element groups.

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
<panimate = IDREFSbegin =<time-expression>condition =<condition>dur =<time-expression>end =<time-expression>region = IDREFstyle = IDREFStimeContainer = ("par" |"seq")xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes in TT Metadata Namespace}  {any attributes inTT Style Namespaces}Content:Metadata.class*,Animation.class*,Layout.class?, (Inline.class|Embedded.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.

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 ofcharacter information items, then that sequence mustbe considered to be ananonymous span for the purpose ofapplying style properties that apply tospan elements, for details about which, see the[construct anonymous spans] procedure.

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. See11.3.1.4 Synchronic Flow Processing for further details.

8.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 moreglyph area.

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 by zero or more elements in theInline.class orEmbedded.class element groups.

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
<spananimate = IDREFSbegin =<time-expression>condition =<condition>dur =<time-expression>end =<time-expression>region = IDREFstyle = IDREFStimeContainer = ("par" |"seq")xlink:arcrole =<uri-list>xlink:href =<uri>xlink:role =<uri-list>xlink:show = ("new" |"replace" |"embed" |"other" |"none") : newxlink:title =xsd:stringxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes in TT Metadata Namespace}  {any attributes inTT Style Namespaces}Content:Metadata.class*,Animation.class*, (Inline.class|Embedded.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.

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

The linking attributesxlink:* may be used to link aspan element with related content, using thespecified location (href), roles, and title. The behavior of link activation is affected by thexlink:show attribute,the precise meaning of which is determined by thedocument processing context.

If aspan element specifies anxlink:href attribute, then a nestedspan element descendant must not specifyanxlink:href attribute, and, if it does, then the latter must be ignored for the purpose of presentation or activation processing.

If a sequence of children of aspan elementconsists solely ofcharacter information items, then that sequence mustbe considered to be ananonymous span for the purpose ofapplying style properties that apply tospan elements, for details about which, see the[construct anonymous spans] procedure.

8.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.

The use ofAnimation.class children is deprecated.

Note:

No style attributes apply tobr elements therefore animation has no effect onbr.

XML Representation – Element Information Item: br
<brcondition =<condition>style = IDREFSxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes in TT Metadata Namespace}  {any attributes inTT Style Namespaces}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.

8.2 Content Attribute Vocabulary

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

In addition, this section defines the following linking vocabulary used by certain element typesin the core vocabulary catalog:

8.2.1 condition

Thecondition attribute is used toconditionally exclude an element(and its descendants) from semantic processing,in which case the element is referred to as aconditionalized element.

Note:

The use of acondition attribute by an element does not prevent either the parsing of that element (and its descendants) orthe insertion of the parsed representation of that element (and its descendants) into thereduced xml infoset associated with the containingdocument instance.

Thecondition attribute may be used with any element in the core vocabulary catalogexcept profile matter, i.e., elements of theProfile Module.

The value of acondition attribute must adhere to a<condition> expressionwhich is evaluated at the time of presentation processing (lazy evaluation)or prior to the time of presentation processing (eager evaluation), where eager evaluation may occur only when the value resultingfrom evaluation cannot change or is known to not change during presentation processing.

Note:

For example, if a condition expression depends on the value of acondition function,then the condition expression's value may change during presentation processing, in which case eager evaluation cannot be used.

For the purpose of presentation processing, if an element specifies acondition attribute, andits<condition> expression value evaluates tofalse,then the semantics of the element and its descendant elementsmust be ignored unless those semantics are explicitly excepted,which is to say, the element and its descendant elements areconditionally excludedregardless of the evaluation of any<condition> expressionsspecified on those descendant elements.

Note:

For example, if ap element specifies aconditionattribute that evaluates tofalse, then the content of that element and its descendants are ignored for presentation purposes.

Note:

Evaluation of thecondition attribute is not required (and not relevant)on an element that isconditionally excludeddue to one of its ancestor elements beingconditionally excluded.That is, an element cannot becomeconditionally includedby the evaluation of itscondition attributein the case that an ancestor isconditionally excluded.

Note:

In certain cases, ignoring (excluding) the semantics of an element by means of acondition attribute consistsof partially rather than wholly ignoring the semantics of the element, about which see the following text as well as specific element definitions.

Unless ahigher level protocol applies, the following exceptions apply for thepurpose of determining which semantics are to be ignored when a<condition> expressionvalue evaluates tofalse:

Note:

The exceptions noted above also apply to descendants of aconditionally excluded element.

8.2.2 xlink:arcrole

Thexlink:arcrole attribute is used as defined by[XLink 1.1].

Thexlink:arcrole attribute may be used with anyspan orimage element.

8.2.3 xlink:href

Thexlink:href attribute is used as defined by[XLink 1.1].

Thexlink:href attribute may be used with anyspan orimage element.

8.2.4 xlink:role

Thexlink:role attribute is used as defined by[XLink 1.1].

Thexlink:role attribute may be used with anyspan orimage element.

8.2.5 xlink:show

Thexlink:show attribute is used as defined by[XLink 1.1].

Thexlink:show attribute may be used with anyspan orimage element.

8.2.6 xlink:title

Thexlink:title attribute is used as defined by[XLink 1.1].

Thexlink:title attribute may be used with anyspan orimage element.

8.2.7 xml:base

Thexml:base attribute is used as defined by[XML Base].

Thexml:base attribute may be used with any element in the core vocabulary catalogthat admits (1) acondition attribute, (2) a descendantelement in theMetadata.class element group, or(3) a descendant element that admits anxml:base attribute.

8.2.8 xml:id

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

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

8.2.9 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.

Note:

As specified by[XML 1.0], §2.12, the association of language with an elementapplies to all of that element's descendants unless overridden by a descendant. In other words,the language that is associated with an element is either specified on the element or is effectivelyinherited from that element's nearest ancestor element.

This language association process is based solely on the structure of thereduced xml infoset of adocument instanceand occurs prior to performingintermediate synchronic document construction.

The use ofxml:lang on content and metadata elements is illustrated by the following example.

Example Fragment – Language Identification of Content and Metadata
<tt ...xml:lang="">...<pxml:lang="en">Jean said hello.</p><pxml:lang="fr">Jean dit bonjour.</p><p>  <image src="#talking-image">    <ttm:item name="altText"xml:lang="en">Talking</ttm:item>    <ttm:item name="altText"xml:lang="fr">Parlant</ttm:item>  </image></p>...</tt>

Note:

In this example, the roottt element is identified with the empty language tag, meaning unknown or unspecified language, whichidentification is effectively inherited by descendant elements (unless overridden). Next, the first twop (paragraph) elementsare associated withen (English) andfr (French) language identifiers, respectively. Finally, the thirdp(paragraph) element consists of a foreground image, which is associated with two alternative text descriptions by use ofnamed metadata items,and these text descriptions are, in turn, associated withen (English) andfr (French) language identifiers.

8.2.10 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.

Note:

As specified by[XML 1.0], §2.10, the application whitespace signalling that applies to an elementapplies to all of that element's descendants unless overridden by a descendant. In other words,the application whitespace signaling that applies to an element is either specified on the element or is effectivelyinherited from that element's nearest ancestor element.

This application whitespace signalling process is based solely on the structure of thereduced xml infoset of adocument instanceand occurs prior to performingintermediate synchronic document construction.

The semantics of the valuedefault are fixed to mean thatwhen performing presentation processing of adocument instance asdescribed by11.3.1.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"

If an unnormalized horizontal tab&#9; (HT) character appearsin acharacter information itemof areduced xml infoset, then, when presented visually, that tabcharacter is treated as if it were a single&#20; (SPACE) character.

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-FO 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.3 Content Value Expressions

Core vocabulary may make use of the following expressions:

8.3.1 <absolute-profile-designator>

An <absolute-profile-designator> value expression is used to either (1) define the absolute designator associated witha locally defined profile or (2) refer to a remotely defined profile.

Syntax Representation – <absolute-profile-designator>
<absolute-profile-designator>  :<absolute-uri>

Note:

In the present context,locally defined means defined in the current document, whileremotely definedmeans defined in another document.

8.3.2 <absolute-uri>

An <absolute-uri> value expression is used to specify an absolute URI[URI].

Syntax Representation – <absolute-uri>
<absolute-uri>  :<uri>                                     // absolute form only

In the context of an <absolute-uri> value expression, the value syntax of the<uri> expressionmust adhere to the absolute form of a URI as defined by[URI], §4.3.

8.3.3 <arguments>

A <arguments> value is a sub-expression used with afunction-expression non-terminal of an<expression> value.

Syntax Representation – <arguments>
<arguments>  : "("<lwsp>? ")"  | "("<lwsp>? argument-list<lwsp>? ")"argument-list  :<expression> (<lwsp>? ","<lwsp>?<expression>)*

8.3.4 <bound-parameter>

A <bound-parameter> value is one of an enumerated collection of named parameters bound to a value by thecontent processor.

Syntax Representation – <bound-parameter>
<bound-parameter>  : "forced"  | "mediaAspectRatio"  | "mediaLanguage"  | "userLanguage"
forced

Evaluates to a boolean value that denotes whether thecontent processor is operating withforced subtitles enabled.If used in adocument instance, then ausesForcednamed metadata item should be specified as a child of thehead element.

mediaAspectRatio

Evaluates to a numeric value equal to the aspect ratio of therelated media object.

mediaLanguage

Evaluates to a string value equal to the (primary) language of therelated media object.

userLanguage

Evaluates to a string value equal to the (primary) language of the user as determined by thedocument processing context.

8.3.5 <condition>

A <condition> value is used to specify an expression that evaluates to a binary valuewhich is used to determine if the semantics of aconditionalized element is respected or ignored during content processing.

Syntax Representation – <condition>
<condition>  :<expression>

Afunction-expression that appears in a <condition> value must take the formof a<condition-function> expression.

8.3.6 <condition-function>

A <condition-function> value is a sub-expression that may be used in a<condition> value expression.

Syntax Representation – <condition-function>

8.3.7 <expression>

An <expression> value is a sub-expression of a<condition> value.

Syntax Representation – <expression>
<expression>  : logical-or-expressionlogical-or-expression  : logical-and-expression  | logical-or-expression<lwsp>? "||"<lwsp>? logical-and-expressionlogical-and-expression  : equality-expression  | logical-and-expression<lwsp>? "&&"<lwsp>? equality-expressionequality-expression  : relational-expression  | equality-expression<lwsp>? "=="<lwsp>? relational-expression  | equality-expression<lwsp>? "!="<lwsp>? relational-expressionrelational-expression  : additive-expression  | relational-expression<lwsp>? "<"<lwsp>? additive-expression  | relational-expression<lwsp>? ">"<lwsp>? additive-expression  | relational-expression<lwsp>? "<="<lwsp>? additive-expression  | relational-expression<lwsp>? ">="<lwsp>? additive-expressionadditive-expression  : multiplicitive-expression  | additive-expression<lwsp>? "+"<lwsp>? multiplicitive-expression  | additive-expression<lwsp>? "-"<lwsp>? multiplicitive-expressionmultiplicitive-expression  : unary-expression  | multiplicitive-expression<lwsp>? "*"<lwsp>? unary-expression  | multiplicitive-expression<lwsp>? "/"<lwsp>? unary-expression  | multiplicitive-expression<lwsp>? "%"<lwsp>? unary-expressionunary-expression  : primary-or-function-expression  | "+"<lwsp>? unary-expression  | "-"<lwsp>? unary-expression  | "!"<lwsp>? unary-expressionprimary-or-function-expression  : primary-expression  | function-expressionprimary-expression  : identifier  | literal  | "("<lwsp>? expression<lwsp>? ")"function-expression  : identifier<arguments>identifier  :xsd:NCNameliteral  : boolean-literal  | numeric-literal  | string-literalboolean-literal  : "true"  | "false"numeric-literal  : decimal-literaldecimal-literal  : decimal-integer-literal "." decimal-digits? exponent-part?  | decimal-integer-literal exponent-part?  | "." decimal-digits exponent-part?decimal-integer-literal  : "0"  | non-zero-digit decimal-digits?decimal-digits  : decimal-digit  | decimal-digits decimal-digitdecimal-digit  : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"non-zero-digit  : "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"exponent-part  : exponent-indicator signed-integerexponent-indicator  : "e" | "E"signed-integer  : decimal-digits  | "+" decimal-digits  | "-" decimal-digitsstring-literal  :<quoted-string>

Note:

For avoidance of doubt, take note that no linear whitespace (LWSP) is permitted between theidentifier token and the initial openparenthesis '(' character of the following<arguments> expression of afunction-expression.

8.3.8 <fragment-profile-designator>

A <fragment-profile-designator> value expression is used to designate a local profile by reference.

Syntax Representation – <fragment-profile-designator>
<fragment-profile-designator>  :<fragment-uri>

8.3.9 <fragment-uri>

A <fragment-uri> value expression is used to specify a fragment URI[URI].

Syntax Representation – <fragment-uri>
<fragment-uri>  :<uri>                                     // fragment component only

In the context of a <fragment-uri> value expression, the value syntax of the<uri> expressionmust adhere to the fragment component of a URI as defined by[URI], §3 and §3.5,i.e., the scheme, authority, path, and query components are empty (not specified), and only the fragment component is non-empty (specified).

8.3.10 <media-function>

A <media-function> value is a sub-expression that may be used in a<condition> value expressionin order to perform a media query on therelated media object or thedocument processing context.

Syntax Representation – <media-function>
<media-function>  : "media("<lwsp>? media-query<lwsp>? ")"media-query  :<quoted-string>

Themedia-query argument of a <media-function> value expression must adhere tothe syntax of themedia_query_list defined by[Media Queries], §3.

A <media-function> value expression evaluates totrue if the specified media queryevaluates totrue, otherwise, the value expression evaluates tofalse.

If the semantics of a <media-function> expression is not supported, then that expression mustevaluate tofalse.

8.3.11 <profile-designator>

A <profile-designator> value expression is used to designate a profile, either for the purpose of defining a profileor for the purpose of referencing a defined profile.

Syntax Representation – <profile-designator>

8.3.12 <parameter-function>

A <parameter-function> value is a sub-expression that may be used in a<condition> value expressionin order to obtain a named parameter of thedocument processing context.

Syntax Representation – <parameter-function>
<parameter-function>  : "parameter("<lwsp>? parameter-name<lwsp>? ")"parameter-name  :<quoted-string>

When de-quoted, theparameter-name argument of a <parameter-function> value expression must adhere to anxsd:NCName, which must, in turn, be one of the values enumeratedby<bound-parameter>.

A <parameter-function> value expression evaluates to the value associated with (bound to) thespecified parameter name.

8.3.13 <quoted-string>

A <quoted-string> value expression is used to specify a double or single quoted string.

Syntax Representation – <quoted-string>
<quoted-string>  : double-quoted-string  | single-quoted-stringdouble-quoted-string  : '"' ([^"\\] | escape)* '"'single-quoted-string  : "'" ([^'\\] | escape)* "'"escape  : '\\'char

Note:

For avoidance of doubt, take note that linear whitespace (LWSP) is permitted in a quoted string expression, but that itis subject toXML Attribute-Value Normalizationwhen constructing areduced xml infoset from atimed text document instance.

8.3.14 <relative-profile-designator>

A <relative-profile-designator> value expression is used to refer to a standardized profile with respect tothe TT Profile Namespace, which serves as the base URI with which relative profile designators are absolutized.

Syntax Representation – <relative-profile-designator>
<relative-profile-designator>  :<relative-uri>

Note:

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

8.3.15 <relative-uri>

A <relative-uri> value expression is used to specify a relative URI[URI].

Syntax Representation – <relative-uri>
<relative-uri>  :<uri>                                     // no scheme component present

In the context of a <relative-uri> value expression, the value syntax of the<uri> expressionmust adhere to the relative form of a URI as defined by[URI], §3,i.e., the scheme and authority components are empty (not specified), but the path, and, optionally, the query and fragment components are specified.

8.3.16 <supports-function>

A <supports-function> value is a sub-expression that may be used in a<condition> value expressionin order to obtain a boolean value that denotes whether a specifiedfeature orextensionis supported or not.

Syntax Representation – <supports-function>
<supports-function>  : "supports("<lwsp>? feature-or-extension-designator<lwsp>? ")"feature-or-extension-designator  :<quoted-string>

Thefeature-or-extension-designator argument of a <supports-function> value expression must expressa feature designation or an extension designation as defined byE.1 Feature Designations andF.1 Extension Designations, respectively, and where thefeature-namespace orextension-namespace component of the designation is optional, and, ifnot specified, is considered to be equal to theTT Feature Namespace orTT Extension Namespace,respectively.

A <supports-function> value expression evaluates totrue if the specified feature or extensiondesignator is (semantically) supported by thecontent processor.

8.3.17 <uri>

A <uri> value expression is used to specify a URI[URI].

Syntax Representation – <uri>
<uri>  :xsd:anyURI

The value syntax of thexsd:anyURI data type must adhere to the definition specified by[XML Schema Part 2], §3.2.17.

Note:

For avoidance of doubt, characters designated to be excluded in a URI by[URI], §2,Characters, and, more specifically, the XML whitespace characters &#9; (HT), &#10; (LF), &#13; (CR), and &#20; (SPACE), as specified in[XML 1.0], §3.3.3, step (3), first bullet, do not appear in an unescaped form in the lexical representation of a<uri> value.

8.3.18 <uri-list>

A <uri-list> value expression is used to specify a non-empty list of URI[URI] expressions.

Syntax Representation – <uri-list>
<uri-list>  :<uri> (<lwsp><uri>)*

9 Embedded Content

This section specifies theembedded content matter of the corevocabulary catalog, where, in this context,content is to be understood as data of an arbitrary content type (format)andembedded refers to the embedding (inlining) of this data or the embeddingof a reference to external data.

9.1 Embedded Content Element Vocabulary

The following elements may be used to specify embedded content:

The9.1.3 data element serves asa generic container element for anembedded data resource, which may or may not be fragmented into chunks,in which case a data fragment is represented using the9.1.2 chunk element.The9.1.1 audio,9.1.4 font, and9.1.5 image elements are specialized elements used toto reference specific types of embedded content.The9.1.6 resources element is used togroup definitions of embedded content for reference by subsequent elements.The9.1.7 source element may be used toexpress the source of embedded content.

9.1.1 audio

Theaudio element is used to define or refer to anaudio resource.

Anaudio element may appear in two contexts: (1) as a child of aresources element and(2) as a child of an element in theBlock.class element group, namely, as a child of adiv orp element, oras a child of aspan element. The former is referred to as anaudio defining context, the latter as anaudio presentation context.

When anaudio element appears in anaudio defining context, itserves as a sharable definition of anaudio resource that may be referenced by otheraudio elements in theenclosing document instance.

Note:

A sharable definition of anaudio resource specifies anxml:id attribute in order to be referencedbyaudio elements in anaudio presentation context.

When anaudio element appears in anaudio presentation context, itserves as a non-sharable definition of anaudio resource that implies presentation (rendering) semantics, i.e., that it is intended to be played.

Note:

A non-sharable definition of anaudio resource may or may not specify anxml:id attribute, but thisidentifier is not referenced by otheraudio elements, or, if it is, the reference is ignored.

Theaudio element accepts as its childrenzero or more elements in theMetadata.class element group, followed byzero or more elements in theAnimation.class element group, followed by zero or moresource elements.

Note:

No text node descendant of anaudio element is a significant text node for the purpose of performing the[construct anonymous spans] procedure.

XML Representation – Element Information Item: audio
<audioanimate = IDREFSbegin =<time-expression>  clipBegin =<time-expression>  clipEnd =<time-expression>condition =<condition>dur =<time-expression>end =<time-expression>src =<audio>style = IDREFStimeContainer = ("par" |"seq")type =xsd:stringxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes inTT Style Namespaces}  {any attributes in TT Metadata Namespace}Content:Metadata.class*,Animation.class*,source*</audio>

Anaudio element designates anaudio resource by(1) referring to abuilt-in data resource,(2) referring to anexternal data resource, or(3) defining or referring to anembedded data resource,where thedata resource contains audio content.

If anaudio element specifies asrc attribute, then it must not specify achildsource element. Conversely,if anaudio element does not specify asrc attribute, then it must specify one or morechildsource elements.

If anaudio element specifies asrc attribute and its value does not refer to a fragment of theenclosing document instance, then it should specify atype attribute, in which case the value of thetype attribute must correspond with the media (content) typeof the referenced resource. Otherwise, atype attribute must not be specified.

If specified, the value of theclipBegin attribute must adhere to theoffset-time form of a12.3.1 <time-expression>, in which case, the value of this expression denotes a normal play time offset relative to thebeginning of the referenced audio content, and designates the point where audio presentation commences.If this specified value is greater than the intrinsic durationof the referenced audio content, then the resolved value ofclipBegin is considered to be the intrinsic duration.If noclipBegin attribute is specified, then a value of0 applies.

Similarly, if specified, the value of theclipEnd attribute must adhere to theoffset-time form of a12.3.1 <time-expression>, in which case, the value of this expression denotes a normal play time offset relative to thebeginning of the referenced audio content, and designates the point where presentation ceases.If this specified value is greater than the intrinsic durationof the referenced audio content, then the resolved value ofclipEnd is considered to be the intrinsic duration.If noclipEnd attribute is specified, then a value equal to the intrinsic duration of the audio content applies.

The use of theaudio element is illustrated by the following example.

Example Fragment – External Audio Resource
...<audio src="http://example.com/audio/description.mp3" type="audio/mp3"/>...

9.1.2 chunk

Thechunk element is used to represent a distinct chunk (fragment) of data.

Achunk element may appear as a child of adata element.

XML Representation – Element Information Item: chunk
<chunkcondition =<condition>encoding = ("base16" |"base32" |"base32hex" |"base64" |"base64url") : base64  length =xsd:nonNegativeIntegerxml:base =<uri>xml:id = IDContent: #PCDATA</chunk>

If anencoding attribute is specified, then it must denote the actual encoding of the byte sequence represented by thechunk element. If noencoding attribute is specified, then the encoding must be considered to bebase64.

If alength attribute is specified, then it must denote the number of decoded bytes in the byte sequence represented by thechunk element. When decoding, if a specified length value does not match the number of decoded bytes, then the chunk and its containerdataelement must return a zero length byte sequence.If nolength attribute is specified, then the chunk is considered to have a length equal to the actual number of decoded bytes.

The use of chunked data is illustrated by the following example.

Example Fragment – Chunked Data
...<data type="text/plain; charset=us-ascii" length="44">  <chunk length="19">    VGhlIHF1aWNrIGJyb3duIGZveA==  </chunk>  <chunk length="25">    IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLg==  </chunk></data>...

9.1.3 data

Thedata element functions as a generic container for or reference to arbitrary data.

Adata element may appear in three contexts:(1) as a child of aresources element,referred to as adata defining context,(2) as a child of ametadata element,referred to as adata binding context for metadata, or(3) as a child of asource element,referred to as adata binding context for source,and where these latter two contexts are referred to collectively asdata binding contexts.

When adata element appears in adata defining context, itserves as a sharable definition of a data resource that may be referenced by thesrc attribute of(1) anotherdata element,(2) anembedded content element, or(3) asource element.In this case, the contextualized active time interval of thedata element is the intersection ofthe active time interval of its parentresources element andthe active time interval of its referring element.

Note:

A sharable definition of a data resource specifies anxml:id attribute in order to be referencedby a fragment identifier used in adata binding context.

When adata element appears in adata binding context, itserves as a non-sharable definition of a data resource that implies binding semantics, i.e., that it is intended to bound to (associated with) its immediate contextof reference. In this case, the active time interval of thedata element is the same as the active time interval of its closest ancestortimed element.

Note:

A non-sharable definition of a data resource may or may not specify anxml:id attribute, but thisidentifier is not referenced in otherdata binding contexts, or, if it is, has no binding semantics.

Thedata element accepts one of the following three content models:(1) one or more text nodes (i.e.,#PCDATA),(2) zero or more elements in theMetadata.class element group followed by one or morechunk elements, or(3) zero or more elements in theMetadata.class element group followed by one or moresource elements, wherethe first is referred to assimple data embedding,the second aschunked data embedding, andthe third assourced data embedding.

Whensimple data embedding is used, the data resource is obtained by decoding the#PCDATA content.Whenchunked data embedding is used, the data resource is obtained by concatenating the byte sequences obtained by decoding eachchildchunk element.Whensourced data embedding is used, the data resource is obtained from the first resolvablechildsource element. Furthermore,a childsource element must notcontain adata element, but may refer to adata element in adata defining context.

XML Representation – Element Information Item: data
<datacondition =<condition>encoding = ("base16" |"base32" |"base32hex" |"base64" |"base64url") :see prose belowformat =<data-format>  length =xsd:nonNegativeIntegersrc =<data>type =xsd:string :see prose belowxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content: #PCDATA | (Metadata.class*,chunk+) | (Metadata.class*,source+)</data>

If simple data embedding is used, i.e., the content of thedata element is one or more text nodes, then anencoding attributemay be specified, and, if not specified, must be considered to bebase64.If chunked or sourced data embedding is used, i.e., the content of thedata element contains any childchunk orsource element, thenanencoding attribute must not be specified, and, if specified, must be ignoredfor the purpose of content processing.

If alength attribute is specified, then it must denote the number of decoded bytes in the byte sequence represented by thedata element. When decoding, if a specified length value does not match the number of decoded bytes, then a zero length byte sequence must be returned.If nolength attribute is specified, then the data resource is considered to have a length equal to the actual number of decoded bytes.Alength attribute must not be specified when using sourced data embedding.

Note:

The intention of thelength attribute is to provide a means to perform a simple integrity check on decoded data. Note that this check does not guaranteedata integrity during transport, i.e., the data could be modified without modifying the length.

If simple or chunked data embedding is used, atype attribute must be specified,and must correspond with the media (content) type of the data resource. In these cases, if there is no defined type, the typeapplication/octet-streamshould be used. In the case of sourced data embedding, the media (content) type of the resolvedsource elementis used as the type.

If atype attribute is not specified or resolved or is specified as a generic type,such asapplication/octet-stream, and additional format information is known about a referenced data resource that cannot beexpressed in a Media Type[MIME Media Types] parameter,then aformat attribute may be specified as a hint to the content processor.

The use of simple data embedding is illustrated by the following examples.

Example Fragment – Simple Data Embedding in Data Defining Context
<head>  <resources>    <data xml:id="sharedImageData" type="image/png" length="119">      iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8      YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=    </data>    <image xml:id="sharedImage">      <source src="#sharedImageData"/>    </image>  </resources></head>...<body xmlns:tts="http://www.w3.org/ns/ttml#styling">  <div tts:backgroundImage="#sharedImage"/>  <div tts:backgroundImage="#sharedImage"/></body>

Example Fragment – Simple Data Embedding in Data Binding Context for Metadata
<div>  <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">    <ttm:desc>caption with metadata containing tunneled data</ttm:desc>    <data encoding="base64">      TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz      IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg      dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu      dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo      ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=    </data>  </metadata>  <p>Caption with Tunneled Data</p></div>

Example Fragment – Simple Data Embedding in Data Binding Context for Source
<div>  <image>    <source>      <data type="image/png" length="119">        iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=      </data>    </source>  </image></div>

9.1.4 font

Thefont element is used to define or refer to afont resource.

Afont element may appear as a child of aresources element, referred to as afont defining context.

Thefont element accepts as its childrenzero or more elements in theMetadata.class element group followed by zero or moresource elements.

XML Representation – Element Information Item: font
<fontcondition =<condition>  family =xsd:string  range =<unicode-range>  style = ("normal" |"italic" |"oblique") :see prose belowsrc =<font>type =xsd:string  weight = ("normal" |"bold") :see prose belowxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content:Metadata.class*,source*</font>

Afont element defines afont resource by(1) referring to abuilt-in data resource,(2) referring to anexternal data resource, or(3) defining or referring to anembedded data resource,where thedata resource contains font content.

If afont element specifies asrc attribute, then it must not specify achildsource element. Conversely,if afont element does not specify asrc attribute, then it must specify one or morechildsource elements.

If afont element specifies asrc attribute and its value does not refer to a fragment of theenclosing document instance, then it should specify atype attribute, in which case the value of thetype attribute must correspond with the media (content) typeof the referenced resource. Otherwise, atype attribute must not be specified.

If any of thefamily,range,style, orweight attributes are specified, thenthey override the family name, supported character ranges, style, and weight of the actualfont resource. In particular,if the specified attribute value(s) differ from the value(s) of these font characteristics as encoded in thefont resource, thenthe specified attribute value(s) are to be used instead of the font characteristics encoded in thefont resource.

If any of thefamily,range,style, orweight attributes are not specified, then their valuesmust be considered to be equal to the value(s) of the same named font characteristics encoded in thefont resource.

Note:

Authors are advised to use subset fonts wherever possible. A subset font is a syntactically validfont resource thatremoves unreferenced glyphs and unreferenced glyph metrics. In general, a subset font is tied to a specific document, since it may have been generatedbased on the actual character content of that document.

For the purpose of dereferencing (downloading) font resources, acontent processormay defer the downloading process until such time that the content of the font resource is necessary in order to perform the necessary(transformation or presentation) processing.

The use of thefont element is illustrated by the following example.

Example Fragment – Font
...<head>  <resources>    <data xml:id="lastResortFont" type="application/font-woff">      ...base64 encoded data ...    </data>    <font family="MyFont" range="u+20-7f,u+90-9f">      <source src="http://example.com/fonts/myfont.otf" type="font/otf"/>      <source src="#lastResortFont"/>    </font>  </resources></head>...<p tts:fontFamily="MyFont">use my font or last resort font</p>...

9.1.5 image

Theimage element is used to define or refer to animage resource.

Animage element may appear in two contexts: (1) as a child of aresources element and(2) as a child of an element in theBlock.class element group, namely, as a child of adiv orp element, oras a child of aspan element. The former is referred to as animage defining context, the latter as animage presentation context.

When animage element appears in animage defining context, itserves as a sharable definition of animage resource that may be referenced by anotherimage element or byatts:backgroundImage style attributein theenclosing document instance.

Note:

A sharable definition of animage resource specifies anxml:id attribute in order to be referencedby animage element or by atts:backgroundImage style attributein animage presentation context.

When animage element appears in animage presentation context, itserves as a non-sharable definition of animage resource that implies presentation (rendering) semantics.

Note:

A non-sharable definition of animage resource may or may not specify anxml:id attribute, but thisidentifier is not referenced by otherimage elements, or, if it is, the reference is ignored.

When animage element appears as a child of adiv element, then its presentationproduces a block area in which the image is rendered; i.e., a block boundary is implied before and after theimage element. In contrast,when animage element appears as a child of ap orspanelement, then its presentation produces an inline area in which the image is rendered; i.e., no block boundary is implied before and after theimage element.

Note:

In[CSS2], these semantics would correspond to animage element being associated with adisplay style property with avalue ofblock orinline, respectively.

The presentation of animage resource referenced by atts:backgroundImage style attribute must not affect content layout.

Theimage element accepts as its childrenzero or more elements in theMetadata.class element group, followed byzero or more elements in theAnimation.class element group, followed byzero or moresource elements.

Note:

No text node descendant of animage element is a significant text node for the purpose of performing the[construct anonymous spans] procedure.

XML Representation – Element Information Item: image
<imageanimate = IDREFSbegin =<time-expression>condition =<condition>dur =<time-expression>end =<time-expression>region = IDREFsrc =<image>style = IDREFStimeContainer = ("par" |"seq")type =xsd:stringxlink:arcrole =<uri-list>xlink:href =<uri>xlink:role =<uri-list>xlink:show = ("new" |"replace" |"embed" |"other" |"none") : newxlink:title =xsd:stringxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes inTT Style Namespaces}  {any attributes in TT Metadata Namespace}Content:Metadata.class*,Animation.class*,source*</image>

Animage element defines animage resource by(1) referring to abuilt-in data resource,(2) referring to anexternal data resource, or(3) defining or referring to anembedded data resource,where thedata resource contains image content.

If animage element specifies asrc attribute, then it must not specify achildsource element. Conversely,if animage element does not specify asrc attribute, then it must specify one or morechildsource elements.

If animage element specifies asrc attribute and its value does not refer to a fragment of theenclosing document instance, then it should specify atype attribute, in which case the value of thetype attribute must correspond with the media (content) typeof the referenced resource. Otherwise, atype attribute must not be specified.

Animage element may specify antts:extentstyle attribute in order to specify the presentation width or height of the imagewhen intrinsic width or height information is not available or is intended to be overridden. If this attribute is specified on both animage element in animage presentation context and on theimage element in animage defining context to which the former refers, thenthe attribute specified on the former takes precedence over the one specified on the latter. Presentation of an image to which atts:extent style attribute applies is subject to a (possibly anamorphic)scaling operation in order to obtain the width and height of the specified extent.

The linking attributesxlink:* may be used to link animage element with related content, using thespecified location (href), roles, and title. The behavior of link activation is affected by thexlink:show attribute,the precise meaning of which is determined by thedocument processing context.

When animage appears in animage defining context the following additionalconstraints apply:

  1. attributesanimate,begin,dur,end,region, andtimeContainer must not be specified, and, if they appear, must be ignored for the purpose of presentation processing;

  2. elements from theAnimation.class element group must not appear as child elements, and, if they appear, must be ignored for the purpose of presentation processing.

The use of theimage element is illustrated by the following examples.

Example Fragment – External Image Resources
<div>  <p>This division has a content image that appears as a block area after this paragraph.</p>  <image src="http://example.com/images/caption.png" type="image/png"/><div>...<div tts:backgroundImage="http://example.com/images/background.png">  <p>This division has a background image that appears under this paragraph.</p><div>...

Example Fragment – Sharable Embedded Image Resource
<head>  <resources>    <data xml:id="caption" type="image/png" length="119">      iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8      YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=    </data>  </resources></head><body>  <div>    <p>      <image>        <source src="#caption"/>      </image>    <p>    ...    <p>      <image>        <source src="#caption"/>      </image>    <p>  </div></body>

Example Fragment – External Image Resource with Non-Sharable Image Fallback
<div>  <image>    <source src="http://example.com/images/caption.png" type="image/png"/>    <source>      <data type="image/png" length="119">        iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=      </data>    </source>  </image></div>

Note:

Theimage element incorporates and expands the capabilities of the#image extension introduced in[SMPTE ST 2052-1]. In particular,asmpte:backgroundImage attribute that references acontent image can be mapped to animage elementwhosesrc attribute is equal to the value of thesmpte:backgroundImage attribute.

9.1.6 resources

Theresources element is a container element used to groupdefinitions of embedded content, including metadata that applies to this embedded content.

Theresources element accepts as its children zero or moreelements in theMetadata.class element group,followed by zero or more elements in theData.class,Embedded.class, orFont.class element groups.

XML Representation – Element Information Item: resources
<resourcesxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content:Metadata.class*, (Data.class|Embedded.class|Font.class)*</resources>

To the extent that time semantics apply to the content of theresources element, the implied time interval of this element isdefined to be coterminous with theroot temporal extent.

9.1.7 source

Thesource element is used to specify the source of anembedded content resource.

Thesource element accepts as its childrenzero or more elements in theMetadata.class element group followed by zero or onedata element.

If asource element specifies asrc attribute, then it must not specify achilddata element, in which case it is referred to asanexternal source if thesrc attribute refers to an external resource, oranon-nested embedded sourceif thesrc attribute refers to an embedded resourcein theenclosing document instance.

If asource element does not specify asrc attribute, then it must specify achilddata element, in which case it is referred to asanested embedded source.

Asource element must not have an ancestorsource element.

XML Representation – Element Information Item: source

If aformat attribute is specified, then it provides additional hint information about the format (i.e., formal syntax) of theembedded content. Such information may be useful in cases where no standard media (content) type label has been defined or the information cannot beexpressed in a Media Type parameter[MIME Media Types]. Depending on thecontext of use of asource element, the values of this attribute may be further constrained.

If asrc attribute is specified and its value refers to a fragment of theenclosing document instance,then there must be adata element child of aresourceselement which is identified by that fragment, i.e., has anxml:id attribute, the value of which matches the fragment identifier.

If asrc attribute is specified and its value does not refer to a fragment of theenclosing document instance, thenatype attribute should be specified, in which case it must correspond with the media (content) typeof the referenced resource.

If asrc attribute is specified and its value does refer to a fragment of theenclosing document instance, thenatype attribute must not be specified; rather, the content type of the embedded resource is determined bythe value of thetype attribute on the referenced or embeddeddata element.

The use of thesource element is illustrated by the following examples.

Example Fragment – External Source
...<image>  <source src="http://example.com/images/caption.png" type="image/png"/></image>...

Example Fragment – Non-Nested Embedded Source
...<data xml:id="caption" type="image/png" length="119">  iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8  YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=</data>...<image>  <source src="#caption"/></image>...

Example Fragment – Nested Embedded Source
...<image>  <source>    <data type="image/png" length="119">      iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8      YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=    </data>  </source></image>...

9.2 Embedded Content Attribute Vocabulary

This section defines the following attributes for use with certain embedded content element vocabulary:

9.2.1 encoding

Theencoding attribute is used to specify the encoding format of data.

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

If specified, the value of anencoding attribute must take one of the following values as defined by[Data Encodings]:

  • base16

  • base32

  • base32hex

  • base64

  • base64url

If not specified, thenbase64 semantics apply.

9.2.2 format

Theformat attribute is used to specify hints about the media (content) format ofan embedded content resource beyond media (content) type informationprovided by atype attribute.

Note:

Aformat attribute is useful in the absence of a registered media (content) type,e.g., when no media (content) type is available or a generic type is used, such asapplication/octet-stream.

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

The value of aformat attribute must adhere to a<data-format> expression.

Depending on the context of use, additional constraints may apply.

9.2.3 src

Thesrc attribute is used to specify the location or an identifier that maps to the location of data resource.

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

If specified, the value of asrc attribute must adhere to the value syntax of the<uri> value syntax.

Depending on the context of use, additional constraints may apply.

9.2.4 type

Thetype attribute is used to specify the media (content) type of data resource, and may express additionalparameters that characterize the data.

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

If specified, the value of atype attribute must adhere to the value syntax of theContent-TypeMIME header defined by[MIME], §5.1.

If not specified, then the media (content) type is unknown or deliberately unspecified.

When decoding a data resource for which atype attribute is specified, then content processingmust respect the specified type whether it is correct or not. That is, if atype attribute mis-specifies thetype of a data resource, then content processing must not attempt to override that type by performing contentsniffing.

9.3 Embedded Content Value Expressions

Embedded content elements as well as certain style property values make use of the following expressions:

9.3.1 <audio>

An <audio> value expression is used to specify anaudio resource by reference.

Syntax Representation – <audio>
<audio>  :<uri>

If an <audio> value expression takes the form of a barefragment identifier,then that fragment identifier must reference anaudio element that is a child of aresources element in theenclosing document instance.

If an <audio> value expression takes the valuehttp://www.w3.org/ns/ttml/resource/#empty,then the referencedaudio resource is theempty data resource.

If an <audio> value expression takes the valuehttp://www.w3.org/ns/ttml/resource/#speech, then, if aspeech synthesis processor is supported and enabled, thereferencedaudio resource is thespeech data resource;otherwise (if aspeech synthesis processor is not supported or is supported but disabled),then the referencedaudio resource is theempty data resource.

9.3.2 <data>

A <data> value expression is used to specify a data resource by reference.

Syntax Representation – <data>
<data>  :<uri>

If a <data> value expression takes the form of afragment identifier,then that fragment identifier must reference adata element that is a child of aresources element in theenclosing document instance.

9.3.3 <data-format>

A <data-format> expression is used to specify the format of a data resource. Additional format information is useful in the caseof data resources that lack a registered media (content) type.

Syntax Representation – <data-format>
<data-format>  :xsd:NCName  |<uri>

If a format expression takes the form of a<uri> value,then it must express an absolute URI.

Note:

This specification does not standardize the set of format tokens for use with data content. Authors are encouraged touse tokens in common use, or absent that, to add a prefix"x-" to form a private use token.

9.3.4 <font>

An <font> expression is used to specify afont resource by reference.

Syntax Representation – <font>
<font>  :<uri>

If a <font> expression takes the form of afragment identifier,then that fragment identifier must reference afont element that is a child of aresources element in theenclosing document instance.

9.3.5 <image>

An <image> expression is used to specify animage resource by reference.

Syntax Representation – <image>
<image>  :<uri>

If an <image> expression takes the form of afragment identifier,then that fragment identifier must reference animage element that is a child of aresources element in theenclosing document instance.

9.3.6 <unicode-range>

A <unicode-range> expression is used to specify a collection of Unicode codepoints by enumerating singleton codepoints or ranges of codepoints.

Syntax Representation – <unicode-range>
<unicode-range>  : range (<lwsp>? ","<lwsp>? range)*range  : codepoint  | codepoint "-" codepointcodepoint  : ("U"|"u") "+" hexdigit-or-wildcard{1,6}hexdigit-or-wildcard  :<hex-digit>  | "?"

10 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 TTMLpresentation 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-FO 1.1]. The effects of the attributes in this sectionare 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 usedto implement features it has in common with this model.

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

The styling attributes defined in this section may be specified by any element typethat permits use of attributes in theTT Style Namespaces; however, these attributes applyas style properties only to those element types indicated by the definition of each attribute. Furthermore,unless explicitly permitted by an element type definition, an attribute in theTT Style Namespacesshould not be specified on an element unless it either applies to that element or denotes an inheritable style property.If it does not apply to that element and does not denote an inheritable style property, then it must be ignored for the purposeof non-validation processing. In the case ofvalidation processing,such usage should be reported as a warning.

For the purpose of determining the applicability of a style property, if the style property is defined so as to apply to aspan element, then it also applies toanonymous span elements.

10.1 Styling Element Vocabulary

The following elements specify the structure and principal styling aspects of adocument instance:

10.1.1 initial

Theinitial element is used to modify the initial value of one or more style properties, i.e, to specify use of different value(s) thanthe specification defined initial value(s).

Theinitial element accepts as its children zero or moremetadata elements.

XML Representation – Element Information Item: initial
<initialcondition =<condition>xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes inTT Style Namespaces}Content:Metadata.class*</initial>

If more than oneinitial element specifies an initial value for the same style property, thenthe last value specified (in pre-traversal order) applies.

Theinitial element is illustrated by the following example, whereinthe initial value of thetts:color property is defined to beyellow.

Example Fragment –initial
...<head>  <styling><initial tts:color="yellow"/>  <styling><head>...

10.1.2 style

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

Thestyle element accepts as its children zero or moremetadata elements.

XML Representation – Element Information Item: style
<stylecondition =<condition>style = IDREFSxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes inTT Style Namespaces}Content:Metadata.class*</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 by10.4.1.2 Referential Styling and10.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.

Note:

If acondition attribute applies toastyle element and that condition evaluates tofalse,then its nested and inline styles are ignored; however, styles that wouldbe included by means of referential or chained referential styling are not ignored.See10.4.4.2 Specified Style Set Processing for further details.

10.1.3 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 by zero or moreinitial elements,followed by zero or morestyle elements.

XML Representation – Element Information Item: styling
<stylingxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content:Metadata.class*,initial*,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.

10.2 Styling Attribute Vocabulary

This section defines the10.2.1 style attribute usedwith certain animation elements,content elements, certain layout elements, and style definition 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:

In addition to the above visual styling attribues, this section specifies the following audio styling attributes in the TT Audio Style Namespacefor use with style definition elements andcontent elementsthat support inline style specifications:

Each style attribute (and corresponding property) defined in this section makes use of astyle property definition table, whichspecifies one or more of the following aspects of the style: value syntax, initial value,elements to which style semantically applies, whether style is inherited or not, how percentage values are interpreted (if applicable),whether (and how) style is animatable, and semantic basis (derivation).

For animatable styles, the termdiscrete refers to the use of either asetelement or ananimate element with thediscrete value for its<calculation-mode>. The termcontinuous refers tothe use of ananimate element with alinear,paced, orsplinevalue for its<calculation-mode>. The termnone indicates the styleis not animatable.

Note:

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

Note:

An inheritable style property may be expressed as a specified attribute on aregion element or on acontent 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.

10.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 as10.4.1.2 Referential Styling and10.4.1.3 Chained Referential Styling, forfurther information on its semantics.

10.2.2 tts:backgroundClip

Thetts:backgroundClip attribute is used to specify a style property thatdetermines thebackground painting rectangle withinwhich the background is painted.

Values:"border" |"content" |"padding"
Initial:border
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:backgroundClip derivation

Thetts:backgroundClip style is illustrated by the following example.

Example Fragment – Background Clip
<region xml:id="r1">  <style tts:extent="306px 114px"/>  <style tts:backgroundColor="red"/>  <style tts:backgroundOrigin="padding"/>  <style tts:padding="27px 72px"/>  <style tts:backgroundRepeat="noRepeat"/>  <styletts:backgroundImage="#blue102px57px"/>  <styletts:backgroundClip="content"/></region>

Example Rendition – Background Clip
TTML backgroundClip style property

10.2.3 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.

Values:<color>
Initial:transparent
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete; continuous
Semantic basis:backgroundColor derivation

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 30px"/></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

10.2.4 tts:backgroundExtent

Thetts:backgroundExtent attribute may be used to specify the extent (size) of a background imageindependently of the image's intrinsic extent (size).

Values:<extent>
Initial:auto
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:relative to width and height of the applicablebackground positioning rectangle
Animatable:discrete
Semantic basis:backgroundExtent derivation

If the value of this attribute isauto, then the computed valueof the style property must be considered to be the same as the intrinsic extent (size) of the associated background image.

If the value of this attribute iscontain, then the computed valueof the style property is determined by performing the[compute containment scaling] procedure,where the target rectangleTR is initialized to the intrinsic width and height of the image,the reference rectangleRR is set to thebackground positioning rectangle,and the resulting output value of the target rectangleTR is the computed value.

If the value of this attribute iscover, then the computed valueof the style property is determined by performing the[compute cover scaling] procedure,where the target rectangleTR is initialized to the intrinsic width and height of the image,the reference rectangleRR is set to thebackground positioning rectangle,and the resulting output value of the target rectangleTR is the computed value.

If the value of this attribute consists of two<measure>specifications, then the first specification is thewidth and the second specification is theheight,respectively, of the computed value of this property, in which case both<measure> specificationsmust resolve (or be resolvable) to non-negative lengths.

If the computed value of this style property differs from the image's intrinsic extent (size), then the image raster is scaled independentlyin each dimension to match the computed extent value.

If a computed value of the property associated with this attribute is not supported,then apresentation 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 background extent and the supported background 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 makes use of the nearest larger rather than nearest smaller supported distance.

Thetts:backgroundExtent style is illustrated by the following example.

Example Fragment – Background Extent
<region xml:id="r1">  <style tts:extent="306px 114px"/>  <style tts:backgroundColor="red"/>  <style tts:backgroundRepeat="noRepeat"/>  <styletts:backgroundImage="#blue102px57px"/>  <styletts:backgroundExtent="cover"/></region>

Example Rendition – Background Extent
TTML backgroundExtent style property

10.2.5 tts:backgroundImage

Thetts:backgroundImage attribute is used to specify a style property thatdesignates a backgroundnon-content image to be rendered asthe background image of a region or an area generated by content flowed into a region.

Atts:backgroundImage attribute should not make reference to acontent imageused to represent actual content, such as a raster image rendering of a caption. Rather, the use oftts:backgroundImageshould be limited to styling the background of an element where the content is represented by other means. If it is necessaryto represent content using a raster image, then it should be expressed by means of animageelement in a block or inline context.

Values:"none" |<image>
Initial:none
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:backgroundImage derivation

An<image> expression used with this style property may directly reference an externalimage resource;however, authors should refrain from doing so, and instead, constrain their usage to refer only toimagechildren of aresources element.

Note:

Referring indirectly to an image by means of animage element makes it possible tospecify an image as anembedded data resource, and specifyadditional information about the image, such as its content type, etc. Furthermore, by exploiting the use of multiplesource children in animage element,it becomes possible to specify resolution specific images and fallbackimage resources.

The extent of the content rectangle of an area generated by an element associated with a background image is not affected by the resolvedextent of the background image.

Note:

Some profiles of TTML1, such as[SMPTE ST 2052-1] and its dependent profiles, specify that a background image affects theextent of the content rectangle of an area generated by an associated element. When transforming between these profiles and TTML2,such a background image should be mapped to animage element,and not atts:backgroundImage attribute.

Thetts:backgroundImage style is illustrated by the following example.

Example Fragment – Background Image using Embedded Image Resource
<head>  <resources>    <image xml:id="blue102px57px">      <source>        <data type="image/png" length="119">          iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8          YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=        </data>      </source>    </image>  </resources></head>...<region xml:id="r1">  <style tts:extent="306px 114px"/>  <style tts:backgroundColor="red"/>  <style tts:backgroundClip="padding"/>  <style tts:backgroundRepeat="noRepeat"/>  <styletts:backgroundImage="#blue102px57px"/>  <style tts:padding="27px 72px"/></region>

Example Rendition – Background Image
TTML backgroundImage style property

10.2.6 tts:backgroundOrigin

Thetts:backgroundOrigin attribute is used to specify a style property thatdetermines thebackground positioning rectangle withinwhich the background is positioned.

Values:"border" |"content" |"padding"
Initial:padding
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:backgroundOrigin derivation

Thetts:backgroundOrigin style is illustrated by the following example.

Example Fragment – Background Origin
<region xml:id="r1">  <style tts:extent="306px 114px"/>  <style tts:backgroundColor="red"/>  <style tts:backgroundRepeat="noRepeat"/>  <styletts:backgroundImage="#blue102px57px"/>  <styletts:backgroundOrigin="content"/></region>

Example Rendition – Background Origin
TTML backgroundOrigin style property

10.2.7 tts:backgroundPosition

Thetts:backgroundPosition attribute is used to specify a style property thatdefines whether and how a background image is positioned in a region or an area generated by content flowed into a region.

Values:<position>
Initial:0% 0%
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:see prose
Animatable:discrete
Semantic basis:backgroundPosition derivation

A percentage value component for a horizontal position offset is relative to the width of thebackground positioning rectangle minus the width of the background image.A percentage value component for a vertical position offset is relative to the height of thebackground positioning rectangle minus the height of the background image.

Thetts:backgroundPosition style is illustrated by the following example.

Example Fragment – Background Position
<region xml:id="r1">  <style tts:extent="306px 114px"/>  <style tts:backgroundColor="red"/>  <style tts:backgroundRepeat="noRepeat"/>  <styletts:backgroundImage="#blue102px57px"/>  <styletts:backgroundPosition="center"/></region>

Example Rendition – Background Position
TTML backgroundPosition style property

10.2.8 tts:backgroundRepeat

Thetts:backgroundRepeat attribute is used to specify a style property thatdefines whether and how a background image is repeated (tiled) into a region or an area generated by content flowed into a region.

Values:"repeat" |"repeatX" |"repeatY" |"noRepeat"
Initial:repeat
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:backgroundRepeat derivation

Thetts:backgroundRepeat style is illustrated by the following example.

Example Fragment – Background Repeat
<region xml:id="r1">  <style tts:extent="306px 114px"/>  <style tts:backgroundColor="red"/>  <styletts:backgroundImage="#blue102px57px"/>  <styletts:backgroundRepeat="repeatX"/></region>

Example Rendition – Background Repeat
TTML backgroundRepeat style property

10.2.9 tts:border

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

Note:

When applied to a region, a border is applied as an inset to a region's extent, which is to say, the content rectangle of a region area is reduced bythe presence of a border applied to the region.

Values:<border>
Initial:none
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete; continuous (color only)
Semantic basis:border derivation

If no border thickness is specified in the value of thetts:border property,then the border thickness must be interpreted as if a thickness ofmedium were specified.

If a computed value of the border thickness associated with this attribute is not supported,then apresentation 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 border thickness and the supported border thickness 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 border thickness, is used.

If no border style is specified in the value of thetts:border property,then the border style must be interpreted as if a style ofnone were specified.

If a computed value of the border style associated with this attribute is not supported,then apresentation processor must use the valuesolid.

If no border color is specified in the value of thetts:border property,then the border color must be interpreted as if a color equalto the computed value of the element'stts:color style property were specified.

If no border radii is specified in the value of thetts:border property,then the border radii must be interpreted as if a radii of0 were specified.

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

Note:

In this context, the phraseclosest supported value means the value for which the computed border radii and the supported border radiiis minimized.

Thetts:border style is illustrated by the following example.

Example Fragment – Border
<region xml:id="r1">  <style tts:extent="306px 114px"/>  <styletts:border="2px solid red"/>  <style tts:color="white"/>  <style tts:displayAlign="center"/>  <style tts:padding="3px 30px"/></region>...<p region="r1"tts:border="4px solid green" tts:textAlign="center">  Twinkle, twinkle, little bat!<br/>  How <spantts:border="8px solid blue">I wonder</span> where you're at!</p>

Example Rendition – Border
TTML border style property

Thetts:border style with rounding is illustrated by the following example.

Example Fragment – Border with Rounding
<style xml:id="roundedBorder"tts:border="2px solid lime 10px" tts:backgroundColor="black"/>...<div tts:color="white" tts:textAlign="center">  <p>Border rounding on a <br/>p element.</p>  <p>    <span>Border rounding on span</span>    <br/>    <span>A shorter span</span>  </p></div>

Example Rendition – Border rounding
TTML border style property

10.2.10 tts:bpd

Thetts:bpd attribute is used to specify theblock progression dimension, or, more succinctly, thebpd of an area generated by content flowed into a region.

Note:

The termblock progression dimension is interpreted in a writing mode relative mannersuch thatbpd always corresponds to a distance in the blockprogression direction. Therefore, in horizontal writing modes,bpd expresses a vertical distance,while, in vertical writing mode,bpd expresses a horizontal distance,where horizontal and vertical are always interpreted in an absolute sense.

Values:<measure>
Initial:auto
Applies to:body,div,p,span
Inherited:no
Percentages:see prose
Animatable:discrete
Semantic basis:bpd derivation

If a<measure> is expressed as a<length> value, then it must be non-negative.

If atts:bpd attribute is specified on aspan elementand the computed value of thetts:display property that applies to that element is notinlineBlock,then the semantics oftts:bpd only apply when computing the block progression dimension of any applicable background color or image;however, the dimensions of the content rectangles of the generated areas are not changed.

If a percentage value is used in a<length> expression of this attribute,it is resolved with respect to the applicableabsolute dimension of the generated area's containing area(the nearest ancestor area).

Note:

A<length> expression used with this attribute is associated with a specific, writing mode relative dimension, which is then resolved to anabsolute dimension in accordance with the applicable writing mode. If thatabsolute dimension is vertical (horizontal), then a percentage value is resolved in terms of the same vertical (horizontal)absolute dimension of the reference area (the nearest ancestor area).

Thetts:bpd style is illustrated by the following example.

Example Fragment – Block Progression Dimension
<p tts:fontSize="24px" tts:lineHeight="48px"tts:bpd="96px">  the woods are <span tts:display="inlineBlock"tts:bpd="36px">getting green</span> ...</p>

Note:

In the above example, thetts:bpd attribute on thep elementassigns a fixed dimension to the height of the content rectangle of the block area generated by the paragraph, whilethetts:bpd attribute on thespan element assigns a fixeddimension to the height of the content rectangle of the inline block area generated by the span.

10.2.11 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.

Values:<color>
Initial:see prose
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete; continuous
Semantic basis:color derivation

The initial value of thetts:color propertyis considered to be implementation dependent. In the absence ofend-user preference information, a conformantpresentation 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

10.2.12 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,about which see[UAX9].

Values:"ltr" |"rtl"
Initial:ltr
Applies to:p,span
Inherited:yes, but seespecial semantics
Percentages:N/A
Animatable:discrete
Semantic basis:direction derivation

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 (oranonymous 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 apresentation processor must use the valueltr.

Thetts:direction style is illustrated by the following example.

Example Fragment – Direction
<p>The title of the book is"<span tts:unicodeBidi="embed"tts:direction="rtl">نشاط التدويل، W3C</span>"</p>

Example Rendition – Direction
TTML direction style property
10.2.12.1 Special Semantics of Direction

When performing style resolution processing (see10.4.4 Style Resolution Processing),the resolution of the computed value oftts:direction on aregion elementR is determined according to the following ordered rules, where the first applicable rule applies:

  1. if atts:direction attribute is specified onR, then the computed valuetts:direction is the specified value;

  2. if atts:writingMode attribute is specified onR, then the computed valuetts:direction is theinline progression direction determined by the computed value oftts:writingMode onR;

  3. otherwise, the computed value oftts:direction is the initial value.

Note:

The computed value oftts:direction on aregion elementas determined above effectively becomes the value oftts:direction inherited by elements that are subject toregion style inheritance semantics.

In the case of any other elementE, whereE is not aregion element, the presence or absence of atts:writingMode attributehas no affect on the resolution of the computed value oftts:direction onE.

10.2.13 tts:disparity

Thetts:disparity attribute is used to specify the binocular disparity to be appliedin order to simulate stereopsis (stereoscopic depth). A disparity of zero corresponds to the plane of display; a negative value corresponds to depths in front of the plane of display; and a positive value corresponds to depths behind the plane of display. See[SMITH] for details on the relationshipbetween disparity and perceived depth.

Values:<length>
Initial:0px
Applies to:region; seespecial usage fordiv andp
Inherited:no
Percentages:relative to width ofroot container region
Animatable:discrete; continuous
Semantic basis:disparity derivation

When rendering a region on the right (left) image of a stereoscopic image pair, the center of the region is offset along the horizontal axis by a value equal to ½ (-½) the computed value oftts:disparity, where a positive offset is to the right, and a negative offset is to the left.

Unless rendering onto a stereoscopic image pair, thetts:disparity attribute is ignored for the purpose of presentation processing.

The author should ensure that the perceived depth of a region is positioned in front of any object in the scene during the entire time the region is visible. The stereoscopic effect will be broken if an object in the scene is perceived to be in front of the region.

If a computed value of the property associated with this attribute is not supported,then apresentation 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 disparity and the supported disparity is minimized. If there are multiple closest supported values equally distant fromthe computed value, then the value least distant from 0 is used.

Note:

In general, the presentation of stereoscopic content depends on the useof sub-pixel (anti-aliasing) rendering techniques; as such, implementationsthat quantize disparity adjusted positions to an integral valuemay produce undesirable side effects. This is particularlydisconcerting when smooth animation of disparity applies, e.g.,when the author is attempting to maintain a constant distance between a subject andits associated text.

Thetts:disparity style is illustrated by the following example fragment and rendition. Note that, in typical television scenarios, disparity ranges from -1% to 2% of screen width. This example, which uses a disparity of 5%, exaggerates the effects of disparity for clarity of illustration.

Example Fragment – Disparity
<region xml:id="r1">  <style tts:extent="80% 10%"/>  <style tts:origin="10% 10%"/>  <styletts:disparity="5%"/>...</region>...<p region="r1">  Stereoscopic</p>

Example Rendition – Disparity (Left and Right Images)
TTML disparity style property
10.2.13.1 Special Usage of Disparity

Whentts:disparity is specified exceptionally ondiv orp,11.1.2.1 Special Semantics of Inline Animation applies.

10.2.14 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.

Values:"auto" |"none" |"inlineBlock"
Initial:auto
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:display derivation

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.

If the value of this attribute isinlineBlock and this attribute is appliedto aspan element, theninline block display semantics apply and the elementis a candidate for region layout and presentation. Furthermore, it is considered an error if theinlineBlock value is applied to any element which is not aspan element.

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)

10.2.15 tts:displayAlign

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

Values:"before" |"center" |"after" |"justify"
Initial:before
Applies to:body,div,p,region
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:displayAlign derivation

If the value of this attribute isjustify, then (unused) available space in theblock progression dimension is evenly distributed between block area children ofthe block area generated by the element to which this attribute applies.

If a computed value of the property associated with this attribute is not supported,then apresentation 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

10.2.16 tts:extent

Thetts:extent attribute may be used for the following purposes:

  1. to specify thewidth andheightof theroot container region,which has the effect of definingthedocument coordinate space,about which seeH.3 Coordinate Space;

  2. to specify or override thewidth andheightof acontent region;

  3. to specify thewidth andheightof an image, overriding its intrinsic extent.

Note:

If either (or both) border or (and) padding are applied to a region, then the region's extent includes that border and padding,i.e., border and padding are both applied as insets, and, therefore, are interior to the extent of the region.

Values:<extent>
Initial:auto
Applies to:tt,region,image; seespecial usage fordiv andp
Inherited:no
Percentages:relative to width and height ofroot container region
Animatable:discrete
Semantic basis:extent derivation

If atts:extent attribute is specified on thett element,then the specified value is restricted to one of the following:(1) theauto keyword,(2) thecontain keyword, or(3) two<length> specifications,where these specifications are expressed as non-percentage, definite lengths using pixel units.All other syntactically legal values must not be used in this context, and,if used, must be considered an error for the purpose ofvalidation processing and must be ignoredfor the purpose of presentation processing, in which case the initial value (auto) applies.

If atts:extent attribute is specified on aregion element,then its computed value determines thewidth andheightof the associatedcontent region.

If atts:extent attribute is specified on animage element, then its computed value determines thewidth andheight of the image.

If atts:extent attribute is specified on adiv orp element, then the semantics specified by10.2.16.1 Special Usage of Extent apply.

If the value of this attribute isauto, then the computed value of its associated property is determined as follows:

  1. if the property applies to thett element, thenauto is interpreted as if the valuecontain were specified;

  2. if the property applies to aregion element, either directly or indirectly, thenauto is interpreted as if the value "100%100%" were specified;

  3. if the property applies to animage element, thenauto is interpreted as if a value equal to the image's intrinsic extent were specified using two pixel-based<length> components, for example, "200px100px".

Note:

This attribute permits a value consisting of a single keyword"auto" andanother value consisting of two keywords"auto auto". These two different values have distinct meanings and are not equivalent.In particular, the single keyword value"auto" has the semantics described immediately above; however, the two keywords value"auto auto" consists of two<measure> expressions, each using the<measure> keywordauto as defined in10.3.24 <measure>.

If the value of this attribute iscontain, then the computed value of its associated property is determined as follows:

  1. if the property applies to thett element, thencontain is interpreted as specified inH Root Container Region Semantics;

  2. if the property applies to aregion element, then the computed value is determined by performing the[compute containment scaling] procedure, where the target rectangleTR is initialized to theintrinsic block content extent of the region's content, the reference rectangleRR is set to the extent of theroot container region, and the resulting output value of the target rectangleTR is the computed value;

  3. if the property applies to animage element, then the computed value is determined by performing the[compute containment scaling] procedure, where the target rectangleTR is initialized to theintrinsic image extent of the image, the reference rectangleRR is set to the available content space in the containing block area or line area in accordance to whether the current formatting context is a block or inline formatting context, respectively, and the resulting output value of the target rectangleTR is the computed value.

If the value of this attribute iscover, then the computed value of its associated property is determined as follows:

  1. if the property applies to aregion element, then the computed value is determined by performing the[compute cover scaling] procedure, where the target rectangleTR is initialized to theintrinsic block content extent of the region's content, the reference rectangleRR is set to the extent of theroot container region, and the resulting output value of the target rectangleTR is the computed value;

  2. if the property applies to animage element, then the computed value is determined by performing the[compute cover scaling] procedure, where the target rectangleTR is initialized to theintrinsic image extent of the image, the reference rectangleRR is set to the available content space in the containing block area or line area in accordance to whether the current formatting context is a block or inline formatting context, respectively, and the resulting output value of the target rectangleTR is the computed value.

If the value of this attribute consists of two<measure>specifications, then they must be interpreted aswidth andheight, where the first specification is thewidth, and the second specification is theheight,in which case both<measure>specifications must resolve (or be resolvable) to non-negative lengths.

If a computed value of the property associated with this attribute is not supported,then apresentation 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 makes use of the nearest larger rather than nearest smaller supported distance.The rationale for this difference in treatment isthat 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
10.2.16.1 Special Usage of Extent

Whentts:extent is specified exceptionally ondiv orp,11.1.2.1 Special Semantics of Inline Animation applies.

10.2.17 tts:fontFamily

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

Values:<font-families>
Initial:default
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:fontFamily derivation

Note:

The initial value,default, is a generic font family name, and isfurther described in10.3.19 <generic-family-name> below.

In addition to applying tospan, the computed value of this propertyon ap element is used to resolve thenormal value of thestyle property associated with thetts:lineHeight attribute as specified in10.2.27 tts:lineHeight.

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

10.2.18 tts:fontKerning

Thetts:fontKerning attribute is used to specify a style property thatdetermines whether font kerning is applied when positioningglyph areas.

Values:"none" |"normal"
Initial:normal
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:fontKerning derivation

If the value of this attribute isnormal, then kerning should be applied if kerning data is available.If the value of this attribute isnone, then kerning should not be applied whether or not kerning data is available.

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

Thetts:fontKerning style is illustrated by the followingexample.

Example Fragment – Font Kerning
<p>  WAVE<br/>  <spantts:fontKerning="none">WAVE</span></p>

Example Rendition – Font Kerning
TTML fontKerning style property

10.2.19 tts:fontSelectionStrategy

Thetts:fontSelectionStrategy attribute is used to specify a style property thatdetermines the strategy to be applied when selecting a font from a list of possible fonts duringpresentation processing.

Values:"auto" |"character"
Initial:auto
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:fontSelectionStrategy derivation

The presentation semantics of this property are those defined by[XSL-FO 1.1], §7.9.3,where the set of selection criteria are extended to include the following properties:

When selecting among font resources that satisfy the font selection criteria, font resources that are referencedby afont element have priority over application or system suppliedfont resources.

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

Thetts:fontSelectionStrategy style is illustrated by the followingexample.

Example Fragment – Font Selection Strategy
<p tts:fontFamily="font1,font2">  <spantts:fontSelectionStrategy="character">&#xE000;&#x20DD;</span></p>

Note:

In the above example, consider that the font resource associated with thefont1 font family contains a glyph thatmaps the single character&#xE000;, but does not contain a glyph that maps either the entire contextual character sequence&#xE000;&#x20DD; or the single character&#x20DD;. Consider further that the font resource associated withthefont2 font family contains a mapping for the complete contextual character sequence and a mapping for the single character&#x20DD;.

If the author is willing to accept the mapping for the complete contextual character sequence viafont2, then the valueauto would be used (either explicitly or by initial value defaulting). However, if the author wishes that&#xE000;be mapped viafont1 and&#x20DD; be mapped viafont2, then the valuecharacter wouldbe specified. In this example, the author wishes the latter behavior, so specifies the valuecharacter.

10.2.20 tts:fontShear

Thetts:fontShear attribute is used to specify a style property thatdetermines whether and how a shear transformation is applied toglyph areas.

Values:<percentage>
Initial:0%
Applies to:span
Inherited:yes
Percentages:see prose
Animatable:discrete
Semantic basis:fontShear derivation

For eachglyph area to which this attribute applies, apply a 2D shear transformationto theglyph area as specified by10.4.5.3 Shear Calculations.

Thetts:fontShear style is illustrated by the following example.

Example Fragment – Font Shear
<p region="horizontal">  <spantts:fontShear="16.78842%">三日坊主</span><br/>  <spantts:fontShear="50%">三日坊主</span><br/>  <spantts:fontShear="64.333%">三日坊主</span></p><p region="vertical">  <spantts:fontShear="16.78842%">三日坊主</span><br/>  <spantts:fontShear="50%">三日坊主</span><br/>  <spantts:fontShear="64.333%">三日坊主</span></p>

Example Rendition – Font Shear
TTML fontShear style property
Example Fragment – Font Shear w/negative values
<p region="horizontal">  <spantts:fontShear="-16.78842%">三日坊主</span><br/>  <spantts:fontShear="-50%">三日坊主</span><br/>  <spantts:fontShear="-64.333%">三日坊主</span></p><p region="vertical">  <spantts:fontShear="-16.78842%">三日坊主</span><br/>  <spantts:fontShear="-50%">三日坊主</span><br/>  <spantts:fontShear="-64.333%">三日坊主</span></p>

Example Rendition – Font Shear w/negative values
TTML fontShear style property

10.2.21 tts:fontSize

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

Values:<font-size>
Initial:1c
Applies to:span
Inherited:yes, excepting10.2.21.1 Special Semantics of Font Size
Percentages:if notregion element,then relative to nearest ancestorstyled element's computed font size; otherwise, relative to thecomputed cell size
Animatable:discrete
Semantic basis:fontSize derivation

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

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

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.

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. If the relative unit is a percentage, then the referenced value is either the computed valueof the font size of the nearest styled ancestor element or thecomputed cell size.If the relative unit is cells (c), then the referenced value is thecomputed cell size.If the relative unit is EMs (em), then the referenced value is determined as if percentage unitswere used, where1em equals100%.

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.

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 aswhen 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.

Note:

Presentation processors are expected to scale glyphs so that the height of the EM squareas defined in the font resource matches the computed font size height, using an appropriate algorithm for the font. If anamorphic font scalingis used, i.e. the computed font size width differs from the computed font size height, then presentation processors additionally are expectedto scale the EM square anamorphically by the ratio of the width to the height, and by extension, ensure that the presented glyphs are alsoscaled by the same ratio.

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

If the value of this attribute specifies ac unit on a<length> component,then it is resolved in terms of the height (only) or (both) the width and height of acell length unit as defined by10.3.22 <length>, which is to say, in terms ofthecomputed 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 value of this attribute specifies anem unit on a<length> component,then it is treated as if an equivalent percentage value were specified, where1em is equal to100%.

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).

In addition to applying tospan, the computed value of this propertyon ap element is used to resolve thenormal value of thestyle property associated with thetts:lineHeight attribute as specified in10.2.27 tts:lineHeight.

If a computed value of the property associated with this attribute is not supported,then apresentation 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
10.2.21.1 Special Semantics of Font Size

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.

When applied to aspan elementfor which the computed value oftts:ruby iseithertextContainer ortext, then, when resolving the computed valueoftts:fontSize, the following special inheritancerules apply.

Aruby text container, regardless of whether it isexplicit orimplied,does not inherittts:fontSize from its parent.Instead, if it is anexplicit ruby text container and does not specifyatts:fontSize attribute, or if it is animplied ruby text container, thena value equal to 50% of the computed value oftts:fontSizeon the nearest ancestorruby container applies;otherwise, the specified value applies.

If aspan element for which the computed value oftts:ruby istext does not specify atts:fontSize attribute, then it inherits the computedvalue oftts:fontSize from its parentruby text container,regardless of whether it is anexplicit orimpliedruby text container.

10.2.22 tts:fontStyle

Thetts:fontStyle attribute is used to specify a style property thatdefines the font style to apply to glyphs that are selected forglyph 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.

Values:"normal" |"italic" |"oblique"
Initial:normal
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:fontStyle derivation

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

In addition to applying tospan, the computed value of this propertyon ap element is used to resolve thenormal value of thestyle property associated with thetts:lineHeight attribute as specified in10.2.27 tts:lineHeight.

If a computed value of the property associated with this attribute is not supported,then apresentation 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

10.2.23 tts:fontVariant

Thetts:fontVariant attribute is used to enable the selectionof typographic glyph variants.

Values:<font-variant>
Initial:normal
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:fontVariant derivation

In addition to applying tospan, the computed value of this propertyon ap element is used to resolve thenormal value of thestyle property associated with thetts:lineHeight attribute as specified in10.2.27 tts:lineHeight.

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

Thetts:fontVariant style is illustrated by the following example.

Example Fragment – Font Variant
<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">  jumping <spantts:fontVariant="super">up</span> and  <spantts:fontVariant="sub">down</span> in an agony of terror.</p>

Example Rendition – Font Variant
TTML fontVariant style property

10.2.24 tts:fontWeight

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

Values:"normal" |"bold"
Initial:normal
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:fontWeight derivation

In addition to applying tospan, the computed value of this propertyon ap element is used to resolve thenormal value of thestyle property associated with thetts:lineHeight attribute as specified in10.2.27 tts:lineHeight.

If a computed value of the property associated with this attribute is not supported,then apresentation 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

10.2.25 tts:ipd

Thetts:ipd attribute is used to specify theinline progression dimension, or, more succinctly, theipd of an area generated by content flowed into a region.

Note:

The terminline progression dimension is interpreted in a writing mode relative mannersuch thatipd always corresponds to a distance in the inlineprogression direction. Therefore, in horizontal writing modes,ipd expresses a horizontal distance,while, in vertical writing mode,ipd expresses a vertical distance,where horizontal and vertical are always interpreted in an absolute sense.

Values:<measure>
Initial:auto
Applies to:body,div,p,span
Inherited:no
Percentages:see prose
Animatable:discrete
Semantic basis:ipd derivation

If a<measure> is expressed as a<length> value, then it must be non-negative.

If atts:ipd attribute is specified on aspan elementand the computed value of thetts:display property that applies to that element is notinlineBlock,then the semantics oftts:ipd only apply when computing the inline progression dimension of any applicable background color or image;however, the dimensions of the content rectangles of the generated areas are not changed.

If a percentage value is used in a<length> expression of this attribute,it is resolved with respect to the applicableabsolute dimension of the generated area's containing area(the nearest ancestor area).

Note:

A<length> expression used with this attribute is associated with a specific, writing mode relative dimension, which is then resolved to anabsolute dimension in accordance with the applicable writing mode. If thatabsolute dimension is horizontal (vertical), then a percentage value is resolved in terms of the same horizontal (vertical)absolute dimension of the reference area (the nearest ancestor area).

Thetts:ipd style is illustrated by the following example.

Example Fragment – Inline Progression Dimension
<p tts:fontSize="24px" tts:lineHeight="48px"tts:ipd="300px">  the woods are <span tts:display="inlineBlock"tts:ipd="150px">getting green</span> ...</p>

Note:

In the above example, thetts:ipd attribute on thep elementassigns a fixed dimension to the width of the content rectangle of the block area generated by the paragraph, whilethetts:ipd attribute on thespan element assigns a fixeddimension to the width of the content rectangle of the inline block area generated by the span.

10.2.26 tts:letterSpacing

Thetts:letterSpacing attribute is used to specify a style property thatincreases or decreases the nominal distance betweenglyph areas.

Letter spacing has no affect at the beginning or ending of a line area, and must notbe applied to zero-advance glyphs. Furthermore, letter spacing must not cause normally connected glyphs,e.g., as used in cursive scripts or with cursive fonts, to become disconnected.

Letter spacing is applied independently from kerning and justification. Depending upon the font(s) in use,the script(s) being presented, and the capabilities of a presentation processor, either or both kerning andjustification may be applied in addition to letter spacing.

Values:"normal" |<length>
Initial:normal
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:letterSpacing derivation

The valuenormal corresponds to specifying a<length> value of zero (0),i.e., neither expand nor compress adjacent glyph spacing.

If a<length> value is expressed as a positive scalar,then the spaces between adjacent glyphs are expanded by an additional amount equal to that scalar value.If expressed as a negative scalar,then the spaces between adjacent glyphs are compressed by an additional amount equal to that scalar value, possibly resultingin overlappingglyph areas, up to a maximum amount that results an effective advance of zero (0).

If a computed value of the letter spacing associated with this attribute is not supported,then apresentation 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 letter spacing and the supported letter spacing is minimized. If there are multiple closest supported values equally distant fromthe computed value for a given edge, then the value least distant from 0 is used.

Thetts:letterSpacing style is illustrated by the followingexample.

Example Fragment – Letter Spacing
<p>  WAVE<br/>  <spantts:letterSpacing="20px">WAVE</span></p>

Example Rendition – Letter Spacing
TTML letterSpacing style property

10.2.27 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.

Note:

Exceptionally, the termheight in the tokenlineHeight or the phraseline height refers tothe axis that corresponds with theblock progression dimension of an associated line area, which is the vertical axis inhorizontal writing modes, but is the horizontal axis in vertical writing modes.

Note:

See11.3.2.2 Line Stacking for additional information related toline height.

Values:"normal" |<length>
Initial:normal
Applies to:p
Inherited:yes, but seespecial semantics
Percentages:relative to this element's font size
Animatable:discrete
Semantic basis:lineHeight derivation

Note:

In addition to explicitly applying top elements, the value of thisstyle property inherited byspan element andanonymous spandescendants of ap element is used to compute thehalf leading of their generatedinline areas, about which see[XSL-FO 1.1], §4.5, and[CSS2], §10.8.1.

If the value of this attribute isnormal, then theused value of this style property is 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,tts:fontWeight, andtts:fontVariantstyle properties ofP.

  5. IfF0 is associated with font metrics that specify altitudeA, depthD, 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.

    Note:

    The altitude, depth, and line gap parameters referenced here are intended to correspond with thesTypoAscender,-sTypoDescender, i.e., minus one (-1) timessTypoDescender, andsTypoLineGap fields of theOS/2 tableof an OpenType[OFF] font (or their equivalent in other font formats). Moreover, in general, the expressionsscaled(A) and scaled(D) are intended to correspond with thetext-altitude andtext-deptharea traits employed by[XSL-FO 1.1] when the valueuse-font-metrics is used with the associated propertiestext-altitude andtext-depth, respectively.

  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-FO 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 apresentation 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
10.2.27.1 Special Semantics of Line Height

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

10.2.28 tts:lineShear

Thetts:lineShear attribute is used to specify a style property thatdetermines whether and how a shear transformation is applied to each of theline areas generatedby ap element.

Values:<percentage>
Initial:0%
Applies to:p
Inherited:yes
Percentages:see prose
Animatable:discrete
Semantic basis:lineShear derivation

For eachline area to which this attribute applies, apply a 2D shear transformationto theline area as specified by10.4.5.3 Shear Calculations.

Thetts:lineShear style is illustrated by the following example.

Example Fragment – Line Shear
<region xml:id="right" tts:writingMode="tbrl" tts:displayAlign="center" .../><region xml:id="left" tts:writingMode="tbrl" tts:displayAlign="center" .../>...<div>  <p region="right"tts:lineShear="0%">    山の<span tts:ruby="container"><span tts:ruby="base">遭難</span><span    tts:ruby="text">そうなん</span></span><br/>    <span tts:ruby="container"><span tts:ruby="base">最多</span><span    tts:ruby="text">さいた</span></span><span tts:ruby="container"><span    tts:ruby="base">年</span><span tts:ruby="text">ねん</span></span>  </p>  <p region="left"tts:lineShear="16.67%">    山の<span tts:ruby="container"><span tts:ruby="base">遭難</span><span    tts:ruby="text">そうなん</span></span><br/>    <span tts:ruby="container"><span tts:ruby="base">最多</span><span    tts:ruby="text">さいた</span></span><span tts:ruby="container"><span    tts:ruby="base">年</span><span tts:ruby="text">ねん</span></span>  </p></div>

Example Rendition – Line Shear - Vertical Lines with Ruby
TTML lineShear style property

Note:

In the above example, the yellow lines are decorations created by a particular presentation processorto aid in debugging layout issues. Such lines are not part of a normative TTML presentation as defined by this specification.Here, the decorations depict (1) boundaries of outerblock areasgenerated byregion elements,(2) boundaries ofline area children of the outerblock areasgenerated byp elements, and(3) boundaries ofinline area children ofline areas generatedby impliedruby text containers.

This example depicts how a shear (skew) transform is applied to each affected line area as a whole; however,when line shear is to be applied to a line, then the available distance that can be allocated to the line, i.e., its maximum inline progression dimensionlength prior to shear transformation, is reduced byB*sin(θ), whereB is the block progression dimensionof the line area andθ is the shear angle, in order to fit the line into the content rectangle of the outer block areaof the paragraph.

10.2.29 tts:luminanceGain

Thetts:luminanceGain attribute is used to specify the absolute luminance of a region whenits presentation requires a greater dynamic range than that provided by the[SRGB] color space,and when that presentation requires an absolute luminance value.

Note:

The[SRGB] color space specifies an absolute reference white point luminance of 80 cd∙m-2.As a result, colors specified in the[SRGB] space cannot bereliably composited with high-dynamic range (HDR) content intended for display with significantlygreater peak luminance, such as content that uses the perceptual quantizer electro-optical transfer function (PQ EOTF)specified in[ITU BT.2100-1]. Specifically,

  • [SRGB] colors may appear too dim if they remain unscaled and the average luminance of the sceneexceeds 80 cd∙m-2; and

  • [SRGB] colors may appear too bright if they are uniformly scaled to an arbitrary largeluminance, such as 10,000 cd∙m-2.

Values:<non-negative-number>
Initial:1.0
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete; continuous
Semantic basis:luminanceGain derivation

The computed value associated with thetts:luminanceGain attribute applies to all pixels within the associatedregion that require conversion from an[SRGB] color value to an absolute luminance value. Any requirement to generate absolute luminancepixel values is derived from thedocument processing context.

Note:

If an image whose processing generates absolute luminance pixel values, for exampleone conforming to[PQ PNG], is placed in a region that also contains text orimages whose processing generates[SRGB] pixel values, and an absolute luminance output is required,only the[SRGB] pixel values are transformed.

When applyingtts:luminanceGain, the linear optical output values(Cr, Cg, Cb) of the components of a pixel of a region are defined as80 ∙tts:luminanceGain ∙ (r, g, b), where (r, g, b) are the normalized linear[SRGB] components of the pixel.

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

Thetts:luminanceGain style is illustrated by the following example.

Example Fragment – tts:luminanceGain
<region xml:id="r1">  <style tts:extent="60% 20%"/>  <style tts:origin="10% 70%"/>  <style tts:backgroundColor="black"/>  <style tts:color="white"/>  <style tts:luminanceGain="3.8"/></region><region xml:id="r2">  <style tts:extent="60% 20%"/>  <style tts:origin="10% 10%"/>  <style tts:backgroundColor="black"/>  <style tts:color="white"/>  <style tts:luminanceGain="1.0"/></region>...<p region="r1">  The absolute luminance of the text in region one "r1" should be 3.8 times  brighter than the absolute luminance of the text in region two "r2".</p><p region="r2">  Other text with the identity luminance adjustment (1.0).</p>

An example of luminance adjustment calculations is described below.

Example – Absolute linear optical output calculation using tts:luminanceGain
Giventts:luminanceGain="1.5", the absolute linear optical output of the components of a rendered pixel with colorrgb(218,165,32)is (82.37, 42.21, 0.82) ≈ 80 ∙ 1.5 ∙((218/255)2.4, (165/255)2.4, (32/255)2.4),where the exponent of 2.4 is the gamma correction applied by the[SRGB] EOTF.

Note:

A detailed example of compositing[SRGB] pixels onto HDR pixels usingtts:luminanceGainis provided in AppendixQ.1 Perceptual Quantizer.

Note:

As specified in10.3.9 <color>, compositing regions of a rendereddocument instanceonto a target medium is typically performed using pixel components encoded usingthe inverse EOTF of the target medium, as opposed to pixel components expressed inlinear light. As a result, the use of semi-transparent regions can yieldperceptually different results depending on the inverse EOTF used by the targetmedium, especially when there is a large difference in luminance between the pixels of therendereddocument instance and the target medium.Consequently, authors are encouraged to consider visual results involving semi-transparent elements.

10.2.30 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 or an area generated by content flowed into 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 after having applied anycontent element specific opacity to areas generated by that content.

Values:<alpha>
Initial:1.0
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:N/A
Animatable:discrete; continuous
Semantic basis:opacity derivation

Thetts:opacity style is illustrated by the following example.

Example Fragment – Opacity
<p>  <spantts:opacity="1.00">And </span>  <spantts:opacity="0.75">then </span>  <spantts:opacity="0.50">there </span>  <spantts:opacity="0.25">were </span>  <spantts:opacity="0.00">none.</span></p>

Example Rendition – Opacity
TTML opacity style property

10.2.31 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.

If bothtts:origin andtts:position attributes arespecified on an element andtts:position is a supported property,then thetts:origin attribute must be ignored for the purpose of presentation processing.

Values:<origin>
Initial:auto
Applies to:region; seespecial usage fordiv andp
Inherited:no
Percentages:relative to width and height ofroot container region
Animatable:discrete
Semantic basis:origin derivation

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 apresentation 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
10.2.31.1 Special Usage of Origin

Whentts:origin is specified exceptionally ondiv orp,11.1.2.1 Special Semantics of Inline Animation applies.

10.2.32 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.

Values:"visible" |"hidden"
Initial:hidden
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:overflow derivation

If the value of this attribute isvisible, then content shouldnot be clipped outside of the affected region.If the value ishidden, then content shouldbe clipped outside of the affected region.

Note:

Marks produced by content associated with a region's content rectangle may be rendered outside thatcontent rectangle, thus intersecting with the region's padding and border rectangles, without any affect fromthetts:overflow attribute. Such marks only become a candidate for region overflow when they wouldextend outside the region's extent which is coincident with the region's border rectangle, which contains theregion's padding rectangle, which contains the region's content rectangle.

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 computed values of thetts:overflow andtts:wrapOptionstyle properties of the region arevisible andnoWrap,respectively.

If a computed value of the property associated with this attribute is not supported,then apresentation 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.

10.2.33 tts:padding

Thetts:padding attribute is used to specify padding (or inset)space on one or more sides of a region or an area generated by content flowed into a region.

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.

Values:<padding>
Initial:0px
Applies to:body,div,image,p,region,span
Inherited:no
Percentages:see prose
Animatable:discrete
Semantic basis:padding derivation

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 correspondto 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 afteredges 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 padding is applied to aspan element, and content from that elementis divided across multiple line areas, then the specified padding must be applied at each line break boundary. In contrast,within a single line area, if multiple inline areas are generated by the element, then the specified padding must be applied atthe first and/or last generated inline area within a line area the inline progression order of the containing block level element.

Note:

The behavior of padding on aspan element corresponds with the use ofa CSSbox-decoration-break property with the valueclone at line breaks and the valuesliceat non-terminal, i.e., non-first and non-last, inline area boundaries, as defined by[CSS Fragmentation], §5.4.

If a percentage value is used in a<length> component of this attribute,it is resolved as follows:

  • when applied to aregion element, the percentage is relative to the applicableabsolute dimension of the region's resolved extent, unless that dimension is dependent on the size of the content of the region, in which case the percentage resolves to the corresponding component of the applicable initial value;

  • when applied to all other elements, the percentage is relative to the correspondingabsolute dimension of the nearest ancestor area, unless that dimension is dependent on the size of the content of that area, in which case the percentage resolves to the corresponding component of the applicable initial value.

Note:

Each<length> component used with this attribute is associated with a specific, writing mode relative edge, which is then resolved to anabsolute dimension in accordance with the applicable writing mode. If thatabsolute dimension is horizontal (vertical), then a percentage value is resolved in terms of the same horizontal (vertical)absolute dimension of the reference area (either the root container region or the nearest ancestor area).

If a computed value of the property associated with this attribute is not supported,then apresentation 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 on region
<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 on region
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.

Example Fragment – Padding on span
<region xml:id="r1">  <style tts:extent="446px 72px"/>  <style tts:displayAlign="center"/>  <style tts:textAlign="center"/>  <style tts:backgroundColor="green"/></region>...<p region="r1">  <span tts:backgroundColor="black" tts:color="white"tts:padding="0c 0.5c">  The crew was complete: it included a Boots--<br/>  A maker of Bonnets and Hoods--  </span></p>

When rendering spans to which padding applies, the padding applies to each generated line area independently.

Example Rendition – Padding on span
TTML padding style property

10.2.34 tts:position

Thetts:position attribute is used as an alternative way to specify the positionof a region area with respect to a positioning rectangle.

If bothtts:position andtts:origin attributes arespecified on an element andtts:position is a supported property,then thetts:origin attribute must be ignored for the purpose of presentation processing.

Values:<position>
Initial:top left
Applies to:region; seespecial usage fordiv andp
Inherited:no
Percentages:see prose
Animatable:discrete; continuous
Semantic basis:position derivation

A percentage value component for a horizontal position offset is relative to the width of thepositioning rectangle minus the width of the associated region.A percentage value component for a vertical position offset is relative to the height of thepositioning rectangle minus the height of the associated region.

The following image depicts a position value "75% 50%", where the rectangle with dashed line denotes the positioning rectangle and the rectanglewith solid line denotes the region being positioned. In this case the region is positioned such that a vertical line located at 75% of its width coincides witha vertical line located at 75% of the width of the positioning rectangle, and a horizontal line located at 50% of its height coincides witha vertical line located at 50% of the width of the posititoning area.

Percentage Based Positioning
TTML position style property using percentages

If specified on aregion element, then, the positioning rectangle corresponds with the content rectangle of theroot container region.

If a computed value of the property associated with this attribute is not supported,then apresentation 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 position and the supported position 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 position, is used.

Thetts:position style is illustrated by the following example, which positions a region so that it iscentered in the horizontal dimension and has a bottom edge offset at 10% above the bottom of the positioning rectangle in the vertical dimension,where this offset is equal to 10% of the difference between the height of the positioning rectangle and the height of the region.

Example Fragment – Position
<tt tts:extent="640px 480px">...<region xml:id="r1">  <styletts:position="center bottom 10%"/>  <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 – Position
TTML position style property

10.2.34.1 Special Usage of Position

Whentts:position is specified exceptionally ondiv orp,11.1.2.1 Special Semantics of Inline Animation applies.

10.2.35 tts:ruby

Thetts:ruby attribute is used to specify the application of rubystyling.

Values:"none" |"container" |"base" |"baseContainer" |"text" |"textContainer" |"delimiter"
Initial:none
Applies to:span
Inherited:no
Percentages:N/A
Animatable:none
Semantic basis:ruby derivation

If the value of this attribute isnone, then no ruby semantics apply; otherwise, the ruby semantics enumerated byTable 10-1 – Ruby Semantics Mapping apply.

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

Table 10-1 – Ruby Semantics Mapping
Categorytts:rubyAnnotation[Ruby]CSS display[CSS Ruby]
ruby containercontainerrubyruby
ruby base contentbaserbruby-base
ruby text contenttextrtruby-text
ruby base containerbaseContainerrbcruby-base-container
ruby text containertextContainerrtcruby-text-container
ruby fallback delimiterdelimiterrpnone |inline

For the purpose of presentation processing, thedocument processing context determines themode of presentation: normal or fallback.When performing normal presentation processing of ruby text annotations, delimiter content must not generate any inline areas.When performing fallback presentation of ruby, both delimiter and non-delimiter ruby (base and text) content must generate normal inline areas.If a presentation processor does not support ruby presentation, then it must perform fallback ruby presentation.

When usingtts:ruby, the following nesting constraints apply to aruby container, that is,if the computed value oftts:ruby of aspan element iscontainer, then:

  • the computed value oftts:ruby of all of its ancestor elements isnone;

  • the computed value oftts:ruby of each of its child elements is notnone;

  • the computed value oftts:ruby of its first child element isbaseContainerorbase;

  • each of its text node children contain only<lwsp>;

When usingtts:ruby, the following nesting constraints apply to aruby base container, that is,if the computed value oftts:ruby of aspan element isbaseContainer, then:

  • the computed value oftts:ruby of its parent element iscontainer;

  • the computed value oftts:ruby of each of its child elements is notnone;

  • the computed value oftts:ruby of its first child element isbase;

  • its preceding sibling isnull (i.e., no preceding sibling);

  • each of its text node children contain only<lwsp>;

When usingtts:ruby, the following nesting constraints apply to aruby text container, that is,if the computed value oftts:ruby of aspan element istextContainer, then:

  • the computed value oftts:ruby of its parent element iscontainer;

  • the computed value oftts:ruby of each of its child elements is notnone;

  • the computed value oftts:ruby of its first child element is eithertext ordelimiter;

  • the computed value oftts:ruby of its preceding sibling isbaseContainer ortextContainer;

  • the computed value oftts:ruby of no more than one of its siblings istextContainer;

  • each of its text node children contain only<lwsp>;

When usingtts:ruby, the following nesting constraints apply toruby base content, that is,if the computed value oftts:ruby of aspan element isbase, then:

  • the computed value oftts:ruby of its parent element is eithercontainer orbaseContainer;

  • its preceding sibling is eithernull (i.e., no preceding sibling) or thecomputed value oftts:ruby of its preceding sibling isbase;

  • if the computed value oftts:ruby of its parent element iscontainer,then the computed value oftts:ruby of no sibling isbase;

  • the computed value oftts:ruby of no descendant element is notnone;

  • none of its descendant elements is abr element;

  • each of its text node descendants does not contain U+2028 (LINE SEPARATOR) or U+2029 (PARAGRAPH SEPARATOR);

When usingtts:ruby, the following nesting constraints apply toruby text content, that is,if the computed value oftts:ruby of aspan element istext, then:

  • the computed value oftts:ruby of its parent element is eithercontainer ortextContainer;

  • its preceding sibling is eithernull (i.e., no preceding sibling) or thecomputed value oftts:ruby of its preceding sibling isbase,text, ordelimiter;

  • if the computed value oftts:ruby of its parent element iscontainer,then the computed value oftts:ruby of no sibling istext;

  • the computed value oftts:ruby of no descendant element is notnone;

  • none of its descendant elements is abr element;

  • each of its text node descendants does not contain U+2028 (LINE SEPARATOR) or U+2029 (PARAGRAPH SEPARATOR);

When usingtts:ruby, the following nesting constraints apply to aruby fallback delimiter, that is,if the computed value oftts:ruby of aspan element isdelimiter, then:

  • the computed value oftts:ruby of its parent element is eithercontainer ortextContainer;

  • its preceding sibling is eithernull (i.e., no preceding sibling) or thecomputed value oftts:ruby of its preceding sibling isbase ortext;

  • the computed value oftts:ruby of exactly one sibling isdelimiter;

  • if the computed value oftts:ruby isdelimiter, then thecomputed value oftts:ruby of no descendant element is notnone;

  • none of its descendant elements is abr element;

  • each of its text node descendants does not contain U+2028 (LINE SEPARATOR) or U+2029 (PARAGRAPH SEPARATOR).

Avalidating content processor must treat a violation of any of the above constraints as an error.For the purpose of presentation processing, the violation of any of these constraints should result in fallback (inline)presentation of ruby text annotations, and, for content that violates some constraint, if that content isabr element or a U+2028 (LINE SEPARATOR) or U+2029 (PARAGRAPH SEPARATOR) character,then it should be mapped to a U+0020 (SPACE) character, of, if some other content, then ignored (not presented).

Note:

The above listed constraints are intended to be interpreted as specifying the following nesting model:

container  : base text  | base delimiter text delimiter  | baseContainer textContainer textContainer?baseContainer  : base+textContainer  : text+  | delimiter text+ delimiterbase | text | delimiter  : (#PCDATA | { span - tts:ruby })*

This model corresponds to the maximal content model for theruby element defined by[Ruby], §2.1,with the exception thatrtc is effectively extended to permit the optional use of delimiters (rp):

ruby  : rb rt  | rb rp rt rp  | rbc rtc rtc?rbc  : rb+rtc  : rt+  | rp rt+ rp                            // extension to[Ruby]

Furthermore, this model is consistent with[Ruby], §2.6, regarding the constraint thatnesting ofruby containers is not supported (about which see the nesting constraint above).

Note:

While not supporting as many opportunities for markup minimization as allowed by[HTML 5.2],the formulation of ruby annotation defined here does allow the following shorthands:

base text =  baseContainer    base  textContainer    textbase delimiter text delimiter =  baseContainer    base  textContainer    delimiter text delimiter

Given the content ofbase isB and the content oftext isT, then the expressionbase text could be represented variously in[HTML 5.2] as follows:

<ruby>B<rt>T</ruby><ruby>B<rt>T</rt></ruby><ruby><rb>B<rt>T</ruby><ruby><rb>B</rb><rt>T</ruby><ruby><rb>B</rb><rt>T</rt></ruby><ruby>B<rtc><rt>T</ruby><ruby>B<rtc><rt>T</rtc></ruby><ruby>B<rtc><rt>T</rt></ruby><ruby>B<rtc><rt>T</rt></rtc></ruby><ruby><rb>B<rtc><rt>T</ruby><ruby><rb>B<rtc><rt>T</rtc></ruby><ruby><rb>B</rb><rtc><rt>T</ruby><ruby><rb>B</rb><rtc><rt>T</rtc></ruby><ruby><rb>B</rb><rtc><rt>T</rt></ruby><ruby><rb>B</rb><rtc><rt>T</rt></rtc></ruby>

Whereas, in TTML2, the following alternative expressions are possible:

<span tts:ruby="container">  <span tts:ruby="base">B</span>  <span tts:ruby="text">T</span></span>

or its equivalent

<span tts:ruby="container">  <span tts:ruby="baseContainer">    <span tts:ruby="base">B</span>  </span>  <span tts:ruby="textContainer">    <span tts:ruby="text">T</span>  </span></span>

Note:

The syntax of TTML allows using multipleruby base content within aruby base container and multipleruby text content withinaruby text container all within the sameruby container. This version of TTML leaves the mapping betweenruby base content andruby text content undefined when the number ofruby text content does not equal the number ofruby base content inthe sameruby container.

Note:

When aninline area is generated by performing presentation processing on aruby text container orruby text content, then thatinline area is parented to (becomes a descendant of)theline area that contains theruby base content with which theruby text content is associated.

Use oftts:ruby to specify simple ruby annotation is illustrated by the following example.

Example Fragment – Simple Ruby
<spantts:ruby="container" tts:rubyAlign="spaceAround">  <spantts:ruby="base">利用許諾</span>  <spantts:ruby="text">ライセンス</span></span>

Example Rendition – Simple Ruby
TTML ruby style property

Use oftts:ruby to specify double-sided ruby annotation is illustrated by the following example.

Example Fragment – Double-sided Ruby
<span>  <spantts:ruby="container" tts:rubyAlign="spaceAround">    <spantts:ruby="baseContainer">      <spantts:ruby="base">東南</span>    </span>    <spantts:ruby="textContainer" tts:rubyPosition="before">      <spantts:ruby="text">とうなん</span>    </span>    <spantts:ruby="textContainer" tts:rubyPosition="after">      <spantts:ruby="text">たつみ</span>    </span>  </span>  <span>の方角</span></span>

Example Rendition – Double-sided Ruby
TTML ruby style property

Note:

The inter-character positioning mode for ruby annotations, such as used withbopomofo characters,is not supported by this version of TTML due to lack of market requirements.

Thetts:ruby attribute can also be used when the annotation uses Latin characters, e.g. for pinyin as described by[CLREQ] and illustrated by the following example.

Example Fragment – Ruby with Pinyin Annotation
<p><span tts:ruby="container" tts:rubyAlign="center">  <span tts:ruby="base">周杰伦</span><span tts:ruby="text">Jay Chou</span></span>

Example Rendition – Ruby using Pinyin Annotation
TTML ruby style property with pinyin
10.2.35.1 Special Semantics of Ruby Annotations

In the absence of implementation specific requirements, constraints on alignment betweenruby text content andruby base content that would potentiallygive rise to overflowing a line area should be resolved by shiftingruby text content away from the start or end edge of the line area.

Note:

See[JLREQ], §3.3.8,Adjustments of Ruby with Length Longer than that of the Base Characters,and[CSS Ruby], §5,Edge Effects, for further information.

In the absence of implementation specific requirements,ruby text content should be allowed to overhangruby base content only when thebase text is in any of the following character classes as defined by[JLREQ], Appendix A,Character Classes:

  • hiragana

  • ideographic

  • punctuationMarks

Note:

See[JLREQ], §3.3.8,Adjustments of Ruby with Length Longer than that of the Base Characters forfurther information.

When performing presentation processing,isolated ruby content,namely,ruby base content orruby text content that is specified without aruby base container orruby text container, respectively,is processed in such a manner as to imply the presence of an anonymousruby base container and (or) anonymousruby text container as required.Animplied ruby base container and (or)implied ruby text container is required in order to generate and applyimplied or collective styling semantics to an inline block area which contains the inline areas generated by theisolated ruby content.

An explicitly specifiedspan element for which the computed value oftts:ruby isbaseContainer is referred to asanexplicit ruby base container;likewise, an explicitly specifiedspan element for which the computed value oftts:ruby istextContainer is referred to asanexplicit ruby text container.

10.2.36 tts:rubyAlign

Thetts:rubyAlign attribute is used to specify the position of ruby text within the inline area generated by theruby text container annotation.

Values:"start" |"center" |"end" |"spaceAround" |"spaceBetween" |"withBase"
Initial:center
Applies to:span only if the computed value oftts:ruby iscontainer
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:rubyAlign derivation

When this attribute is specified on aspan element for which the computed value oftts:ruby iscontainer, then the ruby alignment semantics of the associated style property apply collectively to the inline areas generated bythe container's constituentruby containers and ruby content.

Note:

A consequence of applying ruby alignment to aruby container as a whole is that the ruby alignment that applies tothe container and its constituents is uniform (unvarying).

LetIR andIB be, respectively, the inline areas generated by (1) aruby text container orruby text annotation and (2) an associatedruby base container or ruby base. Further, letNRandNB, be, respectively, the number ofglyph area descendants of theseinline areas.

If the value of this attribute isstart, then the start edge of the firstglyph area descendantofIRis aligned to the start edge of that inline area.If the value iscenter, then excess whitespaceis equally distributed before and after the first and last ruby annotationglyph areas, respectively.If the value of this attribute isend, then the end edge of the firstglyph area descendantofIRis aligned to the end edge of that inline area.If the value isspaceBetween, then excess whitespaceis equally distributed between each ruby annotationglyph area.If the value isspaceAround, then excess whitespaceis equally distributed before and after each ruby annotationglyph area descendant.

If the value of this attribute iswithBase, then, ifNR andNB are equal,theithglyph area descendant ofIR is center aligned (horizontally or vertically) with theithglyph area descendant ofIB;otherwise (the number of ruby and baseglyph areas are not equal), the semantics ofcenter apply.

Note:

For the purpose of interpretingglyph area descendant in the context of the above semantics, only spacingglyph area descendantsare considered; i.e., non-spacingglyph area descendants, such as combining marks,have no impact on ruby alignment.

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

Note:

In this specification, ruby annotations in timed text applications are assumed to be narrow, since presentation space and available time areoften constrained. As a consequence, this version of TTML does not enable authors to control how spacing is distributed when theruby annotation is wider than its base text. This might be problematic for wide ruby annotations at the start or end edge of the line. In orderto avoid issues, authors are encouraged to use an appropriate value oftts:rubyAlign and/or to split events containing wideruby annotations into multiple lines or even multiple events.

Thetts:rubyAlign style is illustrated by the following example.

Example Fragment – Ruby Align
<p><span tts:ruby="container"tts:rubyAlign="start">  <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span></span><span tts:ruby="container"tts:rubyAlign="spaceAround">  <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span></span><br/><span tts:ruby="container"tts:rubyAlign="end">  <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span></span><span tts:ruby="container"tts:rubyAlign="spaceBetween">  <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span></span></p>

Example Rendition – Ruby Align
TTML rubyAlign style property

10.2.37 tts:rubyPosition

Thetts:rubyPosition attribute is used to specify the position of ruby text in the block progression dimensionwith respect to its associated ruby base.

Values:<annotation-position>
Initial:outside
Applies to:span only if the computed value oftts:ruby istextContainer ortext
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:rubyPosition derivation

The style property associated with this attribute determines the relative positioningof inline areas generated fromruby text containers and ruby text annotations with respect to theirassociated base text containers and base text, where the directional semantics of<annotation-position> apply.

When this attribute is specified on aspan element for which the computed value oftts:ruby istextContainer, then the ruby position semantics of the associated style property apply collectively to the inline areas generated bytheexplicit ruby text container and its constituentruby text content.

When this attribute is specified on aspan element for which the computed value oftts:ruby istext, then the ruby position semantics of the associated style property apply collectively to the inline areas generated by itsimplied ruby text container and its ownruby text content.

This attribute must not be specified on aspan element for which the computed value oftts:ruby istext when the parent of thatspan element is aspan element for which the computed value oftts:ruby istextContainer.If specified (on the formerruby text content), then it is considered an error,and must be ignored for the purpose of presentation processing.

The absolute position of theruby text container or ruby text annotation is determinedin accordance to the computed value of thetts:writingMode style property of the region into which the affected content is placed;in particular, the mappings defined enumerated byTable 10-2 – Absolute Ruby Position Semantics Mapping by Writing Mode apply as further definedby[CSS Ruby], §4.1.

If tworuby text containers apply to the sameruby base container, then it is considered an error iftheused value of the property associated with this attribute would result inbothruby text containers being placed on the same relative side of theruby base container, in which case, the presentation semantics ofthis property are not defined by this specification.

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

Table 10-2 – Absolute Ruby Position Semantics Mapping by Writing Mode
tts:rubyPositionlrtbrltbtbrltblr
beforeoveroverrightleft
afterunderunderleftright

Note:

When employing the Mongolian script set in vertical left-to-right lines, it may be desirable that the initial value assignedto ruby position beafter instead ofoutside, which is resolved tobefore for all non-final lines. Inthis case, an author may redefine the default initial value for this attribute by including an element<initial tts:rubyPosition="after"/> in a document'sstyling element.

Thetts:rubyPosition style is illustrated by the following example, which illustrateshow the resolution of ruby position depends upon writing mode. Note that the example usesmono ruby as defined in[JLREQ].

Example Fragment – Ruby Position
<region xml:id="left"tts:writingMode="tblr"/><region xml:id="middle"tts:writingMode="lrtb"/><region xml:id="right"tts:writingMode="tbrl"/>...<p region="left">  <span tts:ruby="container"tts:rubyPosition="before">    <span tts:ruby="base">一</span>    <span tts:ruby="text">一</span>  </span>  <span tts:ruby="container"tts:rubyPosition="before">    <span tts:ruby="base">二</span>    <span tts:ruby="text">二</span>  </span>三四<br/>五六  <span tts:ruby="container"tts:rubyPosition="after">    <span tts:ruby="base">七</span>    <span tts:ruby="text">七</span>  </span>  <span tts:ruby="container"tts:rubyPosition="after">    <span tts:ruby="base">八</span>    <span tts:ruby="text">八</span>  </span></p><p region="middle">  <span tts:ruby="container"tts:rubyPosition="before">    <span tts:ruby="base">一</span>    <span tts:ruby="text">一</span>  </span>  <span tts:ruby="container"tts:rubyPosition="before">    <span tts:ruby="base">二</span>    <span tts:ruby="text">二</span>  </span>三四<br/>五六  <span tts:ruby="container"tts:rubyPosition="after">    <span tts:ruby="base">七</span>    <span tts:ruby="text">七</span>  </span>  <span tts:ruby="container"tts:rubyPosition="after">    <span tts:ruby="base">八</span>    <span tts:ruby="text">八</span>  </span></p><p region="right">  <span tts:ruby="container"tts:rubyPosition="before">    <span tts:ruby="base">一</span>    <span tts:ruby="text">一</span>  </span>  <span tts:ruby="container"tts:rubyPosition="before">    <span tts:ruby="base">二</span>    <span tts:ruby="text">二</span>  </span>三四<br/>五六  <span tts:ruby="container"tts:rubyPosition="after">    <span tts:ruby="base">七</span>    <span tts:ruby="text">七</span>  </span>  <span tts:ruby="container"tts:rubyPosition="after">    <span tts:ruby="base">八</span>    <span tts:ruby="text">八</span>  </span></p>

Example Rendition – Ruby Position
TTML rubyPosition style property

Note:

In the above example, whitespace has been introduced into and aroundspan elements as an aid to formatting; in order to produce the example rendition as shown, it is necessary to remove that extra whitespace lest it appear in the rendered output.

10.2.38 tts:rubyReserve

Thetts:rubyReserve attribute is used to specify additional space to apply to affected lineareas in order to reserve sufficient room in the block progression dimension to contain inline areas generated byruby text containers placed withinthe bounds of the line areas.

Note:

An author may use thetts:rubyReserve attribute in order to ensure that consecutive baselines of line areas in a block area retain a fixedplacement regardless of the presence or absence of ruby text annotations.

Values:<ruby-reserve>
Initial:none
Applies to:p
Inherited:yes
Percentages:relative to this element's font size
Animatable:discrete
Semantic basis:rubyReserve derivation

If the value of this attribute isnone, then no ruby space reservation applies; otherwise, the value of this attribute specifies aposition component followed by an optional length component.

If the position component isbefore, then the before leading of affected line areas is increased by the amount determined by theused value of the length component.

If the position component isafter, then the after leading of affected line areas is increased by the amount determined by theused value of the length component.

If the position component isboth, then the semantics of both thebefore andafter positions applyto each affected line area.

If the position component isoutside, then, if the current block area contains exactly one line area, theboth positionapplies, otherwise the semantics of thebefore position applies to the first line area of the current block areaand the semantics of theafter position apply to all other line areas of the current block area.

The length component is used to indirectly determine an amount by which the before and after leading ofaffected line areas are increased. The computed value of the length component is considered to express the computed value of the style property associatedwith thetts:fontSize attribute of hypotheticalruby text content were such contentactually present in ap element.

If no length component is specified, then it must be considered to be equal to the value of the style property associated with thetts:fontSize attribute that would be inherited bya hypotheticalruby text container orruby text content, were such content actually presentin ap element, where the semantics of10.2.21.1 Special Semantics of Font Size apply for the purpose of computing this inherited value.

If the<length> component is specified, it must be non-negative.

If thetts:rubyReserve is specified on ap element which containsruby text content, then the reserved leadings are applied to line areas as indicated above and then additional adjustments aremade to these leadings as needed to accommodate the presence of actualruby text content.

Example Renditions – Ruby Reserve
tts:rubyReserveNo Ruby PresentRuby Present
noneTTML rubyReserve style property: 'auto'TTML rubyReserve style property: 'auto'
beforeTTML rubyReserve style property: 'after'TTML rubyReserve style property: 'after'
afterTTML rubyReserve style property: 'after'TTML rubyReserve style property: 'after'
bothTTML rubyReserve style property: 'after'TTML rubyReserve style property: 'after'
outsideTTML rubyReserve style property: 'after'TTML rubyReserve style property: 'after'

10.2.39 tts:shear

Thetts:shear attribute is used to specify a style property thatdetermines whether and how a shear transformation is applied to the outermostblock areagenerated by the affected element.

Values:<percentage>
Initial:0%
Applies to:p
Inherited:yes
Percentages:see prose
Animatable:discrete
Semantic basis:shear derivation

For eachblock area to which this attribute applies, apply a 2D shear transformationto theblock area as specified by10.4.5.3 Shear Calculations.

Thetts:shear style is illustrated by the following example.

Example Fragment – Shear
<region xml:id="right" tts:writingMode="tbrl" tts:displayAlign="center" .../><region xml:id="left" tts:writingMode="tbrl" tts:displayAlign="center" .../>...<div>  <p region="right"tts:shear="0%">  山の<br/>  最多<span tts:textCombine="all">1998</span>年  </p>  <p region="left"tts:shear="16.67%">  山の<br/>  最多<span tts:textCombine="all">1998</span>年  </p></div>

Example Rendition – Shear - Vertical Lines with Tate-Chu-Yoko
TTML shear style property

Note:

In the above example, the yellow lines are decorations created by a particular presentation processorto aid in debugging layout issues. Such lines are not part of a normative TTML presentation as defined by this specification.Here, the decorations depict (1) boundaries of outerblock areasgenerated byregion elements and(2) boundaries ofline area children of the outerblock areasgenerated byp elements.

This example depicts how a shear (skew) transform is applied to the affected outerblock areasgenerated byp elements; however,when shear is to be applied to an outerblock area, then the available distance that can be allocated to the block area,i.e., its maximum inline progression dimension length prior to shear transformation, is reduced byB*sin(θ),whereB is the block progression dimension of the outerblock area andθ is theshear angle, in order to fit the block area into the content rectangle of the immediate ancestor block area of the paragraph.

10.2.40 tts:showBackground

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

Note:

The background of a region includes marks produced by either (or both) (1) a background color or (2) a background image,if either apply to the region.

Values:"always" |"whenActive"
Initial:always
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:showBackground derivation

If a region is nottemporally active, then its background is not rendered; however, if it istemporally active, then

  1. if the value of this attribute iswhenActive, then the region's background is rendered only when content is selected into the region, where that content is alsotemporally active;

  2. otherwise, if the value of this attribute isalways, then the region's background is rendered irrespective of whether content is selected into the region.

If a computed value of the property associated with this attribute is not supported,then apresentation 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>

10.2.41 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.

Values:"left" |"center" |"right" |"start" |"end" |"justify"
Initial:start
Applies to:p
Inherited:see prose
Percentages:N/A
Animatable:discrete
Semantic basis:textAlign derivation

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

Thetts:textAlign style is illustrated by the following examples.

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 text alignment of the last line area of the last block area generated by ap elementfollows the semantics of thetext-align-last property with a value ofrelative per[XSL-FO 1.1], §7.16.10.

10.2.42 tts:textCombine

When a vertical writing mode applies, thetts:textCombine attribute is used to specify a style property thatdetermines whether and how multiple characters are combined horizontally so that theirglyph areas fit within the width of a single line of the surrounding vertical text.If a horizontal writing mode applies, then this property is ignoredfor the purpose of presentation processing.

Combination processing may make use of one or more techniques to obtain the goal of visual combination into an em square of the surrounding vertical text.For example, half-width variant forms may be selected, a ligature may be selected, a smaller font size may be applied, etc. At a minimum, animplementation that supports this style property must be able to select half-width variant forms if available. If none of these techniques areable to achieve the target dimension along the block progression dimension of the containing line area, then this dimension of the containing line area may be increased ifpermitted by the line stacking strategy in effect.

Values:<text-combine>
Initial:none
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:textCombine derivation

If the specified value of this attribute isnone, then no combination processing applies.If the specified value of this attribute isall, then all affected characters should be combined.

Combination applies after all affected characters have been processed as if a horizontal writing mode applied. In particular, bidirectional processing, ligatures, glyph subtitutions or combination of Unicode combining characters if used is applied before the combination process specified by thetts:textCombine attribute.

Combination must not cross an element boundary, a bidirectional boundary, or anon-glyph area boundary.

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

Thetts:textCombine style is illustrated by the following example.

Example Fragment – Text Combine
<p region="tbrlLeft">あい  <spantts:textCombine="none">AB34</span>三四</p><p region="tbrlCenter">あい  <spantts:textCombine="all">AB34</span>三四</p>

Example Rendition – Text Combine
TTML textCombine style property

Note:

In the above example, for the valueall oftts:textCombine, the presentation processor selected half-width variants of the affected characters, but the resulting width is larger than the em square of the surrounding vertical text, to avoid readability issues and as permitted by TTML.

10.2.43 tts:textDecoration

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

Values:<text-decoration>
Initial:none
Applies to:span
Inherited:yes, but seespecial semantics
Percentages:N/A
Animatable:discrete
Semantic basis:textDecoration derivation

If a computed value of the property associated with this attribute is not supported,then apresentation 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
10.2.43.1 Special Semantics of Text Decoration

The computed value of the property associated with this attribute consists of a 3-tuple,where each entry 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 entries 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.

10.2.44 tts:textEmphasis

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

Values:<text-emphasis>
Initial:none
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete; continuous (color only)
Semantic basis:textEmphasis derivation

If no emphasis style is specified,then the emphasis style must be interpreted as if a style ofauto were specified.If no emphasis color is specified,then the emphasis color must be interpreted as if a color ofcurrent were specified.If no emphasis position is specified,then the emphasis position must be interpreted as if a position ofoutside were specified.

Note:

When employing the Mongolian script set in vertical left-to-right lines, it may be desirable that the initial value assignedto emphasis position beafter instead ofoutside, which is resolved tobefore for all non-final lines. Inthis case, an author may redefine the default initial value for this attribute by including an element<initial tts:textEmphasis="none transparent after"/> in a document'sstyling element.

Thetts:textEmphasis style is illustrated by the following example.

Example Fragment – Text Emphasis
<p>  <spantts:textEmphasis="filled circle before">花</span>  <spantts:textEmphasis="filled dot before">よ</span>  <spantts:textEmphasis="filled sesame before">り</span>  <spantts:textEmphasis="open circle before">だ</span>  <spantts:textEmphasis="open dot before">ん</span>  <spantts:textEmphasis="open sesame before">ご</span>  <br/>  <spantts:textEmphasis="filled circle after">花</span>  <spantts:textEmphasis="filled dot after">よ</span>  <spantts:textEmphasis="filled sesame after">り</span>  <spantts:textEmphasis="open circle after">だ</span>  <spantts:textEmphasis="open dot after">ん</span>  <spantts:textEmphasis="open sesame after">ご</span></p>

Example Rendition – Text Emphasis
TTML textEmphasis style property

10.2.45 tts:textOrientation

Thetts:textOrientation attribute is used to specify a style property thatdefines a text orientation to apply toglyph areas generatedby content flowed into a region to which a vertical writing mode applies.

Values:"mixed" |"sideways" |"upright"
Initial:mixed
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:textOrientation derivation

The presentation semantics of this style property apply only when a verticalwriting mode applies; therefore, if a horizontal writing mode applies, this styleproperty has no effect.

In the following,glyph areas associated with content characters are described in terms of whetherthey are rotated or not rotated in vertical writing modes, where this determination is made in accordance with theVertical_Orientationof each content character as determined by[UTR50].

If the value of this attribute ismixed, then rotatedglyph areas are set sidewaysand non-rotatedglyph areas are set upright, wheresideways means rotated 90° clockwise,and whereupright means not rotated.

Note:

According to[UTR50], visual rotation of aglyph areas may occur through either the substitution of a rotatedglyph areas or by performing an affine rotation transformation on theglyph areas's outline (or raster image),where the determination of which of these applies depends on the specific font used during presentation processing.

If the value of this attribute issideways, then allglyph areasare rotated 90° clockwise.

If the value of this attribute isupright, then all characters are consideredto have a vertical orientation ofU, in which case noglyph areas are rotated. In this case the(potential) substitution of rotatedglyph areasand the application of an affine rotation transformationare disabled, and theglyph area renderedis the non-rotated form.In addition, for purposes of bidirectional processing, this value causes allaffected characters to be treated as strong left-to-right, i.e., to be treated as ifatts:direction ofltr andtts:unicodeBidi ofoverride were applied.

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

Thetts:textOrientation style is illustrated by the followingexample.

Example Fragment – Text Orientation
<region xml:id="vertical"tts:writingMode="tblr"/>...<p region="vertical">  <spantts:textOrientation="mixed">A</span>  <spantts:textOrientation="upright">B</span></p>

Example Rendition – Text Orientation
TTML textOrientation style property

10.2.46 tts:textOutline

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

Values:<text-outline>
Initial:none
Applies to:span
Inherited:yes
Percentages:relative to this element's font size
Animatable:discrete; continuous (color only)
Semantic basis:textOutline derivation

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 component of 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 apresentation 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
textOutline style property

10.2.47 tts:textShadow

Thetts:textShadow attribute is used to specify a style property thatdefines one or more text shadow decorations to apply to glyphs that are selected forglyph areas generatedby content flowed into a region.

If multiple text shadows apply, then they are drawn in the specified order immediately prior to drawing theglyph area to which they apply.

Values:<text-shadow>
Initial:none
Applies to:span
Inherited:yes
Percentages:relative to this element's font size
Animatable:discrete; continuous (color only)
Semantic basis:textShadow derivation

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

Example Fragment – Text Shadow
<style xml:id="s1"  tts:backgroundColor="black"  tts:color="white"  tts:lineHeight="125%"  tts:textAlign="center"/>...<p><span tts:padding="1%">I serve it with greens in those<spantts:textShadow="10% -20% 5% lime">shadowy scenes,</span><br/>And I use it for striking a light:</span></p>

Example Rendition – Text Shadow
TTML textShadow style property

10.2.48 tts:unicodeBidi

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

Values:"normal" |"embed" |"bidiOverride" |"isolate"
Initial:normal
Applies to:p,span
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:unicodeBidi derivation

If a computed value of the property associated with this attribute is not supported,then apresentation 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

10.2.49 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.

Values:"visible" |"hidden"
Initial:visible
Applies to:body,div,image,p,region,span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:visibility derivation

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 generated bythis element are rendered visible when presented on a visual medium. If the computed value ishidden, then they are not rendered visible,i.e., they are hidden; notwithstanding the foregoing, a descendant element of a hidden element is rendered visible if the computed value of this propertyisvisible on the descendant.

If a computed value of the property associated with this attribute is not supported,then apresentation 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)

10.2.50 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.

Values:"wrap" |"noWrap"
Initial:wrap
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:discrete
Semantic basis:wrapOption derivation

If a computed value of the property associated with this attribute is not supported,then apresentation 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

10.2.51 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.

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

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

Note:

A writing mode for which the inline progression direction is left-to-right or right-to-left is referred toas ahorizontal writing mode, while a writing mode for which the inline progression direction istop-to-bottom is referred to as avertical writing mode.

Thetts:writingMode style is illustrated by the following example.

Example Fragment – Writing Mode
<tt ... xml:lang="en">...<region xml:id="top" tts:origin="10% 10%" tts:extent="55% 10%"tts:writingMode="rltb"/><region xml:id="right" tts:origin="70% 10%" tts:extent="10% 80%"tts:writingMode="tbrl"/>...<p region="top"><span xml:lang="ar">نشاط التدويل،</span> W3C</p><p region="right">hello <span xml:lang="ja">みなさん、<br/>こんにちは</span></p>...</tt>

Example Rendition – Writing Mode
TTML writingMode style property

Note:

In this example, the natural language of textual content is identified using multiplexml:lang attributes. While not technically required to demonstrate thetts:writingMode attribute, the use of explicit language identification is recommended in markup that contains content in multiple natural languages.

10.2.52 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.

Values:"auto" |<integer>
Initial:auto
Applies to:region
Inherited:no
Percentages:N/A
Animatable:discrete
Semantic basis:zIndex derivation

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.

The semantics of the valueauto are those defined by[XSL-FO 1.1], §7.30.18, where thett elementis considered to establish the root stacking context.

If a computed value of the property associated with this attribute is not supported,then apresentation 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

10.2.53 tta:gain

Thetta:gain attribute is used to specify an audio style property thatdetermines again multiplier to be applied to the applicable audio content duringthe active duration of the element on which this attribute is specified.

Values:<number>
Initial:1
Applies to:audio,body,div,p,span
Inherited:no
Percentages:N/A
Animatable:discrete; continuous

If the specified value of this attribute is not contained in the interval[-1,1],then the computed value of the property associated with this attribute is clamped to this bounded interval.

If the computed value of the property associated with this attribute is negative, then gain is set tothe absolute value of the computed value and a phase inversion is applied.

If gain is 0, then active audio content is fully muted. If gain is 1, then the amplitude of activeaudio content is not modified. Otherwise, gain is greater than 0 and less than 1, in which case a relative attenuationis applied to the combined active audio content, where this attenuation is linear over the interval[0,1].

Thetta:gain style is illustrated by the following example.

Example Fragment – Gain
<div>  <audio src="#track1"tta:gain="0.5"/>  <ptta:gain="0.3">    <audio src="#track2"tta:gain="0.8"/>  </p></div>

Note:

In this example, two audio sources,track1 andtrack2, are active. Thediv element provides one active audio track as an output to its childp, and this childp combines a second active audio track to form the output to its children. Furthermore, distinct gains are specified on each source audio as well as on the output ofp, such that the final output is0.3[0.5(track1) + 0.8(track2)].

Note:

The semantics of the style property represented by this attribute are based uponthat defined by[WEBAUDIO], §2.7, where the element on which the propertyis specified generates aGainNode in the audio graph, whosegainattribute has the same computed value, and whose input for acontent element that is not anaudio generating elementis the sum of the audio output of this element's parent element and the combined (linearly summed) audiooutput of all child audio generating elements; otherwise, i.e., for an audio generating element, the inputis the element's generated audio.

10.2.54 tta:pan

Thetta:pan attribute is used to specify an audio style property thatdetermines a stereoscopicpan vector to be applied to the applicable audio content duringthe active duration of the element on which this attribute is specified.

Values:<number>
Initial:0
Applies to:audio,body,div,p,span
Inherited:no
Percentages:N/A
Animatable:discrete; continuous

If the specified value of this attribute is not contained in the interval[-1,1],then the computed value of the property associated with this attribute is clamped to this bounded interval.

If the computed value of the property associated with this attribute is negative, then the pan direction is to the left of center.If the pan value is 0, then the stereoscopic directionality of active audio content is not modified, otherwise, the pan value is positive,in which case the pan direction is to the right of center, where a value of-1 designates fully left, and a valueof1 designates fully right.

Thetta:pan style is illustrated by the following example.

Example Fragment – Pan
<div>  <audio src="#track1"tta:pan="0.5"/>  <ptta:pan="0.3">    <audio src="#track2"tta:pan="0.8"/>  </p></div>

Note:

In this example, two audio sources,track1 andtrack2, are active. Thediv element provides one active audio track as an output to its childp, and this childp combines a second active audio track to form the output to its children. Furthermore, distinct pans are specified on each source audio as well as on the output ofp, such that the final output pan is0.3[0.5(track1) + 0.8(track2)].

Note:

The semantics of the style property represented by this attribute are based uponthat defined by[WEBAUDIO], §2.21, where the element on which the propertyis specified generates aStereoPannerNode in the audio graph, whosepanattribute has the same computed value, and whose input for acontent element that is not anaudio generating elementis the sum of the audio output of this element's parent element and the combined (linearly summed) audiooutput of all child audio generating elements; otherwise, i.e., for an audio generating element, the inputis the element's generated audio.

10.2.55 tta:pitch

Thetta:pitch attribute is used to specify an audio style property thatdetermines speech pitch when speech synthesis is enabled for the affected content

Values:<pitch>
Initial:0%
Applies to:span
Inherited:yes
Percentages:relative to input audio pitch
Animatable:none

Thetta:pitch style is illustrated by the following example.

Example Fragment – Pitch
<p>Apply relative pitch adjustment to <spantta:pitch="+10hz">this</span> word.</p>

Note:

The semantics of the style property represented by this attribute are derived fromthat defined by[SSML 1.0] §3.2.4 where the equivalent of aprosodyelement with apitch attribute equal to the computed value is applied to the spokencharacter content.

10.2.56 tta:speak

Thetta:speak attribute is used to specify an audio style property thatdetermines whether speech synthesis is enabled for the affected content, and, if enabled, which rate of speech to apply.

Values:"none" |"normal" |"fast" |"slow"
Initial:none
Applies to:span
Inherited:yes
Percentages:N/A
Animatable:none

If the value of this attribute isnone, then speech synthesis is disabled for the affected content. Otherwise,if the value of this attribute isnormal,fast, orslow, then speech synthesis is enabled at anormal, fast, or slow speech rate, respectively.

Thetta:speak style is illustrated by the following example.

Example Fragment – Speak
<p>Speak <spantta:speak="normal">this</span> word.</p>

Note:

The semantics of the style property represented by this attribute are derived fromthat defined by[SSML 1.0] §3.2.4 where the equivalent of aprosodyelement with arate attribute equal to the computed value is applied to the spokencharacter content.

10.3 Styling Value Expressions

Style property values include the use of the following expressions:

10.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 apresentation 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.

10.3.2 <annotation-color>

An <annotation-color> expression is used to express the color of textannotation marks, such as ruby or emphasis marks.

Syntax Representation – <annotation-color>
<annotation-color>  : "current"  |<color>
current

Equivalent to the computed value oftts:color of the affected text.

<color>

The specified color.

If an implementation does not recognize or otherwise distinguish annotation color value, thenit must be interpreted as if a style ofcurrent were specified; as such, an implementation thatsupports text annotation marks must minimally support thecurrent value.

10.3.3 <annotation-position>

An <annotation-position> expression is used to express the position of textannotation marks, such as ruby or emphasis marks.

Syntax Representation – <annotation-position>
<annotation-position>  : "before"  | "after"  | "outside"
before

Towards the before edge of the affectedglyph areas. If a horizontal writing mode applies, then this is towards thetop of theglyph areas. If a vertical writing mode applies, then this is either towards the right or left of theglyph areas,according to whethertts:writingMode resolves totbrl ortblr, respectively.

after

Towards the after edge of the affectedglyph areas. If a horizontal writing mode applies, then this is towards thebottom of theglyph areas. If a vertical writing mode applies, then this is either towards the left or right of theglyph areas, according to whethertts:writingMode resolves totbrl ortblr, respectively.

outside

Equivalent tobefore for (1) the only line area of or (2) the first line area of the last block area generated byap element which contains annotated text; otherwise, equivalent toafter.

If an implementation does not recognize or otherwise distinguish an annotation position value, thenit must be interpreted as if a position ofbefore were specified; as such, an implementation thatsupports text annotation marks must minimally support thebefore value.

10.3.4 <border>

A <border> expression is used to express one or more border style component expressions.

Syntax Representation – <border>

At least one of the border style components must be present, for example, a<border-style>component of valuenone. Component order is not significant.

10.3.5 <border-color>

A <border-color> expression is used to express the color of oneor more borders.

Syntax Representation – <border-color>
<border-color>  :<color>

10.3.6 <border-radii>

A <border-radii> expression is used to express the radii of oneor more borders.

Syntax Representation – <border-radii>
<border-radii>  : "radii("<lwsp>?<length> (<lwsp>? ","<lwsp>?<length> )?<lwsp>? ")"

If two<length> expressions are specified, then the first lengthcorresponds to the quarter ellipse radius for the inline progression dimension (for content) orhorizontal direction (for regions), while the second length, if present, corresponds to thequarter ellipse radius for the block progression dimension (for content) or vertical direction(for regions), or, if only one length is present, then it is interpreted as if two lengths werespecified with the same value.

10.3.7 <border-style>

A <border-style> expression is used to express the style of oneor more borders.

Syntax Representation – <border-style>
<border-style>  : "none"  | "dotted"  | "dashed"  | "solid"  | "double"

The interpretation ofdotted,dashed, anddouble are consideredto be implementation dependent.

If an implementation does not recognize or otherwise distinguish one of these border style values, thenit must be interpreted as if a style ofsolid were specified; as such, an implementation thatsupports borders must minimally support thesolid value.

10.3.8 <border-thickness>

A <border-thickness> expression is used to express the thickness of oneor more borders.

Syntax Representation – <border-thickness>
<border-thickness>  : "thin"  | "medium"  | "thick"  |<length>

The interpretation ofthin,medium, andthick are consideredto be implementation dependent; however, the resolved lengths must adhere to the followingconstraints: thickness(thin) < thickness(medium); thickness(medium) < thickness(thick).

If a border thickness is expressed as a<length>,then it must not take the form of a percentage value; i.e., it must take the form of a scalar value.

10.3.9 <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 ")"  |<named-color>rrggbb  :<hex-digit>{6}rrggbbaa  :<hex-digit>{8}r-value | g-value | b-value | a-value  :<lwsp>? component-value<lwsp>?component-value  :<non-negative-integer>                    // valid range: [0,255]

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, apresentation processor may ultimately convert the SRGB valuesused here to the YUV color space for rendition on a television device.

If apresentation 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 and alpha and the supported color and 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.

10.3.10 <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"

10.3.11 <emphasis-color>

An <emphasis-color> expression is used to express the color of textemphasis marks.

Syntax Representation – <emphasis-color>
<emphasis-color>  :<annotation-color>

10.3.12 <emphasis-position>

An <emphasis-position> expression is used to express the position of textemphasis marks.

Syntax Representation – <emphasis-position>
<emphasis-position>  :<annotation-position>

10.3.13 <emphasis-style>

An <emphasis-style> expression is used to express the style of textemphasis marks.

Syntax Representation – <emphasis-style>
<emphasis-style>  : "none"  | "auto"  | ( "filled" | "open" ) || ( "circle" | "dot" | "sesame" )  |<quoted-string>

The semantics of text emphasis style values are defined as follows:

none

No text emphasis mark.

auto

If a vertical writing mode applies, then equivalent tofilled sesame; otherwise,equivalent tofilled circle.

filled

Emphasis mark is filled with emphasis color.

open

Emphasis mark is not filled, i.e., its outline is stroked with the emphasis color, but it is not filled.

circle

Emphasis mark is a circle. If filled, then equivalent to U+25CF '●'; if open, then equivalent to U+25CB '○'

dot

Emphasis mark is a dot. If filled, then equivalent to U+2022 '•'; if open, then equivalent to U+25E6 '◦'

sesame

Emphasis mark is a sesame. If filled, then equivalent to U+FE45 '﹅'; if open, then equivalent to U+FE46 '﹆'

<quoted-string>

Emphasis mark is the first grapheme cluster of string, with remainder of string ignored.

If onlyfilled oropen is specified, then it is equivalent tofilled circle andopen circle, respectively.

If onlycircle,dot, orsesame is specified, then it is equivalent tofilled circle,filled dot, andfilled sesame, respectively.

If an implementation does not recognize or otherwise distinguish an emphasis style value, thenit must be interpreted as if a style ofauto were specified; as such, an implementation thatsupports text emphasis marks must minimally support theauto value.

10.3.14 <extent>

An <extent> expression specifies the dimensions of a rectangular area.

Syntax Representation – <extent>
<extent>  : "auto"  | "contain"  | "cover"  |<measure><lwsp><measure>

10.3.15 <family-name>

A <family-name> expression specifies a font family name.

Syntax Representation – <family-name>
<family-name>  : unquoted-string  |<quoted-string>unquoted-string  : identifier (<lwsp> identifier)*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  : "\\"char

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

  • the semantic value of a <family-name> 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 <family-name> 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 <family-name> that takes the form of anunquoted-string that contains a singleidentifier thatmatches (by case sensitive comparison) a <generic-family-name> must be interpreted as that <generic-family-name>;

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

  • 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 <family-name> 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.

10.3.16 <font-families>

A <font-families> expression specifies a non-empty list of font families.

Syntax Representation – <font-families>
<font-families>  : font-family (<lwsp>? ","<lwsp>? font-family)*font-family  :<family-name>  |<generic-family-name>

10.3.17 <font-size>

A <font-size> expression specifies a font size in terms of one or two<length> expressions.

Syntax Representation – <font-size>
<font-size>  :<length> (<lwsp><length>)?

10.3.18 <font-variant>

A <font-variant> expression specifies one or more keywords that influence the characterto glyph mapping process, and, specifically, whether and which type of variant glyph is to be selected(if available in the applicable font) when peforming presentation processing.

Syntax Representation – <font-variant>
<font-variant>  : "normal"  | ("super" | "sub") || ("full" | "half") || "ruby"

If the valuenormal applies, then, unless ahigher level protocol applies,none of subscript, superscript, full, half, or rubyglyph variations are selected.

If the keywordsuper applies, then superscript glyph variants are selected (if available).For example, when rendering with an OpenType font, the OpenTypesups feature is enabled. If the keywordsub applies,then subscript glyph variants are selected (if available).For example, when rendering with an OpenType font, the OpenTypesubs feature is enabled.

If the keywordfull applies, then full width glyph variants are selected (if available).For example, when rendering with an OpenType font, the OpenTypefwid feature is enabled. If the keywordhalf applies,then half width glyph variants are selected (if available).For example, when rendering with an OpenType font, the OpenTypehwid feature is enabled.

If the keywordruby applies, then ruby glyph variants are selected (if available).For example, when rendering with an OpenType font, the OpenTyperuby feature is enabled.

Note:

For the definition of an OpenType font, see[OFF].

If multiple variations apply, then glyphs that satisfy the maximum number of applicable variations are selected. For example,if bothsuper andhalf variations are specified, then glyphs that are simultaneously designated as both superscript andhalf width variations are selected (if available). If only subsets of the requested variations can be satisfied, and there is more thanone possible subset that would result in a difference in the selected variation glyphs, then which subset applies is considered implementationdependent, i.e., determined by thedocument processing context.

10.3.19 <generic-family-name>

A <generic-family-name> 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 – <generic-family-name>
<generic-family-name>  : "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.

10.3.20 <hex-digit>

A <hex-digit> 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 – <hex-digit>
<hex-digit>  :<digit>  | "a" | "b" | "c" | "d" | "e" | "f"  | "A" | "B" | "C" | "D" | "E" | "F"

10.3.21 <integer>

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

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

10.3.22 <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  |<percentage>scalar  :<number> unitsunits  : "px"  | "em"  | "c"                                     // abbreviation of "cell"  | "rw"  | "rh"

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

The unitpx (pixel) corresponds to alogical pixel ofthedocument coordinate space,as defined byH.3 Coordinate Space; however,thepx (pixel) unit should not be used in a<length> expressionunless atts:extent attribute consistingof two<length> specifications usingpx (pixel) units isspecified on thett element,without which the use of thepx (pixel) unit is deprecated

When specified relative to a font whose size is expressed as a single lengthor as two lengths of equal length, the unitem is considered to beidentical to that defined by[XSL-FO 1.1], §5.9.13;however, when specified relative to a font whose size is expressed astwo lengths 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.

Unless specified otherwise, theem unit is resolved in relation to thecomputed value of the property associated with thetts:fontSize attribute thatapplies to the element in which context theem unit is resolved.

The semantics of the unitc (cell) aredefined by the parameter7.2.1 ttp:cellResolution.

Theroot container relativeunitsrw andrh are defined asone percent (1%) of the width and height of theroot container region, respectively.For example, the length25rw is interpreted as 25% of the width oftheroot container region.

10.3.23 <lwsp>

A <lwsp> is used to express the common linear whitespace (LWSP) syntactic construct.

Syntax Representation – <lwsp>
<lwsp>  :<whitespace>+

10.3.24 <measure>

A <measure> value expresses a distance as anabsolute dimension or arelative dimension, where the context of use determines which dimension applies.

If one of the two absolute dimensions,height orwidth, applies,then the associated relative dimension,bpd oripd, is determined in accordance with the applicablewriting mode andtext orientation, such thatthe associated relative dimension governs the interpretation of the specified value as described below.

Otherwise, one of the two relative dimensions,bpd oripd, applies, in which case that relative dimension governs theinterpretation of the speccified value as defined below.

Syntax Representation – <measure>
<measure>  : "auto"  | "fitContent"  | "maxContent"  | "minContent"  |<length>

The semantics of these values are defined as follows:

auto

Foripd,when applied to an image, the intrinsic size in theinline progression direction; otherwise,the numeric value that would be obtained if a value of100% were specified.

Forbpd,when applied to an image, the intrinsic size in theblock progression direction; otherwise,the numeric value that would be obtained if a value of100% were specified.

fitContent

A numeric value equal to the maximum of the values of (1)minContent and (2) the minimum of values ofmaxContentandauto.

maxContent

Foripd, the maximum numeric value that encloses all of the element's content such that lines are broken only athard, i.e., mandatory, break points, even if that means overflowing the parent'sipd.

Forbpd, the maximum numeric value that encloses all of the element's content such that lines are broken atall possible line break positions, i.e., both hard (mandatory) and soft (optional) break points.

minContent

Foripd, the minimum numeric value that encloses all of the element's content such that lines are broken atall possible line break positions, i.e., both hard (mandatory) and soft (optional) break points.

Forbpd, the minimum numeric value that encloses all of the element's content such that lines are broken only athard, i.e., mandatory, break points, even if that means overflowing the parent'sipd.

<length>

A non-negative numeric value expressed as a scalar or percentage.

10.3.25 <named-color>

A <named-color> 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 – <named-color>
<named-color>  : "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.

10.3.26 <non-negative-integer>

A <non-negative-integer> expression is used to express an arbitrary, non-negative integral value.

Syntax Representation – <non-negative-integer>
<non-negative-integer>  :<digit>+

10.3.27 <non-negative-number>

A <non-negative-number> expression is used to express an arbitrary, non-negative integer or real valued number.

Syntax Representation – <non-negative-number>
<non-negative-number>  :<non-negative-integer>  | non-negative-realnon-negative-real  :<digit>* "."<digit>+

10.3.28 <number>

An <number> expression is used to express an arbitrary, optionally signed integer or real valued number.

Syntax Representation – <number>
<number>  : sign?<non-negative-number>sign  : "+" | "-"

10.3.29 <origin>

An <origin> expression specifies the dimensions of a rectangular area.

Syntax Representation – <origin>
<origin>  : "auto"  |<length><lwsp><length>

10.3.30 <padding>

A <padding> expression specifies the insets that apply to an area's padding rectangle.

Syntax Representation – <padding>

10.3.31 <percentage>

An <percentage> expression is used to express an arbitrary, signed integral or real valued percentage.

Syntax Representation – <percentage>
<percentage>  :<number> "%"

10.3.32 <pitch>

A <pitch> value expresses an absolute or relative pitch frequency adjustment to be applied to synthesized speech.

Syntax Representation – <pitch>
<pitch>  :<percentage>  |<number> pitch-units?pitch-units  : "hz" | "st"

If specified as a<percentage>, then the output pitch (frequency) isinput pitch (frequency) * (1.0 + (percentage/100)).If specified as a<number> andif asign is specified, then the output pitch is the input pitch adjusted positively (negatively) in accordance withwhether the sign is positive (negative); however, if no sign is specified, then the input pitch is set to the specified value, i.e.,is not relative to the input pitch. If aunits component is present, then it specifies either Hertz (hz)or semi-tones (st), i.e., half steps on the standard diatonic scale.If nounits component is specified, then Hertz is implied.

10.3.33 <position>

A <position> expression is used to indirectly determine the origin of an area or an image with respect to a reference area.

Syntax Representation – <position>
<position>  : offset-position-h                             // single component value  | edge-keyword-v                                // single component value  | offset-position-h<lwsp> offset-position-v    // two component value  | position-keyword-v<lwsp> position-keyword-h  // two component value  | position-keyword-h<lwsp> edge-offset-v       // three component value  | position-keyword-v<lwsp> edge-offset-h       // three component value  | edge-offset-h<lwsp> position-keyword-v       // three component value  | edge-offset-v<lwsp> position-keyword-h       // three component value  | edge-offset-h<lwsp> edge-offset-v            // four component value  | edge-offset-v<lwsp> edge-offset-h            // four component valueoffset-position-h  : position-keyword-h  |<length>offset-position-v  : position-keyword-v  |<length>edge-offset-h  : edge-keyword-h<lwsp><length>edge-offset-v  : edge-keyword-v<lwsp><length>position-keyword-h  : "center"  | edge-keyword-hposition-keyword-v  : "center"  | edge-keyword-vedge-keyword-h  : "left"  | "right"edge-keyword-v  : "top"  | "bottom"

A <position> expression may consist of one to four component values as follows, formally defined by the above syntax:

one component

either a horizontal offset position or a vertical edge keyword

two components

a horizontal position offset followed by a vertical position offset ora vertical position keyword followed by a horizontal position keyword

three components

an horizontal edge offset and a vertical position keyword or a horizontal position keyword and a vertical edge offset, in any order

four components

an horizontal edge offset and a vertical edge offset, in any order

Every <position> expression can be translated to a four component equivalent of the formleft<length> top<length> by means of the followingequivalence tables:

One Component Equivalents
ValueEquivalent
centercenter center
leftleft center
rightright center
topcenter top
bottomcenter bottom
<length><length> center

Two Component Equivalents
ValueEquivalent
bottom centerleft 50% top 100%
bottom leftleft 0% top 100%
bottom rightleft 100% top 100%
center centerleft 50% top 50%
center topleft 50% top 0%
center bottomleft 50% top 100%
center leftleft 0% top 50%
center rightleft 100% top 50%
center<length>left 50% top<length>
left centerleft 0% top 50%
left topleft 0% top 0%
left bottomleft 0% top 100%
left<length>left 0% top<length>
right centerleft 100% top 50%
right topleft 100% top 0%
right bottomleft 100% top 100%
right<length>left 100% top<length>
top centerleft 50% top 0%
top leftleft 0% top 0%
top rightleft 100% top 0%
<length> centerleft<length> top 50%
<length> topleft<length> top 0%
<length> bottomleft<length> top 100%
<length-1><length-2>left<length-1> top<length-2>

Note:

When a two component expression consists of two<length> values, then,to avoid a possibly ambiguous interpretation, the first is interpreted as a horizontal length and the secondas a vertical length as indicated in the last row of the above table.

Three Component Equivalents
ValueEquivalent
bottom left<length>left<length> top 100%
bottom right<length>right<length> top 100%
bottom<length> centerleft 50% bottom<length>
bottom<length> leftleft 0% bottom<length>
bottom<length> rightleft 100% bottom<length>
center bottom<length>left 50% bottom<length>
center left<length>left<length> top 50%
center right<length>right<length> top 50%
center top<length>left 50% top<length>
left bottom<length>left 0% bottom<length>
left top<length>left 0% top<length>
left<length> bottomleft<length> top 100%
left<length> centerleft<length> top 50%
left<length> topleft<length> top 0%
right bottom<length>left 100% bottom<length>
right top<length>left 100% top<length>
right<length> bottomright<length> top 100%
right<length> centerright<length> top 50%
right<length> topright<length> top 0%
top left<length>left<length> top 0%
top right<length>right<length> top 0%
top<length> centerleft 50% top<length>
top<length> leftleft 100% top<length>
top<length> rightleft 100% top<length>

Four Component Equivalents
ValueEquivalent
bottom<length-v> left<length-h>left<length-h> top (100% -<length-v>)
bottom<length-v> right<length-h>left (100% -<length-h>) top (100% -<length-v>)
left<length-h> bottom<length-v>left<length-h> top (100% -<length-v>)
right<length-h> bottom<length-v>left (100% -<length-h>) top (100% -<length-v>)
right<length-h> top<length-v>left (100% -<length-h>) top<length-v>
top<length-v> left<length-h>left<length-h> top<length-v>
top<length-v> right<length-h>left (100% -<length-h>) top<length-v>

If a<length> component is expressed as a percentage, then that percentage is interpreted in relation tosome reference dimension, where the reference dimension is defined by the context of use.

A<length> component of a <position> expression may be positive or negative. Positive lengths are interpreted asinsets from the referenced edge, while negative lengths are interpreted as outsets from the referenced edge. For example, an inset from theleftedge is located to the right of that edge (if non-zero), while an outset from theleft edge is located to the left of that edge (if non-zero). Incontrast, an inset from theright edge is located to the left of that edge (if non-zero), while an outset from theright edgeis located to the right of that edge (if non-zero). A similar arrangement holds fortop andbottom edges.

When performing four component equivalent conversion, the expression(100% -<length-h>)is to be interpreted as the difference between 100% and the percentage equivalent of the<length-h>expression. Similarly, the expression(100% -<length-v>)is to be interpreted as the difference between 100% and the percentage equivalent of the<length-v> expression.In both cases, the resulting difference may be a negative percentage.

10.3.34 <ruby-reserve>

A <ruby-reserve> expression is used to reserve space for the placement ofruby text content.

Syntax Representation – <ruby-reserve>
<ruby-reserve>  : "none"  | ("both" |<annotation-position>) (<lwsp><length>)?

10.3.35 <shadow>

A <shadow> value expresses a shadow decoration to be applied to a generated area. Ifthe generated area is aglyph area, then it applies to the outline of the glyph(not theglyph area bounding box). If the generated area is not aglyph area,then it applies to the border rectangle of the area.

Syntax Representation – <shadow>

A shadow value expression consists oftwo to three<length> terms andan optional<color> term,where terms are separated from one another by linear white space (LWSP).

The first<length> term denotes the offsetalong thehorizontal axis dimension of the associated area,where positive denotes towards the right edge and negative towards the left edge,the second<length> term denotes the offsetalong thevertical axis dimension of the associated area,where positive denotes towards the bottom edge and negative towards the top edge.The third<length> term, if present, denotes the blur radius, and must be non-negative.

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

If no<color> term ispresent, then the computed value of thetts:color property applies.

Note:

When a<length> expressed incells is used in atts:textShadow value,the cell's dimension in the block progression dimension applies.For example, if text shadow thickness is specified as 0.1c, the cell resolutionis 20 by 10, and the extent of theroot container region is 640 by 480, then theshadow thickness will be a nominal 480 / 10 * 0.1 pixels, i.e., 4.8px,without taking into account rasterization effects.

10.3.36 <text-combine>

A <text-combine> expression is used to determine the behavior of text combination effects in vertical text.

Syntax Representation – <text-combine>
<text-combine>  : "none"  | "all"

10.3.37 <text-decoration>

A <text-decoration> expression is used to determine the behavior of text decoration effects.

Syntax Representation – <text-decoration>
<text-decoration>  : "none"  | (("underline" | "noUnderline") || ("lineThrough" | "noLineThrough") || ("overline" | "noOverline"))

10.3.38 <text-emphasis>

A <text-emphasis> expression is used to determine the behavior of text emphasis effects.

Syntax Representation – <text-emphasis>

10.3.39 <text-outline>

A <text-outline> expression is used to determine the behavior of text outline effects.

Syntax Representation – <text-outline>
<text-outline>  : "none"  | (<color><lwsp>)?<length> (<lwsp><length>)?

10.3.40 <text-shadow>

A <text-shadow> expression is used to determine the behavior of text shadow effects.

Syntax Representation – <text-shadow>
<text-shadow>  : "none"  |<shadow> (<lwsp>? ","<lwsp>?<shadow>)*

10.3.41 <whitespace>

A <whitespace> value is used to express a common whitespace characters.

Syntax Representation – <whitespace>
<whitespace>  : ( " " | "\t" | "\n" | "\r" )

10.4 Styling Semantics

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-FO 1.1], §5.

10.4.1 Style Association

Style association is a sub-process of10.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:

10.4.1.1 Inline Styling

Style properties may be expressed in an inline manner by directspecification of an attribute from the TT Style Namespaces 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 nodes"White 1 " and" White 2", which are interpreted asanonymous spans, are notassociated with a color style property; rather, they inherit their color stylefrom their parentp element as described in10.4.2.1 Content Style Inheritance below.

10.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:

Acontent 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 aboveby10.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 nodes"White 1 " and" White 2", which are interpreted asanonymous spans, are notassociated with a color style property; rather, they inherit their color stylefrom their parentp element as described in10.4.2.1 Content Style Inheritance below.

10.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:

Acontent 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 by10.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.

10.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 TTML, nested styling applies onlyto theregion element.

10.4.2 Style Inheritance

Style inheritance is a sub-process of10.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 by11.3.1.3 Intermediate Synchronic Document Construction.

Note:

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

10.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 (orananonymous span) and the style property is designated asinheritable.

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 nearest ancestor element that defines the propertywithin 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 does not specify 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.

10.4.2.2 Region Style Inheritance

Style properties are inherited from aregion element in the following case:

  1. if an inheritable style propertyP is not associated withacontent elementor ananonymous spanE, and

  2. if that style 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, theanonymous span that encloses the characteritemsYellow Monospace effectively inherits thetts:colorandtts:fontFamily styles specified on theregionelement into which thep element is flowed (presented).

10.4.3 Style Resolution Value Categories

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

10.4.3.1 Specified Values

The value of a style property that is associated with or inheritedby an element oranonymous spanis referred to as aspecified value.The set of all specified style properties of a given element is referred toas thespecified style set of that element.

10.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, a specified style value may bereinterpreted (or recalculated) in absolute terms, and then recorded as acomputed 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.

10.4.3.3 Used Values

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

Note:

The determination of aused value is always preceded by theinheritance of a computed value; that is to say,used valuecomputation is nominally performed after the10.4.4.4 Style Resolution Process completes.

Note:

See also[CSS2], §6.1.3.

10.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, theselogical pixels are subject tobeing further transformed or mapped to physical (device) pixels duringpresentation.

The final value that results from the logical to device mappingprocess is referred to as anactual value. 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 TTMLpresentation 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 TTMLpresentation 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.

10.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 of11.3.1 Region Layout and Presentation.

10.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;

10.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]ifE is notconditionally excluded, thenfor each nestedconditionally includedstyle 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]ifE is notconditionally excluded, thenfor each style propertyP expressed as a specified stylingattribute ofE,mergeP into the specified styleset ofE,SSS(E);

  5. [animation styling] if theelement type ofE is not aninline animation element,then for eachconditionally includedinline animation element childA of elementE,merge the specified style set ofA,SSS(A), into the specified style set ofE,SSS(E);

  6. [implicit inheritance and initial value fallback] if theelement type ofE is not animation element typeanimate orsetand is not styling element typestyle,then for each style propertyP in the set of style properties definedabove in10.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 isnot aregion element, then perform the following:

      • setP′ to the result oflooking up the value ofP in the computed style set ofthe nearest ancestor element ofE,NEAREST-ANCESTOR(E), such thatCSS(NEAREST-ANCESTOR(E)) contains a definition ofP;

    3. if (1)P is inheritable andE is aregion elementor (2) ifP is not inheritable andP applies toE, then perform the following:

      • setP′ to the initial value ofpropertyP, where the initial value of a property isdetermined as follows:

        1. if aninitialelement defines the initial value forP, then use that value;

        2. otherwise, use the initial value specified by the property definition ofP found abovein10.2 Styling Attribute Vocabulary;

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

10.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 with10.4.4.2 Specified Style Set Processing;

  2. [initialization]initializeCSS(E) to a (deep) copy ofSSS(E);

  3. [filter] ifE is ananimate,set, orstyle 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. if possible, 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 ofananimate,set, orstyle 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 ananimate,set, or referablestyle element.

Note:

Since the relative value resolution rule above may not resolve a relative value, for example,when resolution cannot occur until layout or presentation time, further resolution of acomputed value may be required to obtain aused value.

10.4.4.4 Style Resolution Process

The top-level style resolution process is defined as follows: usinga preorder traversal of each element andanonymous span,E, of an intermediate synchronic document,DOCinter, perform the following orderedsub-steps:

  1. [filter] ifEis not one of the following, then continue to the next element in the preorder traversal, i.e.,do not perform the subsequent step below onE:

  2. [resolve computed styles]determine (obtain) the computed style setCSS ofE, namely,CSS(E), in accordance with10.4.4.3 Computed Style Set Processing.

10.4.5 Style Procedures

This section defines miscellaneous style related procedures referenced elsewhere in this specification.

10.4.5.1 Containment Calculations
[compute containment scaling](inout target rectangle TR,in reference rectangle RR)
  1. If the units of target rectangle TR and reference rectangle RR are not the same, then raise an error condition.

  2. If the width of the target rectangle TR,Wt, is zero, then setWt to one; likewise, if the height of the target rectangle TR,Ht, is zero, then setHt to one.

  3. LetSARr be the storage aspect ratio of the reference rectangleRR.

  4. LetSARt be the storage aspect ratio of the target rectangleTR.

  5. Determine scaling factorSF as follows:

    1. IfSARr is less than or equal toSARt, thenSF isWr /Wt, whereWr andWt are the widths of the reference and target rectangles, respectively.

    2. Otherwise,SARr is greater thanSARt, thenSF isHr /Ht, whereHr andHt are the heights of the reference and target rectangles, respectively.

  6. IfSF is not equal to1.0, then setWt toSF *Wt andHt toSF *Ht, i.e., scale target rectangleTR in place by scale factorSF.

Note:

For the purpose of implementing the above algorithm, storage aspect ratios and scaling factors are to be represented in a form that provides at least 7 significant decimal digits.

10.4.5.2 Cover Calculations
[compute cover scaling](inout target rectangle TR,in reference rectangle RR)
  1. If the units of target rectangle TR and reference rectangle RR are not the same, then raise an error condition.

  2. If the width of the target rectangle TR,Wt, is zero, then setWt to one; likewise, if the height of the target rectangle TR,Ht, is zero, then setHt to one.

  3. LetSFW beWR/WT, whereWR andWT are the widths of the reference rectangle RR and the target rectangle TR, respectively.

  4. LetSFH beHR/HT, whereHR andHT be the heights of the reference rectangle RR and the target rectangle TR, respectively.

  5. IfSFW andSFH are greater than one, letSF be the lesser ofSFW andSFH; otherwise, letSF be the greater ofSFW andSFH.

  6. IfSF is not equal to1.0, then setWt toSF *Wt andHt toSF *Ht, i.e., scale target rectangleTR in place by scale factorSF.

Note:

For the purpose of implementing the above algorithm, scaling factors are to be represented in a form that provides at least 7 significant decimal digits.

10.4.5.3 Shear Calculations

If the shear value is0%, then no shear transformation is applied; if the value is100%, then a 2D shear transformationof 90 degrees is applied in the axis associated with the inline progression direction; if the value is-100%, then a shear transformationof -90 degrees is applied. If the absolute value of the specified percentage is greater than 100%, then it must be interpreted as if 100% were specified withthe appropriate sign.

Note:

If the absolute value of the resulting shear angle is 90 degrees, then theused value of the shear angle is reduced by some small epsilonso that the tangent of theused value is defined.

If the inline progression direction corresponds to the X axis, then the 2D shear transformation is described by the following matrix:

| 1a 0 || 0 1 0 || 0 0 1 |

wherea is equal to the tangent of the shear angle.

If the inline progression direction corresponds to the Y axis, then the 2D shear transformation is described by the following matrix:

| 1 0 0 ||a 1 0 || 0 0 1 |

11 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 alternativeexists – use of referential styling –in which the stylematter is not embedded (inlined).

11.1 Layout Element Vocabulary

The following elements specify the structure and principal layout aspects of adocument instance:

11.1.1 layout

Thelayout element is a container element used to groupout-of-line layout 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:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")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.

11.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.

Aregion element may appear as either (1) a child of alayout element or (2) a child of elementsin theBlock.class element group.In the former case, the region is referred to as anout-of-line region, while in the lattercase, it is referred to as aninline region.

In addition, and in accordance with10.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

Anout-of-lineregion elementmust specify anxml:id attribute.

Anout-of-lineregion element may specify one or more of the timing attributes:begin,end,dur. Aninlineregion element must notspecifiy a timing attribute, and, if specified, must be ignored for the purposeof presentation processing.

Ifbegin and (or)end attributes are specified on an out-of-lineregion 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 an out-of-lineregion element that is associatedwith a time interval is thelayout element.If adur attribute is specified on an out-of-lineregion element, then itspecifies the simple duration of the region.

The active time interval of aninlineregion element is theactive time interval of its parentcontent element.

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:

Anout-of-lineregion 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 anout-of-lineregion element 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.

In contrast toout-of-line regions,inline regions are specifically bound tothe temporal context of their parentcontent elements,and, as such, do not require (or admit) the specification of independent timing.

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

If bothtts:origin andtts:position attributes are presenton aregion element, then thetts:origin must be ignored for the purpose of presentation processing.If neithertts:origin nortts:position attribute is present, thenthe semantics of the initial value of thetts:position attribute apply for the purpose of presentation processing.

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.

11.1.2.1 Special Semantics of Inline Animation

When specified on adiv orp elementE,the following style attributes apply exceptionally to theregionR associated withE as further specified below:

In such cases, the application of each of these style attributes is considered to beequivalent to an anonymousinline animation takingthe form of aset animation elementA, where theanimation applies toR over an active time interval equivalent to the active timeinterval ofE, and where, if multiple animation elements(Ai, ...,Aj) already apply toR,thenA applies subsequent to the last of these existing animations, namely, immediately afterAj.

Note:

In the event that multiple anonymousinline animations of the same style attribute areapplied to some regionR, then the correspondingset animation elements,Aj, ...,Ak,are added toR according to the pre-order traversal order of elementsEj, ...,Ek thatproduced these animations.

Note also that the semantics of applying multiple animations to a specific style attribute for a given element aregoverned by step (5),[animation styling], of10.4.4.2 Specified Style Set Processing.

These special semantics are depicted by the following model example using atts:extent style attribute,but which model applies generally to all the above listed style attributes:

Example – Anonymous Inline Animation of Region - Input Fragment
<region xml:id="r1"tts:extent="80% 10%" .../>...<p region="r1" begin="10s" end="12s"tts:extent="70% 20%">change extent</p>

In the above input fragment example, atts:extent attribute is specified on a paragraph (p) elementwhich, without loss of generality, is assigned to the time interval[10s,12s). This attributeis then used to synthesize an anonymous animation in the form of aset element in the following output fragment, with the attribute copiedinto theset element along with equivalent timing attributes. The originaltts:extent is thenremoved from the paragraph (p).

Example – Anonymous Inline Animation of Region - Equivalent Output Fragment
<region xml:id="r1"tts:extent="80% 10%" ...>  <set begin="10s" end="12s"tts:extent="70% 20%"</set></region>...<p region="r1" begin="10s" end="12s">change extent</p>

The resulting output fragment shows that the original extent of the region is retained, but thatthe child animation overrides this extent during the indicated time interval, thus producing an effect of (temporarily) changingthe extent of the region as desired.

11.2 Layout Attribute Vocabulary

This section defines the11.2.1 region attribute used withcontent elements.

11.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:

If aregion element referenced byaregion attribute isconditionally excluded,then that region is not associated with the element on which theregion attribute is specified.

Note:

See11.3.1 Region Layout and Presentation below for further information on contentflow in a region.

11.3 Layout Semantics

11.3.1 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.

11.3.1.1 Default Region

If adocument instance does not specify anout-of-line region,then adefault region is implied with the following characteristics:

Furthermore, if noout-of-line region is specified, 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.

11.3.1.2 Inline Regions

Aninline region is a syntactic mechanism for specifying aregion in a way that minimizes the syntactic distance between a regionspecification and the content that references that region. Semantically, eachinline region is equivalent to specifying a uniqueout-of-line region referenced implicitly only by thecontent element in whose context theinline region is specified (or implied).

Aninline region is declaredby specifying aregion elementchild of acontent elementin theBlock.class element group, which isreferred to as aninline region specification.

Inline regions are processed in accordance with the procedure[process inline regions]which generates out-of-line regions that correspond withinline regions. This procedure additionally bindscontent elements associated with inline regionsto the corresponding generated out-of-line regions.

Note:

Acontent element can be associated with only a singleregion (within a givenintermediate synchronic document),either by an attribute specification or via a childregion element. Consequently,if acontent element specifies aregion attribute, then anyinline region specification is ignored.

[process inline regions]

For eachcontent elementBin theBlock.class element group,perform the following ordered steps:

  1. if the[attributes] information item property ofB contains aregion attribute, then exit this procedure

  2. if the[children] information item property ofB does not containaregion elementR, then exit this procedure;

  3. create an emptyregion elementR' ,initialized as follows:

    • set the[children] information item property ofR'  to a deep copy ofthe[children] information item property ofR;

    • set the[attributes] information item property ofR'  to a deep copy ofthe[attributes] information item property ofR;

    • if the[attributes] information item property ofR'  does not includeanxml:id attribute, then add an impliedxml:id attribute with a generated valueID that is unique within the scope of the TTMLdocument instance;otherwise, letID be the value of thexml:id attribute ofR' ;

    • if present, remove the following attributes from the[attributes] information item property ofR' :begin,dur, andend;

    • addbegin andend attributes to the[attributes] information item property ofR'  as follows:

      1. if not operating in smpte time base and discontinuous marker mode, then set the values of thesebegin andend attributes to values equivalent to the respective active begin and end times ofB within thedocument temporal coordinate space;

      2. otherwise (smpte discontinuous mode), set the values of thesebegin andend attributes to values that correspond to the labeled synchronization events (markers) that apply to the respective begin and end times ofB within thedocument temporal coordinate space;

  4. if the TTMLdocument instance does not have ahead element, then insert an emptyhead element as the first child ofthett element;

  5. if thehead element does not havealayout child element, then insert an emptylayout element immediately after astyling element, if present, and immediately before ananimation element, if present, or as the last child ofthehead element if neither are present;

  6. appendR'  to the[children] information item property of thelayout element child of thehead element;

  7. add aregion attribute with valueID to the[attributes] informationitem property ofB;

  8. removeR from the[children] information item property ofB.

The use of aninline region specificationand the resulting generated out-of-line region is shown by the following examples.

Example – Inline Region Specification
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">  <head/>  <body>    <div begin="5s" dur="10s"><region tts:extent="540px 100px" tts:origin="50px 339px"/>      <p>Some Content</p>    <div/>  <body/></tt>

Example – Generated Out-of-line Region
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">  <head><layout>      <region xml:id="region3451" begin="5s" end="15s"        tts:extent="540px 100px" tts:origin="50px 339px"/>    </layout>  </head>  <body>    <div begin="5s" dur="10s"region="region3451">      <p>Some Content</p>    <div/>  <body/></tt>

Note:

Take note that, in the above pair of examples, the timing attributes on the generated out-of-line regionmake use of anend attribute rather than the originaldur attribute of thediv parent element of the inlineregionelement. This translation fromdur toend is required by the above procedure in order to specify theactive time interval of the generated out-of-line region within the root temporal extent.

Note:

The region ID generated in this example,region3451, is implementation dependent, with the only requirement being that it be a valid valueof thexml:id attribute, which includes being unique within the scope of the document instance.

11.3.1.3 Intermediate Synchronic Document Construction

For the purpose of performing presentation processing, (1) invoke the[resolve timing] procedure, and then, (2) invokethe[construct immediate document] procedure.

[resolve timing]
  1. optionally, invoke procedure[construct anonymous spans];otherwise, if not invoked at this time, then resolve the implicit duration for each text node that would have had itsimplicit duration resolved had this procedure been invoked;

  2. divide the active time duration of the currentdocument instance into an ordered sequenceof time coordinates{T0, T1, T2, ...} where, at each time coordinateTi,some element becomes temporally active or inactive.

[construct anonymous spans]
  1. for each significant text node in acontent element,synthesize ananonymous span to enclose the text node, substitutingthe newanonymous span for the original text node child in its siblingand parent hierarchy;

  2. for each contiguous sequence ofanonymous spans, replace thesequence with a singleanonymous span which contains a sequence oftext nodes representing the individual text node children of theoriginal sequence ofanonymous spans;

  3. for each span element whose child is a singleanonymous span,replace theanonymous span with its sequence of child textnodes.

[construct intermediate document]

For each time interval obtained from the[resolve timing] procedure,where each such interval consists of a sequential pair of the time coordinates(Ti,Ti+1),that is,(T0,T1),(T1,T2), …, map the currentdocument instance from its original, source form,DOCsource , to an intermediate synchronic document form,DOCinter , according to thefollowing ordered steps:

  1. invoke procedure[process inline regions];

  2. for each temporally active regionR, replicate thesub-tree ofDOCsourceheaded by thebody element;

  3. evaluating this sub-tree in a postorder traversal, prune elements if any of the following conditions is true:

    1. they are not apresentation related element; or

    2. they are temporally inactive; or

    3. they are empty and neitherAnimation elements norbr elements; or

    4. they aren't associated with regionR according to the[associate region] procedure.

  4. if the pruned sub-tree is non-empty, then reparent it to theRelement;

  5. 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.

Note:

A compliant presentation processor is permitted to perform early style resolution as a post-processing step of the above procedure,more about which see step (2) of the[flow transformation] procedure.

[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 attributeand that region is notconditionally excluded,then the element is associated with the region referenced by thatattribute;

  2. if some ancestor of that element specifies aregion attributeand that region is notconditionally excluded,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 attributeand that region is notconditionally excluded,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[CTA-608-E], §C.3, and[CC-DECODER-REQ].

11.3.1.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 producesa rooted flow object tree represented as an XSL FO document instance as defined by[XSL-FO 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).

Note:

Due to the possible presence of TTML style properties or style property valuesin a givendocument instance for which there is no[XSL-FO 1.1] counterpart,Implementors should take note that it is the layout model of[XSL-FO 1.1] that is being referencedby this specification, not the requirement to use a compliant[XSL-FO 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.

For the purpose of performing presentation processing, for each intermediate synchronic document produced by11.3.1.3 Intermediate Synchronic Document Construction,DOCinteri, (1) invoke the following[flow transformation] procedureto obtain an XSL FO document instance,Fi, and then (2) if processing requires presentation on avisual medium, apply toFi all relevant formatting and rendering semantics consistent with that prescribedby[XSL-FO 1.1] and this specification.

[flow transformation]
  1. if not previously invoked, perform procedure[construct anonymous spans];

    Note:

    A compliant presentation processor is permitted to perform this step at an earlier processing stage, in which case this step is notrepeated here. Note that ifanonymous span construction occurs before intermediate synchronic document construction as defined by11.3.1.3 Intermediate Synchronic Document Construction, then the intermediate synchronic document will containanonymous spans.

  2. resolve styles according to10.4.4.4 Style Resolution Process;

    Note:

    A compliant presentation processor is permitted to perform this stepas a post-processing step while performing the[construct intermediate document] procedure,in which case each intermediate synchronic document produced by11.3.1.3 Intermediate Synchronic Document Construction will containcomputed style sets, and therefore, this step would not be repeated here.

  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;

    Note:

    In an XSL FO area tree produced by formattingF usingan[XSL-FO 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.

  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 andextent (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.

    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.

  6. for each (1)body,div, andp element or (2)image elementin a block level context, i.e., animage child of an elementin theBlock.class element group,then, if the element is not associated with atts:display style property with the valuenone:

    1. if the element is not animage element, then 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;

    2. otherwise (the element is animage element), map the element to a distinctfo:block elementcontaining a singlefo:external-graphic child element,populating the style properties offo:block andfo:external-graphic by using the computedstyle set associated with each original TTMLcontent elementand populating thesrc property of thefo:external-graphic element by using an appropriatereference to the relatedimage resource;

  7. for the resultingfo:block formatting objectproduced in the previous step that corresponds to thebodyelement, invoke 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;

    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.

  8. for each (1)span element andanonymous span or (2)image element in an inline level context,i.e., animage child of ap orspan element, then,if the element or theanonymous span is not associatedwith atts:display style property with the valuenone:

    1. if the object is ananonymous span, then map the sequence of character itemsof theanonymous span to a distinctfo:inline element,populating the style properties offo:inline by using the computedstyle set associated with theanonymous span;

    2. if the object is aspan element, then map the elementto a distinctfo:inline element, populating the style properties offo:inline by using the computedstyle set associated with thespan;

    3. otherwise (the object is animage element), map the element to a distinctfo:inline elementcontaining a singlefo:external-graphic child element,populating the style properties offo:inline andfo:external-graphic by using the computedstyle set associated with theimage elementand populating thesrc property of thefo:external-graphic element by using an appropriatereference to the relatedimage resource;

  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-FO 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;

11.3.1.5 Elaborated Example (Non-Normative)

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, andwhich may be produced by performing flow processing upon the first intermediatedocument 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>

11.3.2 Line Layout

When ap element, i.e., the representation of a paragraph, is processed by apresentation processor, its content is segmented byline breaking,where each segment is assigned to a uniqueline area. In this respect, this specification adoptsa model based upon the formatting model defined by[XSL-FO 1.1], particularly §4.5, §4.6, and §4.7.

11.3.2.1 Line Breaking

If a profile that applies to adocument instancerequires support or use of the#lineBreak-uax14 feature, thenthe recommendations defined byLineBreaking Algorithm[UAX14] apply when performingline layout on the content of thedocument instance.

11.3.2.2 Line Stacking

This sub-section is non-normative.

The calculation of theblock progression dimension of aline area, conventionally calledline height,may be particularly complex, especially when multiple font families, font sizes, font styles,font resources, and advanced text formatting features, e.g., ruby, text emphasis, andtext combination (tate-chu-yoko), are applied.

Eachline area produced by this process isstacked, eithervertically below the precedingline area (in the context of horizontal lines) orhorizontally to the side of the preceding line (in the context of vertical lines).As specified by step (5) of the[flow transformation] procedure,TTML employs theline-height line stacking strategy, which is formally defined in[XSL-FO 1.1], §4.5,the terms and concepts of which we use below.

When using this strategy, the dimensions of aline area correspond withthe dimensions of theper-inline-height-rectangle computed forthat specificline area, which, in turn, are determined by evaluating (1) the dimensions oftheexpanded-nominal-requested-line-rectangle, which are uniform for eachline area of a paragraph, and (2) the dimensions of theexpanded-rectangleof eachinline area child of theline area, which may vary foreachinline area of eachline area of a paragraph.

The phraseline height, as referred to above, should not be confused with the computed value of the style property associated withthetts:lineHeight attribute. This latter value serves as a parameter for computing thehalf leading applied to aline area and individualinline areas,which are, respectively, a parameter for determining (1) the dimensions of theexpanded-nominal-requested-line-rectangleof theline area and (2) the dimensions of theexpanded-rectangle of aninline area child of theline area.Note well that thehalf leading applied to aline area andthehalf leading applied to aninline area child of thatline area are often distinct values, more details about which are found in[XSL-FO 1.1], §6.5.2 (when applied to aline area). For a giveninline area, analogous treatment applies, although this is not explicitly indicated by[XSL-FO 1.1], but can be inferred from language found in[CSS2], §10.8.1.

In summary, the behavior defined by theline-height line stacking strategy, as defined by[XSL-FO 1.1], §4.5,and adopted by TTML, is intended to be compatible with the line stacking strategy of[CSS2], which means that:

  • when the computed value oftts:lineHeight of a paragraph isnormal, then (1) eachline area of a paragraph exactly abuts and does not intersect with the precedingline area of that paragraph, and (2) theline height of theline areas of a paragraph vary in accordance with the styled content of eachline area;

  • when the computed value oftts:lineHeight of a paragraph isa specified<length>, then theline areas of a paragraph exactly abut one another but their content rectangles may(1) consume less space in theblock progression dimension than required to fit their content,in which case that content may intersect with the precedingline area of that paragraph or(2) consume more space in theblock progression dimension than required to fit their content.

Note:

When any of the following advanced text formatting features is applied to the content of a line, then additional adjustments toline heightmay occur:

  • ruby text annotations

  • text combination (tate-chu-yoko)

  • text emphasis

  • (per-glyph) font shear

11.3.3 Rendering Model

This section specifies the details of certain aspects of the rendering of a formatted TTML document instance.

11.3.3.1 Painting Order

The rendering order employed by apresentation processor must be consistent withthe rendering model specified by[XSL-FO 1.1], §4.9; in addition, the following constraints apply:

  • inline area descendants of a line area that are generated by ruby text spans are rendered after other inline area descendants of the line area;

  • the intrinsic marks of a block area or an inline area generated by animage element consist of the raster of the associated image.

Note:

The marks produced by animage element referenced by atts:backgroundImage attribute are not included in the intrinsic marks of a block area or an inline area, i.e., they are part of an area's background marks.

12 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.

12.1 Timing Element Vocabulary

No timing related element vocabulary is defined for use in the corevocabulary catalog.

12.2 Timing Attribute Vocabulary

This section defines the following basic timing attributes for use withtimed elements:

In addition, this section defines the12.2.4 timeContainer attribute for use withtimed elementsthat serve simultaneously as timing containers.

12.2.1 begin

Thebegin attribute is used to specify the beginpoint of a temporal interval associated with atimed element. Ifspecified, the value of abegin attribute must adhere toa <time-expression> specification as defined by12.3.1 <time-expression>.

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 3.0], §5.4.3,while taking into account any overriding semantics defined by this specification.

Note:

As defined by[SMIL 3.0], §5.4.3,if nobegin attribute is explicitly specified on atimed element,then the default value of the attribute is determined by the nearest time container ancestor; however, in TTML, that ancestor is eithera parallel time container or a sequential time container, both of which apply a default value of0s.

12.2.2 dur

Thedur attribute is used to specify the duration of atemporal interval associated with atimed element. If specified,the value of adur attribute must adhere to a<time-expression> specification as defined by12.3.1 <time-expression>.

Note:

When theclock-time form of a <time-expression> 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 3.0], §5.4.3,while taking into account any overriding semantics defined by this specification.In a deliberate divergence from[SMIL 3.0], §5.4.3, the value ofthedur attribute is permitted to be zero (0s).

Note:

In the context of the subset of[SMIL 3.0] 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.

12.2.3 end

Theend attribute is used to specify the ending pointof a temporal interval associated with atimed element. Ifspecified, the value of anend attribute must adhere to a<time-expression> specification as defined by12.3.1 <time-expression>.

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 3.0], §5.4.3,while taking into account any overriding semantics defined by this specification.

12.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 3.0]endsync semantics of apartime container, a default value ofall applies.

Note:

The use of a default value ofall for theendsyncbehavior is distinct from[SMIL 3.0] 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 3.0], §5.4.4,while taking into account any overriding semantics defined by this specification.

12.3 Time Value Expressions

Timing attribute values include the use of the following expressions:

12.3.1 <time-expression>

A <time-expression> is used to specify a coordinate withinsome time base, where the applicable time base is determined by thettp:timeBase parameter, and where the semantics definedbyI Time Expression Semantics apply.

Note:

See7.2.5 ttp:frameRate,7.2.9 ttp:subFrameRate,7.2.10 ttp:tickRate, and7.2.11 ttp:timeBase for further information onexplicit specification of frame rate, sub-frame rate, tick rate, and time base.

Syntax Representation – <time-expression>
<time-expression>  : clock-time  | offset-time  | wallclock-timeclock-time  : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?offset-time  : time-count fraction? metricwallclock-time  : "wallclock("<lwsp>? ( date-time | wall-time | date )<lwsp>? ")"date-time  : date "T" wall-timewall-time  : ( hhmm-time | hhmmss-time )date  : years "-" months "-" dayshhmm-time  : hours2 ":" minuteshhmmss-time  : hours2 ":" minutes ":" seconds fraction?years  :<digit><digit><digit><digit>hours  : hours2  | hours3plushours3plus  :<digit><digit><digit>+months | days | hours2 | 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

A <time-expression> must not contain a<whitespace> characterexcept where explicitly permitted by the appearance of a<lwsp> non-terminalin the preceding syntax definition.

If a <time-expression> 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 isclockandttp:clockMode islocal orutc,use of thespecial value of 60 seconds to denote a leap second is deprecated.When performing presentation processing, the appearance of this special value in other time bases or clock modesmust be interpreted as if the value 59 had been specified.

If a <time-expression> 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 definedby7.2.5 ttp:frameRate.It is considered an error if aframes term orf (frames) metric is specified when theclock time base applies.

If a <time-expression> 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 by7.2.9 ttp:subFrameRate.It is considered an error if asub-frames term is specifiedwhen theclock time base applies.

It is considered an error if thewallclock-time form of a <time-expression>is used in adocument instance and the government time base is notclock.

If the computed value of the governing time base issmpte, then(1)use of anoffset-time form of <time-expression> is deprecated, and(2)use of afraction seconds component in aclock-time form of <time-expression> isdeprecated.

Note:

The <time-expression> syntax specified above explicitly excludes the representation of time zone information. If an authorwishes to correlate a <time-expression> with a specific time zone, then they may convert time expressions to UTC and specifyuse of theutc clock mode, about which see7.2.2 ttp:clockMode.

12.4 Timing Semantics

The semantics of time containment, durations, and intervals defined by[SMIL 3.0] apply to the interpretation of like-namedtimed elements and timingvocabulary defined by this specification, given the followingconstraints:

  • The implicit duration of ananonymous span is defined as follows: iftheanonymous span's parent time container is a parallel time container, thenthe implicit duration is equivalent to theindefiniteduration value as defined by[SMIL 3.0]; if theanonymous span'sparent time container is a sequential time container, then the implicit durationis equivalent to zero.

  • The implicit duration of ananimate,audio,br,image, orset element is defined to be the same asif that element were treated as ananonymous span.

  • The implicit duration of aspan element with non-mixed content, i.e., only#PCDATA text nodes,is defined to be the same as if thespan element were treated as ananonymous span.

  • The implicit duration of abody,div,p,orspan element with mixed content is determined in accordance to (1) whetherthe element is a parallel or sequential time container, (2) the defaultendsync semantics defined above by12.2.4 timeContainer,and (3) the semantics of[SMIL 3.0] as applied to these timecontainers.

  • The implicit duration of theregion element is defined tobe equivalent to theindefiniteduration value as defined by[SMIL 3.0].

  • If the governing time base isclock, then timeexpressions are considered to be equivalent to wall-clockbased timing in[SMIL 3.0], where the specific semantics ofI.1 Clock Time Base apply.

  • If the governing time base ismedia, then timeexpressions are considered to be equivalent to offset based timingin[SMIL 3.0], where the specific semantics ofI.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 3.0], where the specific semantics ofI.3 SMPTE Time Base apply.

12.4.1 Anonymous Span Timing

This sub-section is non-normative.

The following example illustrates the timing semantics ofanonymous spans that are children of sequential and parallel time containers.The wordsHello andAllo are both contained inanonymous spans that are children of a sequentialtime container (thep element). As such, neitherHello norAllo will be displayedsince the implicit duration of theanonymous spans is 0. In contrast, theanonymous span that contains the wordGutenand the innermostspan that contains the wordTag are children of an element with parallel time containersemantics (the outermostspan element).As a result, bothGuten andTag will be displayed since the implicit duration of their respective parentanonymous spanandspan element are indefinite, resulting in the implicit duration ofitsspan,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>

13 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.

13.1 Animation Element Vocabulary

The following elements specify the structure and principal animation aspects of adocument instance:

13.1.1 animate

Theanimate element expresses a series of changes (animations) to be applied (targeted) to one or more style property attributes of associated elements.

Ananimate element may appear as either (1) a child of acontent element or aregion element,referred to asinline animation, or(2) a child of ananimation element, referred to asout-of-line animation.In the former case, the parent of theanimate element is the associated element; in the lattercase, any element that references theanimate element using ananimate attribute isan associated element.

Theanimate element accepts as its children zero or moreelements in theMetadata.class element group.

XML Representation – Element Information Item: animate

Anout-of-lineanimate elementmust specify anxml:id attribute.

Style property attributes targeted by ananimate element are specified directly usingattributes in the TT Style Namespaces or in a namespace that is not a TT Namespace, where the list (sequence) of animation valuesadhere to the<animation-value-list> syntax, and where eachconstituent<animation-value> adheres to the syntax of the specifiedattribute.

Note:

In contrast with[SVG 1.1], §19.2.12, a singleanimate element, as defined here, may be used toperform continuous animations on a set of targeted style property attributes instead of being limited to targeting a single style property attribute.In[SVG 1.1], this would require the use of multipleanimate elements rather than a singleanimate element.

Furthermore, by using direct specification of animated style property and key values, it is not necessary to employ thefrom,to,by, orvalues animation value attributes defined by[SVG 1.1], §19.2.9.

The semantics of theanimate element and its attributesenumerated above are defined to be those specified by[SVG 1.1], §19.2, as constrained or further clarified below:

  1. The attributes targeted by ananimate element and the values to be applied to these attributes arespecified by direct use of attributes in the TT Style Namespaces or a namespace that is not a TT Namespace;therefore, theattributeName,from,to,by, andvalues attributes defined by[SVG 1.1] are not supported by this version of TTML.

    Note:

    The effect of using directly named style attributes is equivalent to specifying multiple[SVG 1.1]animate elementswhere each such element specifies anattributeName andvalues attribute.

    Note:

    For example, specifyingtts:color="red;green;blue" isconsidered equivalent to specifyingattributeName="tts:color" andvalues="red;green;blue" in[SVG 1.1].

  2. If nocalcMode attribute is specified, then acalcMode value oflinear applies.

    Note:

    This implied value corresponds to the default value specified by[SVG 1.1], §19.2.9.

  3. If nofill attribute is specified, then afill value ofremove applies.

    Note:

    This implied value corresponds to the default value specified by[SVG 1.1], §19.2.9.

  4. If akeyTimes attribute is specified and the computed value ofcalcMode is "paced",then this usage must be considered an error for the purpose of validation processing and the animation must be ignored for the purpose ofpresentation processing.

  5. If akeyTimes attribute is specified and the computed value ofcalcMode is not "paced",then the number of time components specified in thekeyTimes attribute must match the number of animation values specifiedby each animated attribute.

    Note:

    This constraint applies regardless of whether a single or multiple attributes are targeted by the sameanimate element, which, in turn, implies that when multiple attributes are targeted, the value of each animated attribute mustspecify the same number of values in its<animation-value-list>.

    Note:

    For example, the firstanimate element shown below is valid: the animated attribute has 3 values,while the second and third are not valid: for the second case, the animated attribute has 2 values, but 3 key times are specified;for the third case, the first animated attribute has 2 values and the second animated attribute has 4 values, but 3 key times are specified:

    <!-- valid animation of single attribute with matching key times --><animate xml:id="a1" keyTimes="0;0.2;1" tts:color="red;green;blue"/><!-- invalid animation of single attribute with non-matching key times --><animate xml:id="a2" keyTimes="0;0.2;1" tts:color="red;green"/><!-- invalid animation of multiple attributes with non-matching key times --><animate xml:id="a3" keyTimes="0;0.2;1"  tts:color="red;green" tts:backgroundColor="cyan;magenta;yellow;black"/>
  6. If nokeyTimes attribute is specified and the computed value ofcalcMode is not "paced",then akeyTimes value applies that corresponds to an even (linear) spacing of specified animation values over the simple duration ofthe animation.

    Note:

    For example, if the animated style is specified astts:color="red;green;blue", then the implied value ofkeyTimesis "0;0.5;1".

  7. If akeySplines attribute is specified and the computed value ofcalcMode is not "spline",then this usage must be considered an error for the purpose of validation processing and the animation must be ignored for the purpose ofpresentation processing.

  8. If akeySplines attribute is specified and the computed value ofcalcMode is "spline",then the number of control components specified in thekeySplines attribute must be one less than the numberof time components in the computed value of thekeyTimes attribute.

  9. If nokeySplines attribute is specified and the computed value ofcalcMode is "spline",then this usage must be considered an error for the purpose of validation processing and the animation must be ignored for the purpose ofpresentation processing.

  10. If norepeatCount attribute is specified, then arepeatCount value of1 applies.

  11. Theadditive attribute defined by[SVG 1.1], §19.2.10, is not supported by thisversion of TTML; therefore, in its absence, the semantics of the "replace" value of this attribute apply.

  12. Theaccumulate attribute defined by[SVG 1.1], §19.2.10, is not supported by thisversion of TTML; therefore, in its absence, the semantics of the "none" value of this attribute apply.

An example of using theanimate element to animate contentstyling is illustrated below:

Example Fragment – Content Style Animation
...<p dur="5s"><animate tts:color="yellow;red;green;blue;yellow"/>Text with Continuously Varying Colors!</p>...

Note:

In the above example, the foreground color of the content "Textwith Continuously Varying Colors!" is continuously animated from yellow, to red, to green, tored, then back to yellow over a 5 second period, after which the animation effect is removedand the original color restored (sincefill defaults to "remove").

An example of using theanimate 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:extent="640px 480px">    <head>      <layout><region xml:id="r1" timeContainer="seq" tts:opacity="0"><animate dur="1s" tts:opacity="0;1"/>  <set dur="5s" tts:opacity="1"/><animate dur="1s" tts:opacity="1;0"/>  <style tts:extent="480px 60px"/>  <style tts:origin="80px 400px"/></region>      </layout>    </head>    <body region="r1">...</body></tt>

Note:

In the above example, a region,r1, is initially set to 0% opacity,fully transparent, then is faded in to 100% opacity, fully opaque, over a one secondinterval. Opacity remains at 100% for five more seconds, and then is faded out to 0%over a one second interval, where it remains.

Note:

The semantics of theanimate elementare based upon that defined by[SVG 1.1],§19.2.12, which, in turn, is based upon[SMIL 3.0], §12.

13.1.2 animation

Theanimation element is a container element used to groupout-of-line animation matter, including metadata that applies to animation matter.

Theanimation element accepts as its children zero or moreelements in theMetadata.class element group, followed byzero or more elements in theAnimation.class element group.

XML Representation – Element Information Item: animation
<animationxml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content:Metadata.class*,Animation.class*</animation>

To the extent that time semantics apply to the content of theanimation element, the implied time interval of this element isdefined to be coterminous with theroot temporal extent.

13.1.3 set

Theset element expresses one or more a discrete changes (animations) to be applied (targeted) to style property attributesof associated elements.

Aset element may appear as either (1) a child of acontent element or aregion element,referred to asinline animation, or(2) a child of ananimation element, referred to asout-of-line animation.In the former case, the parent of theset element is the associated element; in the lattercase, any element that references theset element using ananimate attribute isan associated element.

Theset element accepts as its children zero or moreelements in theMetadata.class element group.

XML Representation – Element Information Item: set

Anout-of-lineset elementmust specify anxml:id attribute.

Style property attributes targeted by anset element are specified directly usingattributes in the TT Style Namespaces or in a namespace that is not some TT Namespace, where the single target animation (key) valueadheres to the<animation-value> syntax.

Note:

In contrast with[SVG 1.1], §19.2.13, a singleset element, as defined here, may be used toperform discrete animations on a set of targeted style property attributes instead of being limited to targeting a single style property attribute.In[SVG 1.1], this would require the use of multipleset elements rather than a singleset element.

Except for the constraints or variations enumerated below, the semantics of theset element and its attributesenumerated above are defined to be those specified by[SVG 1.1], §19.2.13:

  1. The attributes targeted by aset element and the discrete values to be applied to these attributes arespecified by direct use of attributes in the TT Style Namespaces or in a namespace that is not a TT Namespace (as opposed to using SVG'sattributeName andto attributes).

    Note:

    For example, specifyingtts:color="red" isconsidered equivalent to specifyingattributeName="tts:color" andto="red" in[SVG 1.1].

  2. If nofill attribute is specified, then afill value ofremove applies.

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],§19.2.13, which, in turn, is based upon[SMIL 3.0], §12.

13.2 Animation Attribute Vocabulary

This section defines the13.2.1 animate attribute used withcontent elementsand certain layout elements.

13.2.1 animate

Theanimate attribute is usedto reference one or moreanimateorset elementseach of which defines a specificout-of-line animation.

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

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

A given IDREF must not appear more than one time in the value of ananimateattribute.

For eachout-of-line animation elementA referenced by theanimateattribute of an elementE, perform the following steps (in order of specified IDREFs):

  1. create a deep copy,A', ofA;

  2. remove thexml:id attribute fromA' ;

  3. insertA' into the[children] information item property ofE such thatA' appearsas the last element in the subsequence of child elements that corresponds to theAnimation.class* wildcard of the content model ofE.

Note:

The semantics of out-of-line-animation essentially form a shortcut for specifying inline animations, which is useful in the case thatthe same animation is used in multiple referring elements.

Note:

See also the specific element type definitions that permit use of theanimate attribute.

13.3 Animation Value Expressions

Animation attribute values include the use of the following expressions:

13.3.1 <animation-value>

An <animation-value> expression is used to specify the starting (initial), intermediate,or ending (final) of the attribute targeted by the animation.

Syntax Representation – <animation-value>
<animation-value>  : ([^;] | escape)+escape  : '\\'char

The syntax of an <animation-value> expression must satisfy all syntaxrequirements that apply to the attribute targeted by the animation, and, furthermore, must not containan unescaped semicolon.

The semantics of an <animation-value> expression are those defined by[SVG 1.1], §19.2.9.

13.3.2 <animation-value-list>

An <animation-value-list> expression is used to specify a list of animation values that sequentiallyapply to the attribute targeted by the animation.

Syntax Representation – <animation-value-list>
<animation-value-list>  :<animation-value> (<lwsp>? ";"<lwsp>?<animation-value>)+

The syntax of an <animation-value> in an <animation-value-list> expression must satisfy all syntaxrequirements that apply to the attribute targeted by the animation.

The semantics of an <animation-value-list> expression are those defined by[SVG 1.1], §19.2.9.

13.3.3 <calculation-mode>

A <calculation-mode> expression is used to control the interpolation mode of the animation.

Syntax Representation – <calculation-mode>
<calculation-mode>  : "discrete"  | "linear"  | "paced"  | "spline"

The semantics of a <calculation-mode> expression are those defined by[SVG 1.1], §19.2.9.

13.3.4 <fill>

A <fill> expression is used to determine effect of the animation after the active end of the animation.

Syntax Representation – <fill>
<fill>  : "freeze"  | "remove"

The semantics of a <fill> expression are those defined by[SVG 1.1], §19.2.8.

13.3.5 <key-splines>

A <key-splines> expression is used to specify a list of Bezier control points that control the pacing of ananimation, wherein each pair of values is separated by a SEMICOLON (U+003B) characteroptionally surrounded by linear white-space (LWSP) characters.

Syntax Representation – <key-splines>
<key-splines>  : control (<lwsp>? ";"<lwsp>? control )*control  : x1<lwsp> y1<lwsp> x2<lwsp> y2x1, x2, y1, y2  : coordinatecoordinate                                // 0 ≥value ≥ 1  : whole  | whole "." fraction  | "." fractionwhole, fraction  :<digit>+

The semantics of a <key-splines> expression are those defined by[SVG 1.1], §19.2.9, as apply to thekey-splines attribute.

13.3.6 <key-times>

An <key-times> expression is used to specify a list of relative time values that control the pacing of ananimation, wherein each pair of values is separated by a SEMICOLON (U+003B) characteroptionally surrounded by linear white-space (LWSP) characters.

Syntax Representation – <key-times>
<key-times>  : time (<lwsp>? ";"<lwsp>? time )*time                                // 0 ≥value ≥ 1  : whole  | whole "." fraction  | "." fractionwhole, fraction  :<digit>+

The semantics of a <key-times> expression are those defined by[SVG 1.1], §19.2.9, as apply to thekey-times attribute.

13.3.7 <repeat-count>

A <repeat-count> expression is used to determine the (possibly fractional) number of iterations of a repeated animation.

Syntax Representation – <repeat-count>
<repeat-count>  : count                           //value > 0  | "indefinite"count:  : whole  | whole "." fraction  | "." fractionwhole, fraction  :<digit>+

The semantics of a <repeat-count> expression are those defined by[SVG 1.1], §19.2.8.

14 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.

This specification does not define any presentation semantics for metadata; therefore, a conformantpresentation processor may ignore all metadata matter.

Note:

Although this specification does not ascribe any presentation semantics to metadata, a superset profile ofthis specification may do so, in which case any metadata dependent presentation semantics defined by such a profile isconsidered outside the scope of this specification.

14.1 Metadata Element Vocabulary

The14.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 instance:

14.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 or foreign namespace attributes on themetadata element,(2) one or more metadata item or foreign namespace child elements,(3) one or moredata child elements, or(4) a combination of the preceding.

Note:

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, thefollowing XML Representation does not formally include foreign namespace attributes or foreign namespace child elements in its content model;nevertheless, such foreign namespace child elements may appear in a concrete encoding of TTMLdocument instance.

XML Representation – Element Information Item: metadata
<metadatacondition =<condition>xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")  {any attributes in TT Metadata Namespace}Content: (Data.class|{any element in TT Metadata 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.

Note:

The presence of foreign namespace attributes in a concrete encoding of a TTMLdocument instance does not affect the formal validity of thatdocument instance with respect to the applicableabstract document type selected by4 Document Types.

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.

Note:

The presence of foreign namespace elements in a concrete encoding of a TTMLdocument instance does not affect the formal validity of thatdocument instance with respect to the applicableabstract document type selected by4 Document Types.

14.1.2 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 = IDREFcondition =<condition>xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content: EMPTY</ttm:actor>

Theagent attribute of attm:actor element mustreference asignificantttm:agent element that denotes the agentacting the part of a character.

The use ofa reference from theagent attribute of attm:actor element to itsparentttm:agent element is deprecated, and,furthermore, the semantics of such a circular chain of references arenot defined by this specification.

Note:

If an implementation follows such acircular chain of agent references, then it is recommended that thiscondition be detected and further dereferencing of agent references beterminated in order to avoid an infinite loop.

Note:

In the case of an actor playing themselves,for example, Steve Coogan inThe Trip playing Steve Coogan, theexpected practice is to use twottm:agent elements. The firstelement (corresponding to Steve Coogan the person) uses atype attribute with valueperson, while thesecond element (corresponding to Steve Coogan the character) uses (i)atype attribute with valuecharacter 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.

14.1.3 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:agentcondition =<condition>type = ("person" |"character" |"group" |"organization" |"other")xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")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.

14.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:copyrightcondition =<condition>xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content: #PCDATA</ttm:copyright>

Note:

No specific use of thettm:copyright element is defined by this specification.

14.1.5 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:desccondition =<condition>xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")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.

14.1.6 ttm:item

Thettm:item element is used to express arbitrary named metadata items.

Thettm:item element accepts one of the following two content models:(1) one or more text nodes (i.e.,#PCDATA) or(2) zero or more nestedttm:item elements.

XML Representation – Element Information Item: ttm:item
<ttm:itemcondition =<condition>name =<item-name>xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")Content: #PCDATA |ttm:item*</ttm:item>

Aname attribute must be specified to identify the name of the item, the value of which must adhere toan<item-name> value expression.

Note:

No general constraint is placed on the appearance of multiple named metadata items that specify the same name; however,the definition of a specific named item may further constrain the context of use as well as the potential appearance of multiple items that share the same name.

The value of a named metadata item is(1) empty if the element has no child text or element nodes,(2) the character content of thettm:item element when that element's children consists solely of text nodes, or(3) a collection of named metadata sub-items.

Note:

The definition of a particular named item will typically constrain the set of permitted values. Furthermore, it mayspecify that a particular value is implied in the absence of a specified value.

Note:

When the value of a named metadata item consists of natural language text, thexml:lang attribute may be directlyspecified on the metadata item element or indirectly inherited from that element's nearest ancestorin order to identify the language that applies to the named metadata item value.

The use of a named metadata item is illustrated by the following example, which shows the use of a named metadata itemin order to associate asimple data embedding with an original file name.

Example Fragment – Named Metadata Item
...<image>  <source>    <data type="image/png"><ttm:item name="originalFileName"        xmlns:ttm="http://www.w3.org/ns/ttml#metadata">image.png</ttm:item>      <chunk length="119">        iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=      </chunk>    </data>  </source></image>...

Note:

The above example makes use of a singlechunk element in orderto include attm:item element as a child of thedata element;i.e., if the encoded image bytes had been included directly as #PCDATA in thedata element,then it would not have been possible to include thettm:item child element. See the supported content models on thedata element for more information.

14.1.7 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:namecondition =<condition>type = ("full" |"family" |"given" |"alias" |"other")xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")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.

14.1.8 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:titlecondition =<condition>xml:base =<uri>xml:id = IDxml:lang =xsd:stringxml:space = ("default" |"preserve")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.

14.2 Metadata Attribute Vocabulary

This section specifies the following attributes in the TT Metadata Namespacefor use with themetadata element and withcontent elements:

14.2.1 ttm:agent

Thettm:agent attribute takes anIDREFSvalue, and is used withcontent 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.

14.2.2 ttm:role

Thettm:role attribute may be used by a content authorto expressthe roles, functions, or characteristicsofcontent elements so labeled.

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

Syntax Representation – ttm:role
ttm:role  role (<lwsp> 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 athttps://www.w3.org/wiki/TTML/RoleRegistryin order to promote interoperability and collision avoidance.

14.3 Metadata Value Expressions

Metadata vocabulary may make use of the following expressions:

14.3.1 <item-name>

An <item-name> expression is used to specify the name of a metadata item expressed with attm:item element.

Syntax Representation – <item-name>
<item-name>  :<named-item>  |xsd:QName

If an item name expression takes the form of a qualified name (xsd:QName),then the prefix of that qualified name must have been declared in a namespace declaration as specified by[XML Namespaces 1.0].

All values of <item-name> that do not take the form of qualified name (xsd:QName)are either defined by this specification or reserved for future standardization by the W3C.

Note:

It is intended that all item names defined by this specification are unqualified (without a prefix), whereas those defined byexternal specifications are qualified (with a prefix).

Note:

Seehttps://www.w3.org/wiki/TTML/ItemNameRegistry for a registry ofqualified item namespaces.

14.3.2 <named-item>

A <named-item> value is a member of an enumerated collection of named metadata items associated with a value byattm:item element.

Syntax Representation – <named-item>
<named-item>  : "altText"  | "usesForced"

altText

A string that expresses alternate text content, where the valueadheres toxsd:string. Typically used toprovide a text equivalent or summary for some related image content.

Note:

This text equivalent may be used to support indexing of the content and also facilitatequality checking of a document during authoring.

Note:

In contrast to[HTML 5.2], the text content of this namedmetadata item is not intended to be presented in place of a referring element if the element's primary (as opposed to alternate)content cannot be presented; however, this alternate text content can be used by assistive technologies.

usesForced

A boolean that expresses whether some<condition> expressionmakes use of theforced bound parameter, where the valueadheres toxsd:boolean. If this named metadata itemis present in adocument instance, then it must be specified as a childof thehead element.

A Concrete Encoding

This appendix is normative.

In the absence of other requirements, adocument instance should 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;,&gt;,&lt;, and&quot;.

B 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:

B.1 Document Information Item

  • [document element]

B.2 Element Information Item

  • [namespace URI]

  • [local name]

  • [children]

  • [attributes]

Child information items[children] are reduced to onlyelement information items andcharacter information items.

B.3 Attribute Information Item

  • [namespace URI]

  • [local name]

  • [normalized value]

Note:

If areduced xml infoset is constructed from a concrete representation of an XMLdocument entity, then a[normalized value] information item may contain unnormalized XML whitespace characters&#9; (HT), &#10; (LF), &#13; (CR), and &#20; (SPACE), as specified in[XML 1.0], §3.3.3, step (3), first bullet.In particular, this may occur if a numeric character reference is used to denote one of these whitespace characters (which is not normalized)rather than using the whitespace character itself (which would be normalized).

Note:

See alsoattribute information item.

B.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).

Note:

See alsocharacter information item.

C 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.

C.1 Relax NG Compact (RNC) Schema

A Relax NG Compact Syntax (RNC)[RELAX NG] based schemafor TTML Content is available atZIPArchive. This schema is to be considered non-normative for the purpose of defining the validityof Timed Text Markup Language content as defined by this specification.In particular, the formal validity of TTML Contentis defined by3.1 Document Conformance.

C.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 is to be considered non-normative for the purpose of defining the validityof Timed Text Markup Language content as defined by this specification.In particular, the formal validity of TTML Contentis defined by3.1 Document Conformance.

D Media Type Registration

This appendix has been removed from this specification.

E 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 mandatory or optional for aTTMLcontent processor that complies with the requirements of3.2.2 Transformation Processor Conformance or3.2.3 Presentation Processor Conformance.

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.

Note:

If the definition of a feature designation below is not scoped to a specific element type or context, then supportingthat (designated) feature is intended to mean supporting it in all permitted contexts of use.

For example, supporting the#length-root-container-relativefeature means supporting its use with any<length> expression where it would not otherwisebe prohibited.

Note:

If an implementation of a TTML processor does not support the semantics of some feature and thesyntactic expression of that feature is known to the implementation, then it is recommended that theimplementation be able to parse the expression but ignore the semantics of the unsupported components of the expression.

For example, if#textEmphasis-minimal issupported, but#textEmphasis-color is notsupported, then values oftts:textEmphasisthat contain a<emphasis-color> component shouldbe parsed while ignoring the semantics of that unsupported component (but not ignoring the semantics of othersupported components of the attribute value).

E.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 theTT Feature Namespace base URI.

When the definition of a feature designator in this section refers to the definition of the same feature designatorin[TTML1] and the latter (referenced) definition uses the phrase "all defined values", then thosevalues consist of all values defined in[TTML1]; otherwise, when the phrase "all defined values" appearsdirectly below, then those values consist of all values defined in this specification.

Note:

Feature designations in this section that have the suffix-version-2 are newly defined bythis (second) version of the TTML specification, i.e., TTML2.

E.1.1 #animate

A TTML processor supports the#animate feature if it supports the following features:

The#animate feature is a syntactic and semantic extension of the#animate-minimal feature.

It is an error for a content profile to require or permit use of the#animate feature but prohibit use of any of the followingfeatures:#animate-fill,#animate-minimal,#animate-paced,#animate-repeat, or#animate-spline.

E.1.2 #animate-minimal

A TTMLtransformation processor supports the#animate-minimalfeature if it recognizes and is capable of transforming the semantics of theanimate elementwhen used with thediscrete andlinear values of thecalcMode attribute.

A TTMLpresentation processor supports the#animate-minimalfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

Note:

Support for thediscrete andlinear values of thecalcMode attribute implies support forthekeyTimes attribute as well.

Note:

Support for the#animate-minimal feature does not imply support for any of the following features:#animate-fill,#animate-paced,#animate-repeat, or#animate-spline.

E.1.3 #animate-fill

A TTMLtransformation processor supports the#animate-fillfeature if it recognizes and is capable of transforming the semantics of thefill attribute of theanimate element.

A TTMLpresentation processor supports the#animate-fillfeature if it implements presentation semantic support for the same vocabulary enumerated above.

E.1.4 #animate-paced

A TTMLtransformation processor supports the#animate-pacedfeature if it recognizes and is capable of transforming the semantics of theanimate elementwhen used with thepaced value of thecalcMode attribute.

A TTMLpresentation processor supports the#animate-pacedfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.5 #animate-repeat

A TTMLtransformation processor supports the#animate-repeatfeature if it recognizes and is capable of transforming the semantics of therepeatCount attribute of theanimate element.

A TTMLpresentation processor supports the#animate-repeatfeature if it implements presentation semantic support for the same vocabulary enumerated above.

E.1.6 #animate-spline

A TTMLtransformation processor supports the#animate-splinefeature if it recognizes and is capable of transforming the semantics of theanimate elementwhen used with thespline value of thecalcMode attribute.

A TTMLpresentation processor supports the#animate-splinefeature if it implements presentation semantic support for thesame vocabulary enumerated above.

Note:

Support for thespline value of thecalcMode attribute implies support forthekeySplines attribute as well.

E.1.7 #animation

A TTML content processor supports the#animationfeature if it supports the#animation feature as defined by[TTML1], §D.1.1.

Note:

Support for the#animation feature is functionally equivalent to support for the#set feature.

It is an error for a content profile to require or permit use of the#animation feature but prohibit useof the#set feature.

E.1.8 #animation-out-of-line

A TTMLtransformation processor supports the#animation-out-of-linefeature if it recognizes and is capable of transforming the following vocabulary defined by13 Animation:

and supports the following attribute defined by13.2 Animation Attribute Vocabulary:

A TTMLpresentation processor supports the#animation-out-of-linefeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.9 #animation-version-2

A TTML processor supports the#animation-version-2 feature if it supports the following features:

The#animation-version-2 feature is a syntactic and semantic extension of the#animation feature.

It is an error for a content profile to require or permit use of the#animation-version-2 feature but prohibit use of any of the followingfeatures:#animate,#animation-out-of-line, or#animation.

E.1.10 #audio

A TTMLtransformation processor supports the#audiofeature if it recognizes and is capable of transforming the followingvocabulary defined by9 Embedded Content:

A TTMLpresentation processor supports the#audiofeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.11 #audio-description

A TTML processor supports the#audio-description feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#audio-description feature but prohibit use of any of the followingfeatures:#audio,#gain, or#pan.

E.1.12 #audio-speech

A TTML processor supports the#audio-speech feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#audio-speech feature but prohibit use of any of the followingfeatures:#pitch,#speak, or#speech.

E.1.13 #background

A TTML processor supports the#background feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#background feature but prohibit use of any of the followingfeatures:#backgroundColor or#background-image.

E.1.14 #background-image

A TTML processor supports the#background-image feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#background feature but prohibit use of any of the followingfeatures:#backgroundClip,#backgroundExtent,#backgroundImage,#backgroundOrigin,#backgroundPosition, or#backgroundRepeat.

E.1.15 #backgroundClip

A TTMLtransformation processor supports the#backgroundClip feature if it recognizes and is capable oftransforming all defined values of thetts:backgroundClipattribute.

A TTMLpresentation processor supports the#backgroundClip feature if it implements presentation semantic supportfor all defined values of thetts:backgroundClipattribute.

E.1.16 #backgroundColor

A TTML content processor supports the#backgroundColorfeature if it supports the#backgroundColor feature as defined by[TTML1], §D.1.2.

Note:

Support for the#backgroundColor feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#backgroundColor feature but prohibit use of any of the followingfeatures:#backgroundColor-block,#backgroundColor-inline, or#backgroundColor-region.

E.1.17 #backgroundColor-block

A TTML content processor supports the#backgroundColor-blockfeature if it supports the#backgroundColor-block feature as defined by[TTML1], §D.1.3.

E.1.18 #backgroundColor-inline

A TTML content processor supports the#backgroundColor-inlinefeature if it supports the#backgroundColor-inline feature as defined by[TTML1], §D.1.4.

E.1.19 #backgroundColor-region

A TTML content processor supports the#backgroundColor-regionfeature if it supports the#backgroundColor-region feature as defined by[TTML1], §D.1.5.

E.1.20 #backgroundExtent

A TTMLtransformation processor supports the#backgroundExtent feature if it recognizes and is capable oftransforming all defined values of thetts:backgroundExtentattribute.

A TTMLpresentation processor supports the#backgroundExtent feature if it implements presentation semantic supportfor all defined values of thetts:backgroundExtentattribute.

E.1.21 #backgroundImage

A TTMLtransformation processor supports the#backgroundImage feature if it recognizes and is capable oftransforming all defined values of thetts:backgroundImageattribute.

A TTMLpresentation processor supports the#backgroundImage feature if it implements presentation semantic supportfor all defined values of thetts:backgroundImageattribute.

E.1.22 #backgroundOrigin

A TTMLtransformation processor supports the#backgroundOrigin feature if it recognizes and is capable oftransforming all defined values of thetts:backgroundOriginattribute.

A TTMLpresentation processor supports the#backgroundOrigin feature if it implements presentation semantic supportfor all defined values of thetts:backgroundOriginattribute.

E.1.23 #backgroundPosition

A TTMLtransformation processor supports the#backgroundPosition feature if it recognizes and is capable oftransforming all defined values of thetts:backgroundPositionattribute.

A TTMLpresentation processor supports the#backgroundPosition feature if it implements presentation semantic supportfor all defined values of thetts:backgroundPositionattribute.

E.1.24 #backgroundRepeat

A TTMLtransformation processor supports the#backgroundRepeat feature if it recognizes and is capable oftransforming all defined values of thetts:backgroundRepeatattribute.

A TTMLpresentation processor supports the#backgroundRepeat feature if it implements presentation semantic supportfor all defined values of thetts:backgroundRepeatattribute.

E.1.25 #base

A TTMLtransformation processor supports the#basefeature if it recognizes and is capable of transforming thexml:baseattribute when applied to the following vocabulary defined by6.1 Profile Element Vocabulary:

A TTMLpresentation processor supports the#basefeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.26 #base-general

A TTMLtransformation processor supports the#base-generalfeature if it recognizes and is capable of transforming thexml:baseattribute when applied to all vocabulary defined by6.1 Profile Element Vocabulary on which this attribute is permitted except for:

A TTMLpresentation processor supports the#base-generalfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.27 #base-version-2

A TTML processor supports the#base-version-2 feature if itsupports the following features:

The#base-version-2 feature is a syntactic and semantic extension of the#base feature.

It is an error for a content profile to require or permit use of the#base-version-2 featurebut prohibit use of any of the following features:#base or#base-general.

E.1.28 #bidi

A TTML content processor supports the#bidifeature if it supports the#bidi feature as defined by[TTML1], §D.1.6.

Note:

Support for the#bidi feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#bidi feature but prohibit use of any of the followingfeatures:#direction,#unicodeBidi, or#writingMode-horizontal.

E.1.29 #bidi-version-2

A TTML processor supports the#bidi-version-2 feature if itsupports the following features:

The#bidi-version-2 feature is a syntactic and semantic extension of the#bidi feature.

It is an error for a content profile to require or permit use of the#bidi-version-2 feature but prohibit use of any of the followingfeatures:#bidi or#unicodeBidi-isolate.

E.1.30 #border

A TTML processor supports the#border feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#border feature but prohibit use of any of the followingfeatures:#border-block,#border-inline, or#border-region.

E.1.31 #border-block

A TTMLtransformation processor supports the#border-block feature if it recognizes and iscapable of transforming all defined values of thetts:borderattribute when applied to acontent element that would generate ablock area during presentation processing.

A TTMLpresentation processor supports the#border-block feature if it implements presentation semanticsupport for thetts:borderattribute when applied to acontent element that generates ablock area.

E.1.32 #border-inline

A TTMLtransformation processor supports the#border-inline feature if it recognizes and iscapable of transforming all defined values of thetts:borderattribute when applied to acontent element that would generate aninline area during presentation processing.

A TTMLpresentation processor supports the#border-inline feature if it implements presentation semanticsupport for thetts:borderattribute when applied to acontent element that generates aninline area.

E.1.33 #border-radii

A TTML processor supports the#border-radii feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#border-radii feature but prohibit use of any of the followingfeatures:#border-radii-1 or#border-radii-2.

E.1.34 #border-radii-1

A TTMLtransformation processor supports the#border-radii-1 feature if it recognizes and is capable of transformingone component values of a<border-radii> value expression specified in atts:borderattribute.

A TTMLpresentation processor supports the#backgroundClip feature if it implements presentation semantic support forone component values of a<border-radii> value expression specified in atts:borderattribute.

E.1.35 #border-radii-2

A TTMLtransformation processor supports the#border-radii-2 feature if it recognizes and is capable of transformingtwo component values of a<border-radii> value expression specified in atts:borderattribute.

A TTMLpresentation processor supports the#backgroundClip feature if it implements presentation semantic support fortwo component values of a<border-radii> value expression specified in atts:borderattribute.

E.1.36 #border-region

A TTMLtransformation processor supports the#border-region feature if it recognizes and iscapable of transforming all defined values of thetts:borderattribute when applied to aregion element.

A TTMLpresentation processor supports the#border-region feature if it implements presentation semanticsupport for thetts:borderattribute when applied to aregion element.

E.1.37 #bpd

A TTMLtransformation processor supports the#bpd feature if it recognizes and is capable oftransforming thetts:bpd attribute.

A TTMLpresentation processor supports the#bpd feature if it implements presentation semantic support for thetts:bpd attribute.

E.1.38 #cellResolution

A TTML content processor supports the#cellResolutionfeature if it supports the#cellResolution feature as defined by[TTML1], §D.1.7.

E.1.39 #chunk

A TTMLtransformation processor supports the#chunkfeature if it recognizes and is capable of transforming the followingvocabulary defined by9 Embedded Content:

A TTMLpresentation processor supports the#chunkfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.40 #clockMode

A TTML content processor supports the#clockModefeature if it supports the#clockMode feature as defined by[TTML1], §D.1.8.

E.1.41 #clockMode-gps

A TTML content processor supports the#clockMode-gpsfeature if it supports the#clockMode-gps feature as defined by[TTML1], §D.1.9.

E.1.42 #clockMode-local

A TTML content processor supports the#clockMode-localfeature if it supports the#clockMode-local feature as defined by[TTML1], §D.1.10.

E.1.43 #clockMode-utc

A TTML content processor supports the#clockMode-utcfeature if it supports the#clockMode-utc feature as defined by[TTML1], §D.1.11.

E.1.44 #color

A TTML content processor supports the#colorfeature if it supports the#color feature as defined by[TTML1], §D.1.12.

E.1.45 #condition

A TTML processor supports the#condition feature if it supports the following features:

It is an error for a content profile to require or permit use of the#condition feature but prohibit use of any of the followingfeatures:#condition-fn-media,#condition-fn-parameter,#condition-fn-supports,#condition-primary.

E.1.46 #condition-fn-media

A TTMLcontent processor supports the#condition-fn-media feature ifit supports the<media-function>sub-expression when used in a<condition> value expression.

E.1.47 #condition-fn-parameter

A TTMLcontent processor supports the#condition-fn-parameter feature ifit supports the<parameter-function>sub-expression when used in a<condition> value expression.

E.1.48 #condition-fn-supports

A TTMLcontent processor supports the#condition-fn-supports feature ifit supports the<supports-function>sub-expression when used in a<condition> value expression.

E.1.49 #condition-primary

A TTMLcontent processor supports the#condition-primary feature ifit supports<condition> value expressions that do not containa<condition-function> sub-expression.

E.1.50 #content

A TTML content processor supports the#contentfeature if it supports the#content feature as defined by[TTML1], §D.1.13.

E.1.51 #content-sizing

A TTML processor supports the#content-sizing feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#content-sizing feature but prohibit use of any of the followingfeatures:#bpd or#ipd.

E.1.52 #contentProfiles

A TTMLtransformation processor supports the#contentProfilesfeature if it (1) supportsnon-combined profiles and (2) recognizes and is capable of transforming:

  1. the following profile attributes vocabulary defined by6.2 Profile Attribute Vocabulary:

  2. thefirst value of thettp:inferProcessorProfileSource attribute,

  3. thedesignator attribute on thettp:profile element,

  4. thecontent value of thetype attribute on thettp:profile element, and

  5. theprohibited value of thevalue attribute onttp:feature andttp:extension elements.

A TTMLpresentation processor supports the#contentProfilesfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

Note:

Support for the#contentProfiles feature does not imply support forcombined profilesornesting profiles.

E.1.53 #contentProfiles-combined

A TTMLtransformation processor supports the#contentProfiles-combined feature if it (1) supports the#contentProfiles feature, (2) supportscombined profiles and (3) recognizes and is capable of transforming:

  1. the following profile attributes vocabulary defined by6.2 Profile Attribute Vocabulary:

  2. thecombined value of thettp:inferProcessorProfileSource attribute, and

  3. thecombine attribute on thettp:profile element.

A TTMLpresentation processor supports the#contentProfiles-combinedfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

The#contentProfiles-combine feature is a syntactic and semantic extension of the#contentProfiles feature.

It is an error for a content profile to require or permit use of the#contentProfiles-combine featurebut prohibit use of the#contentProfiles feature.

Note:

Support for the#contentProfiles-combined feature does not imply support fornesting profiles.

E.1.54 #core

A TTML content processor supports the#corefeature if it supports the#core feature as defined by[TTML1], §D.1.14.

E.1.55 #data

A TTMLtransformation processor supports the#datafeature if it recognizes and is capable of transforming the followingvocabulary defined by9 Embedded Content:

A TTMLpresentation processor supports the#datafeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.56 #direction

A TTML content processor supports the#directionfeature if it supports the#direction feature as defined by[TTML1], §D.1.15.

E.1.57 #disparity

A TTMLtransformation processor supports the#disparity feature if it recognizes and is capable oftransforming thetts:disparity attribute.

A TTMLpresentation processor supports the#disparity feature if it implements presentation semantic support for thetts:disparity attribute.

Note:

Support for the#disparity feature does not imply support for the#region-implied-animation feature.

E.1.58 #display

A TTML content processor supports the#displayfeature if it supports the#display feature as defined by[TTML1], §D.1.16.

Note:

Support for the#display feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#display feature but prohibit use of any of the followingfeatures:#display-block,#display-inline, or#display-region.

E.1.59 #display-block

A TTML content processor supports the#display-blockfeature if it supports the#display-block feature as defined by[TTML1], §D.1.17.

E.1.60 #display-inline

A TTML content processor supports the#display-inlinefeature if it supports the#display-inline feature as defined by[TTML1], §D.1.18.

E.1.61 #display-inlineBlock

A TTMLtransformation processor supports the#display-inlineBlock feature if it recognizes and is capable of transforming theinlineBlockvalue of thetts:display attributewhen applied to acontent element that would generate aninline area during presentation processing.

A TTMLpresentation processor supports the#display-inlineBlock feature if it supports the presentation semantics of theinlineBlockvalue of thetts:display attributewhen applied to acontent element that would generate aninline area during presentation processing.

E.1.62 #display-region

A TTML content processor supports the#display-regionfeature if it supports the#display-region feature as defined by[TTML1], §D.1.19.

E.1.63 #display-version-2

A TTML processor supports the#display-version-2 feature if itsupports the following features:

The#display-version-2 feature is a syntactic and semantic extension of the#display feature.

It is an error for a content profile to require or permit use of the#display-version-2 featurebut prohibit use of any of the following features:#display,#display-block,#display-inline,#display-inlineBlock, or#display-region.

E.1.64 #displayAlign

A TTML content processor supports the#displayAlignfeature if it supports the#displayAlign feature as defined by[TTML1], §D.1.20.

Note:

Support for the#displayAlign feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#displayAlign feature but prohibit use of any of the followingfeatures:#displayAlign-region or#displayAlign-relative.

E.1.65 #displayAlign-block

A TTMLtransformation processor supports the#displayAlign-block feature if it implements transformation semanticsupport for thetts:displayAlignattribute when applied to acontent element that would generate a block area during presentation processing.

A TTMLpresentation processor supports the#displayAlign-block feature if it implements presentation semanticsupport for thetts:displayAlignattribute when applied to acontent element that generates a block area.

E.1.66 #displayAlign-justify

A TTMLtransformation processor supports the#displayAlign-justify feature if it recognizes and iscapable of transforming thejustify value of thetts:displayAlign attribute.

A TTMLpresentation processor supports the#displayAlign-justify feature if it implements presentation semantic support for thejustify valueof thetts:displayAlign attribute.

E.1.67 #displayAlign-region

A TTMLtransformation processor supports the#displayAlign-region feature if it implements transformation semanticsupport for thetts:displayAlignattribute when applied to aregion element.

A TTMLpresentation processor supports the#displayAlign-region feature if it implements presentation semanticsupport for thetts:displayAlignattribute when applied to aregion element.

E.1.68 #displayAlign-relative

A TTMLtransformation processor supports the#displayAlign-relative feature if it recognizes and iscapable of transforming thebefore,center,andafter values of thetts:displayAlignattribute.

A TTMLpresentation processor supports the#displayAlign-relative feature if it implements presentation semanticsupport for thebefore,center, andafter values of thetts:displayAlignattribute.

E.1.69 #displayAlign-version-2

A TTML processor supports the#displayAlign-version-2 feature if itsupports the following features:

The#displayAlign-version-2 feature is a syntactic and semantic extension of the#displayAlign feature.

It is an error for a content profile to require or permit use of the#displayAlign-version-2 feature but prohibit use of any of the followingfeatures:#displayAlign,#displayAlign-block,#displayAlign-justify,#displayAlign-region, or#displayAlign-relative.

E.1.70 #displayAspectRatio

A TTMLtransformation processor supports the#displayAspectRatio feature if it recognizes and is capable oftransforming thettp:displayAspectRatioattribute.

A TTMLpresentation processor supports the#displayAspectRatio feature if it implements presentation semantic supportfor thettp:displayAspectRatioattribute.

E.1.71 #dropMode

A TTML content processor supports the#dropModefeature if it supports the#dropMode feature as defined by[TTML1], §D.1.21.

Note:

Support for the#dropMode feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#dropMode feature but prohibit use of any of the followingfeatures:#dropMode-dropNTSC,#dropMode-dropPAL, or#dropMode-nonDrop.

E.1.72 #dropMode-dropNTSC

A TTML content processor supports the#dropMode-dropNTSCfeature if it supports the#dropMode-dropNTSC feature as defined by[TTML1], §D.1.22.

E.1.73 #dropMode-dropPAL

A TTML content processor supports the#dropMode-dropPALfeature if it supports the#dropMode-dropPAL feature as defined by[TTML1], §D.1.23.

E.1.74 #dropMode-nonDrop

A TTML content processor supports the#dropMode-nonDropfeature if it supports the#dropMode-nonDrop feature as defined by[TTML1], §D.1.24.

E.1.75 #embedded-audio

A TTML processor supports the#embedded-audio feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#embedded-audio feature but prohibit use of any of the followingfeatures:#embedded-data or#audio.

E.1.76 #embedded-content

A TTML processor supports the#embedded-content feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#embedded-content feature but prohibit use of any of the followingfeatures:#embedded-audio,#embedded-font, or#embedded-image.

E.1.77 #embedded-data

A TTML processor supports the#embedded-data feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#embedded-data feature but prohibit use of any of the followingfeatures:#chunk,#data,#resources, or#source.

E.1.78 #embedded-font

A TTML processor supports the#embedded-font feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#embedded-font feature but prohibit use of any of the followingfeatures:#embedded-data or#font.

E.1.79 #embedded-image

A TTML processor supports the#embedded-image feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#embedded-image feature but prohibit use of any of the followingfeatures:#embedded-data or#image.

E.1.80 #extent

A TTML content processor supports the#extentfeature if it supports the#extent feature as defined by[TTML1], §D.1.25.

Note:

Support for the#extent feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#extent feature but prohibit use of any of the followingfeatures:#extent-region or#extent-root.

Note:

Support for the#extent feature does not imply support for the#region-implied-animation feature.

E.1.81 #extent-auto

A TTML content processor supports the#extent-auto feature if it supports thesyntax and semantics of theauto value of thetts:extentattribute as defined by[TTML1], §8.2.7.

E.1.82 #extent-auto-version-2

A TTMLtransformation processor supports the#extent-auto-version-2 feature if it recognizes and is capable oftransforming the syntax and semantics of theauto value of thetts:extentattribute as defined by this specification.

A TTMLpresentation processor supports the#extent-auto-version-2feature if it implements presentation semantic support for the semantic extensions to theauto value of thetts:extent attribute as described above.

The#extent-auto-version-2 feature is a semantic extension of the#extent-auto feature.

It is an error for a content profile to require or permit use of the#extent-auto-version-2 feature but prohibit use of (1) the#extent-auto featureor (2) all of the following features:#extent-root,#extent-region, and#extent-image.

Note:

Support for the#extent-auto-version-2 feature does not imply support for thefollowing features:

However, if any of these features is supported, then support for the#extent-auto-version-2 featuredoes imply that#extent-auto-version-2 is supported with respect to that feature, or, more particularly,with respect to the element(s) supported by that feature, which is to say, with respect to any of the following element types:tt,region, andimage, respectively.

E.1.83 #extent-contain

A TTMLtransformation processor supports the#extent-contain feature if it recognizes and is capable oftransforming thecontain value of thetts:extentattribute.

A TTMLpresentation processor supports the#extent-contain feature if it implements presentation semantic support for thecontain value of thetts:extent attribute.

E.1.84 #extent-cover

A TTMLtransformation processor supports the#extent-cover feature if it recognizes and is capable oftransforming thecover value of thetts:extentattribute.

A TTMLpresentation processor supports the#extent-cover feature if it implements presentation semantic support for thecover value of thetts:extent attribute.

E.1.85 #extent-full-version-2

A TTML processor supports the#extent-full-version-2 feature if it supports the following features:

The#extent-full-version-2 feature is a syntactic and semantic extension of the#extent-version-2 feature.

It is an error for a content profile to require or permit use of the#extent-full-version-2 feature but prohibit useof any of the following features:#extent-contain,#extent-cover,#extent-measure, or#extent-version-2.

Note:

Support for the#extent-full-version-2 feature does not imply support for the#region-implied-animation feature.

E.1.86 #extent-image

A TTMLtransformation processor supports the#extent-image feature if it supports the attribute valuesof thetts:extent attribute supported by the#extent-auto-version-2 and#extent-length-version-2 featureswhen applied to animage element.

A TTMLpresentation processor supports the#extent-imagefeature if it implements presentation semantic support for the same vocabulary enumerated above.

It is an error for a content profile to require or permit use of the#extent-image feature but prohibit use of any of the followingfeatures:#extent,features:#extent-auto-version-2, or#extent-length-version-2.

E.1.87 #extent-length

A TTML content processor supports the#extent-length feature if it supports<length> component valuesof thetts:extent attribute as defined by[TTML1], §8.2.7.

E.1.88 #extent-length-version-2

A TTML content processor supports the#extent-length-version-2 feature if it supportsthe#length-version-2 feature when applied to<length> component valuesof thetts:extent attribute.

The#extent-length-version-2 feature is a syntactic and semantic extension of the#extent-length feature.

It is an error for a content profile to require or permit use of the#extent-length-version-2 featurebut prohibit use of the#extent-length feature.

E.1.89 #extent-measure

A TTMLtransformation processor supports the#extent-measure feature if it recognizes and is capable oftransforming the following values of a<measure> stylevalue expression when used with thetts:extent attribute:

  • auto

  • fitContent

  • maxContent

  • minContent

A TTMLpresentation processor supports the#extent-measure feature if it implements presentation semantic support forsame vocabulary enumerated above.

E.1.90 #extent-region

A TTML content processor supports the#extent-regionfeature if it supports the#extent-region feature as defined by[TTML1], §D.1.26.

Note:

Support for the#extent-region feature implies support for the#extent-auto and#extent-length featureswhen applied to aregion element.

E.1.91 #extent-region-version-2

A TTML processor supports the#extent-region-version-2 feature if it supports the following features:

The#extent-region-version-2 feature is a syntactic and semantic extension of the#extent-region feature.

It is an error for a content profile to require or permit use of the#extent-region-version-2 featurebut prohibit use of any of the following features:#extent-region,#extent-auto-version-2, or#extent-length-version-2.

Note:

Support for the#extent-region-version-2 feature does not imply support for the#region-implied-animation feature.

E.1.92 #extent-root

A TTML content processor supports the#extent-rootfeature if it supports the#extent-root feature as defined by[TTML1], §D.1.27.

Note:

Support for the#extent-root feature implies support for the#extent-auto and#extent-length featureswhen applied to thett element.

E.1.93 #extent-root-version-2

A TTML processor supports the#extent-root-version-2 feature if it supports the following features:

The#extent-root-version-2 feature is a syntactic and semantic extension of the#extent-root feature.

It is an error for a content profile to require or permit use of the#extent-root-version-2 featurebut prohibit use of any of the following features:#extent-root,#extent-auto-version-2, or#extent-length-version-2.

E.1.94 #extent-version-2

A TTML processor supports the#extent-version-2 feature if it supports the following features:

The#extent-version-2 feature is a syntactic and semantic extension of the#extent feature.

It is an error for a content profile to require or permit use of the#extent-version-2 featurebut prohibit use of any of the following features:#extent,#extent-image,#extent-region-version-2, or#extent-root-version-2.

Note:

Support for the#extent-version-2 feature does not imply support for the any of the following features:#extent-contain,#extent-cover,#extent-measure, or#region-implied-animation.

E.1.95 #font

A TTMLtransformation processor supports the#fontfeature if it recognizes and is capable of transforming the followingvocabulary defined by9 Embedded Content:

A TTMLpresentation processor supports the#fontfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.96 #fontFamily

A TTML content processor supports the#fontFamilyfeature if it supports the#fontFamily feature as defined by[TTML1], §D.1.28.

Note:

Support for the#fontFamily feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#fontFamily feature but prohibit use of any of the followingfeatures:#fontFamily-generic or#fontFamily-non-generic.

E.1.97 #fontFamily-generic

A TTML content processor supports the#fontFamily-genericfeature if it supports the#fontFamily-generic feature as defined by[TTML1], §D.1.29.

E.1.98 #fontFamily-non-generic

A TTML content processor supports the#fontFamily-non-genericfeature if it supports the#fontFamily-non-generic feature as defined by[TTML1], §D.1.30.

E.1.99 #fontKerning

A TTMLtransformation processor supports the#fontKerning feature if it recognizes and is capable oftransforming thetts:fontKerning attribute.

A TTMLpresentation processor supports the#fontKerning feature if it implements presentation semantic support for thetts:fontKerning attribute.

E.1.100 #fontSelectionStrategy

A TTMLtransformation processor supports the#fontSelectionStrategy feature if it recognizes and is capable oftransforming theauto value of thetts:fontSelectionStrategyattribute.

A TTMLpresentation processor supports the#fontSelectionStrategy feature if it implements presentation semantic support for theauto value of thetts:fontSelectionStrategy attribute.

E.1.101 #fontSelectionStrategy-character

A TTMLtransformation processor supports the#fontSelectionStrategy-character feature if it recognizes and is capable oftransforming thecharacter value of thetts:fontSelectionStrategyattribute.

A TTMLpresentation processor supports the#fontSelectionStrategy-character feature if it implements presentation semantic support for thecharacter value of thetts:fontSelectionStrategy attribute.

E.1.102 #fontShear

A TTMLtransformation processor supports the#fontShear feature if it recognizes and is capable oftransforming thetts:fontShear attribute.

A TTMLpresentation processor supports the#fontShear feature if it implements presentation semantic support for thetts:fontShear attribute.

E.1.103 #fontSize

A TTML content processor supports the#fontSizefeature if it supports the#fontSize feature as defined by[TTML1], §D.1.31.

Note:

Support for the#fontSize feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#fontSize feature but prohibit use of any of the followingfeatures:#fontSize-anamorphic or#fontSize-isomorphic.

E.1.104 #fontSize-anamorphic

A TTML content processor supports the#fontSize-anamorphicfeature if it supports the#fontSize-anamorphic feature as defined by[TTML1], §D.1.32.

E.1.105 #fontSize-isomorphic

A TTML content processor supports the#fontSize-isomorphicfeature if it supports the#fontSize-isomorphic feature as defined by[TTML1], §D.1.33.

E.1.106 #fontStyle

A TTML content processor supports the#fontStylefeature if it supports the#fontStyle feature as defined by[TTML1], §D.1.34.

Note:

Support for the#fontStyle feature is functionally equivalent to support for (1) the#fontStyle-italic and#fontStyle-oblique featuresand (2) thenormal value oftts:fontStyle attribute.

It is an error for a content profile to require or permit use of the#fontStyle feature but prohibit use of any of the followingfeatures:#fontStyle-italic or#fontStyle-oblique.

E.1.107 #fontStyle-italic

A TTML content processor supports the#fontStyle-italicfeature if it supports the#fontStyle-italic feature as defined by[TTML1], §D.1.35.

E.1.108 #fontStyle-oblique

A TTML content processor supports the#fontStyle-obliquefeature if it supports the#fontStyle-oblique feature as defined by[TTML1], §D.1.36.

E.1.109 #fontVariant

A TTMLtransformation processor supports the#fontVariant feature if it recognizes and is capable oftransforming thetts:fontVariant attribute.

A TTMLpresentation processor supports the#fontVariant feature if it implements presentation semantic support for thetts:fontVariant attribute.

E.1.110 #fontWeight

A TTML content processor supports the#fontWeightfeature if it supports the#fontWeight feature as defined by[TTML1], §D.1.37.

Note:

Support for the#fontWeight feature is functionally equivalent to support for (1) the#fontWeight-bold featureand (2) thenormal value oftts:fontWeight attribute.

It is an error for a content profile to require or permit use of the#fontWeight feature but prohibit use of the#fontWeight-bold feature.

E.1.111 #fontWeight-bold

A TTML content processor supports the#fontWeight-boldfeature if it supports the#fontWeight-bold feature as defined by[TTML1], §D.1.38.

E.1.112 #frameRate

A TTML content processor supports the#frameRatefeature if it supports the#frameRate feature as defined by[TTML1], §D.1.39.

E.1.113 #frameRateMultiplier

A TTML content processor supports the#frameRateMultiplierfeature if it supports the#frameRateMultiplier feature as defined by[TTML1], §D.1.40.

E.1.114 #gain

A TTMLtransformation processor supports the#gain feature if it recognizes and is capable oftransforming thetta:gain attribute.

A TTMLpresentation processor supports the#gain feature if it implements presentation semantic support for thetta:gain attribute.

E.1.115 #image

A TTMLtransformation processor supports the#imagefeature if it recognizes and is capable of transforming the followingvocabulary defined by9 Embedded Content:

A TTMLpresentation processor supports the#imagefeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.116 #image-png

A TTMLtransformation processor supports the#image-pngfeature if it recognizes and is capable of transformingimage resourcesof content typeimage/png as defined by[PNG].

A TTMLpresentation processor supports the#image-pngfeature if it implements presentation semantic support forimage resourcesof content typeimage/png as defined by[PNG].

E.1.117 #initial

A TTMLtransformation processor supports the#initialfeature if it recognizes and is capable of transforming the followingvocabulary defined by10 Styling:

A TTMLpresentation processor supports the#initialfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.118 #ipd

A TTMLtransformation processor supports the#ipd feature if it recognizes and is capable oftransforming thetts:ipd attribute.

A TTMLpresentation processor supports the#ipd feature if it implements presentation semantic support for thetts:ipd attribute.

E.1.119 #layout

A TTML content processor supports the#layoutfeature if it supports the#layout feature as defined by[TTML1], §D.1.41.

E.1.120 #length

A TTML content processor supports the#lengthfeature if it supports the#length feature as defined by[TTML1], §D.1.42.

E.1.121 #length-cell

A TTML content processor supports the#length-cellfeature if it supports the#length-cell feature as defined by[TTML1], §D.1.43.

E.1.122 #length-em

A TTML content processor supports the#length-emfeature if it supports the#length-em feature as defined by[TTML1], §D.1.44.

E.1.123 #length-integer

A TTML content processor supports the#length-integerfeature if it supports the#length-integer feature as defined by[TTML1], §D.1.45.

E.1.124 #length-negative

A TTML content processor supports the#length-negativefeature if it supports the#length-negative feature as defined by[TTML1], §D.1.46.

E.1.125 #length-percentage

A TTML content processor supports the#length-percentagefeature if it supports the#length-percentage feature as defined by[TTML1], §D.1.47.

E.1.126 #length-pixel

A TTML content processor supports the#length-pixelfeature if it supports the#length-pixel feature as defined by[TTML1], §D.1.48.

E.1.127 #length-positive

A TTML content processor supports the#length-positivefeature if it supports the#length-positive feature as defined by[TTML1], §D.1.49.

E.1.128 #length-real

A TTML content processor supports the#length-realfeature if it supports the#length-real feature as defined by[TTML1], §D.1.50.

E.1.129 #length-root-container-relative

A TTMLtransformation processor supports the#length-root-container-relative feature if it recognizes and iscapable of transformingroot container relative values of the<length> style valueexpression.

A TTMLpresentation processor supports the#length-root-container-relative feature if it implements presentation semanticsupport forroot container relative values of the<length> style valueexpression.

E.1.130 #length-version-2

A TTML processor supports the#length-version-2 feature if it supports the following features:

The#length-version-2 feature is a syntactic and semantic extension of the#length feature.

It is an error for a content profile to require or permit use of the#length-version-2 featurebut prohibit use of any of the following features:#length or#length-root-container-relative.

E.1.131 #letterSpacing

A TTMLtransformation processor supports the#letterSpacing feature if it recognizes and is capable oftransforming thetts:letterSpacing attribute.

A TTMLpresentation processor supports the#letterSpacing feature if it implements presentation semantic support for thetts:letterSpacing attribute.

E.1.132 #lineBreak-uax14

A TTML content processor supports the#lineBreak-uax14feature if it supports the#lineBreak-uax14 feature as defined by[TTML1], §D.1.51.

E.1.133 #lineHeight

A TTML content processor supports the#lineHeightfeature if it supports the#lineHeight feature as defined by[TTML1], §D.1.52.

E.1.134 #lineShear

A TTMLtransformation processor supports the#lineShear feature if it recognizes and is capable oftransforming thetts:lineShear attribute.

A TTMLpresentation processor supports the#lineShear feature if it implements presentation semantic support for thetts:lineShear attribute.

E.1.135 #luminanceGain

A TTMLtransformation processor supports the#luminanceGain feature if it recognizes and is capable oftransforming thetts:luminanceGainattribute.

A TTMLpresentation processor supports the#luminanceGain feature if it implements presentation semantic support forthetts:luminanceGain.

E.1.136 #markerMode

A TTML content processor supports the#markerModefeature if it supports the#markerMode feature as defined by[TTML1], §D.1.53.

Note:

Support for the#markerMode feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#markerMode feature but prohibit use of any of the followingfeatures:#markerMode-continuous or#markerMode-discontinuous.

E.1.137 #markerMode-continuous

A TTML content processor supports the#markerMode-continuousfeature if it supports the#markerMode-continuous feature as defined by[TTML1], §D.1.54.

E.1.138 #markerMode-discontinuous

A TTML content processor supports the#markerMode-discontinuousfeature if it supports the#markerMode-discontinuous feature as defined by[TTML1], §D.1.55.

E.1.139 #metadata

A TTML content processor supports the#metadatafeature if it supports the#metadata feature as defined by[TTML1], §D.1.56.

E.1.140 #metadata-item

A TTMLtransformation processor supports the#metadata-itemfeature if it recognizes and is capable of transforming the followingvocabulary defined by14 Metadata:

A TTMLpresentation processor supports the#metadata-itemfeature if it implements presentation semantic support for thesame 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.

E.1.141 #metadata-version-2

A TTML processor supports the#metadata-version-2 feature if itsupports the following features:

The#metadata-version-2 feature is a syntactic and semantic extension of the#metadata feature.

It is an error for a content profile to require or permit use of the#metadata-version-2 feature but prohibit use of any of the followingfeatures:#metadata or#metadata-item.

E.1.142 #nested-div

A TTML content processor supports the#nested-divfeature if it supports the#nested-div feature as defined by[TTML1], §D.1.57.

E.1.143 #nested-span

A TTML content processor supports the#nested-spanfeature if it supports the#nested-span feature as defined by[TTML1], §D.1.58.

E.1.144 #opacity

A TTML content processor supports the#opacityfeature if it supports the#opacity feature as defined by[TTML1], §D.1.59.

Note:

Support for the#opacity feature is functionally equivalent to support for the#opacity-region feature.

It is an error for a content profile to require or permit use of the#opacity feature but prohibit useof the#opacity-region feature.

E.1.145 #opacity-block

A TTMLtransformation processor supports the#opacity-block feature if it recognizes and iscapable of transforming all defined values of thetts:opacityattribute when applied to acontent element that would generate ablock area during presentation processing.

A TTMLpresentation processor supports the#opacity-block feature if it (1) implements presentation semanticsupport for thetts:opacityattribute when applied to acontent element that generates ablock area and (2) is capable of displaying or generating an output displaysignal that distinguishes between at least eight (8) values of opacity.

E.1.146 #opacity-inline

A TTMLtransformation processor supports the#opacity-inline feature if it recognizes and iscapable of transforming all defined values of thetts:opacityattribute when applied to acontent element that would generate aninline area during presentation processing.

A TTMLpresentation processor supports the#opacity-inline feature if it (1) implements presentation semanticsupport for thetts:opacityattribute when applied to acontent element that generates aninline area and (2) is capable of displaying or generating an output displaysignal that distinguishes between at least eight (8) values of opacity.

E.1.147 #opacity-region

A TTMLtransformation processor supports the#opacity-region feature if it recognizes and iscapable of transforming all defined values of thetts:opacityattribute when applied to aregion element.

A TTMLpresentation processor supports the#opacity-region feature if it (1) implements presentation semanticsupport for thetts:opacityattribute when applied to aregion element and (2) is capable of displaying or generating an output displaysignal that distinguishes between at least eight (8) values of opacity.

Note:

Support for the#opacity-region feature is functionally equivalent to support for the#opacity feature.

It is an error for a content profile to require or permit use of the#opacity-region feature but prohibit useof the#opacity feature.

E.1.148 #opacity-version-2

A TTML processor supports the#opacity-version-2 feature if itsupports the following features:

The#opacity-version-2 feature is a syntactic and semantic extension of the#opacity feature.

It is an error for a content profile to require or permit use of the#opacity-version-2 featurebut prohibit use of any of the following features:#opacity,#opacity-block,#opacity-inline, or#opacity-region.

E.1.149 #origin

A TTML content processor supports the#originfeature if it supports the#origin feature as defined by[TTML1], §D.1.60.

Note:

Support for the#origin feature does not imply support for the#region-implied-animation feature.

E.1.150 #overflow

A TTML content processor supports the#overflowfeature if it supports the#overflow feature as defined by[TTML1], §D.1.61.

Note:

Support for the#overflow feature is functionally equivalent to support for (1) the#overflow-visible featureand (2) thehidden value oftts:overflow attribute.

It is an error for a content profile to require or permit use of the#overflow feature but prohibit use of the#overflow-visible feature.

E.1.151 #overflow-visible

A TTML content processor supports the#overflow-visiblefeature if it supports the#overflow-visible feature as defined by[TTML1], §D.1.62.

E.1.152 #padding

A TTML content processor supports the#paddingfeature if it supports the#padding feature as defined by[TTML1], §D.1.63.

Note:

Support for the#padding feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#padding feature but prohibit use of any of the following features:#padding-1,#padding-2,#padding-3,#padding-4,#padding-region.

E.1.153 #padding-1

A TTML content processor supports the#padding-1feature if it supports the#padding-1 feature as defined by[TTML1], §D.1.64.

E.1.154 #padding-2

A TTML content processor supports the#padding-2feature if it supports the#padding-2 feature as defined by[TTML1], §D.1.65.

E.1.155 #padding-3

A TTML content processor supports the#padding-3feature if it supports the#padding-3 feature as defined by[TTML1], §D.1.66.

E.1.156 #padding-4

A TTML content processor supports the#padding-4feature if it supports the#padding-4 feature as defined by[TTML1], §D.1.67.

E.1.157 #padding-block

A TTMLtransformation processor supports the#padding-block feature if it recognizes and iscapable of transforming all defined values of thetts:paddingattribute when applied to acontent element that would generate ablock area during presentation processing.

A TTMLpresentation processor supports the#padding-block feature if it implements presentation semanticsupport for thetts:paddingattribute when applied to acontent element that generates ablock area.

E.1.158 #padding-inline

A TTMLtransformation processor supports the#padding-inline feature if it recognizes and iscapable of transforming all defined values of thetts:paddingattribute when applied to acontent element that would generate aninline area during presentation processing.

A TTMLpresentation processor supports the#padding-inline feature if it implements presentation semanticsupport for thetts:paddingattribute when applied to acontent element that generates aninline area.

E.1.159 #padding-region

A TTML content processor supports the#padding-regionfeature if it supports the#padding feature.

The#padding-region feature is anull extensionof the#padding feature,which, bynull extension is meantthat some feature is formally marked as an extension of another feature, but the extension semantics is the null set, which is the same as sayingthat the two features are functionally equivalent.

It is an error for a content profile to require or permit use of the#padding-region featurebut prohibit use of any of the following features:#padding,#padding-1,#padding-2,#padding-3, or#padding-4.

E.1.160 #padding-version-2

A TTML processor supports the#padding-version-2 feature if itsupports the following features:

The#padding-version-2 feature is a syntactic and semantic extension of the#padding feature.

Note:

Since the#padding-region feature is anull extension of the#padding feature,then the#padding-version-2 feature is a syntactic and semantic extension of the#padding-region feature as well.

It is an error for a content profile to require or permit use of the#padding-version-2 featurebut prohibit use of any of the following features:#padding,#padding-1,#padding-2,#padding-3,#padding-4.#padding-block,#padding-inline, or#padding-region.

E.1.161 #pan

A TTMLtransformation processor supports the#pan feature if it recognizes and is capable oftransforming thetta:pan attribute.

A TTMLpresentation processor supports the#pan feature if it implements presentation semantic support for thetta:pan attribute.

E.1.162 #permitFeatureNarrowing

A TTMLtransformation processor supports the#permitFeatureNarrowing feature if it recognizes and is capable oftransforming (1) thettp:permitFeatureNarrowingattribute and (2) theextends attribute on thettp:feature andttp:extension elements.

A TTMLpresentation processor supports the#permitFeatureNarrowingfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

Note:

If a TTML processor does not support the#permitFeatureNarrowing feature when it is designated as optional, then the semantics of theextends attribute are ignored, which is to say, support for the feature being extended will not be sufficientto consider that the extension feature is supported.

E.1.163 #permitFeatureWidening

A TTMLtransformation processor supports the#permitFeatureWidening feature if it recognizes and is capable oftransforming (1) thettp:permitFeatureWideningattribute and (2) therestricts attribute on thettp:feature andttp:extension elements.

A TTMLpresentation processor supports the#permitFeatureWideningfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

Note:

If a TTML processor does not support the#permitFeatureWidening feature when it is designated as optional, then the semantics of therestricts attribute are ignored, which is to say, support for the feature being restricted will not be sufficientto consider that the restricted feature is supported.

E.1.164 #pitch

A TTMLtransformation processor supports the#pitch feature if it recognizes and is capable oftransforming thetta:pitch attribute.

A TTMLpresentation processor supports the#pitch feature if it implements presentation semantic support for thetta:pitch attribute.

E.1.165 #pixelAspectRatio

A TTML content processor supports the#pixelAspectRatiofeature if it supports the#pixelAspectRatio feature as defined by[TTML1], §D.1.68.

E.1.166 #position

A TTMLtransformation processor supports the#position feature if it recognizes and is capable oftransforming thetts:position attribute.

A TTMLpresentation processor supports the#position feature if it implements presentation semantic support for thetts:position attribute.

Note:

Support for the#position feature does not imply support for the#region-implied-animation feature.

E.1.167 #presentation

A TTML content processor supports the#presentationfeature if it supports the#presentation feature as defined by[TTML1], §D.1.69.

E.1.168 #presentation-version-2

A TTML processor supports the#presentation-version-2 feature if it(1) satisfies the generic processor criteria defined by3.2.1 Generic Processor Conformance and(2) supports the following features:

The#presentation-version-2 feature is a syntactic and semantic extension of the#presentation feature.

It is an error for a content profile to require or permit use of the#presentation-version-2 feature but prohibit use of any of thefollowing features:#presentation or#profile-version-2.

E.1.169 #processorProfiles

A TTMLtransformation processor supports the#processorProfilesfeature if it (1) supportsnon-combined profiles and (2) recognizes and is capable of transforming:

  1. the following profile attributes vocabulary defined by6.2 Profile Attribute Vocabulary:

  2. thedesignator attribute on thettp:profile element, and

  3. theprocessor value of thetype attribute on thettp:profile element.

A TTMLpresentation processor supports the#processorProfilesfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

Note:

Support for the#processorProfiles feature does not imply support forcombined profilesornesting profiles.

E.1.170 #processorProfiles-combined

A TTMLtransformation processor supports the#processorProfiles-combinedfeature if it (1) supports the#processorProfiles feature,(2) supportscombined profiles and (3) recognizes and is capable of transforming:

  1. the following profile attributes vocabulary defined by6.2 Profile Attribute Vocabulary:

  2. thecombine attribute on thettp:profile element.

A TTMLpresentation processor supports the#processorProfiles-combinedfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

The#processorProfiles-combine feature is a syntactic and semantic extension of the#processorProfiles feature.

It is an error for a processor profile to require or permit use of the#processorProfiles-combine featurebut prohibit use of the#processorProfiles feature.

Note:

Support for the#processorProfiles-combined feature does not imply support fornesting profiles.

E.1.171 #profile

A TTML content processor supports the#profilefeature if it supports the#profile feature as defined by[TTML1], §D.1.70.

Note:

Support for the#profile feature does not imply support for thefollowing features:

E.1.172 #profile-full-version-2

A TTML content processor supports the#profile-full-version-2 feature if itsupports the following features:

The#profile-full-version-2 feature is a syntactic and semantic extension of the#profile-version-2 feature.

It is an error for a content profile to require or permit use of the#profile-full-version-2 featurebut prohibit use of any of the following features:#contentProfiles,#contentProfiles-combined,#permitFeatureNarrowing,#permitFeatureWidening,#processorProfiles,#processorProfiles-combined,#profile,#profile-nesting, or#profile-version-2.

E.1.173 #profile-nesting

A TTML content processor supports the#profile-nestingfeature if it supportsnesting profiles.

E.1.174 #profile-version-2

A TTML content processor supports the#profile-version-2 feature if itsupports the following features:

The#profile-version-2 feature is a syntactic and semantic extension of the#profile feature.

It is an error for a content profile to require or permit use of the#profile-version-2 featurebut prohibit use of any of the following features:#contentProfiles,#processorProfiles, or#profile.

Note:

Support for the#profile-version-2 feature does not imply support for thefollowing features:

E.1.175 #region-implied-animation

A TTMLtransformation processor supports the#region-implied-animation feature if it recognizes and is capable of transforming the style attributes on adiv orp element that apply to an implied regionin accordance with11.1.2.1 Special Semantics of Inline Animation.

A TTMLpresentation processor supports the#region-implied-animation feature if it implements presentation semantic support for the style attributes on adiv orp element that apply to an implied regionin accordance with11.1.2.1 Special Semantics of Inline Animation.

Note:

Support for the#region-implied-animation feature does not imply support for thefollowing features:

However, if any of these features is supported, then support for the#region-implied-animation featuredoes imply that11.1.2.1 Special Semantics of Inline Animation is supported with respect to that feature.

E.1.176 #region-inline

A TTMLtransformation processor supports the#region-inline feature if it recognizes and is capableof transforming inline region element children of acontent element, as further defined byregion.

A TTMLpresentation processor supports the#region-inline feature if it implements presentation semantic supportfor inline region element children of acontent element, as further defined byregion.

E.1.177 #region-timing

A TTMLtransformation processor supports the#region-timingfeature if it recognizes and is capable of transforming the following vocabulary when applied to aregion element:

A TTMLpresentation processor supports the#region-timingfeature if it implements presentation semantic support for the same vocabulary enumerated abovewhen applied to aregion element.

The#region-timing feature is a semantic restriction of the#timing feature.

Note:

Since this feature represents a semantic subset of the#timing feature, andsince the latter is a mandatory feature for all transformation and presentation processors, the utility of this featuredesignation is effectively limited to its use in a content profile definition which may choose to prohibit use of this featureby a document instance.

E.1.178 #resources

A TTMLtransformation processor supports the#resourcesfeature if it recognizes and is capable of transforming the followingvocabulary defined by9 Embedded Content:

A TTMLpresentation processor supports the#resourcesfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.179 #ruby

A TTMLtransformation processor supports the#ruby feature if it recognizes and is capableof transforming all defined values of thetts:rubyattribute.

A TTMLpresentation processor supports the#ruby feature if it implements presentation semantic supportfor all defined values of thetts:rubyattribute.

E.1.180 #ruby-full

A TTML processor supports the#ruby-full feature if itsupports the following features:

It is an error for a content profile to require or permit use of the#ruby-full featurebut prohibit use of any of the following features:#ruby,#rubyAlign,#rubyAlign-withBase,#rubyPosition, or#rubyReserve.

E.1.181 #rubyAlign

A TTML processor supports the#rubyAlign feature if it supports the following features:

It is an error for a content profile to require or permit use of the#rubyAlign feature but prohibit use of any of the followingfeatures:#rubyAlign-minimal or#rubyAlign-withBase.

E.1.182 #rubyAlign-minimal

A TTMLtransformation processor supports the#rubyAlign-minimal feature if it recognizes and is capable of transforming the following values of thetts:rubyAlign attribute.

  • start

  • center

  • end

  • spaceAround

  • spaceBetween

A TTMLpresentation processor supports the#rubyAlign-minimal feature if it implements presentation semantic support for the same valuesvocabulary enumerated above.

E.1.183 #rubyAlign-withBase

A TTMLtransformation processor supports the#rubyAlign-withBase feature if it recognizes and is capable of transforming thewithBase value of thetts:rubyAlign attribute.

A TTMLpresentation processor supports the#rubyAlign-withBase feature if it implements presentation semantic support for the same valueenumerated above.

E.1.184 #rubyPosition

A TTMLtransformation processor supports the#rubyPosition feature if it recognizes and is capable oftransforming thetts:rubyPosition attribute.

A TTMLpresentation processor supports the#rubyPosition feature if it implements presentation semantic support for thetts:rubyPosition attribute.

E.1.185 #rubyReserve

A TTMLtransformation processor supports the#rubyReserve feature if it recognizes and is capable oftransforming thetts:rubyReserve attribute.

A TTMLpresentation processor supports the#rubyReserve feature if it implements presentation semantic support for thetts:rubyReserve attribute.

E.1.186 #set

A TTML content processor supports the#setfeature if it supports the#animation feature, and, as such,the#set feature is anull extension of the#animation feature.

It is an error for a content profile to require or permit use of the#set feature but prohibit use of the#animation feature.

E.1.187 #set-fill

A TTMLtransformation processor supports the#set-fill feature if it recognizes and is capable oftransforming thefill attribute of theset element.

A TTMLpresentation processor supports the#set-fill feature if it implements presentation semantic supportfor thefill attribute of theset element.

E.1.188 #set-multiple-styles

A TTMLtransformation processor supports the#set-multiple-styles feature if it recognizes and is capable oftransforming multiple attributes in the TT Style Namespaces when specified on aset element.

A TTMLpresentation processor supports the#set-multiple-styles feature if it implements presentation semantic supportfor multiple attributes in the TT Style Namespaces when specified on aset element.

E.1.189 #set-repeat

A TTMLtransformation processor supports the#set-repeat feature if it recognizes and is capable oftransforming therepeatCount attribute of theset element.

A TTMLpresentation processor supports the#set-repeat feature if it implements presentation semantic supportfor therepeatCount attribute of theset element.

E.1.190 #shear

A TTMLtransformation processor supports the#shear feature if it recognizes and is capable oftransforming thetts:shear attribute.

A TTMLpresentation processor supports the#shear feature if it implements presentation semantic support for thetts:shear attribute.

E.1.191 #showBackground

A TTML content processor supports the#showBackgroundfeature if it supports the#showBackground feature as defined by[TTML1], §D.1.71.

E.1.192 #source

A TTMLtransformation processor supports the#sourcefeature if it recognizes and is capable of transforming the followingvocabulary defined by9 Embedded Content:

A TTMLpresentation processor supports the#sourcefeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.193 #speak

A TTMLtransformation processor supports the#speak feature if it recognizes and is capable oftransforming thetta:speak attribute.

A TTMLpresentation processor supports the#speak feature if it implements presentation semantic support for thetta:speak attribute.

E.1.194 #speech

A TTML processor supports the#speech feature if it supports aspeech synthesis processor.

E.1.195 #structure

A TTML content processor supports the#structurefeature if it supports the#structure feature as defined by[TTML1], §D.1.72.

E.1.196 #styling

A TTML content processor supports the#stylingfeature if it supports the#styling feature as defined by[TTML1], §D.1.73.

E.1.197 #styling-chained

A TTML content processor supports the#styling-chainedfeature if it supports the#styling-chained feature as defined by[TTML1], §D.1.74.

E.1.198 #styling-inheritance-content

A TTML content processor supports the#styling-inheritance-contentfeature if it supports the#inheritance-content feature as defined by[TTML1], §D.1.75.

E.1.199 #styling-inheritance-region

A TTML content processor supports the#styling-inheritance-regionfeature if it supports the#styling-inheritance-region feature as defined by[TTML1], §D.1.76.

E.1.200 #styling-inline

A TTML content processor supports the#styling-inlinefeature if it supports the#styling-inline feature as defined by[TTML1], §D.1.77.

E.1.201 #styling-nested

A TTML content processor supports the#styling-nestedfeature if it supports the#styling-nested feature as defined by[TTML1], §D.1.78.

E.1.202 #styling-referential

A TTML content processor supports the#styling-referentialfeature if it supports the#styling-referential feature as defined by[TTML1], §D.1.79.

E.1.203 #subFrameRate

A TTML content processor supports the#subFrameRatefeature if it supports the#subFrameRate feature as defined by[TTML1], §D.1.80.

E.1.204 #textAlign

A TTML content processor supports the#textAlignfeature if it supports the#textAlign feature as defined by[TTML1], §D.1.81.

Note:

Support for the#textAlign feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#textAlign feature but prohibit use of any of the following features:#textAlign-absolute or#textAlign-relative.

E.1.205 #textAlign-absolute

A TTML content processor supports the#textAlign-absolutefeature if it supports the#textAlign-absolute feature as defined by[TTML1], §D.1.82.

E.1.206 #textAlign-justify

A TTMLtransformation processor supports the#textAlign-justify feature if it recognizes and iscapable of transforming thejustify value of thetts:textAlign attribute.

A TTMLpresentation processor supports the#textAlign-justify feature if it implements presentation semantic support for thejustify valueof thetts:textAlign attribute.

E.1.207 #textAlign-relative

A TTML content processor supports the#textAlign-relativefeature if it supports the#textAlign-relative feature as defined by[TTML1], §D.1.83.

E.1.208 #textAlign-version-2

A TTML processor supports the#textAlign-version-2 feature if itsupports the following features:

The#textAlign-version-2 feature is a syntactic and semantic extension of the#textAlign feature.

It is an error for a content profile to require or permit use of the#textAlign-version-2 featurebut prohibit use of any of the following features:#textAlign,#textAlign-absolute,#textAlign-justify, or#textAlign-relative.

E.1.209 #textCombine

A TTMLtransformation processor supports the#textCombine feature if it recognizes and is capable oftransforming thetts:textCombine attribute.

A TTMLpresentation processor supports the#textCombine feature if it implements presentation semantic support for thetts:textCombine attribute.

E.1.210 #textDecoration

A TTML content processor supports the#textDecorationfeature if it supports the#textDecoration feature as defined by[TTML1], §D.1.84.

Note:

Support for the#textDecoration feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#textDecoration featurebut prohibit use of any of the following features:#textDecoration-over,#textDecoration-through, or#textDecoration-under.

E.1.211 #textDecoration-over

A TTML content processor supports the#textDecoration-overfeature if it supports the#textDecoration-over feature as defined by[TTML1], §D.1.85.

E.1.212 #textDecoration-through

A TTML content processor supports the#textDecoration-throughfeature if it supports the#textDecoration-through feature as defined by[TTML1], §D.1.86.

E.1.213 #textDecoration-under

A TTML content processor supports the#textDecoration-underfeature if it supports the#textDecoration-under feature as defined by[TTML1], §D.1.87.

E.1.214 #textEmphasis

A TTML processor supports the#textEmphasis feature if itsupports the following features:

The#textEmphasis feature is a syntactic and semantic extension of the#textEmphasis-minimal feature.

It is an error for a content profile to require or permit use of the#textEmphasis featurebut prohibit use of any of the following features:#textEmphasis-color,#textEmphasis-minimal, or#textEmphasis-quoted-string.

E.1.215 #textEmphasis-color

A TTMLtransformation processor supports the#textEmphasis-color feature if it recognizes and is capableof transforming values of thetts:textEmphasisattribute which contain an<emphasis-color> component.

A TTMLpresentation processor supports the#textEmphasis-colorfeature if it implements presentation semantic support for the same vocabulary enumerated above.

E.1.216 #textEmphasis-minimal

A TTMLtransformation processor supports the#textEmphasis-minimal feature if it recognizes and is capableof transforming values of thetts:textEmphasisattribute which (1) do not contain an<emphasis-color> component and(2) do not contain an<emphasis-style> component thattakes the form of a<quoted-string> value.

A TTMLpresentation processor supports the#textEmphasis-minimalfeature if it implements presentation semantic support for the same vocabulary enumerated above.

E.1.217 #textEmphasis-quoted-string

A TTMLtransformation processor supports the#textEmphasis-quoted-string feature if it recognizes and is capableof transforming values of thetts:textEmphasisattribute which contain an<emphasis-style> component thattakes the form of a<quoted-string> value.

A TTMLpresentation processor supports the#textEmphasis-quoted-stringfeature if it implements presentation semantic support for the same vocabulary enumerated above.

E.1.218 #textOrientation

A TTMLtransformation processor supports the#textOrientation feature if it recognizes and is capable oftransforming thetts:textOrientationattribute.

A TTMLpresentation processor supports the#textOrientation feature if it implements presentation semantic supportfor thetts:textOrientationattribute.

E.1.219 #textOutline

A TTML content processor supports the#textOutlinefeature if it supports the#textOutline feature as defined by[TTML1], §D.1.88.

Note:

Support for the#textOutline feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#textOutline featurebut prohibit use of any of the following features:#textOutline-blurred or#textOutline-unblurred.

E.1.220 #textOutline-blurred

A TTML content processor supports the#textOutline-blurredfeature if it supports the#textOutline-blurred feature as defined by[TTML1], §D.1.89.

E.1.221 #textOutline-unblurred

A TTML content processor supports the#textOutline-unblurredfeature if it supports the#textOutline-unblurred feature as defined by[TTML1], §D.1.90.

E.1.222 #textShadow

A TTMLtransformation processor supports the#textShadow feature if it recognizes and is capable oftransforming thetts:textShadow attribute.

A TTMLpresentation processor supports the#textShadow feature if it implements presentation semantic support for thetts:textShadow attribute.

E.1.223 #tickRate

A TTML content processor supports the#tickRatefeature if it supports the#tickRate feature as defined by[TTML1], §D.1.91.

E.1.224 #timeBase-clock

A TTML content processor supports the#timeBase-clockfeature if it supports the#timeBase-clock feature as defined by[TTML1], §D.1.92.

E.1.225 #timeBase-media

A TTML content processor supports the#timeBase-mediafeature if it supports the#timeBase-media feature as defined by[TTML1], §D.1.93.

E.1.226 #timeBase-smpte

A TTML content processor supports the#timeBase-smptefeature if it supports the#timeBase-smpte feature as defined by[TTML1], §D.1.94.

E.1.227 #timeContainer

A TTML content processor supports the#timeContainerfeature if it supports the#timeContainer feature as defined by[TTML1], §D.1.95.

E.1.228 #time-clock

A TTML content processor supports the#time-clockfeature if it supports the#time-clock feature as defined by[TTML1], §D.1.96.

E.1.229 #time-clock-with-frames

A TTML content processor supports the#time-clock-with-framesfeature if it supports the#time-clock-with-frames feature as defined by[TTML1], §D.1.97.

E.1.230 #time-offset

A TTML content processor supports the#time-offsetfeature if it supports the#time-offset feature as defined by[TTML1], §D.1.98.

E.1.231 #time-offset-with-frames

A TTML content processor supports the#time-offset-with-framesfeature if it supports the#time-offset-with-frames feature as defined by[TTML1], §D.1.99.

E.1.232 #time-offset-with-ticks

A TTML content processor supports the#time-offset-with-ticksfeature if it supports the#time-offset-with-ticks feature as defined by[TTML1], §D.1.100.

E.1.233 #time-wall-clock

A TTMLtransformation processor supports the#time-wall-clock feature if it recognizes and is capable oftransforming all values of the<time-expression> thatsatisfy the following subset of time expression syntax:

<time-expression>  : wallclock-time

A TTMLpresentation processor supports the#time-wall-clock feature if it implements presentationsemantic support for the same syntax specified above.

E.1.234 #timing

A TTML content processor supports the#timingfeature if it supports the#timing feature as defined by[TTML1], §D.1.101.

E.1.235 #transformation

A TTML content processor supports the#transformationfeature if it supports the#transformation feature as defined by[TTML1], §D.1.102.

E.1.236 #transformation-version-2

A TTML processor supports the#transformation-version-2 feature if it(1) satisfies the generic processor criteria defined by3.2.1 Generic Processor Conformance and(2) supports the following features:

The#transformation-version-2 feature is a syntactic and semantic extension of the#transformation feature.

It is an error for a content profile to require or permit use of the#transformation-version-2 featurebut prohibit use of any of the following features:#transformation or#profile-version-2.

E.1.237 #unicodeBidi

A TTML content processor supports the#unicodeBidifeature if it supports the#unicodeBidi feature as defined by[TTML1], §D.1.103.

Note:

Support for the#unicodeBidi feature does not imply support for the#unicodeBidi-isolate feature.

E.1.238 #unicodeBidi-isolate

A TTMLtransformation processor supports the#unicodeBidi-isolate feature if it recognizes and is capable oftransforming theisolate value of thetts:unicodeBidiattribute.

A TTMLpresentation processor supports the#unicodeBidi-isolate feature if it implements presentation semantic supportfor theisolate value of thetts:unicodeBidiattribute.

E.1.239 #unicodeBidi-version-2

A TTML content processor supports the#unicodeBidi-version-2 feature if itsupports the following features:

The#unicodeBidi-version-2 feature is a syntactic and semantic extension of the#unicodeBidi feature.

E.1.240 #validation

A TTMLtransformation processor supports the#validationfeature if it:

  1. is avalidating content processor;

  2. recognizes and is capable of transforming the following attribute vocabulary defined by6.2 Profile Attribute Vocabulary:

A TTMLpresentation processor supports the#validationfeature if it is avalidating content processor andimplements presentation semantic support for the same vocabulary enumerated above.

E.1.241 #visibility

A TTML content processor supports the#visibilityfeature if it supports the#visibility feature as defined by[TTML1], §D.1.104.

Note:

Support for the#visibility feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#visibility featurebut prohibit use of any of the following features:#visibility-block,#visibility-inline, or#visibility-region.

E.1.242 #visibility-block

A TTML content processor supports the#visibility-blockfeature if it supports the#visibility-block feature as defined by[TTML1], §D.1.105.

E.1.243 #visibility-image

A TTMLtransformation processor supports the#visibility-image feature if it supports all defined valuesof thetts:visibility attribute when applied toanimage element.

A TTMLpresentation processor supports the#visibility-imagefeature if it implements presentation semantic support for the same vocabulary enumerated above.

Note:

Support for the#visibility-image feature does not imply support for the#image feature; however, without support for the latter, support forthe former serves no purpose.

E.1.244 #visibility-inline

A TTML content processor supports the#visibility-inlinefeature if it supports the#visibility-inline feature as defined by[TTML1], §D.1.106.

E.1.245 #visibility-region

A TTML content processor supports the#visibility-regionfeature if it supports the#visibility-region feature as defined by[TTML1], §D.1.107.

E.1.246 #visibility-version-2

A TTML content processor supports the#visibility-version-2 feature if itsupports the following features:

The#visibility-version-2 feature is a syntactic and semantic extension of the#visibility feature.

It is an error for a content profile to require or permit use of the#visibility-version-2 featurebut prohibit use of any of the following features:#visibility or#visibility-image.

E.1.247 #wrapOption

A TTML content processor supports the#wrapOptionfeature if it supports the#wrapOption feature as defined by[TTML1], §D.1.108.

E.1.248 #writingMode

A TTML content processor supports the#writingModefeature if it supports the#writingMode feature as defined by[TTML1], §D.1.109.

Note:

Support for the#writingMode feature is functionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#writingMode featurebut prohibit use of any of the following features:#writingMode-horizontal or#writingMode-vertical.

E.1.249 #writingMode-horizontal

A TTML content processor supports the#writingMode-horizontalfeature if it supports the#writingMode-horizontal feature as defined by[TTML1], §D.1.111.

Note:

Support for the#writingMode-horizontal feature isfunctionally equivalent to support for the following features:

It is an error for a content profile to require or permit use of the#writingMode-horizontal featurebut prohibit use of any of the following features:#writingMode-horizontal-lr or#writingMode-horizontal-rl.

E.1.250 #writingMode-horizontal-lr

A TTML content processor supports the#writingMode-horizontal-lrfeature if it supports the#writingMode-horizontal-lr feature as defined by[TTML1], §D.1.112.

E.1.251 #writingMode-horizontal-rl

A TTML content processor supports the#writingMode-horizontal-rlfeature if it supports the#writingMode-horizontal-rl feature as defined by[TTML1], §D.1.113.

E.1.252 #writingMode-vertical

A TTML content processor supports the#writingMode-verticalfeature if it supports the#writingMode-vertical feature as defined by[TTML1], §D.1.110.

E.1.253 #xlink

A TTMLtransformation processor supports the#xlinkfeature if it recognizes and is capable of transforming the following attributevocabulary defined by8.2 Content Attribute Vocabulary for use on supported element types that admit this vocabulary:

A TTMLpresentation processor supports the#xlinkfeature if it implements presentation semantic support for thesame vocabulary enumerated above.

E.1.254 #zIndex

A TTML content processor supports the#zIndexfeature if it supports the#zIndex feature as defined by[TTML1], §D.1.114.

E.2 Feature Support

The following table,Table E-1 – Feature Support,enumerates every defined feature designation (expressed without the TTFeature Namespace), and, for each designated feature, specifies(1) the version of TTML in which the feature designation is first defined, and (2)whether the designated feature must be implemented, i.e., is mandatory (M), or may be implemented, i.e.,is optional (O), for a TTMLcontent processor that complies with the requirements of3.2.2 Transformation Processor Conformance or3.2.3 Presentation Processor Conformance.

Note:

In some cases, a new feature designation is defined in this (or a later) version of this specification that wasn't previously defined, and yet the underlying functional feature so designated was previously defined by an earlier version. For example, the#padding-region designation is introduced here; however, the functionality it references was previously included under the designation#padding which is now defined in terms of#padding-region. Here, the underlying meaning of#padding, introduced in TTML1, and#padding-region, introduced in TTML2, remain identical.

Table E-1 – Feature Support
Feature DesignationVersionTransformationPresentation
#animate2OO
#animate-fill2OO
#animate-minimal2OO
#animate-paced2OO
#animate-spline2OO
#animate-repeat2OO
#animation1OO
#animation-out-of-line2OO
#animation-version-22OO
#audio2OO
#audio-description2OO
#audio-speech2OO
#background2OO
#background-image2OO
#backgroundClip2OO
#backgroundColor1OO
#backgroundColor-block1OO
#backgroundColor-inline1OO
#backgroundColor-region1OO
#backgroundExtent2OO
#backgroundImage2OO
#backgroundOrigin2OO
#backgroundPosition2OO
#backgroundRepeat2OO
#base2OO
#base-general2OO
#base-version-22OO
#bidi1OO
#bidi-version-22OO
#border2OO
#border-block2OO
#border-inline2OO
#border-radii2OO
#border-radii-12OO
#border-radii-22OO
#border-region2OO
#bpd2OO
#cellResolution1OO
#chunk2OO
#clockMode1OO
#clockMode-gps1OO
#clockMode-local1OO
#clockMode-utc1OO
#color1OO
#condition2OO
#condition-fn-media2OO
#condition-fn-parameter2OO
#condition-fn-supports2OO
#condition-primary2OO
#content1MM
#content-sizing2OO
#contentProfiles2MM
#contentProfiles-combined2OO
#core1MM
#data2OO
#direction1OO
#disparity2OO
#display1OO
#display-block1OO
#display-inline1OO
#display-inlineBlock2OO
#display-region1OO
#display-version-22OO
#displayAlign1OO
#displayAlign-block2OO
#displayAlign-justify2OO
#displayAlign-region2OO
#displayAlign-relative2OO
#displayAlign-version-22OO
#displayAspectRatio2OO
#dropMode1OO
#dropMode-dropNTSC1OO
#dropMode-dropPAL1OO
#dropMode-nonDrop1OO
#embedded-audio2OO
#embedded-content2OO
#embedded-data2OO
#embedded-font2OO
#embedded-image2OO
#extent1OO
#extent-auto2OO
#extent-auto-version-22OO
#extent-contain2OO
#extent-cover2OO
#extent-full-version-22OO
#extent-image2OO
#extent-length2OO
#extent-length-version-22OO
#extent-measure2OO
#extent-region1OO
#extent-region-version-22OO
#extent-root1OO
#extent-root-version-22OO
#extent-version-22OO
#font2OO
#fontFamily1OO
#fontFamily-generic1OO
#fontFamily-non-generic1OO
#fontKerning2OO
#fontSelectionStrategy2OO
#fontSelectionStrategy-character2OO
#fontShear2OO
#fontSize1OO
#fontSize-anamorphic1OO
#fontSize-isomorphic1OO
#fontStyle1OO
#fontStyle-italic1OO
#fontStyle-oblique1OO
#fontVariant2OO
#fontWeight1OO
#fontWeight-bold1OO
#frameRate1OO
#frameRateMultiplier1OO
#gain2OO
#image2OO
#image-png2OO
#initial2OO
#ipd2OO
#layout1OO
#length1OO
#length-cell1OO
#length-em1OO
#length-integer1OO
#length-negative1OO
#length-percentage1OO
#length-pixel1OO
#length-positive1OO
#length-real1OO
#length-root-container-relative2OO
#length-version-22OO
#letterSpacing2OO
#lineBreak-uax141OO
#lineHeight1OO
#lineShear2OO
#luminanceGain2OO
#markerMode1OO
#markerMode-continuous1OO
#markerMode-discontinuous1OO
#metadata1OO
#metadata-item2OO
#metadata-version-22OO
#nested-div1OO
#nested-span1OO
#opacity1OO
#opacity-block2OO
#opacity-inline2OO
#opacity-region2OO
#opacity-version-22OO
#origin1OO
#overflow1OO
#overflow-visible1OO
#padding1OO
#padding-11OO
#padding-21OO
#padding-31OO
#padding-41OO
#padding-block2OO
#padding-inline2OO
#padding-region2OO
#padding-version-22OO
#pan2OO
#permitFeatureNarrowing2OO
#permitFeatureWidening2OO
#pitch2OO
#pixelAspectRatio1OO
#position2OO
#presentation1OM
#presentation-version-22OM
#processorProfiles2MM
#processorProfiles-combined2OO
#profile1MM
#profile-full-version-22OO
#profile-nesting2OO
#profile-version-22MM
#region-implied-animation2OO
#region-inline2OO
#region-timing2OO
#resources2OO
#ruby2OO
#ruby-full2OO
#rubyAlign2OO
#rubyAlign-minimal2OO
#rubyAlign-withBase2OO
#rubyPosition2OO
#rubyReserve2OO
#set2OO
#set-fill2OO
#set-multiple-styles2OO
#set-repeat2OO
#shear2OO
#showBackground1OO
#source2OO
#speak2OO
#speech2OO
#structure1MM
#styling1OO
#styling-chained1OO
#styling-inheritance-content1OO
#styling-inheritance-region1OO
#styling-inline1OO
#styling-nested1OO
#styling-referential1OO
#subFrameRate1OO
#textAlign1OO
#textAlign-absolute1OO
#textAlign-justify2OO
#textAlign-relative1OO
#textAlign-version-22OO
#textCombine2OO
#textDecoration1OO
#textDecoration-over1OO
#textDecoration-through1OO
#textDecoration-under1OO
#textEmphasis2OO
#textEmphasis-color2OO
#textEmphasis-minimal2OO
#textEmphasis-quoted-string2OO
#textOrientation2OO
#textOutline1OO
#textOutline-blurred1OO
#textOutline-unblurred1OO
#textShadow2OO
#tickRate1OO
#timeBase-clock1OO
#timeBase-media1OO
#timeBase-smpte1OO
#timeContainer1OO
#time-clock1OO
#time-clock-with-frames1OO
#time-offset1MM
#time-offset-with-frames1OO
#time-offset-with-ticks1OO
#time-wall-clock2OO
#timing1MM
#transformation1MO
#transformation-version-22MO
#unicodeBidi1OO
#unicodeBidi-isolate2OO
#unicodeBidi-version-22OO
#validation2OO
#visibility1OO
#visibility-block1OO
#visibility-image2OO
#visibility-inline1OO
#visibility-region1OO
#visibility-version-22OO
#wrapOption1OO
#writingMode1OO
#writingMode-horizontal1OO
#writingMode-horizontal-lr1OO
#writingMode-horizontal-rl1OO
#writingMode-vertical1OO
#xlink2OO
#zIndex1OO

For the sake of convenience, the following table,Table E-2 – Mandatory Features - Transformation, enumerates allmandatory features for a TTMLcontent processor that complies with the requirements of3.2.2 Transformation Processor Conformance, providing additionalcomments to summarize the context of usage or the nature of the feature.Theprofile definition document that defines the correspondingTTML Transformation Profile is specified inG.3 TTML2 Transformation Profile.

Table E-2 – Mandatory Features - Transformation
Feature DesignationsComments
#contentbody,div,p,span,br
#contentProfiles
#corexml:id,xml:lang,xml:space
#processorProfiles
#profile
#profile-version-2
#structurett,head
#time-offset
#timingbegin,dur,end
#transformation
#transformation-version-2

For the sake of convenience, the following table,Table E-3 – Mandatory Features - Presentation, enumerates allmandatory features for a TTMLcontent processor that complies with the requirements of3.2.3 Presentation Processor Conformance, providing additionalcomments to summarize the context of usage or the nature of the feature.Theprofile definition document that defines the correspondingTTML Presentation Profile is specified inG.2 TTML2 Presentation Profile.

Table E-3 – Mandatory Features - Presentation
Feature DesignationsComments
#contentbody,div,p,span,br
#contentProfiles
#corexml:id,xml:lang,xml:space
#processorProfiles
#profile
#profile-version-2
#presentation
#presentation-version-2
#structurett,head
#time-offset
#timingbegin,dur,end

F 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.

F.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.

G Standard Profiles

This appendix is normative.

This appendix specifies or incorporates by reference the following standard TTML profiles:

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.

G.1 TTML2 Full Profile

The TTML2 Full Profile is intended to be used toexpress maximum compliance for both transformation and presentation processing.

Note:

This profile is a superset of theDFXP Full Profile.

<?xml version="1.0" encoding="utf-8"?><!-- this file defines the "ttml2-full" profile of ttml --><profile xmlns="http://www.w3.org/ns/ttml#parameter"  designator="http://www.w3.org/ns/ttml/profile/ttml2-full">  <features xml:base="http://www.w3.org/ns/ttml/feature/">    <!-- required (mandatory) feature support -->    <feature value="required" extends="#animate-minimal">#animate</feature>    <feature value="required">#animate-fill</feature>    <feature value="required">#animate-minimal</feature>    <feature value="required">#animate-paced</feature>    <feature value="required">#animate-spline</feature>    <feature value="required">#animate-repeat</feature>    <feature value="required">#animation</feature>    <feature value="required">#animation-out-of-line</feature>    <feature value="required" extends="#animation">#animation-version-2</feature>    <feature value="required">#audio</feature>    <feature value="required">#audio-description</feature>    <feature value="required">#audio-speech</feature>    <feature value="required">#background</feature>    <feature value="required">#background-image</feature>    <feature value="required">#backgroundClip</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">#backgroundExtent</feature>    <feature value="required">#backgroundImage</feature>    <feature value="required">#backgroundOrigin</feature>    <feature value="required">#backgroundPosition</feature>    <feature value="required">#backgroundRepeat</feature>    <feature value="required">#base</feature>    <feature value="required">#base-general</feature>    <feature value="required" extends="#base">#base-version-2</feature>    <feature value="required">#bidi</feature>    <feature value="required" extends="#bidi">#bidi-version-2</feature>    <feature value="required">#border</feature>    <feature value="required">#border-block</feature>    <feature value="required">#border-inline</feature>    <feature value="required">#border-radii</feature>    <feature value="required">#border-radii-1</feature>    <feature value="required">#border-radii-2</feature>    <feature value="required">#border-region</feature>    <feature value="required">#bpd</feature>    <feature value="required">#cellResolution</feature>    <feature value="required">#chunk</feature>    <feature value="required">#clockMode</feature>    <feature value="required">#clockMode-gps</feature>    <feature value="required">#clockMode-local</feature>    <feature value="required">#clockMode-utc</feature>    <feature value="required">#color</feature>    <feature value="required">#condition</feature>    <feature value="required">#condition-fn-media</feature>    <feature value="required">#condition-fn-parameter</feature>    <feature value="required">#condition-fn-supports</feature>    <feature value="required">#condition-primary</feature>    <feature value="required">#content</feature>    <feature value="required">#content-sizing</feature>    <feature value="required">#contentProfiles</feature>    <feature value="required" extends="#contentProfiles">#contentProfiles-combined</feature>    <feature value="required">#core</feature>    <feature value="required">#data</feature>    <feature value="required">#direction</feature>    <feature value="required">#disparity</feature>    <feature value="required">#display</feature>    <feature value="required">#display-block</feature>    <feature value="required">#display-inline</feature>    <feature value="required">#display-inlineBlock</feature>    <feature value="required">#display-region</feature>    <feature value="required" extends="#display">#display-version-2</feature>    <feature value="required">#displayAlign</feature>    <feature value="required">#displayAlign-block</feature>    <feature value="required">#displayAlign-justify</feature>    <feature value="required">#displayAlign-region</feature>    <feature value="required">#displayAlign-relative</feature>    <feature value="required" extends="#displayAlign">#displayAlign-version-2</feature>    <feature value="required">#displayAspectRatio</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">#embedded-audio</feature>    <feature value="required">#embedded-content</feature>    <feature value="required">#embedded-data</feature>    <feature value="required">#embedded-font</feature>    <feature value="required">#embedded-image</feature>    <feature value="required">#extent</feature>    <feature value="required">#extent-auto</feature>    <feature value="required" extends="#extent-auto">#extent-auto-version-2</feature>    <feature value="required">#extent-contain</feature>    <feature value="required">#extent-cover</feature>    <feature value="required" extends="#extent-version-2">#extent-full-version-2</feature>    <feature value="required">#extent-image</feature>    <feature value="required">#extent-length</feature>    <feature value="required" extends="#extent-length">#extent-length-version-2</feature>    <feature value="required">#extent-measure</feature>    <feature value="required">#extent-region</feature>    <feature value="required" extends="#extent-region">#extent-region-version-2</feature>    <feature value="required">#extent-root</feature>    <feature value="required" extends="#extent-root">#extent-root-version-2</feature>    <feature value="required" extends="#extent">#extent-version-2</feature>    <feature value="required">#font</feature>    <feature value="required">#fontFamily</feature>    <feature value="required">#fontFamily-generic</feature>    <feature value="required">#fontFamily-non-generic</feature>    <feature value="required">#fontKerning</feature>    <feature value="required">#fontSelectionStrategy</feature>    <feature value="required">#fontSelectionStrategy-character</feature>    <feature value="required">#fontShear</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">#fontVariant</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">#gain</feature>    <feature value="required">#image</feature>    <feature value="required">#image-png</feature>    <feature value="required">#initial</feature>    <feature value="required">#ipd</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">#length-root-container-relative</feature>    <feature value="required" extends="#length">#length-version-2</feature>    <feature value="required">#letterSpacing</feature>    <feature value="required">#lineBreak-uax14</feature>    <feature value="required">#lineHeight</feature>    <feature value="required">#lineShear</feature>    <feature value="required">#luminance</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">#metadata-item</feature>    <feature value="required" extends="#metadata">#metadata-version-2</feature>    <feature value="required">#nested-div</feature>    <feature value="required">#nested-span</feature>    <feature value="required">#opacity</feature>    <feature value="required">#opacity-block</feature>    <feature value="required">#opacity-inline</feature>    <feature value="required">#opacity-region</feature>    <feature value="required" extends="#opacity">#opacity-version-2</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">#padding-block</feature>    <feature value="required">#padding-inline</feature>    <feature value="required">#padding-region</feature>    <feature value="required" extends="#padding">#padding-version-2</feature>    <feature value="required">#pan</feature>    <feature value="required">#permitFeatureNarrowing</feature>    <feature value="required">#permitFeatureWidening</feature>    <feature value="required">#pitch</feature>    <feature value="required">#pixelAspectRatio</feature>    <feature value="required">#position</feature>    <feature value="required">#presentation</feature>    <feature value="required" extends="#presentation">#presentation-version-2</feature>    <feature value="required">#processorProfiles</feature>    <feature value="required" extends="#processorProfiles">#processorProfiles-combined</feature>    <feature value="required">#profile</feature>    <feature value="required" extends="#profile-version-2">#profile-full-version-2</feature>    <feature value="required">#profile-nesting</feature>    <feature value="required" extends="#profile">#profile-version-2</feature>    <feature value="required">#region-implied-animation</feature>    <feature value="required">#region-inline</feature>    <feature value="required">#region-timing</feature>    <feature value="required">#resources</feature>    <feature value="required">#ruby</feature>    <feature value="required">#ruby-full</feature>    <feature value="required">#rubyAlign</feature>    <feature value="required">#rubyAlign-minimal</feature>    <feature value="required">#rubyAlign-withBase</feature>    <feature value="required">#rubyPosition</feature>    <feature value="required">#rubyReserve</feature>    <feature value="required" extends="#animation">#set</feature>    <feature value="required">#set-fill</feature>    <feature value="required">#set-multiple-styles</feature>    <feature value="required">#set-repeat</feature>    <feature value="required">#shear</feature>    <feature value="required">#showBackground</feature>    <feature value="required">#source</feature>    <feature value="required">#speak</feature>    <feature value="required">#speech</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-justify</feature>    <feature value="required">#textAlign-relative</feature>    <feature value="required" extends="#textAlign">#textAlign-version-2</feature>    <feature value="required">#textCombine</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" extends="#textEmphasis-minimal">#textEmphasis</feature>    <feature value="required">#textEmphasis-color</feature>    <feature value="required">#textEmphasis-minimal</feature>    <feature value="required">#textEmphasis-quoted-string</feature>    <feature value="required">#textOrientation</feature>    <feature value="required">#textOutline</feature>    <feature value="required">#textOutline-blurred</feature>    <feature value="required">#textOutline-unblurred</feature>    <feature value="required">#textShadow</feature>    <feature value="required">#tickRate</feature>    <feature value="required">#time-clock-with-frames</feature>    <feature value="required">#time-clock</feature>    <feature value="required">#time-offset-with-frames</feature>    <feature value="required">#time-offset-with-ticks</feature>    <feature value="required">#time-offset</feature>    <feature value="required">#time-wall-clock</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" extends="#transformation">#transformation-version-2</feature>    <feature value="required">#unicodeBidi</feature>    <feature value="required">#unicodeBidi-isolate</feature>    <feature value="required" extends="#unicodeBidi">#unicodeBidi-version-2</feature>    <feature value="required">#validation</feature>    <feature value="required">#visibility</feature>    <feature value="required">#visibility-block</feature>    <feature value="required">#visibility-image</feature>    <feature value="required">#visibility-inline</feature>    <feature value="required">#visibility-region</feature>    <feature value="required" extends="#visibility">#visibility-version-2</feature>    <feature value="required">#wrapOption</feature>    <feature value="required">#writingMode</feature>    <feature value="required">#writingMode-horizontal-lr</feature>    <feature value="required">#writingMode-horizontal-rl</feature>    <feature value="required">#writingMode-horizontal</feature>    <feature value="required">#writingMode-vertical</feature>    <feature value="required">#xlink</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.2 TTML2 Presentation Profile

The TTML2 Presentation Profile is intended to be used toexpress minimum compliance for presentation processing.

Note:

This profile is a superset of theDFXP Presentation Profile.

<?xml version="1.0" encoding="utf-8"?><!-- this file defines the "ttml2-presentation" profile of ttml --><profile xmlns="http://www.w3.org/ns/ttml#parameter"  designator="http://www.w3.org/ns/ttml/profile/ttml2-presentation">  <features xml:base="http://www.w3.org/ns/ttml/feature/">    <!-- required (mandatory) feature support -->    <feature value="required">#content</feature>    <feature value="required">#contentProfiles</feature>    <feature value="required">#core</feature>    <feature value="required">#presentation</feature>    <feature value="required" extends="#presentation">#presentation-version-2</feature>    <feature value="required">#processorProfiles</feature>    <feature value="required">#profile</feature>    <feature value="required" extends="#profile">#profile-version-2</feature>    <feature value="required">#structure</feature>    <feature value="required">#time-offset</feature>    <feature value="required">#timing</feature>    <!-- optional (voluntary) feature support -->    <feature value="optional">#animate</feature>    <feature value="optional">#animate-fill</feature>    <feature value="optional">#animate-minimal</feature>    <feature value="optional">#animate-paced</feature>    <feature value="optional">#animate-spline</feature>    <feature value="optional">#animate-repeat</feature>    <feature value="optional">#animation</feature>    <feature value="optional">#animation-out-of-line</feature>    <feature value="optional" extends="#animation">#animation-version-2</feature>    <feature value="optional">#audio</feature>    <feature value="optional">#audio-description</feature>    <feature value="optional">#audio-speech</feature>    <feature value="optional">#background</feature>    <feature value="optional">#background-image</feature>    <feature value="optional">#backgroundClip</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">#backgroundExtent</feature>    <feature value="optional">#backgroundImage</feature>    <feature value="optional">#backgroundOrigin</feature>    <feature value="optional">#backgroundPosition</feature>    <feature value="optional">#backgroundRepeat</feature>    <feature value="optional">#base</feature>    <feature value="optional">#base-general</feature>    <feature value="optional" extends="#base">#base-version-2</feature>    <feature value="optional">#bidi</feature>    <feature value="optional" extends="#bidi">#bidi-version-2</feature>    <feature value="optional">#border</feature>    <feature value="optional">#border-block</feature>    <feature value="optional">#border-inline</feature>    <feature value="optional">#border-radii</feature>    <feature value="optional">#border-radii-1</feature>    <feature value="optional">#border-radii-2</feature>    <feature value="optional">#border-region</feature>    <feature value="optional">#bpd</feature>    <feature value="optional">#cellResolution</feature>    <feature value="optional">#chunk</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">#condition</feature>    <feature value="optional">#condition-fn-media</feature>    <feature value="optional">#condition-fn-parameter</feature>    <feature value="optional">#condition-fn-supports</feature>    <feature value="optional">#condition-primary</feature>    <feature value="optional">#content-sizing</feature>    <feature value="optional" extends="#contentProfiles">#contentProfiles-combined</feature>    <feature value="optional">#data</feature>    <feature value="optional">#direction</feature>    <feature value="optional">#disparity</feature>    <feature value="optional">#display</feature>    <feature value="optional">#display-block</feature>    <feature value="optional">#display-inline</feature>    <feature value="optional">#display-inlineBlock</feature>    <feature value="optional">#display-region</feature>    <feature value="optional" extends="#display">#display-version-2</feature>    <feature value="optional">#displayAlign</feature>    <feature value="optional">#displayAlign-block</feature>    <feature value="optional">#displayAlign-justify</feature>    <feature value="optional">#displayAlign-region</feature>    <feature value="optional">#displayAlign-relative</feature>    <feature value="optional" extends="#displayAlign">#displayAlign-version-2</feature>    <feature value="optional">#displayAspectRatio</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">#embedded-audio</feature>    <feature value="optional">#embedded-content</feature>    <feature value="optional">#embedded-data</feature>    <feature value="optional">#embedded-font</feature>    <feature value="optional">#embedded-image</feature>    <feature value="optional">#extent</feature>    <feature value="optional">#extent-auto</feature>    <feature value="optional" extends="#extent-auto">#extent-auto-version-2</feature>    <feature value="optional">#extent-contain</feature>    <feature value="optional">#extent-cover</feature>    <feature value="optional" extends="#extent-version-2">#extent-full-version-2</feature>    <feature value="optional">#extent-image</feature>    <feature value="optional">#extent-length</feature>    <feature value="optional" extends="#extent-length">#extent-length-version-2</feature>    <feature value="optional">#extent-measure</feature>    <feature value="optional">#extent-region</feature>    <feature value="optional" extends="#extent-region">#extent-region-version-2</feature>    <feature value="optional">#extent-root</feature>    <feature value="optional" extends="#extent-root">#extent-root-version-2</feature>    <feature value="optional" extends="#extent">#extent-version-2</feature>    <feature value="optional">#font</feature>    <feature value="optional">#fontFamily</feature>    <feature value="optional">#fontFamily-generic</feature>    <feature value="optional">#fontFamily-non-generic</feature>    <feature value="optional">#fontKerning</feature>    <feature value="optional">#fontSelectionStrategy</feature>    <feature value="optional">#fontSelectionStrategy-character</feature>    <feature value="optional">#fontShear</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">#fontVariant</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">#gain</feature>    <feature value="optional">#image</feature>    <feature value="optional">#image-png</feature>    <feature value="optional">#initial</feature>    <feature value="optional">#ipd</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">#length-root-container-relative</feature>    <feature value="optional" extends="#length">#length-version-2</feature>    <feature value="optional">#letterSpacing</feature>    <feature value="optional">#lineBreak-uax14</feature>    <feature value="optional">#lineHeight</feature>    <feature value="optional">#lineShear</feature>    <feature value="optional">#luminance</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">#metadata-item</feature>    <feature value="optional" extends="#metadata">#metadata-version-2</feature>    <feature value="optional">#nested-div</feature>    <feature value="optional">#nested-span</feature>    <feature value="optional">#opacity</feature>    <feature value="optional">#opacity-block</feature>    <feature value="optional">#opacity-inline</feature>    <feature value="optional">#opacity-region</feature>    <feature value="optional" extends="#opacity">#opacity-version-2</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">#padding-block</feature>    <feature value="optional">#padding-inline</feature>    <feature value="optional">#padding-region</feature>    <feature value="optional" extends="#padding">#padding-version-2</feature>    <feature value="optional">#pan</feature>    <feature value="optional">#permitFeatureNarrowing</feature>    <feature value="optional">#permitFeatureWidening</feature>    <feature value="optional">#pitch</feature>    <feature value="optional">#pixelAspectRatio</feature>    <feature value="optional">#position</feature>    <feature value="optional" extends="#processorProfiles">#processorProfiles-combined</feature>    <feature value="optional" extends="#profile-version-2">#profile-full-version-2</feature>    <feature value="optional">#profile-nesting</feature>    <feature value="optional">#region-implied-animation</feature>    <feature value="optional">#region-inline</feature>    <feature value="optional">#region-timing</feature>    <feature value="optional">#resources</feature>    <feature value="optional">#ruby</feature>    <feature value="optional">#ruby-full</feature>    <feature value="optional">#rubyAlign</feature>    <feature value="optional">#rubyAlign-minimal</feature>    <feature value="optional">#rubyAlign-withBase</feature>    <feature value="optional">#rubyPosition</feature>    <feature value="optional">#rubyReserve</feature>    <feature value="optional" extends="#animation">#set</feature>    <feature value="optional">#set-fill</feature>    <feature value="optional">#set-multiple-styles</feature>    <feature value="optional">#set-repeat</feature>    <feature value="optional">#shear</feature>    <feature value="optional">#showBackground</feature>    <feature value="optional">#source</feature>    <feature value="optional">#speak</feature>    <feature value="optional">#speech</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-justify</feature>    <feature value="optional">#textAlign-relative</feature>    <feature value="optional" extends="#textAlign">#textAlign-version-2</feature>    <feature value="optional">#textCombine</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" extends="#textEmphasis-minimal">#textEmphasis</feature>    <feature value="optional">#textEmphasis-color</feature>    <feature value="optional">#textEmphasis-minimal</feature>    <feature value="optional">#textEmphasis-quoted-string</feature>    <feature value="optional">#textOrientation</feature>    <feature value="optional">#textOutline</feature>    <feature value="optional">#textOutline-blurred</feature>    <feature value="optional">#textOutline-unblurred</feature>    <feature value="optional">#textShadow</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">#time-wall-clock</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" extends="#transformation">#transformation-version-2</feature>    <feature value="optional">#unicodeBidi</feature>    <feature value="optional">#unicodeBidi-isolate</feature>    <feature value="optional" extends="#unicodeBidi">#unicodeBidi-version-2</feature>    <feature value="optional">#validation</feature>    <feature value="optional">#visibility</feature>    <feature value="optional">#visibility-block</feature>    <feature value="optional">#visibility-image</feature>    <feature value="optional">#visibility-inline</feature>    <feature value="optional">#visibility-region</feature>    <feature value="optional" extends="#visibility">#visibility-version-2</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">#xlink</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>

G.3 TTML2 Transformation Profile

The TTML2 Transformation Profile is intended to be used toexpress minimum compliance for transformation processing.

Note:

This profile is a superset of theDFXP Transformation Profile.

<?xml version="1.0" encoding="utf-8"?><!-- this file defines the "ttml2-transformation" profile of ttml --><profile xmlns="http://www.w3.org/ns/ttml#parameter"  designator="http://www.w3.org/ns/ttml/profile/ttml2-transformation">  <features xml:base="http://www.w3.org/ns/ttml/feature/">    <!-- required (mandatory) feature support -->    <feature value="required">#content</feature>    <feature value="required">#contentProfiles</feature>    <feature value="required">#core</feature>    <feature value="required">#processorProfiles</feature>    <feature value="required">#profile</feature>    <feature value="required" extends="#profile">#profile-version-2</feature>    <feature value="required">#structure</feature>    <feature value="required">#time-offset</feature>    <feature value="required">#timing</feature>    <feature value="required">#transformation</feature>    <feature value="required" extends="#transformation">#transformation-version-2</feature>    <!-- optional (voluntary) feature support -->    <feature value="optional">#animate</feature>    <feature value="optional">#animate-fill</feature>    <feature value="optional">#animate-minimal</feature>    <feature value="optional">#animate-paced</feature>    <feature value="optional">#animate-spline</feature>    <feature value="optional">#animate-repeat</feature>    <feature value="optional">#animation</feature>    <feature value="optional">#animation-out-of-line</feature>    <feature value="optional" extends="#animation">#animation-version-2</feature>    <feature value="optional">#audio</feature>    <feature value="optional">#audio-description</feature>    <feature value="optional">#audio-speech</feature>    <feature value="optional">#background</feature>    <feature value="optional">#background-image</feature>    <feature value="optional">#backgroundClip</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">#backgroundExtent</feature>    <feature value="optional">#backgroundImage</feature>    <feature value="optional">#backgroundOrigin</feature>    <feature value="optional">#backgroundPosition</feature>    <feature value="optional">#backgroundRepeat</feature>    <feature value="optional">#base</feature>    <feature value="optional">#base-general</feature>    <feature value="optional" extends="#base">#base-version-2</feature>    <feature value="optional">#bidi</feature>    <feature value="optional" extends="#bidi">#bidi-version-2</feature>    <feature value="optional">#border</feature>    <feature value="optional">#border-block</feature>    <feature value="optional">#border-inline</feature>    <feature value="optional">#border-radii</feature>    <feature value="optional">#border-radii-1</feature>    <feature value="optional">#border-radii-2</feature>    <feature value="optional">#border-region</feature>    <feature value="optional">#bpd</feature>    <feature value="optional">#cellResolution</feature>    <feature value="optional">#chunk</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">#condition</feature>    <feature value="optional">#condition-fn-media</feature>    <feature value="optional">#condition-fn-parameter</feature>    <feature value="optional">#condition-fn-supports</feature>    <feature value="optional">#condition-primary</feature>    <feature value="optional">#content-sizing</feature>    <feature value="optional" extends="#contentProfiles">#contentProfiles-combined</feature>    <feature value="optional">#data</feature>    <feature value="optional">#direction</feature>    <feature value="optional">#disparity</feature>    <feature value="optional">#display</feature>    <feature value="optional">#display-block</feature>    <feature value="optional">#display-inline</feature>    <feature value="optional">#display-inlineBlock</feature>    <feature value="optional">#display-region</feature>    <feature value="optional" extends="#display">#display-version-2</feature>    <feature value="optional">#displayAlign</feature>    <feature value="optional">#displayAlign-block</feature>    <feature value="optional">#displayAlign-justify</feature>    <feature value="optional">#displayAlign-region</feature>    <feature value="optional">#displayAlign-relative</feature>    <feature value="optional" extends="#displayAlign">#displayAlign-version-2</feature>    <feature value="optional">#displayAspectRatio</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">#embedded-audio</feature>    <feature value="optional">#embedded-content</feature>    <feature value="optional">#embedded-data</feature>    <feature value="optional">#embedded-font</feature>    <feature value="optional">#embedded-image</feature>    <feature value="optional">#extent</feature>    <feature value="optional">#extent-auto</feature>    <feature value="optional" extends="#extent-auto">#extent-auto-version-2</feature>    <feature value="optional">#extent-contain</feature>    <feature value="optional">#extent-cover</feature>    <feature value="optional" extends="#extent-version-2">#extent-full-version-2</feature>    <feature value="optional">#extent-image</feature>    <feature value="optional">#extent-length</feature>    <feature value="optional" extends="#extent-length">#extent-length-version-2</feature>    <feature value="optional">#extent-measure</feature>    <feature value="optional">#extent-region</feature>    <feature value="optional" extends="#extent-region">#extent-region-version-2</feature>    <feature value="optional">#extent-root</feature>    <feature value="optional" extends="#extent-root">#extent-root-version-2</feature>    <feature value="optional" extends="#extent">#extent-version-2</feature>    <feature value="optional">#font</feature>    <feature value="optional">#fontFamily</feature>    <feature value="optional">#fontFamily-generic</feature>    <feature value="optional">#fontFamily-non-generic</feature>    <feature value="optional">#fontKerning</feature>    <feature value="optional">#fontSelectionStrategy</feature>    <feature value="optional">#fontSelectionStrategy-character</feature>    <feature value="optional">#fontShear</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">#fontVariant</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">#gain</feature>    <feature value="optional">#image</feature>    <feature value="optional">#image-png</feature>    <feature value="optional">#initial</feature>    <feature value="optional">#ipd</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">#length-root-container-relative</feature>    <feature value="optional" extends="#length">#length-version-2</feature>    <feature value="optional">#letterSpacing</feature>    <feature value="optional">#lineBreak-uax14</feature>    <feature value="optional">#lineHeight</feature>    <feature value="optional">#lineShear</feature>    <feature value="optional">#luminance</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">#metadata-item</feature>    <feature value="optional" extends="#metadata">#metadata-version-2</feature>    <feature value="optional">#nested-div</feature>    <feature value="optional">#nested-span</feature>    <feature value="optional">#opacity</feature>    <feature value="optional">#opacity-block</feature>    <feature value="optional">#opacity-inline</feature>    <feature value="optional">#opacity-region</feature>    <feature value="optional" extends="#opacity">#opacity-version-2</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">#padding-block</feature>    <feature value="optional">#padding-inline</feature>    <feature value="optional">#padding-region</feature>    <feature value="optional" extends="#padding">#padding-version-2</feature>    <feature value="optional">#pan</feature>    <feature value="optional">#permitFeatureNarrowing</feature>    <feature value="optional">#permitFeatureWidening</feature>    <feature value="optional">#pitch</feature>    <feature value="optional">#pixelAspectRatio</feature>    <feature value="optional">#position</feature>    <feature value="optional">#presentation</feature>    <feature value="optional" extends="#presentation">#presentation-version-2</feature>    <feature value="optional" extends="#processorProfiles">#processorProfiles-combined</feature>    <feature value="optional" extends="#profile-version-2">#profile-full-version-2</feature>    <feature value="optional">#profile-nesting</feature>    <feature value="optional">#region-implied-animation</feature>    <feature value="optional">#region-inline</feature>    <feature value="optional">#region-timing</feature>    <feature value="optional">#resources</feature>    <feature value="optional">#ruby</feature>    <feature value="optional">#ruby-full</feature>    <feature value="optional">#rubyAlign</feature>    <feature value="optional">#rubyAlign-minimal</feature>    <feature value="optional">#rubyAlign-withBase</feature>    <feature value="optional">#rubyPosition</feature>    <feature value="optional">#rubyReserve</feature>    <feature value="optional" extends="#animation">#set</feature>    <feature value="optional">#set-fill</feature>    <feature value="optional">#set-multiple-styles</feature>    <feature value="optional">#set-repeat</feature>    <feature value="optional">#shear</feature>    <feature value="optional">#showBackground</feature>    <feature value="optional">#source</feature>    <feature value="optional">#speak</feature>    <feature value="optional">#speech</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-justify</feature>    <feature value="optional">#textAlign-relative</feature>    <feature value="optional" extends="#textAlign">#textAlign-version-2</feature>    <feature value="optional">#textCombine</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" extends="#textEmphasis-minimal">#textEmphasis</feature>    <feature value="optional">#textEmphasis-color</feature>    <feature value="optional">#textEmphasis-minimal</feature>    <feature value="optional">#textEmphasis-quoted-string</feature>    <feature value="optional">#textOrientation</feature>    <feature value="optional">#textOutline</feature>    <feature value="optional">#textOutline-blurred</feature>    <feature value="optional">#textOutline-unblurred</feature>    <feature value="optional">#textShadow</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">#time-wall-clock</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">#unicodeBidi-isolate</feature>    <feature value="optional" extends="#unicodeBidi">#unicodeBidi-version-2</feature>    <feature value="optional">#validation</feature>    <feature value="optional">#visibility</feature>    <feature value="optional">#visibility-block</feature>    <feature value="optional">#visibility-image</feature>    <feature value="optional">#visibility-inline</feature>    <feature value="optional">#visibility-region</feature>    <feature value="optional" extends="#visibility">#visibility-version-2</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">#xlink</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>

G.4 DFXP Full Profile

The DFXP Full Profile is specified by[TTML1],Appendix F.3, DFXP Full Profile.

G.5 DFXP Presentation Profile

The DFXP Presentation Profile is specified by[TTML1],Appendix F.2, DFXP Presentation Profile.

G.6 DFXP Transformation Profile

The DFXP Transformation Profile is specified by[TTML1],Appendix F.1, DFXP Transformation Profile.

H Root Container Region Semantics

This appendix is normative.

This appendix specifies the semantics for determining essential characteristics of the root container region and its use, including:

H.1 Aspect Ratios

Three aspect ratios apply to theroot container region:

display aspect ratio (DAR)

Thedisplay aspect ratio of the root container corresponds with the aspect ratio of the root container in terms ofdisplay pixels intended to be presented on a hypothetical display device. Thisdisplay aspect ratio is specified explicitly by means of thettp:displayAspectRatio attribute on thett element or is inferred using other information as described below.

Note:

The actual, physical presentation of the pixels of the root container may be subject to numerous transformations in aspect ratio, sample resolution, and color space subsequent to defined TTML presentation processing. Such post-TTML processing is wholly out of scope of this specification.

storage aspect ratio (SAR)

Thestorage aspect ratio of the root container corresponds with the aspect ratio of the root container in terms oflogical pixels in thedocument coordinate space, where a bijective (injective and surjective) mapping associates eachlogical pixel with a uniquedisplay pixel. Thisstorage aspect ratio is specified explicitly by means of thetts:extent attribute on thett element or is inferred using other information as described below.

When thetts:extent attribute is specified on thett element, then

  1. if the value of thetts:extent attribute consists of two pixel-valued<length> expressions, the storage aspect ratio is considered to be specified and having a numeric value equal to thewidth of the extent divided by itsheight;

  2. otherwise (the computed value iscontain), the storage aspect ratio is considered to be unspecified and is inferred using other information described below.

Note:

On its own, alogical pixel has no intrinsic aspect ratio; however, when mapped to adisplay pixel, it assumes the fixed value defined by the pixel aspect ratio of the root container as specified below.

pixel aspect ratio (PAR)

Thepixel aspect ratio of the root container defines the aspect ratio of eachdisplay pixel of the root container, whereby eachlogical pixel in thedocument coordinate space takes on the fixed aspect ratio of an associateddisplay pixel such thatDAR = SAR × PAR. Thispixel aspect ratio is specified explicitly by means of thettp:pixelAspectRato attribute on thett element or is inferred using other information as described below.

The following sub-sections specify how these aspect ratios are resolved according to which (ratios) are specified in a document.

H.1.1 No Aspect Ratio

If none of the three aspect ratios is specified, then the three aspect ratios are determined according to the following ordered steps:

  1. if arelated media object exists and has a definedDAR,then the resolved value ofDAR is the display aspect ratio of therelated media object;otherwise, the value ofDAR is determined (arbitrarily) by thedocument processing context;

  2. the values ofSAR andPAR are then resolved according toH.1.2 One Aspect Ratio below.

H.1.2 One Aspect Ratio

If only one of the three aspect ratios is specified, then the resolved values of the other two aspect ratios are determined as follows:

  1. ifDAR is specified or was resolved byH.1.1 No Aspect Ratio above, then its resolved value is its specified or resolved value, and the values ofSAR andPAR are determined as follows:

    1. the resolved value ofSAR is the resolved value ofDAR;

    2. the resolved value ofPAR is1 (one).

  2. ifSAR is specified, then its resolved value is its specified value, and the values ofDAR andPAR are determined as follows:

    1. if arelated media object exists and has a definedDAR, then the resolved value ofDAR is the display aspect ratio of therelated media object and the value ofPAR is then resolved according toH.1.3 Two Aspect Ratios below;

    2. otherwise, the resolved value ofDAR is determined by thedocument processing context and the value ofPAR is then resolved according toH.1.3 Two Aspect Ratios below;

  3. ifPAR is specified, then its resolved value is its specified value, and the values ofDAR andSAR are determined as follows:

    1. if arelated media object exists and has a definedDAR, then the resolved value ofDAR is the display aspect ratio of therelated media object and the value ofSAR is then resolved according toH.1.3 Two Aspect Ratios below;

    2. otherwise, the resolved value ofSAR is determined by thedocument processing context and the value ofDAR is then resolved according toH.1.3 Two Aspect Ratios below.

H.1.3 Two Aspect Ratios

If two of the three aspect ratios are specified or previously resolved,then the resolved value of the third aspect ratio is determined using the equationDAR = SAR × PAR.

H.1.4 Three Aspect Ratios

If all three aspect ratios are specified and if their values satisfy the equationDAR = SAR × PAR,then they are considered the resolved aspect ratios. However, if the equation is not satisfied, then, when performingvalidation processing, an error should be reported (subject to validation processor configuration), and, when performingpresentation processing, the specifiedPAR value is ignored and the resolved value ofPAR isdetermined byH.1.3 Two Aspect Ratios above.

H.2 Resolution

The root container region is subdivided into a grid oflogical pixels with a fixed number of row pixelsand a fixed number of column pixels, where the number of column pixels signifies the resolution of the root container region on thehorizontal axis and the number of row pixels signifies the resolution of the root container region on thevertical axis, where the former is defined to be thewidth and the latter is definedto be theheight of the root container region, respectively, and where the collection of (these two) resolutions along bothaxes is referred to as thecollective resolutionorspatial extent of the root container region.

Note:

As noted above understorage aspect ratio (SAR),alogical pixel has no intrinsic aspect ratio, which is to say,alogical pixel has no defined shape, which, in turn, means it has no defined size.Only when alogical pixel is mapped toadisplay pixel does it take on a fixed shape and size.Nevertheless, it is often convenient to think of alogical pixel as being square and havinga measurable, absolute size; however, the reader is cautioned against reaching this premature (and possibly incorrect) conclusion.

If the value of thetts:extent attributeis specified on thett element and consists oftwo pixel-valued<length> expressions, then these two expressions denotethewidth andheight of the root container region, and,consequently, determine itscollective resolution;otherwise, thecollective resolution of the root container region is determined (arbitrarily)by thedocumentprocessing context in a manner that respects the resolved values ofSAR as determined byH.1 Aspect Ratios above.

Note:

In the case that thedocument processing context assigns an arbitraryresolution to theroot container region, then it may do so in any manner that is convenientto its internal processing constraints and thedocument instance being processed.For example, it may assign the same resolution that applies to the storage aspect ratio of arelated media object, or it may evaluate the precision of length expressions found in the documentin order to assign a logical resolution that preserves that same precision.

H.3 Coordinate Space

The coordinate space of the root container region, also known as thedocument coordinate space,is an unbounded, two-dimensional plane on which a closed set oflogical pixels are defined that take the form of a rectangleR such thatthe said pixels are interior to (inside of) the boundary ofR, and where the origin (position) of this coordinate space is coincident with the upper,left-hand corner ofR, and where positive pixels on the vertical axis extend downwards and positive pixels on the horizontal axisextend rightwards.Furthermore, thewidth andheight ofR is set to theresolved resolution of the root container region.Lastly, the aspect ratios that apply toR are established according to the resolved values ofDAR,SAR,andPAR as indicated above.

Unless ahigher level protocol applies,thedocument coordinate space is determined once and only once when processing agiven document instance.

I Time Expression Semantics

This appendix is normative.

This appendix specifies the semantics for interpreting time expressions indocument instances.

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 offsetsto be used when establishing thesynthetic document syncbase.

I.1 Clock Time Base

When operating with theclock time base, the following semantics apply for interpreting time expressions,as defined by<time-expression>, 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 either(1) the most immediate prior midnight relative to the reference clock basewhen the related<time-expression> takes an undated form,; or(2) the midnight of the specified date relative to the reference clock basewhen the related<time-expression> takes a dated form;

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 immediate 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 immediate 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 immediate prior UTC midnightand the UTC time at the beginning of epochE, expressed in seconds;

discontinuityOffset ∈ ℜ,−∞ < discontinuityOffset < ∞,discontinuityOffsetin seconds, and where the value ofdiscontinuityOffset is equal to the sum of leap seconds (and fractions thereof) that have beenadded (or subtracted) since the most immediate prior midnight in the reference clock base;

andepochOffset anddiscontinuityOffset are determined once and only once prior to the beginningof theroot temporal extent such that during the period between value determination and the beginningof theroot temporal extent there occurs no local midnight or reference clock base discontinuity.

Time value expressions, as denoted by a<time-expression>, are related toclock timeC as follows:

TTML Semantics – Time Expressions and Clock Time Relationship


If a<time-expression> form does not use the ticks (t) metric, then:

C = 3600 * hours + 60 * minutes + seconds

wherehours,minutes, andseconds components are extracted from time expressionif present, or zero if not present; furthermore, afraction component, if present, is added to thesecondscomponent to form areal-valued seconds component.

Otherwise, if a<time-expression> form 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.

I.2 Media Time Base

When operating with themedia time base, the following semantics apply for interpreting time expressions,as defined by<time-expression>, and their relationship to media time, document time, and local real time.

I.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 thedocument temporal coordinate space;

playRate ∈ ℜ,−∞ < playRate < ∞,playRate is unit-less, and where the value ofplayRate is determined by thedocument processing context, or the value1.0 if not so determined;

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 thedocument temporal coordinate space and the local real time at the beginning of epochE, expressed in seconds.

Note:

If the value ofplayRate is determined by thedocument processing context,i.e., it is not set to the default value of1.0, then that value may vary in real time over the course of documentpresentation, in which case values ofR for given values ofM are expected to be re-evaluated based on newvalues ofplayRate.

I.2.2 Relationship to Media Time

Time value expressions, as denoted by a<time-expression>, 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 theimmediately prior siblingtimed 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-timeexpression, then thefraction component, if present, is added to theseconds component to form a real-valuedsecondscomponent, 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 assume that the begin time of thedocument temporal coordinate space is related to thebegin time of arelated media object. If this assumption doesn't hold, then an additional offsetthat accounts for the difference may be introduced when computing media timeM.

I.2.3 Relationship to Document Time

This sub-section is non-normative.

Whenttp:timeBase="media" the computed document timesare used as the equivalent media times with no offset.

Note:

Any additional media time processingimposed by e.g. a wrapper format is out of scope of the TTMLspecification.

For example,[ISOBMFF TT] provides a mechanism for wrapping TTML documentsas samples in segmented and non-segmented files,[MPEG DASH] providesfurther segmentation semantics for fragmented delivery over HTTP andMPEG-2 TS.

The following document fragments are equivalent in timing:

Example Fragment – Media Timing 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 – Media Timing 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 mediatimes in the absence of other external information.
Media time

In this example, using the terminology of[SMIL 3.0], the implicit duration of thebodyelement is identical to its computed duration which is alsotheRoot TemporalExtent. However ifthedocument processingcontext specifies a range of applicable media times, those limitthe resolved begin and end times and thereforetheRoot TemporalExtent.

In the following example the processing context defines that themedia time range over which the document is active is from 1.5s to3.5s, and this defines the Root Temporal Extent since timed content ispresent at both of those times.

Timing diagram showing the mapping of document times to mediatimes when the media time range is constrained by the processingcontext.
Media time

The gray background indicates the periods whenthedocument processingcontext defines the document to be inactive. Thedocument temporal coordinate spaceis unaffected by this transformation.

If the document processing context were to define that the mediatime range is 0-3s thentheRoot Temporal Extentwould be from 1s to 2s as defined by p1 and p2 would never beshown.

I.3 SMPTE Time Base

When operating with thesmpte time base, the following semantics apply for interpreting time expressions,as defined by<time-expression>, 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 contextwhensmpte time codesare 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; furthermore, if the time expression takes the form of aclock-timeexpression, then thefraction component, if present, is added to theseconds component to form a real-valuedsecondscomponent, 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;

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 to7.2.4 ttp:dropMode, then that time expressionmust be considered to be invalid for purposes of validation assessment.

Note:

See<time-expression> regarding the deprecation of both theoffset-time form and thefraction component of time expressions when thesmpte time base applies.

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 theimmediately prior siblingtimed element;

Given the derived media time base as described above, thenmedia time baseM is related to the local real timeRas described inI.2 Media Time Base above.

J Intermediate Document Syntax

This appendix is normative.

This appendix specifies the syntactic elements and structure of atimed text intermediate document.An ISD instance may be represented as a standalone document instance orin a collection represented as an ISD Sequence instance.

All ISD related vocabulary is defined in the TTML ISD Namespace, defined here ashttp://www.w3.org/ns/ttml#isd,where the recommended prefix isisd.

Note:

In addition to using elements from the TTML ISD Namespace, an ISD document instance will typically contain vocabulary from one or moreof the other TTML namespaces defined in5.1 Namespaces.

A TTMLIntermediate Synchronic Document, in short, anISD orISD instance,represents a discrete, temporally non-overlapping interval, anISD interval,of a source TTML document where, except for non-discrete animation, all content, styling, and layout information remains static within that interval.In particular, the timing hierarchy of a TTML document is flattened and then sub-divided into temporally non-overlapping intervals, where each suchinterval defines a static view of the source TTML document within that interval, and where that static view is represented as an ISD instance.A concrete, standalone instance of a TTMLIntermediate Synchronic Document must specify anisd:isd element as its root document element. When an instance of aIntermediate Synchronic Document is included in aIntermediate Synchronic Document Sequence instance, then the ISD instance is representedby anisd:isd child element of the rootisd:sequence element.

Note:

An ISD instance may contain one or more animate elements that denote continuous animation within the associated interval. Continuously animated styles are sub-divided acrossISD interval boundaries such that their step-wise concatenation expresses an equivalent continuous animation over any intersecting ISD interval(s).

A TTMLIntermediate Synchronic Document Sequence represents a collectionof temporally non-overlappingIntermediate Synchronic Document instances ordered accordingto their begin times. A concrete instance of a TTMLIntermediate Synchronic Document Sequence must specify anisd:sequence element as its root document element.

J.1 ISD Vocabulary

J.1.1 isd:sequence

Theisd:sequence element serves as the root document element of anIntermediateSynchronic Document Sequence document.

Theisd:sequence element accepts as its children zero or morettm:metadata elements,followed by zero or onettp:profile element,followed by zero or moreisd:isd elements.

Childrenisd:isd elements must be ordered in accordance to the media time equivalent of theirbegin time; furthermore, the temporal intervals of any two childisd:isd elements must not overlap (in time).

XML Representation – Element Information Item: isd:sequence
<isd:sequence  extent =xsd:string  size =xsd:nonNegativeInteger  version =xsd:positiveIntegerxml:base =<uri>xml:id = IDxml:lang =xsd:string  {any attributes in theISD Parameter Attribute Set}>Content:ttm:metadata*,ttp:profile?,isd:isd*</isd:sequence>

If theextent attribute is specified, then it must adhere to the subset of the<extent> valuesyntax that consists of two pixel-valued<length> expressions, in which case, the specified valueexpresses thespatial extent of the root container region as defined byH.2 Resolution,where thisspatial extent applies globally to each each constituentIntermediate Synchronic Document represented by a childisd:isd element.

If thesize attribute is specified, then it must be a non-negative integer corresponding to the number ofisd:isd child elements.If not specified, then the size must be considered to beindefinite, unless and until theisd:sequence element is terminated, in which case the sizemay be determined by inspection.

Note:

Thesize attribute would normally be omitted in the case of real time captioning.

If theversion attribute is specified, then it must be a positive integer corresponding to the version of thisIntermediate Synchronic Document Syntax specification used in authoringthe ISD sequence document. If specified, the numeric value must be greater than or equal to two (2). If not specified, then the version must beconsider to be equal to two (2). The version associated with thisIntermediate Synchronic Document Syntax specification is two (2).

Note:

The ISD abstraction referred to or implied by[TTML1] §9.3.2 was not concretely defined by that specification. Here we reserve version one (1)for informal discussion of that earlier abstraction and its various (non-standardized) realizations.

Anxml:lang attribute must be specified on theisd:sequence element.If its value is empty, it signifies that there is no default language that appliesto the content within theIntermediate Synchronic Document Sequence. Otherwise,the specified value denotes the default language that applies to each constituentIntermediate Synchronic Document.

One or more parameter properties may be specified from the restricted parameter attribute set enumerated inJ.2 ISD Parameter Attribute Set.If specified, then they apply globally to each constituentIntermediate Synchronic Document.

If a childttp:profile element is present,then thatttp:profile element must satisfy the following constraints:

  • nocombine attribute is specified;

  • nodesignator attribute is specified;

  • notype attribute is specified;

  • nouse attribute is specified;

  • no descendant element is attp:profile element;

  • no descendantttp:feature element specifies avalue attribute with the valueprohibited;

  • no descendantttp:extension element specifies avalue attribute with the valueprohibited.

Furthermore, such a childttp:profile element must specify a profile that is equivalent to the combinedprocessor profile of the source TTML document having fetched all externally referenced profile documents.

Note:

The intent of permitting a singlettp:profile to be specified in anisd:sequence is to provide a simplified mechanism to declareprocessor profile requirements that must be met in order to process the document (in the absence of an end-user override).

J.1.2 isd:isd

Theisd:isd element serves either as(1) the root document element of a standaloneIntermediate Synchronic Document or(2) as a child of anisd:sequence element of aIntermediate Synchronic Document Sequence document,where anisd:isd element is derived from and replaces a roottt elementretained in each intermediate synchronic document form,DOCinter , created by theconstruct intermediate document procedure.

Theisd:isd element accepts as its children zero or morettm:metadata elements,followed by zero or onettp:profile element,followed by zero or moreisd:css elements,followed by zero or moreisd:region elements.

XML Representation – Element Information Item: isd:isd

Abegin attribute must be specified, the value of which must take theoffset-time form ofa<time-expression>, and, further, is restricted to use a metric ofs (seconds),f (frames),t (ticks), or may omit the metric, in which cases seconds is implied. Thisbegin time is expressed as an offset from the begin time of thedocument temporal coordinate spaceof the source TTML document from which thisisd:isd element was derived.

Anend attribute must be similarly specified, where the same constraints apply.If the value of theend attribute takes the form of a<time-expression>,this end time is expressed as an offset from the begin time of thedocument temporal coordinate spaceof the source TTML document from which thisisd:isd element was derived;otherwise (the value isindefinite), the temporal extent is not known at the time this attribute is encodedor there is no temporal end point.

Note:

Expressed in the terminology of[SMIL 3.0], the values of thesebegin andend attributescorrespond to the resolved begin and end times of theactive duration with respect to thedocument begin.

If theextent attribute is specified, then it must adhere to the subset of the<extent> valuesyntax that consists of two pixel-valued<length> expressions, in which case, the specified valueexpresses thespatial extent of the root container region as defined byH.2 Resolution, where thisspatial extentapplies to theIntermediate Synchronic Documentrepresented by thisisd:isd element. Furthermore,if thisisd:isd element is contained in anIntermediate Synchronic Document Sequence document, thenif the containerisd:sequence element specifies anextent attribute, then thisisd:isd elementshould not specify anextent attribute, and, if specified, must be equal to the value of theextent attribute specified on the containerisd:sequence element.

Anxml:lang attribute must be specified on theisd:isd element if it is a standaloneIntermediateSynchronic Document document; otherwise, it may be specified, and should be specified if the default language of theisd:isd element differs from the default language of itsparentisd:sequence element.If its value is empty, it signifies that there is no default language that appliesto the content within theIntermediate Synchronic Document. Otherwise,the specified value denotes the default language that applies.

Theversion attribute follows the syntax and semantics of the same named attribute on theisd:sequence element type. Theversionattribute must not be specified on anisd:isd element that is nota root document element, i.e., is a child element of anisd:sequence element.

A childttp:profile element may be present if theisd:isd element is a standaloneIntermediateSynchronic Document document, in which case the same constraints and semantics apply as specified inJ.1.1 isd:sequence;otherwise, if not a standalone document, a childttp:profile element must not be present.

J.1.3 isd:css

Theisd:css element is used to represent a unique computed style set of some collection of elementsthat share the same set of computed styles. In particular, for eachelementE in the source TTML document which is selected and copied into aisd:region element of a givenIntermediate Synchronic Document, the computed styleset ofE,CSS(E), is determined, and, if thatCSS(E) is not already specifiedby an existingisd:css element, then it is assigned a unique identifier and instantiated as a newisd:css element.

Theisd:css element accepts as its children zero or morettm:metadata elements.

XML Representation – Element Information Item: isd:css
<isd:cssxml:base =<uri>xml:id = IDxml:lang =xsd:string  {any attributes inTT Style Namespaces}Content:ttm:metadata*</isd:css>

For each arbitrary pair ofisd:css child elements of anisd:isd element,S1 andS2, the set of specified styles ofS1 mustnot be the same as the set of specified styles ofS2. For the purpose of comparing twosets of specified styles, the styles must be placed into a canonical order and then compared itemby item for value equality, where the canonical order is in accordance to the qualified attribute nameorder, where each qualified name consists of a tuple<namespace URL, local name>,and such tuples are compared component-wise by case-sensitive lexical string order.

J.1.4 isd:region

Theisd:region element is used to represent a layout and presentation regionand the content selected into that region, where that content takes the form of abody element and its descendantcontent elements.

Theisd:region element accepts as its children zero or morettm:metadata elements,followed by zero or moreanimate elements,followed by exactly onebody element.

XML Representation – Element Information Item: isd:region

If the computed style set of the region represented by theisd:region element is not theset of initial style values that apply toregion, then astyle attribute must be specified which references anisd:css element that specifies theregion's computed style set.

The following constraints apply to thebody elementand its descendant elements:

  • noanimate attribute is specified;

  • nobegin attribute is specified;

  • nodur attribute is specified;

  • noend attribute is specified;

  • noregion attribute is specified;

  • notimeContainer attribute is specified;

  • no attribute in the TT Style Namespaces is specified;

  • noset element is present;

  • no significant text node, i.e., text node in a #PCDATA context, is not contained in aspan element that contains no other child.

In addition, for thebody elementB andeach of its descendantcontent elementsC, if the computed style set ofB or eachC isnot equal to the computed style set of its parent element, then that element,B orC, must specify astyleattribute that references anisd:css element that specifies theelement's computed style set.

J.2 ISD Parameter Attribute Set

The following subset of the definedParameter Attributesare available for use with anisd:sequence orisd:isd element as described above:

J.3 ISD Interchange

A concrete document instance that employs theIntermediate Synchronic Document Syntax must beencoded as a well-formed[XML 1.0] document using the UTF-8 character encoding. Furthermore, such a document must specifyanisd:sequence element oranisd:isd element as the root document element.

When a resource consisting of a concrete ISD Sequence or ISD instance is interchanged and a media type is used to identify the content typeof that resource, then the media typeapplication/ttml+xml should be used, about which see also[TTML1] Appendix C.If this media type is used, the optionalprofile parameter must not be specified, or, if specified, must be ignored by a processor.

K 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/.)
Data Encodings
S. Josefsson,The Base16, Base32, and Base64 Data Encodings,RFC 4648, October 2006, IETF. (Seehttp://www.rfc-editor.org/rfc/rfc4648.txt.)
GPS
GlobalPositioning System, US Air Force.(Seehttps://www.gps.gov/technical/.)
JLREQ
Richard Ishida et al.,Requirements for Japanese Text LayoutW3C Working Group Note, 3 April 2012.(Seehttp://www.w3.org/TR/2012/NOTE-jlreq-20120403/.)
Media Queries
Florian Rivoal,Media Queries, W3C Recommendation, 19 June 2012. (Seehttp://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/.)
MIME
Ned Freed and Nathaniel Borenstein,Multipurpose InternetMail Extensions (MIME) Part One: Format of Internet Message Bodies,RFC 2045, November 1996, IETF. (Seehttp://www.rfc-editor.org/rfc/rfc2045.txt.)
MIME 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.)
PNG
David Duce, Ed.,Portable Network Graphics (PNG) Specification (Second Edition),W3C Recommendation, 10 November 2003. (Seehttps://www.w3.org/TR/2003/REC-PNG-20031110/.)
RELAX NG
ISO/IEC 19757-2:2003,Information technology – DocumentSchema Definition Language (DSDL) – Part 2: Regular-grammar-based validation – RELAX NG,International Organization for Standardization (ISO).
Ruby
Masayasu Ishikawa et al.,Ruby AnnotationW3C Recommendation, 31 May 2001.(Seehttp://www.w3.org/TR/2001/REC-ruby-20010531/.)
SMIL 3.0
Dick Bultermann, et al.,SynchronizedMultimedia Integration Language (SMIL 3.0),W3C Recommendation, 1 December 2008. (Seehttp://www.w3.org/TR/2008/REC-SMIL3-20081201/.)
SMPTE ST 12-1
SMPTE ST 12-1:2014,Time and Control Code, SMPTE Standard.
SRGB
IEC 61966-2-1:1999/AMD1:2003,Multimediasystems and equipment – Colour measurement and management– Part 2-1: Colour management – Default RGB colour space– sRGB, International ElectrotechnicalCommission (IEC).
SVG 1.1
Erik Dahlström et al., Eds.,ScalableVector Graphics (SVG) 1.1 Second Edition, W3C Recommendation, 16August 2011. (Seehttp://www.w3.org/TR/2011/REC-SVG11-20110816/.)
TTML1
Glenn Adams and Pierre-Anthony Lemieux, Eds.,Timed Text Markup Language 1 (TTML1) (Third Edition),W3C Recommendation, 08 November 2018. (Seehttps://www.w3.org/TR/2018/REC-ttml1-20181108/.)
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.)
URI
T. Berner-Lee, R. Fielding, and L. Masinter,Uniform Resource Identifiers (URI): Generic Syntax,RFC 3986, January 2005, IETF. (Seehttp://www.rfc-editor.org/rfc/rfc3986.txt.)
UTC
Recommendation TF.460-6,Standard-Frequency and Time-SignalEmissions, InternationalTelecommunciations Union, Radio Sector (ITU-R).
UTR50
K. Ishii,Unicode Vertical Text Layout, Unicode Consortium, 23 November 2016. (Seehttp://www.unicode.org/reports/tr50/tr50-17.html.)
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/.)
XLink 1.1
Steve DeRose, et al.XML Linking Language (XLink) Version 1.1,W3C Recommendation, 06 May 2010. (Seehttp://www.w3.org/TR/2010/REC-xlink11-20100506/.)
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 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 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 Schema Part 1
Henry S. Thompson, David Beech,Murray Maloney, Noah Mendelsohn, Eds.,XML Schema Part 1: Structures,W3C Recommendation, 28 October 2004. (Seehttps://www.w3.org/TR/2004/REC-xmlschema-1-20041028/.)
XML Schema Part 2
Paul Biron and Ashok Malhotra,XML Schema Part 2: Datatypes,W3C Recommendation, 28 October 2004. (Seehttps://www.w3.org/TR/2004/REC-xmlschema-2-20041028/.)
XSL-FO 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/.)

L 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.)
CLREQ
Bobby Tung et al.,Requirements for Chinese Text Layout,W3C Working Draft, 29 December 2017.(Seehttps://www.w3.org/TR/2017/WD-clreq-20171229/.)
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/.)
CSS Backgrounds and Borders
Bert Bos, Elika Etamad and Brad Kemper,CSS Backgrounds and Borders Module Level 3,W3C Candidate Recommendation, 17 October 2017. (Seehttps://www.w3.org/TR/2017/CR-css-backgrounds-3-20171017/.)
CSS Box Model
Bert Bos, Anton Prowse,CSS3 Basic Box Model,W3C Working Draft, 09 August 2018. (Seehttps://www.w3.org/TR/2018/WD-css-box-3-20180809/.)
CSS Flex
Tab Atkins, Elika Etemad, and Rossen Atanassov,CSS Flexible Box Layout Module Level 1,W3C Candidate Recommendation, 19 October 2017. (Seehttps://www.w3.org/TR/2017/CR-css-flexbox-1-20171019/.)
CSS Fonts
John Daggett, Myles Maxfield, and Chris Lilley,CSS Fonts Module Level 3,W3C Recommendation, 20 September 2018. (Seehttps://www.w3.org/TR/2018/REC-css-fonts-3-20180920/.)
CSS Fragmentation
Rossen Atanassov and Elika Etemad,CSS Fragmentation Module Level 3,W3C Candidate Recommendation, 09 February 2017. (Seehttps://www.w3.org/TR/2017/CR-css-break-3-20170209/.)
CSS Ruby
Elika Etemad and Koji Ishii,CSS Ruby Layout Module Level 1,W3C Working Draft, 05 August 2014. (Seehttps://www.w3.org/TR/2014/WD-css-ruby-1-20140805/.)
CSS Text
Elika Etamad and Koji Ishii,CSS Text Module Level 3,W3C Working Draft, 20 September 2018. (Seehttps://www.w3.org/TR/2018/WD-css-text-3-20180920/.)
CSS Text Decoration
Elika Etamad and Koji Ishii,CSS Text Decoration Module Level 3,W3C Candidate Recommendation, 03 July 2018. (Seehttps://www.w3.org/TR/2018/CR-css-text-decor-3-20180703/.)
CSS Transforms
Simon Fraser, Dean Jackson, Theresa O'Connor, and Dirk Schulze,CSS Transforms Module Level 1,W3C Working Draft, 30 November 2017. (Seehttps://www.w3.org/TR/2017/WD-css-transforms-1-20171130/.)
CSS Writing Modes
Elika Etamad and Koji Ishii,CSS Writing Modes Level 3,W3C Candidate Recommendation, 24 May 2018. (Seehttps://www.w3.org/TR/2018/CR-css-writing-modes-3-20180524/.)
CTA-608-E
EIA/CTA-608-E,Line 21 DataServices, EIA/CTA Standard,Consumer Technology Association (CTA).
CTA-708-E
CTA-708-D,Digital Television (DTV) Closed Captioning, CTA Standard,Consumer Technology Association (CTA).
Data Scheme
L. Masinter,The "data" URL Scheme,RFC 2397, August 1998, IETF. (Seehttp://www.rfc-editor.org/rfc/rfc2397.txt.)
DCMES 1.1
Dublin Core Metadata Initiative,Dublin Core Metadata Element Set, Version 1.1: Reference Description. (Seehttp://dublincore.org/documents/dces/.)
EBU-TT-D
EBU Tech 3380,EBU-TT-D Subtitling Distribution Format, Version 1.0,European Broadcasting Union (EBU), March 2015.(Seehttps://tech.ebu.ch/publications/tech3380.)
EBU-TT-Live
EBU Tech 3370,EBU-TT Part 3 Live Subtitling Applications, Version 1.0, European Broadcasting Union (EBU), May 2017.(Seehttps://tech.ebu.ch/publications/tech3370.)
DVBSS
ETSI EN 300 743,Digital Video Broadcasting (DVB); Subtitling systems, Version 1.5.1, ETSI, January 2014.(Seehttps://www.etsi.org/deliver/etsi_en/300700_300799/300743/01.05.01_60/en_300743v010501p.pdf.)
HTML 5.2
Steve Faulkner, Arron Eicholz, Travis Leithead, Alex Danilo, and Sangwhan Moon, Eds.,HTML 5.2,W3C Recommendation, 14 December 2017. (Seehttps://www.w3.org/TR/html52/.)
ISOBMFF TT
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).
ITU BT.2100-1
Recommendation ITU-R BT.2100-1,Image parameter values for high dynamic range television for use in production and international programme exchange
MPEG DASH
ISO/IEC 23009-1,Information technology – Dynamic adaptive streaming over HTTP (DASH),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).
NSOriginal
Tim Bray, et al.Namespacesin XML, W3C Recommendation, 14 January 1999. (Seehttp://www.w3.org/TR/1999/REC-xml-names-19990114/.)
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.)
OFF
ISO/IEC 14496-22,Information technology – Coding of audio-visual objects – Part 22: Open Font Format,International Organization for Standardization (ISO).

Note:

For a publicly available, free of charge version of this specification, seehttp://standards.iso.org/ittf/PubliclyAvailableStandards/c066391_ISO_IEC_14496-22_2015.zip. For the Microsoft version of the related OpenType Specification, seehttps://docs.microsoft.com/en-us/typography/opentype/spec/.OpenType is a registered trademark of Microsoft Corporation.

PQ PNG
Pierre-Anthony Lemieux,Using the ITU BT.2100 PQ EOTF with the PNG Format,W3C Working Group Note, 11 September 2017. (Seehttps://www.w3.org/TR/png-hdr-pq/.)
QAF SG
Karl Dubost, et al.,QAFramework: Specifications Guidelines, W3C Recommendation, 17August 2005. (Seehttp://www.w3.org/TR/qaframe-spec/.)
SDP US
Glenn Adams, Monica Martin, Sean Hayes,TTML Simple Delivery Profile for Closed Captions (US),W3C WG Note, 5 February 2013. (Seehttp://www.w3.org/TR/2013/NOTE-ttml10-sdp-us-20130205/.)
SMITH
Smith, Michael D.; Malia, Jason,Controlling Miniaturization in Stereoscopic 3D Imagery, in Motion Imaging Journal, SMPTE , vol.124, no.3, pp.50-58, April 2015 doi: 10.5594/m001513.
SMPTE RP 2052-11:2013
SMPTE RP 2052-11:2013,Conversion from CTA-708 Caption Data to SMPTE-TT,SMPTE Recommended Practice.
SMPTE ST 170
SMPTE ST 170:2004,Television – Composite Analog VideoSignal – NTSC for Studio Applications, SMPTE Standard.
SMPTE ST 2052-1
SMPTE ST 2052-1:2013,Timed Text Format (SMPTE-TT),SMPTE Standard.
SSML 1.0
Daniel Burnett, et al.,Speech Synthesis Markup Language(SSML) Version 1.0,W3C Recommendation, 7 September 2004. (Seehttp://www.w3.org/TR/2004/REC-speech-synthesis-20040907/.)
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/.)
WEBAUDIO
Paul Adenot, Raymond Toy, Eds.,WebWeb Audio API, W3C Candidate Recommendation, 18 September 2018. (Seehttps://www.w3.org/TR/2018/CR-webaudio-20180918/.)
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/.)
XML Guidelines
Scott Hollenbeck, et al.,Guidelines for the use of Extensible Markup Language (XML)within IETF Protocols,RFC 3470, January 2003, IETF. (Seehttp://www.rfc-editor.org/rfc/rfc3470.txt.)
XYZ
ISO 11664-1:2007,Joint ISO/CIE Standard: Colorimetry Part 1. CIE Standard Colorimetric Observers,International Organization for Standardization (ISO).(Seehttps://www.iso.org/standard/52495.html.)
XPROC
Norman Walsh, Alex Milowski, Henry S. Thompson, Eds.,XProc: An XML Pipeline Language,W3C Recommendation, 11 May 2010.(Seehttps://www.w3.org/TR/xproc/.)
XSLT3
XSL Transformations (XSLT) Version 3.0,Michael Kay, Ed.,W3C Recommendation 8 June 2017.(Seehttps://www.w3.org/TR/xslt-30/.)

M 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 M-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 ContentSSeecondition
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
R216HyperlinkingSSeexlink
R217Embedded GraphicsPSeeimage and Note 1 below.
R218Non-Embedded GraphicsSSeeimage
R219Embedded FontsSSeefont
R220Non-Embedded FontsSSeefont
R221Descriptive VocabularySSeettm:agent,ttm:role
R222Embedded AudioSSeeaudio
R223Non-Embedded AudioSSeeaudio
R290Markup FormatS
R291Markup Format and Unicode InteractionS
R292Extrinsic Resource ReferencesSSeexlink
R293Schema Validity SpecificationS
R300Inline StylingS
R301Inline Styling FormPInline and referential styling
R302Out-of-Line StylingN
R303Out-of-Line Styling FormN
R304Styling PrioritizationS
R305Style Parameters – AuralPSeetta:gain,tta:pan,tta:pitchandtta:speak.
R306Style Parameters – VisualPSupportsabsolute position,background color,bidirectional treatment,block progression dimension,border (before, after, start, end),color,display none,display inline block,display alignment,font family,font size,font style,font weight,height,inline progression dimension,line height,line wrapping option,opacity,origin,overflow,padding (before, after, start, end),relative position,text alignment,text decoration,text shadow,visibility,white space collapse,white space treatment,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 ModesSSeeanimate,animation andset
R501Scroll AnimationN
R502Highlight AnimationS<set tts:backgroundColor="..."/>
R503Fade Transition AnimationS<animate tts:opacity="..."/>
R504Animated Style Parameters – AuralP<animate tta:pan="..."/>, also applied totta:gain,tta:pitchandtta:speak
R505Animated Style Parameters – VisualPSupports animatingbackground color,border 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 andttm:item
R604Metadata Item ValidationSSeemetadata
R690Dublin Core PreferenceNUsesttm:copyright,ttm:desc,ttm:title andgenericttm:item

Note:

  1. R217 includes a sub-requirement as pertains to the presence of original text; however, this specification does not place restrictionson authorial usage, so this sub-requirement has been ruled out of scope.

N Vocabulary Derivation (Non-Normative)

This appendix provides information about the derivation of TTMLvocabulary, separately describing derivation of elements andattributes.

N.1 Element Derivation

The first column ofTable N-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 N-1 – Elements
ElementModelReferenceDetailsNotes
tt:animatesvg:animate[SVG 1.1]-@* except begin, calcMode, dur, end, fill, keySplines, keyTimes, repeatCount; +style, +@tts:*, +@xml:id3,6
tt:animationtt:styling[TTML1]conceptual derivation4,12
tt:audioaudio[HTML 5.2]-@accesskey, -@autoplay, -@class, -@contenteditable, -@controls,-@crossorigin, -@dir, -@draggable, -@hidden, -@id, -@lang, -@loop,-@muted, -@preload, -@spellcheck, -@tabindex, -@title, -@translate;+@animate, +@begin, +@clipBegin, +@clipEnd, +@condition, +@dur, +@end,+@format, +@style, +@timeContainer, +@type, +@tta:*, +@tts:*, +@ttm:*,+@xml:id, +@xml:lang, +@xml:space2,3
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:chunknone[Data Scheme],[Data Encodings]conceptual derivation4
tt:datanone[Data Scheme],[Data Encodings]conceptual derivation4
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:fontnone
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:imageimg[HTML 5.2]-@accesskey, -@alt, -@class, -@contenteditable, -@crossorigin, -@dir,-@draggable, -@height, -@hidden, -@id, -@ismap, -@lang, -@longdesc-@referrerpolicy -@sizes, -@spellcheck, -@srcset, -@tabindex, -@title,-@translate; -@usemap, -@width; +@animate, +@begin, +@condition,+@dur, +@end, +@format, +@region, +@timeContainer, +@type, +@tta:*,+@tts:*, +@ttm:*, +@xlink:href, +@xlink:role, +@xlink:show,+@xlink:title, +@xml:id, +@xml:lang, +@xml:space2,3
tt:initialnone
tt:layoutfo:simple-page-master[XSL-FO 1.1]conceptual derivation4
tt:metadatasvg:metadata[SVG 1.1]+@ttm:*, +@xml:lang, +@xml:space; content modelis not mixed (no #PCDATA)3
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-FO 1.1]conceptual derivation4
tt:resourcessvg:defsconceptual derivation4
tt:setsvg:set[SVG 1.1]-@* except begin, dur, end; +@tts:*, +@xml:lang, +@xml:space3,6
tt:sourcesource[HTML 5.2]-@media, @srcset, @sizes; +@condition, @format, @xml:space3
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, -@style2,9
ttm:itemmeta[HTML 5.2]conceptual derivation4
ttm:namempeg7:Name[MPEG7-5]conceptual derivation4
ttm:titlesvg:title[SVG 1.1]-@class, -@style2,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. deleted

  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 on theelement types enumerated in10.2.1 style.

  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.

  12. Conceptually derived from existingtt:styling element,which is a generic container for styling specifications, but for usein defining animation specifications.

N.2 Attribute Derivation

The first column ofTable N-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 N-1 – Elementsabove.

Style attribute derivations are listed separately below.

Table N-2 – Attributes
AttributeModelReferenceDetailsNotes
beginbegin[SMIL 3.0]see notes1,2,3
durdur[SMIL 3.0]see notes1,2,3
endend[SMIL 3.0]see notes1,2,3
regionmaster-reference[XSL-FO 1.1]conceptual derivation
styleclass[CSS2]dereferences style specification(s) directly
timeContainertimeContainer[SMIL 3.0]-excl,-none;no default attribute value4
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 root container
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
xml:idxml:id[XML ID]complies with model
xml:langxml:lang[XML 1.0]complies with model
xml:spacexml:space[XML 1.0]see notes5

Note:

  1. 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.

  2. Syntactically subsets and supersets the[SMIL 3.0]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.

  3. 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.

  4. If not specified, then parallel (par) container semantics apply tothe element types specified by12.2.4 timeContainer.

  5. 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 by8.2.10 xml:space.

N.2.1 Style Attribute derivation

This section lists references from which each style attribute was derived orcan be considered an equivalent, with any differences relative to the referencedsource. It can be used as an informative reference for mapping TTML style attributes toequivalent CSS properties, and where available, to XSL properties. Other mappingsare possible, for example to[SVG 1.1].

The CSS equivalence assumes that eachIntermediate Synchronic Documentis mapped to an equivalent[HTML 5.2] DOM structure whose elements are given the stated style properties.

Note:

In TTML, style attribute names and values are normalized to uselowerCamelCase naming convention.

N.2.1.1tts:backgroundClip
Reference[CSS Backgrounds and Borders], §3.7
Modelbackground-clip
ValuesValues map directly.
NotesNone
N.2.1.2tts:backgroundColor
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.8.2[CSS2], §14.2.1
Modelbackground-colorbackground-color
Values-inheritValues map directly
NotesUses subset of named colors from model to which two aliases areadded as follows:magenta asfuchsia, andcyanasaqua.Uses subset of named colors from model to which two aliases areadded as follows:magenta asfuchsia, andcyanasaqua. The named colororange is not supported.
N.2.1.3tts:backgroundExtent
Reference[CSS Backgrounds and Borders], §3.9
Modelbackground-size
ValuesValues map directly
NotesNone
N.2.1.4tts:backgroundImage
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.8.3[CSS2], §14.2.1
Modelbackground-imagebackground-image
Values-inherit-inherit
NotesNoneNone
N.2.1.5tts:backgroundOrigin
Reference[CSS Backgrounds and Borders], §3.8
Modelbackground-origin
ValuesValues map directly
NotesNone
N.2.1.6tts:backgroundPosition
Reference[CSS2], §14.2
Modelbackground-position
ValuesValues map directly
NotesNone
N.2.1.7tts:backgroundRepeat
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.8.4[CSS2], §14.2.1
Modelbackground-repeatbackground-repeat
Values
  • -inherit,

  • repeatX maps torepeat-x,

  • repeatY maps torepeat-y,

  • noRepeat maps tono-repeat.

  • -inherit,

  • repeatX maps torepeat-x,

  • repeatY maps torepeat-y,

  • noRepeat maps tono-repeat.

NotesNoneNone
N.2.1.8tts:border
Reference[XSL-FO 1.1], §7.31.3, and[CSS Backgrounds and Borders], §4 and §5
Modelborder
Values-inherit
NotesNone
N.2.1.9tts:bpd
Referenceheight property defined by[XSL-FO 1.1],§7.15.6 and[CSS Box Model], §9
Modelinsert model
ValuesValues map directly
NotesNone
N.2.1.10tts:color
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.18.1[CSS2], §14.1
Modelcolorcolor
Values-inherit-inherit
NotesUses subset of named colors from model to which two aliases areadded as follows:magenta asfuchsia, andcyanasaqua.Uses subset of named colors from model to which two aliases areadded as follows:magenta asfuchsia, andcyanasaqua. The named colororange is not supported.
N.2.1.11tts:direction
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.29.1[CSS Writing Modes], §2.1
Modeldirectiondirection
Values-inherit.Special inheritance semantics apply.Special inheritance semantics apply.
NotesNone`None`
N.2.1.12tts:disparity

No derivation, i.e., introduced in this specification.

Note:

The computed value oftts:disparity is equivalent to half thedisparity shift value defined in[DVBSS].

N.2.1.13tts:display
Reference[CSS2], §9.2.4
Modeldisplay
Valuesonlyauto,none
NotesNone
N.2.1.14tts:displayAlign
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.14.4[CSS Flex], §8.2
Modeldisplay-alignjustify-content (see Notes below)
Values-inherit, +justify
  • before maps toflex-start

  • center maps tocenter

  • after maps toflex-end

  • justify maps tospace-between

NotesNoneCSS offers a variety of layouts; one such layout that provides equivalent semantics to thetts:displayAlign attribute is described here:
  • Use a flex layout, setting the main axis to vertical top to bottom:display: flex; flex-direction: column; position: absolute;

  • Maptts:displayAlign tojustify-content.

N.2.1.15tts:extent
Reference[XSL-FO 1.1], §7.15.6 and §7.15.14
Modelwidth,height
ValuesValues map directly
Notesshorthand property
N.2.1.16tts:fontFamily
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.9.2[CSS2], §15.3
Modelfont-familyfont-family
Values-inherit. Subsets and extends generic family names-inherit. Subsets and extends generic family names
NotesMay include white space around list delimiters as in CSS.None
N.2.1.17tts:fontKerning
Reference[CSS Fonts], §6.3
Modelfont-kerning
Values-auto
NotesNone
N.2.1.18tts:fontSelectionStrategy

Reference[XSL-FO 1.1], §7.9.3.
Modelfont-selection-strategy
Values-inherit,character maps tocharacter-by-character
Selection criteria is expanded.None.
N.2.1.19tts:fontShear
Reference[CSS Transforms], §9.1
ModelskewX() andskewY() 2D transform functions
Values
  • skewX() applies when the inline progression dimension is the X axis;

  • skewY() applies when the inline progression dimension is the Y axis;

  • Percentage values must be mapped to angles in degrees.

NotesSimilar transformation functions are available in[SVG 1.1]
N.2.1.20tts:fontSize
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.9.4.[CSS2], §15.7.
Modelfont-sizefont-size
Values-inherit, -<absolute-size>,-<relative-size>.-inherit, -<absolute-size>,-<relative-size>.
Notes
  • Special inheritance semantics apply.

  • 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;

  • The addition of a second length component to permit specifying fontwidth and height independently is an extension introduced by TTML.

  • Special inheritance semantics apply.

  • 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;

  • The addition of a second length component to permit specifying fontwidth and height independently is an extension introduced by TTML.

N.2.1.21tts:fontStyle
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.9.7[CSS2], §15.4
Modelfont-stylefont-style
Values-inherit, -backslant-inherit
NotesNoneNone
N.2.1.22tts:fontVariant
Reference[CSS Fonts], §6.11
Modelfont-variant-east-asian andfont-variant-position andfont-feature-settings
Values
  • font-variant-east-asian:Onlyfull-width,ruby

  • font-variant-position:normal,sub,super

  • font-feature-settings:Onlyhwid

NotesNone
N.2.1.23tts:fontWeight
Reference[XSL-FO 1.1], §7.9.9[CSS2], §15.6
Modelfont-weightfont-weight
Values-inherit, -bolder, -lighter, -<number>-inherit, -initial, -bolder,-lighter, -<number>, -unset
NotesNoneNone
N.2.1.24tts:ipd
ReferenceThewidth property defined by[XSL-FO 1.1],§7.15.14 and[CSS Box Model], §9
Modelinsert model
Valuesinsert values
Notesinsert notes
N.2.1.25tts:letterSpacing
Reference[CSS Text], §8.2
Modelletter-spacing
ValuesValues map directly
NotesNone
N.2.1.26tts:lineHeight

The line stacking semantic is intended to match the CSS line box stacking strategy.

XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.16.4[CSS2], §10.8
Modelline-heightline-height
Values-inherit, -<number>, -<space>-inherit, -<number>, -<space>,-calc, -initial, -unset
NotesIt is the intention of this specification that theallocation rectangle of a line be consistent with theper-inline-height-rectangleas defined by[XSL-FO 1.1], §4.5, i.e., that a CSS-style line box stacking strategy be used.None
N.2.1.27tts:luminanceGain

No derivation, i.e., introduced in this specification.

N.2.1.28tts:lineShear
Reference[CSS Transforms], §9.1
ModelskewX() andskewY() 2D transform functions
Values
  • skewX() applies when the inline progression dimension is the X axis;

  • skewY() applies when the inline progression dimension is the Y axis;

  • Percentage values must be mapped to angles in degrees.

NotesSimilar transformation functions are available in[SVG 1.1]
N.2.1.29tts:opacity
Reference[CSS3 Color], §3.2
Modelopacity
Values-inherit
NotesNone
N.2.1.30tts:origin
Reference[XSL-FO 1.1]
Modeltop,left
ValuesValues map directly
Notesshorthand property
N.2.1.31tts:overflow
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.21.2[CSS2], §11.1.1
Modeloverflowoverflow
Values-inherit, -auto, -error-if-overflow-inherit, -auto, -initial,-scroll, -unset
NotesNoneNone
N.2.1.32tts:padding
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.31.15[CSS2], §8.4
Modelpaddingpadding
Values-inherit. Individual shorthand values map towriting mode relative padding values as defined by[XSL-FO 1.1], §7.8.31,7.8.32, 7.8.33, and 7.8.34-calc, -inherit, -unset
NotesExpressed in terms of writing mode relative padding propertiesrather than absolute padding properties.TTML and XSL edge descriptors map to abstract flowrelative edge descriptors as defined by[CSS Writing Modes], §6.2:
  • before maps toblock-start

  • end maps toinline-end

  • after maps toblock-end

  • start maps toinline-start

Those abstract edge descriptors are in turn mapped to physical edges as defined in[CSS Writing Modes] §6.4.
N.2.1.33tts:position
Reference[CSS Backgrounds and Borders], §3.6
Modelbackground-position
ValuesValues map directly
NotesNone
N.2.1.34tts:ruby
Reference[Ruby] and[CSS Ruby].
Modelruby-*
ValuesSee notes and specification text.
NotesSee also[JLREQ], §3.3, for further information. May alternatively be mapped to[HTML 5.2] ruby markup.
N.2.1.35tts:rubyAlign
Reference[CSS Ruby], §4.3
Modelruby-align
Values+end, +withBase.The semantics of this style attribute are extended by this specification.
NotesThe examples and example renderings shown in the reference apply.
N.2.1.36tts:rubyPosition
Reference[CSS Ruby], §4.1
Modelinsert model
Valuesinsert values
NotesThe examples and example renderings shown in the reference apply modulo the mappingsdefined in this specification.
N.2.1.37tts:rubyReserve

No derivation, i.e., introduced in this specification.

N.2.1.38tts:shear
Reference[CSS Transforms], §9.1
ModelskewX() andskewY() 2D transform functions
Values
  • skewX() applies when the inline progression dimension is the X axis;

  • skewY() applies when the inline progression dimension is the Y axis;

  • Percentage values must be mapped to angles in degrees.

NotesSimilar transformation functions are available in[SVG 1.1]
N.2.1.39tts:showBackground
Reference[SMIL 3.0], §7.4.2
ModelshowBackground
Values-inherit
NotesNone
N.2.1.40tts:textAlign
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.16.9[CSS2], §16.2
Modeltext-aligntext-align
Values-inherit-inherit, +start, +end
Notestext-align-last must be set to "relative"TTML adds the writing mode dependent valuesstart andendwhich may be considered as abstract flow-relative directions and mapped to physical directionsaccording to[CSS Writing Modes] §6.4. Seetts:padding CSS derivation for furtherdetails.
N.2.1.41tts:textCombine
Reference[CSS Writing Modes], §9.1
Modeltext-combine-upright
ValuesValues map directly
NotesNone
N.2.1.42tts:textDecoration
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.17.4[CSS2], §16.3.1
Modeltext-decorationtext-decoration
Values-blink, -inherit (keyword), -no-blink-blink, -inherit (keyword),+noUnderline, +noLineThrough, +noOverline.lineThrough maps toline-through.
NotesDefined to be inheritable withSpecial inheritance semantics.Special inheritance semantics apply.The XSL semantic fordetermining the position of underlines applies.
N.2.1.43tts:textEmphasis
Reference[CSS Text Decoration], §3
Model
ValuesExcept forauto, values map directly. The semantics ofauto are writing mode dependent.
NotesNone
N.2.1.44tts:textOrientation
Reference[UTR50] and[CSS Writing Modes], §5.1
Modeltext-orientation
Values-inherit,-sideways-left,-sideways-right,-use-glyph-orientation
NotesNone
N.2.1.45tts:textOutline
Reference[XSL-FO 1.1]
Modeltext-shadow
Values-inherit (keyword), defined to be inheritable
NotesUses 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.
N.2.1.46tts:textShadow
Reference[CSS Text Decoration], §4
Modeltext-shadow
ValuesValues map directly
NotesNone
N.2.1.47tts:unicodeBidi
Reference[XSL-FO 1.1], §7.29.6 and[CSS Writing Modes], §2.2
Modelunicode-bidi
Values-inherit,+isolate
NotesAddsisolate from[CSS Writing Modes]
N.2.1.48tts:visibility
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.30.17[CSS2], §11.2
Modelvisibilityvisibility
Values-inherit, -collapse-inherit, -collapse
NotesNoneNone
N.2.1.49tts:wrapOption
Reference[XSL-FO 1.1], §7.16.13
Modelwrap-option
Values-inherit
NotesNone
N.2.1.50tts:writingMode
Reference[XSL-FO 1.1], §7.29.7
Modelwriting-mode
Values-inherit,-bt-lr,-bt-rl,-lr-bt,-rl-bt,-lr-alternating-rl-bt,-lr-alternating-rl-tb,-lr-inverting-rl-bt,-lr-inverting-rl-tb,-tb-lr-in-lr-pairs
NotesNone
N.2.1.51tts:zIndex
XSL derivationCSS derivation
Reference[XSL-FO 1.1], §7.30.18[CSS2], §9.9.1
Modelz-indexz-index
Values-inherit-inherit
NotesNoneNone

O QA Framework Compliance (Non-Normative)

This appendix specifies the compliance of this specification with therequirements and guidelines defined byQAFramework Specifications Guidelines,[QAF SG].

O.1 Requirements

Table O-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.YES
Requirement 13: Define how each class of product handles each deprecated feature.YES

O.2 Guidelines

Table O-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.YES
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 alsoN 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 obsoleted by this version of TTML.

P Security and Privacy Considerations (Non-Normative)

P.1 Use of XML as Concrete Encoding

When[XML 1.0] is used as the concrete encoding of atimed text document instance, the securityconsiderations specified by[XML Media Types] and[XML Guidelines] apply.

Note:

XML entities are not included in thereduced xml infosetof atimed text document instance; nevertheless,implementations are encouraged to provide protection against recursive entity expansion orprevent entity expansion altogether in a TTML processor.

P.2 Document Processing

Atimed text document instance is intended tobe processed in some manner by acontent processor.Although this specification defines the meaning of conformant processing of atimed text document instance by such a processor,the actual implementation of that processor is outside the scope of this specification.

P.3 Resource Fetching

This specification defines mechanism that allow atimed text document instanceto make reference to external resources, including audio, font, image, and untyped (generic) data resources.The fetching of such resources as well as fetching the concrete representation of atimed text document instanceis under full control of thecontent processor. As such,any controls designed to allow or restrict access to such resources are also outside the scope of this specification.

When fetching external resources, content processors should determine ifa potentially CORS-enabled request as defined in[HTML 5.2] is needed.

If the fetching of such resources is prevented by thecontent processor,then the entire document or portions of the document may not be processed as intended, and, therefore, some or all of a document'scontent may not be available for presentation processing.

A user agent that downloads external resources during media playback indicates to the origin server of the resource the progress of the user's media consumption. In many cases such media progress information is available to the origin server of the media via other mechanisms, for example by scripting or by monitoring streaming media requests.

User agents that do not enforce cross origin policies when downloading external resources expose such media progress information and potentially other user tracking information to other origins without the consent of the web site serving the media and without the consent of the user. This specification defines no APIs and makes no statement on how implementations are expected to obtain referenced resources.

P.4 Caching of Resources or Processing State

The processing of atimed text document instance defined hereindoes not specify or depend in any manner on thecontent processorcaching or storing any resource or processing state.

P.5 No Script Language

This specification does not include or make reference to the processing of any script language or executable code.

P.6 No External Style Sheets

This specification does not include or make reference to the processing of any external style sheet or style specification; rather,all style information is directly integrated into the TTML document syntax, and is processed in terms ofthereduced xml infoset respresentation of this syntax.

P.7 Access to Processing State

A mechanism is defined herein to allow the conditional processing of content where conditional expressionsmay take into account certain processing state, including a user language preference, a related media language,whether forced captions are enabled or not, and whether a media query expression is satisfied or not.However, direct access to this state is not provided to TTML content; rather thecontent processoraccesses this state and make a binary (yes or no) determination of whether a condition is satisfied or not.

P.8 Hyperlinking Mechanisms

A mechanism is defined herein, based on[XLink 1.1], that permits an author to associate content withexternal documents. Whether or not semantic support is provided for this mechanism by thecontent processor is a determination made outside the scope of this specification.Furthermore, the semantics of link activation, if supported, is similarly outside the scope of this specification.

P.9 Privacy of Preference

A user agent that selects and causes to download or interpret atimed text document instance might indicate to the origin server that the userhas a need for captions or subtitles, and, therefore, may indicate the language preference of the user for fetching captions or subtitles.This language preference constitutesinformation about the user. However, the offering of atimed text document instanceand the choice whether to retrieve and process it are characteristics of the application that makes the offer (e.g. a webapplication based on[HTML 5.2]), rather than of the Document Instance itself.

Q High Dynamic Range Compositing (Non-Normative)

This appendix illustrates how[SRGB] pixels can be composited onto high dynamic range (HDR) pixels.

Q.1 Perceptual Quantizer

The following illustrates the use oftts:luminanceGain to composite[SRGB] pixels onto HDR pixelsthat conform to the system colorimetry specified in[ITU BT.2100-1] using perceptual quantizer (PQ) EOTF and full-range quantization.

  1. Let(r, g, b) be a full-range 8-bit[SRGB] pixel with opacity between 0 and 1.

  2. Let(R, G, B) and(Rc, Gc, Bc) be full-range 10-bit pixels in the system colorimetry specified in[ITU BT.2100-1] using PQ EOTF and full-range quantization, with opacityA andAc between 0 and 1.

  3. Invert the 8-bit full-range quantization:

    (r, g, b) / 255 → (r, g, b)

  4. Linearize using the[SRGB] EOTF:

    (r2.4, g2.4, b2.4) → (r, g, b)

  5. Compute HDR absolute luminance using thetts:luminanceGain attribute and the[SRGB] illuminant:

    80 ∙tts:luminanceGain ∙ (r, g, b) → (r, g, b)

  6. Convert from[SRGB] color space to[ITU BT.2100-1] color space:

    [(0.62740389593470, 0.32928303837789, 0.04331306568741), (0.06909728935823, 0.91954039507545, 0.01136231556630), (0.01639143887515, 0.08801330787723, 0.89559525324763)] ∙ (r, g, b) → (r, g, b)

  7. Normalize to 10,000 cd∙m-2:

    (r, g, b) / 10000 → (r, g, b)

  8. Apply inverse PQ EOTF specified in[ITU BT.2100-1]:

    (PQ(r), PQ(g), PQ(b)) → (r, g, b)

    withPQ(L) = [(c1 + c2 ∙ Lm1) / (1 + c3 ∙ Lm1)]m2 andm1 = 0.1593017578125,m2 = 78.84375,c1 = 0.8359375,c2 = 18.8515625, andc3 = 18.6875.

  9. Apply opacity:

    (1-a) ∙ (r, g, b) → (r, g, b)

  10. Apply 10-bit full-range quantization:

    (Q(r), Q(g), Q(b)) → (r, g, b)

    whereQ(N) = floor(1023 ∙ N + 0.5)

  11. Apply composition to yield(Rc, Gc, Bc):

    (clamp(r + R), clamp(g + G), clamp(b + B)) → (Rc, Gc, Bc)

    1 + (1 - a) ∙ (A - 1) → Ac

    where

    clamp(x) = 0 forx < 0

    and

    clamp(x) = x for0 ≤ x ≤ 1023

    and

    clamp(x) = 1023 forx > 1023

Q.2 Hybrid Log-Gamma HDR

The following illustrates compositing of[SRGB] pixels onto Hybrid Log-Gamma (HLG) HDR pixels.

  1. Let(r, g, b) be a full-range 8-bit[SRGB] pixel with opacity of A between 0 and 255.

  2. Let(R,G,B) and(Rc,Gc,Bc) be narrow-range 10-bit pixels in the system colorimetry specified in[ITU BT.2100-1] using HLG EOTF and narrow-range quantization. Subscriptc denoting the video signal post-compositing.

  3. Let(X,Y,Z) be pixels in the system colorimetry specified in the CIE 1931 XYZ colour space[XYZ] .

  4. Invert the 8-bit full-range quantization:

    (r, g, b)/255 → (r, g, b)

    A/255 → A

  5. Linearize using the[SRGB] EOTF:

    (r2.0,g2.0,b2.0) → (r,g,b)

  6. Convert from[SRGB] color space to[ITU BT.2100-1] color space:

    [(0.4124, 0.3576, 0.1805),(0.2126, 0.7152, 0.0722), (0.0193,0.1192,0.9505)]•(r,g,b)→(X,Y,Z)

    [(1.7167, −0.3557, −0.2534),(−0.6667, 1.6165, 0.0158), (0.0176,−0.04277,0.9421)]•(X,Y,Z)→(r,g,b)

  7. Apply simplified inverse HLG OOTF:

    ((0.265r),(0.265g),(0.265b)) → (r,g,b)

  8. Apply HLG OETF specified in[ITU BT.2100-1]:

    (HLG(r),HLG(g),HLG(b)) → (r,g,b)

    where

    HLG(x) = (3x)0.5 for0 ≤ x ≤ 1/12

    and

    HLG(x) = a•ln(12x−b)+c forx > 1/12,

    anda = 0.17883277 andb = 1−4a andc = 0.5−a•ln(4a)

  9. Apply 10-bit narrow-range quantization:

    (Q(r),Q(g),Q(b)) → (r,g,b)

    whereQ(x) = floor((940 − 64) • x + 64.5)

  10. Composite foreground graphic (r,g,b) over background video(R,G,B) with opacityA to yield(Rc,Gc,Bc):

    ((A•r+(1−A)R),(A•g+(1−A)G),(A•b+(1−A)B)) → (Rc,Gc,Bc)

  11. Clamp output to 10-bit signal range:

    (clamp(Rc),clamp(Gc),clamp(Bc)) → (Rc,Gc,Bc)

    where

    clamp(x) = 0 forx < 0

    and

    clamp(x) = x for0 ≤ x ≤ 1023

    and

    clamp(x) = 1023 forx > 1023

Note:

The above algorithm does not use thetts:luminanceGain attribute since no absolute gain level is needed for HLG HDR. Rather,this algorithm maps peak[SRGB] white to "graphics white" in HLG which is defined as 75% of the narrow rangesignal defined in[ITU BT.2100-1].

Note:

The gamma index 2.0 is intentionally different from gamma 2.2 specified in[SRGB].The value 2.2 from that specification is specific to the viewing environment specified therein, and includesa psychovisual rendering adjustment for those conditions. This adjustment is not required for an HLG signal,which excludes display rendering.

R Streaming TTML Content (Non-Normative)

TTML Content can be authored to meet the following characteristics that may be useful instreaming scenarios:

R.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 2 – Fragment Streaming.

Figure 2 – Fragment Streaming
Fragment Streaming

Note:

This specification does not define a transport buffer model or a decodercapabilities model.

R.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 thedocumentinterchange context or by thedocument processing context or by both, such that temporal overlaps with other fragments areresolved.

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 anISD 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 TT] and in[EBU-TT-Live].

An example of such a fragmentation of adocument instance isshown inFigure 3 – Temporal Fragmentation.

Figure 3 – Temporal Fragmentation
Temporal Fragmentation

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.

R.3 ISD Streaming

It is possible to transform adocument instance intoa sequence oftimed textintermediate document instances and to stream them as discrete entities.

This technique minimises client processing requirements while requiring all relevant frontmatter to be duplicated in every ISD in which it applies. Reconstruction of the original source isnot guaranteed to result in an identical document instance.

S Common Caption Style Examples (Non-Normative)

This section provides examples of the following common caption styles using TTML Contentto obtain the desired behavior:

S.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>

S.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 apresentation 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>        <span begin="0s" end="8s">Lorem ipsum dolor sit</span>        <span begin="4s" end="12s"><br/>Amet consectetur adipiscing elit</span>        <span begin="8s" end="18s"><br/>Sed do eiusmod tempor incididunt labore</span>        <span begin="14s" end="25s"><br/>et dolore magna aliqua</span>        <span begin="18s" end="29s"><br/>Ut enim ad minim veniam quis, nostrud</span>      </p>    </div>  </body></tt>

S.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"/>    </layout>  </head>  <body>    <div begin="0s" end="25s">      <p>        <span begin="0s">Lorem</span>        <span begin="1s">ipsum</span>        <span begin="2s">dolor</span>        <span begin="3s">sit</span>      </p>      <p>        <span begin="4s">Amet</span>        <span begin="5s">consectetur</span>        <span begin="6s">adipiscing</span>        <span begin="7s">elit</span>      </p>      <p>        <span begin="8s">Sed</span>        <span begin="9s">do</span>        <span begin="10s">eiusmod</span>        <span begin="11s">tempor</span>        <span begin="12s">incididunt </span>        <span begin="13s">labore</span>     </p>     <p>        <span begin="14s">et</span>        <span begin="15s">dolore</span>        <span begin="16s">magna</span>        <span begin="17s">aliqua</span>      </p>      <p>        <span begin="18s">Ut</span>        <span begin="19s">enim</span>        <span begin="20s">ad</span>        <span begin="21s">minim</span>        <span begin="22s">veniam</span>        <span begin="23s">quis,</span>        <span begin="24s">nostrud</span>      </p>    </div>  </body></tt>

T Options for Presentation Customisation (Non-Normative)

This section provides a high level summary of the options available to document authors and toimplementers to customise the presentation of any given document instance.

Note that customisation in this context is the modification of specified presentationbehaviour. This section does not attempt to enumerate the ways in which unspecified presentationbehaviour can be implemented, such as font rasterisation algorithms.

T.1 Customisation Using Condition

Thecondition attribute allows the document authorto modify the intended presentation based oninput parameters known at authoring time. For example in a closed system there may be pre-definedenumerated values for atext-size parameter which can be used to modify the stylingthat applies to content. Or amedia functioncan be used to modify the position and extent of applicable regions based on a media query - see[Media Queries].

T.2 Customisation Using Pre-processor

It is possible to apply pre-processing techniques to modify a document instance prior topresentation, for example using[XSLT3] perhaps in the context of an[XPROC] pipeline, to modify the initial values of style attributes, or the rootelement style attributes that are inherited. Such pre-processing is out of scope of thisspecification, except insofar as that such a pre-processor is considered an instance of atransformation processor.

T.3 Customisation by Breaking Presentation Conformance

Whilst this specification attempts to definepresentation processor conformancerequirements to theextent that it is possible, this does not preclude any implementation from diverging deliberatelyfrom such conformance where it is deemed appropriate. For example a presentation processor mightidentify positional clashes between presented text and other visual indicators such as videoplayback controls, and resolve those by moving the affected TTML region temporarily. Or apresentation processor might offer the user options to reduce the presented font sizewhilst not introducing unexpected line breaks.

By definition, any such non-conformance is out of scope of this specification.

U Changes to Vocabulary from TTML1 (Non-Normative)

This section provides a high level summary of vocabulary changes between Timed Text Markup Language (TTML) Version 1 (TTML1)and Version 2 (TTML2). It is not the intent of this summary to be exhaustive. For more details about changes,seeTimed Text Markup Language 2 (TTML2) Change Summary.

U.1 New Element Vocabulary

New element vocabulary was added in the following sections of this specification as further described below:

U.1.1 Animation Vocabulary

The following elements were added in order to enhance support for animation functionality:

tt:animate

Support continuous animation within and across one or more temporally contiguous active time intervals.

tt:animation

Support grouping of out-of-line animation directives in header matter.

U.1.2 Embedded Content Vocabulary

The following elements were added in order to support embedded content and content references:

tt:audio

Support use of built-in, embedded, and external audio resources.

tt:chunk

Support use of chunking when embedding audio, data, font, and image resources,wherechunking refers to the subdivision of resource content into contiguous data segments (chunks).

tt:data

Support use of built-in, embedded, and external data resources.

tt:font

Support use of built-in, embedded, and external font resources.

tt:image

Support use of built-in, embedded, and external image resources.

tt:resources

Support grouping of sharable embedded content and content references in header matter.

tt:source

Support alternative sources of embedded content and content references.

U.1.3 Metadata Vocabulary

The following element was added in order to expand metadata functionality:

ttm:item

Support extensible collection of named metadata items.

Note:

This feature is motivated by the desire to avoid defining additional new vocabulary for metadata items that consist of a name and a value, where a generic, named metadata item element can serve future needs for defining an unbounded collection of such items.

U.1.4 Styling Vocabulary

The following element was added in order to expand styling functionality:

tt:initial

Support author specified initial values for style properties.

Note:

This feature is motivated by multiple requirements, including (1) that it is desirable to be able to specify a fixed, determinate value for certain initial values for inherited style properties that this specification defines as implementation dependent, e.g., the initial value oftts:color, and (2) that it is desirable to be able to override the initial value for certain non-inherited style properties rather than be forced to explicitly specify a style value in each case, e.g., an initial value fortts:showBackground ofwhenActive may be preferred instead of the default initial value ofalways.

U.2 New Attribute Vocabulary

New attribute vocabulary was added in the following sections of this specification as further described below:

U.2.1 Animation Attributes

The following attribute was added in order to expand animation functionality:

U.2.2 Content Attributes

The following attributes were added in order to expand content functionality:

U.2.3 Parameter Attributes

The following attributes were added in order to expand parameter functionality:

U.2.4 Profile Attributes

The following attributes were added in order to expand profiling functionality:

U.2.5 Styling Attributes

The following attributes were added in order to expand styling functionality:

U.2.6 Styling Attributes for Audio

The following attributes were added in order to expand audio styling functionality:

V Acknowledgments (Non-Normative)

The editors acknowledge 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:

Thomas Bause-Mason,John Birch,Kees Blom,Bert Bos,Brad Botkin,Dick Bulterman,Cyril Concolato,Frans de Jong,Mike Dolan,Martin Dürst,Donald Evans,Geoff Freed,Al Gilman,Giles Godart-Brown,Markus Gylling,Markku Hakkinen,Sean Hayes,Erik Hodge,Philipp Hoschka,Suzi Hyun,Richard Ishida,Michael Jordan,Masahiko Kaneko,Courtney Kennedy,George Kerscher,Dae Kim,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,Addison Phillips,Stefan Pöschel,Rohit Puri,Brian Raymor,David Ronca,Patrick Schmitz,David Singer,Craig Smithpeters,Andreas Tai,and Mohamed Zergaoui.

The editors wish to especially acknowledge the following contributionsby current and past members: Mike 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, HTML/CSS mapping proposal), Erik Hodge (timing),Thierry Michel (metadata), and Dave Singer (animation, scrolling).

The editors also wish to acknowledge the support of the following current and past sponsors of their workon this specification: Cox Communications, Microsoft, Netflix, and Samsung Electronics.

The Working Group dedicates this specification to our colleague David Kirby.


[8]ページ先頭

©2009-2025 Movatter.jp