W3C

Timed Text (TT) Authoring Format 1.0 – Distribution Format Exchange Profile (DFXP)

W3C Candidate Recommendation 16 November 2006

This version:
http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/
Latest version:
http://www.w3.org/TR/ttaf1-dfxp/
Previous version:
http://www.w3.org/TR/2006/WD-ttaf1-dfxp-20060427/
Editor:
Glenn Adams, Extensible Formatting Systems, Inc. (XFSI)
Contributing Authors:
Mike Dolan, Invited Expert
Geoff Freed, WGBH National Center for Accessible Media
Sean Hayes, Microsoft
Erik Hodge, RealNetworks
David Kirby, British Broadcasting Corporation (BBC)
Thierry Michel, W3C
Dave Singer, Apple Computer

Abstract

This document specifies the distribution format exchange profile (DFXP) of the timed text authoring format (TT AF) in terms of a vocabulary and semantics thereof.

The timed text authoring format is a content type that represents timed text media for the purpose of interchange among authoring systems. Timed text is textual information that is intrinsically or extrinsically associated with timing information.

The Distribution Format Exchange Profile is intended to be used for the purpose of transcoding or exchanging timed text information among legacy distribution content formats presently in use for subtitling and captioning functions.

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

Status of this Document

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

This is the 16 November 2006 Candidate Recommendation of the Timed Text (TT) Authoring Format 1.0 – Distribution Format Exchange Profile (DFXP). W3C publishes a Candidate Recommendation to indicate that the document is believed to be stable and to encourage implementation by the developer community. The Timed Text (TT) Working Group expects to request that the Director advance this document to Proposed Recommendation once the Working Group has, for each test in the DFXP 1.0 Test Suite, demonstrated support by two interoperable implementations. The Working Group, working closely with the developer community, expects to show these implementations by 16 February 2007. This estimate is based in part on the preliminary DFXP Interoperability Implementation Report. The Working Group does not plan to request to advance to Proposed Recommendation prior to 16 January 2007.

This is a W3C Candidate Recommendation. The second Last Call Working Draft for this specification resulted in a number of Last Call comments which have all been addressed by the working group; a list of all Last Call comments can be found in the Second Last Call Comments List. The list of changes made since the last public Working Draft is available in M.2 Changes from Second Last Call Working Draft to Candidate Recommendation.

During the first Last Call period of this specification, there were unsatisfied comments that the working group was unable to resolve in a manner that satisfied the commenter(s). The status of these comments has not changed during the second Last Call period, as the working group continues to stand by its original responses. See also the First Last Call Disposition of Comments for a complete discussion.

The dynamic flow processing feature, as specified by the tts:dynamicFlow styling attribute vocabulary, see also B Dynamic Flow Processing Model, has been determined to be at risk, and is expected to be given the greatest scrutiny in the implementation report.

Comments on this document should be sent to the email list public-tt@w3.org, which is the public mailing list of Timed Text Working Group (list archives). To subscribe, send an email to public-tt-request@w3.org with the word subscribe in the subject line.

This document has been produced by the Timed Text (TT) Working Group as part of the W3C Synchronized Multimedia Activity, following the procedures set out for the W3C Process. The authors of this document are listed in the header of this document.

This document is governed by the 24 January 2002 CPP as amended by the W3C Patent Policy Transition Procedure. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

Publication as a Candidate Recommendation does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

Table of Contents

1 Introduction
    1.1 System Model
    1.2 Document Example
2 Definitions
    2.1 Acronyms
    2.2 Terminology
    2.3 Documentation Conventions
3 Conformance
    3.1 Content Conformance
    3.2 Processor Conformance
    3.3 Claims
4 Document Types
    4.1 DFXP Content
5 Vocabulary
    5.1 Namespaces
    5.2 Profiles
    5.3 Catalog
        5.3.1 Core Catalog
        5.3.2 Extension Catalog
6 Parameters
    6.1 Element Vocabulary
    6.2 Attribute Vocabulary
        6.2.1 ttp:cellResolution
        6.2.2 ttp:clockMode
        6.2.3 ttp:frameRate
        6.2.4 ttp:frameRateMultiplier
        6.2.5 ttp:markerMode
        6.2.6 ttp:pixelAspectRatio
        6.2.7 ttp:profile
        6.2.8 ttp:smpteMode
        6.2.9 ttp:subFrameRate
        6.2.10 ttp:tickRate
        6.2.11 ttp:timeBase
7 Content
    7.1 Element Vocabulary
        7.1.1 tt
        7.1.2 head
        7.1.3 body
        7.1.4 div
        7.1.5 p
        7.1.6 span
        7.1.7 br
    7.2 Attribute Vocabulary
        7.2.1 xml:id
        7.2.2 xml:lang
        7.2.3 xml:space
8 Styling
    8.1 Element Vocabulary
        8.1.1 styling
        8.1.2 style
    8.2 Attribute Vocabulary
        8.2.1 style
        8.2.2 tts:backgroundColor
        8.2.3 tts:color
        8.2.4 tts:direction
        8.2.5 tts:display
        8.2.6 tts:displayAlign
        8.2.7 tts:dynamicFlow
        8.2.8 tts:extent
        8.2.9 tts:fontFamily
        8.2.10 tts:fontSize
        8.2.11 tts:fontStyle
        8.2.12 tts:fontWeight
        8.2.13 tts:lineHeight
        8.2.14 tts:opacity
        8.2.15 tts:origin
        8.2.16 tts:overflow
        8.2.17 tts:padding
        8.2.18 tts:showBackground
        8.2.19 tts:textAlign
        8.2.20 tts:textDecoration
        8.2.21 tts:textOutline
        8.2.22 tts:unicodeBidi
        8.2.23 tts:visibility
        8.2.24 tts:wrapOption
        8.2.25 tts:writingMode
        8.2.26 tts:zIndex
    8.3 Style Value Expressions
        8.3.1 <alpha>
        8.3.2 <color>
        8.3.3 <digit>
        8.3.4 <duration>
        8.3.5 <familyName>
        8.3.6 <genericFamilyName>
        8.3.7 <flowFunction>
        8.3.8 <flowIntervalFunction>
        8.3.9 <hexDigit>
        8.3.10 <integer>
        8.3.11 <length>
        8.3.12 <namedColor>
        8.3.13 <quotedString>
        8.3.14 <string>
    8.4 Style Association
        8.4.1 Inline Styling
        8.4.2 Referential Styling
        8.4.3 Chained Referential Styling
    8.5 Style Inheritance
        8.5.1 Content Style Inheritance
        8.5.2 Region Style Inheritance
9 Layout
    9.1 Element Vocabulary
        9.1.1 layout
        9.1.2 region
    9.2 Attribute Vocabulary
        9.2.1 region
    9.3 Region Layout and Presentation
        9.3.1 Synchronic Region Construction
        9.3.2 Synchronic Flow Processing
        9.3.3 Elaborated Example
    9.4 Line Layout
10 Timing
    10.1 Element Vocabulary
    10.2 Attribute Vocabulary
        10.2.1 begin
        10.2.2 end
        10.2.3 dur
        10.2.4 timeContainer
    10.3 Time Value Expressions
        10.3.1 <timeExpression>
    10.4 Time Intervals
11 Animation
    11.1 Element Vocabulary
        11.1.1 set
    11.2 Attribute Vocabulary
12 Metadata
    12.1 Element Vocabulary
        12.1.1 metadata
        12.1.2 ttm:title
        12.1.3 ttm:desc
        12.1.4 ttm:copyright
        12.1.5 ttm:agent
        12.1.6 ttm:name
        12.1.7 ttm:actor
    12.2 Attribute Vocabulary
        12.2.1 ttm:agent
        12.2.2 ttm:role

Appendices

A Reduced XML Infoset
    A.1 Document Information Item
    A.2 Element Information Item
    A.3 Attribute Information Item
    A.4 Character Information Item
B Dynamic Flow Processing Model
    B.1 Introduction
    B.2 Flow Buffer
    B.3 Flow Interval Timing Calculation
        B.3.1 Computed Fill Timing Interval
        B.3.2 Computed Clear Timing Interval
    B.4 Flow Operations
        B.4.1 Fill Operation
        B.4.2 Reflow Operation
        B.4.3 Clear Operation
    B.5 Flow Timers
        B.5.1 Fill Timer
        B.5.2 Clear Timer
C Schemas
    C.1 Relax NG Schema
        C.1.1 Driver
        C.1.2 Modules
            C.1.2.1 Animation Module
            C.1.2.2 Classes Module
            C.1.2.3 Content Module
            C.1.2.4 Core Attributes Module
            C.1.2.5 Data Types Module
            C.1.2.6 Document Module
            C.1.2.7 Header Module
            C.1.2.8 Layout Module
            C.1.2.9 Metadata Module
            C.1.2.10 Metadata Items Module
            C.1.2.11 Metadata Attributes Module
            C.1.2.12 Parameter Attributes Module
            C.1.2.13 Styling Attributes Module
            C.1.2.14 Styling Module
            C.1.2.15 Timing Attributes Module
    C.2 XML Schema Definition (XSD) Schema
        C.2.1 Driver
        C.2.2 Modules
            C.2.2.1 Animation Module
            C.2.2.2 Content Module
            C.2.2.3 Core Attributes Module
            C.2.2.4 Data Types Module
            C.2.2.5 Document Module
            C.2.2.6 Header Module
            C.2.2.7 Layout Module
            C.2.2.8 Metadata Module
            C.2.2.9 Metadata Items Module
            C.2.2.10 Metadata Attributes Module
            C.2.2.11 Parameter Attributes Module
            C.2.2.12 Styling Attributes Module
            C.2.2.13 Styling Module
            C.2.2.14 Timing Attributes Module
            C.2.2.15 XML Attributes Module
D Media Type Registration
E References
F Other References (Non-Normative)
G Sample Code (Non-Normative)
    G.1 Reduced XML Infoset (RXI) – RXI.SCM
    G.2 Abstract Document Instance (ADI) – ADI.SCM
    G.3 Time Interval Resolver (TIR) – TIR.SCM
    G.4 Flow Object Transformer (FOX) – FOX.SCM
    G.5 Dynamic Text Flow Processor (DTF) – DTF.SCM
    G.6 Sample Compile, Load, and Run Session
H Requirements (Non-Normative)
I Vocabulary Derivation (Non-Normative)
    I.1 Element Derivation
    I.2 Attribute Derivation
J QA Framework Compliance (Non-Normative)
    J.1 Requirements
    J.2 Guidelines
K Streaming DFXP Content (Non-Normative)
L Acknowledgments (Non-Normative)
M Change History (Non-Normative)
    M.1 Changes from First to Second Last Call Working Draft
    M.2 Changes from Second Last Call Working Draft to Candidate Recommendation


1 Introduction

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

The Timed Text Authoring Format (TT AF) Distribution Format Exchange Profile (DFXP) provides a standardized representation of a particular subset of textual information with which stylistic, layout, and timing semantics are associated by an author or an authoring system for the purpose of interchange and potential presentation.

DFXP is expressly designed to meet only a limited set of requirements established by [TTAF1-REQ], and summarized in H Requirements. In particular, only those requirements which service the need of performing interchange with existing, legacy distribution systems are satisfied.

In addition to being used for interchange among legacy distribution content formats, DFXP content may be used directly as a distribution format, providing, for example, a standard content format to reference from a <text> or <textstream> media object element in a [SMIL 2.1] document. Certain properties of DFXP support streamability of content, as described in K Streaming DFXP Content.

Note:

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

Note:

In some contexts of use, it may be appropriate to employ animated content to depict sign language representations of the same content as expressed by a Timed Text document instance. This use case is not explicitly addressed by DFXP mechanisms, but may be addressed by some external multimedia integration technology, such as SMIL.

1.1 System Model

Use of DFXP is intended to function in a wider context of Timed Text Authoring and Distribution mechanisms that are based upon a system model, depicted in Figure 1 – System Model, wherein the timed text authoring format serves as a bidirectional interchange format among a heterogeneous collection of authoring systems, and as a unidirectional interchange format to a heterogeneous collection of distribution formats after undergoing transcoding or compilation to the target distribution formats as required, and where one particular distribution format is DFXP.

Figure 1 – System Model
System Model

1.2 Document Example

A DFXP document instance consists of a tt document element that contains a header and a body, where the header specifies document level metadata, styling definitions and layout definitions, and the body specifies text content intermixed with references to style and layout information and inline timing information.

Example Fragment – DFXP Document Structure
<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1">
  <head>
    <metadata/>
    <styling/>
    <layout/>
  </head>
  <body/>
</tt>

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

Example Fragment – DFXP Metadata
<metadata xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
  <ttm:title>Timed Text DFXP Example</ttm:title>
  <ttm:copyright>The Authors (c) 2006</ttm:copyright>
</metadata>

Styling information may be specified in the form of style specification definitions that are referenced by layout and content information.

In Example Fragment – DFXP Styling, four style sets of specifications are defined, with one set serving as a collection of default styles.

Example Fragment – DFXP Styling
<styling xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
  <!-- s1 specifies default color, font, and text alignment -->
  <style xml:id="s1"
    tts:color="white"
    tts:fontFamily="proportionalSansSerif"
    tts:fontSize="22px"
    tts:textAlign="center"
  />
  <!-- alternative using yellow text but otherwise the same as style s1 -->
  <style xml:id="s2" style="s1" tts:color="yellow"/>
  <!-- a style based on s1 but justified to the right -->
  <style xml:id="s1Right" style="s1" tts:textAlign="end" />     
  <!-- a style based on s2 but justified to the left -->
  <style xml:id="s2Left" style="s2" tts:textAlign="start" />
</styling>

Layout information defines one or more regions into which content is intended to be presented. A region definition may reference one or more sets of style specifications in order to permit content flowed in the region to inherit from these styles. In Example Fragment – DFXP Layout, the region definition makes reference to style specification s1 which allows all content flowed into the region to inherit from the region's styles (in the case that a style is not already explicitly specified on content or inherited via the content hierarchy.)

Example Fragment – DFXP Layout
<layout xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
  <region xml:id="subtitleArea"
    style="s1"
    tts:extent="560px 62px"
    tts:padding="5px 3px"
    tts:backgroundColor="black"
    tts:displayAlign="after"
  />
</layout>  

The content of a DFXP document instance is expressed in its body, which is organized in terms of block and inline text elements. The hierarchical organization of content elements serves a primary role in determining both spatial and temporal relationships. For example, in Example Fragment – DFXP 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 its parent or sibling according to the applicable time containment semantics — in this case, the division parent is interpreted as a parallel time container.

Example Fragment – DFXP 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" style="s2">
      It is puzzling, why is it<br/>
      we do not see things upside-down?
    </p>
    <p xml:id="subtitle4" begin="17.2s" end="23.0s">
      You have never heard the Theory,<br/>
      then, that the Brain also is inverted?
    </p>
    <p xml:id="subtitle5" begin="23.0s" end="27.0s" style="s2">
      No indeed! What a beautiful fact!
    </p>
    <p xml:id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
      But how is it proved?
    </p>
    <p xml:id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
      Thus: what we call
    </p>
    <p xml:id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
      the vertex of the Brain<br/>
      is really its base
    </p>
    <p xml:id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
      and what we call its base<br/>
      is really its vertex,
    </p>
    <p xml:id="subtitle9a" begin="53.5s" end="58.7s">
      it is simply a question of nomenclature.
    </p>
    <p xml:id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
      How truly delightful!
    </p>
  </div>    
</body>

The first subtitle Subtitle 1 – Time Interval [0.76, 3.45) is presented during the time interval 0.76 to 3.45 seconds. In this example, the default metric for time expressions is seconds since no metric is specified in the expressions. This subtitle inherits its font family, font size, foreground color, and text alignment from the region into which it is presented. Since no region is explicitly specified on the paragraph, the nearest ancestor that specifies a region determines the region. Note also that content is presented at the bottom (after edge) of the containing region due to the tts:displayAlign="after" being specified on the region definition.

Note:

The notation "[X,Y]" denotes a closed interval from X to Y, including X and Y; "[X,Y)" denotes a right half-open interval from X to Y, including X but not including Y; "(X,Y]" denotes a left half-open interval from X to Y, not including X but including Y; "(X,Y)" denotes an open interval from X to Y, not including X or Y.

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

The second subtitle continues with the default style, except that it contains two lines of text with an intervening author-specified line break. Note the effects of the use of tts:textAlign="center" to specify the paragraph's alignment in 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's foreground 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 which overrides 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, with the paragraph expressing each subtitle using a different style that overrides color and paragraph text alignment of the default style. Note that the flow order is determined by the lexical order of elements as they appear in the content hierarchy.

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

The next subtitle is specified in a similar manner using a style override to give a paragraph right (end) justified in the inline progression direction.

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

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

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

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

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 may be authored using DFXP: metadata, styling, layout, timing, and content. In typical cases, styling and layout information are separately specified in a document instance. Content information is expressed in a hierarchical fashion that embodies the organization of both spatial (flow) and timing information. Content makes direct or indirect references to styling and layout information and may specify inline overrides to styling.

2 Definitions

2.1 Acronyms

DFXP

Distribution Format Exchange Profile

TT

Timed Text

TT AS

Timed Text Authoring System

TT AF

Timed Text Authoring Format

TT WG

Timed Text Working Group

2.2 Terminology

Abstract Document Instance

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

Abstract Document Type

A set of constraints that defines a class of XML Information Sets [XML InfoSet].

Attribute Information Item

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

Character Information Item

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

Content Region

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

Element Information Item

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

Exchange Profile

A profile (subset) of the TT AF that serves a set of needs for content exchange.

Region

A logical construct that models authorial intention regarding desired or potential presentation processing, and which is represented as a rectangular area of a presentation surface into which content is composed and rendered during presentation processing.

Reduced XML Infoset

An XML Information Set [XML InfoSet] that satisfieds the constraints specify by A Reduced XML Infoset.

Root Container Region

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

Timed Text

Textual information that is intrinsically or extrinsically associated with timing information.

Timed Text Authoring Format

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

Timed Text Authoring System

A content authoring system capable of importing and exporting timed text authoring format content.

2.3 Documentation Conventions

Within normative prose in this specification, the words may, should, and must are defined as follows:

may

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

should

Conforming documents and/or TT AF processors are strongly recommended to, but need not behave as described.

must

Conforming documents and/or TT AF processors are required to behave as described; otherwise, they are in error.

All normative syntactic definitions of XML representations and other related terms are depicted with a light orange background color and labeled as "XML Representation" or "Syntax Representation", such as in the following:

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

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

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

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

All paragraphs marked as a Note are considered non-normative.

Example code fragments are depicted with a light blue-green background color and labeled as "Example Fragment", such as in the following:

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

3 Conformance

This section specifies the general conformance requirements for TT AF content and processors.

3.1 Content Conformance

A TT AF document instance conforms to this specification if the following criteria are satisfied:

  1. When transporting a document instance in a context in which a MIME Media Type [MIME] identifies the content type of the interchanged document instance, then the specified media type is application/ttaf+xml in conformance with [XML Media Types] § 7, with which an optional profile parameter may appear, the value of which conforms to the values defined by 5.2 Profiles.

  2. The document instance is or can be represented as a Reduced XML Infoset as defined by A Reduced XML Infoset.

  3. The Reduced XML Infoset that corresponds to the document instance is or can be associated with one of the TT AF Abstract Document Types defined by 4 Document Types.

  4. The Reduced XML Infoset that corresponds to the document instance is a Valid Abstract Document Instance of the associated Abstract Document Type.

  5. The Reduced XML Infoset satisfies all additional mandatory syntactic and semantic constraints defined by this specification. In addition, this Infoset should satisfy the web content accessibility guidelines specified by [WCAG].

3.2 Processor Conformance

A TT AF processor conforms to this specification if the following criteria are satisfied:

  1. The processor provides at least one mechanism for notionally instantiating a Reduced XML Infoset representation of a conformant TT AF document instance.

  2. If a process does or can perform validation of a candidate TT AF document instance, then it provides at least one mechanism to implicitly or explicitly associate the Reduced XML Infoset representation of a conformant TT AF document instance with one of the TT AF Abstract Document Types defined by 4 Document Types.

  3. The processor does not a priori reject or abort the processing of a conformant TT AF document instance.

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

  5. If the processor claims to support presentation processing in order to produce a rendition of TT AF content on a visual medium, then it must implement the region and line layout semantics defined by 9.3 Region Layout and Presentation and 9.4 Line Layout, respectively. In addition, the processor should satisfy the user agent accessibility guidelines specified by [UAAG].

  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.

3.3 Claims

Any claim of compliance with respect to TT AF content or processor conformance must make reference to an implementation compliance statement (ICS).

An implementation compliance statement must identify all mandatory and optional features of this specification that are satisfied by the content or processor implementation. In particular, the statement must identify the utilized or supported TT AF vocabulary profile(s) as defined by 5.2 Profiles, and, if a subset or superset profile is used or supported, then what features are excluded or included in the subset or superset profile.

A TT AF document instance for which a compliance claim is made must specify a ttp:profile attribute on its root element as defined by 6.2.7 ttp:profile.

4 Document Types

This section defines the following TT AF Abstract Document Types:

Each abstract document type consists of the following constraints:

An Abstract Document Instance may be assessed in terms of validity, and is considered to be a Valid Abstract Document Instance if it satisfies the following condition: if after

  1. pruning all element information items whose names are not members of the collection of element types defined by the associated abstract document type, then

  2. pruning character information item children from any remaining element in case that all character children of the element denote XML whitespace characters and the element's type is defined as empty in the associated Abstract Document Type, and then

  3. pruning all attribute information items having expanded names such that the namespace URI of the expanded names are not listed in Table 1 – Namespaces,

then the document element is one of the document element types permitted by the associated abstract document type, the descendants of the document element satisfy their respective element type's content specifications, all required attributes are present, and the declared value of each attribute satisfies the type declared by the associated abstract document type.

Note:

While a conformant processor may not a priori reject a conformant document instance, a given document instance may be constrained by the author or authoring tool to satisfy a more restrictive definition of validity.

4.1 DFXP Content

DFXP Content is an abstract document type of the Timed Text Authoring Format intended to be used for interchange among distribution systems. This document type is defined in terms of the element and attribute vocabulary specified in 5 Vocabulary.

This specification defines two types of normative schemas that may be used to validate a subset of conformant DFXP document instances:

The (root) document element of a DFXP document instance must be a tt element, as defined by 7.1.1 tt.

5 Vocabulary

This section defines the namespaces, profiles, and vocabulary (as an element an attribute catalog) of the Timed Text Authoring Format (TT AF) as follows:

5.1 Namespaces

The Timed Text Authoring Format (TT AF) employs a number of namespaces for elements and certain global attributes. The following table specifies this set of namespaces and indicates the default prefix used within this specification and the normative URI that denotes each namespace.

Note:

In a specific document instance, it is not required that the default prefixes shown below are used. Any prefix or namespace binding that satisfies the constraints of XML Namespaces may be used that is associated with the specified namespace URI.

Table 1 – Namespaces
Name Prefix Value
TT tt: http://www.w3.org/2006/10/ttaf1
TT Parameter ttp: http://www.w3.org/2006/10/ttaf1#parameter
TT Style tts: http://www.w3.org/2006/10/ttaf1#style
TT Style Extensions ttsx: http://www.w3.org/2006/10/ttaf1#style-extension
TT Metadata ttm: http://www.w3.org/2006/10/ttaf1#metadata
TT Metadata Extensions ttmx: http://www.w3.org/2006/10/ttaf1#metadata-extension

Note:

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

5.2 Profiles

The Timed Text Authoring Format (TT AF) employs a number of profiles of its vocabulary and associated semantics. The following table specifies this set of profiles and indicates a normative name for each profile.

Table 2 – Profiles
Name Value
DFXP http://www.w3.org/2006/10/ttaf1#profile-dfxp

A convention is defined for use by content authors to indicate use of a subtractive or additive delta to a predefined profile by using an optional sub-profile suffix of a profile URI: if a sub-profile is subtractive (results in a proper subset), then the sub-profile is expressed as "-token"; if additive (results in a proper superset), then it is expressed as "+token", where token expresses an author determined sub-profile that adheres to the xsd:NCName data type defined in [XML Schema Part 2], §3.3.7.

All tokens used in a sub-profile suffix that do not start with the prefix x- are reserved for future standardization.

The profile of a document instance is specified using a ttp:profile attribute as defined by 6.2.7 ttp:profile.

Note:

A TT AF authoring system may indicate the profile of TT AF used in a document instance by specifying a ttp:profile attribute. A TT AF content processor may make use of this profile value to associate a document instance with a schema or processing functions.

An example of an author defined "tiny" subtractive sub-profile of DFXP is shown below in Example Fragment – DFXP Subtractive Profile.

Example Fragment – DFXP Subtractive Profile
<tt
  ttp:profile="http://www.w3.org/2006/10/ttaf1#profile-dfxp-x-tiny"
  xml:lang=""
  xmlns="http://www.w3.org/2006/10/ttaf1"
  xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter">
 ...
</tt>

Note:

Because the above example is an author defined sub-profile (as opposed to a future W3C defined profile), the sub-profile token contains the prefix x-.

5.3 Catalog

The vocabulary of the Timed Text Authoring Format (TT AF) is defined in the following major catalogs (divisions of vocabulary):

The core catalog defines the baseline, core vocabulary of the TT AF, and, in particular, the vocabulary of DFXP. The extensions catalog serves as a placeholder for extensions to the core vocabulary defined by DFXP.

5.3.1 Core Catalog

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

The core element vocabulary specified for use with a TT AF document instance is enumerated in Table 3 – Element Vocabulary.

Table 3 – Element Vocabulary
Module Elements
Animation set
Content body, div, p, span, br
Document tt
Head head
Layout layout, region
Metadata metadata
Metadata Items ttm:actor, ttm:agent, ttm:copyright, ttm:desc, ttm:name, ttm:title
Styling styling, style

Element vocabulary groups that are used in defining content models for TT AF element types are enumerated in Table 4 – Element Vocabulary Groups.

Table 4 – Element Vocabulary Groups
Group Elements
Animation.class set
Block.class div | p
Inline.class span | br | #PCDATA
Metadata.class metadata | ttm:agent | ttm:copyright | ttm:desc | ttm:title

The attribute vocabulary specified for use with the core vocabulary catalog is enumerated in Table 5 – Attribute Vocabulary.

Table 5 – Attribute Vocabulary
Module Attributes
Core Attributes xml:id, xml:lang, xml:space
Layout region
Metadata Attributes ttm:agent, ttm:role
Parameter Attributes ttp:cellResolution, ttp:clockMode, ttp:frameRate, ttp:frameRateMultipler, ttp:markerMode, ttp:pixelAspectRatio, ttp:profile, ttp:smpteMode, ttp:subFrameRate, ttp:tickRate, ttp:timeBase
Styling style
Styling Attributes tts:backgroundColor, tts:color, tts:direction, tts:display, tts:displayAlign, tts:dynamicFlow, tts:extent, tts:fontFamily, tts:fontSize, tts:fontStyle, tts:fontWeight, tts:lineHeight, tts:opacity, tts:origin, tts:overflow, tts:padding, tts:showBackground, tts:textAlign, tts:textDecoration, tts:textOutline, tts:unicodeBidi, tts:visibility, tts:wrapOption, tts:writingMode, tts:zIndex
Timing Attributes begin, dur, end, timeContainer

Note:

All vocabulary defined by the TT AF consistently makes use of the so-called lowerCamelCase naming convention. In some cases, this results in the change of a name when the name was based upon another specification that used a different naming convention.

5.3.2 Extension Catalog

The extension vocabulary catalog is intended for use by future profiles of the TT AF.

In this version of this specification, no standardized extension vocabulary is defined. Two namespaces are specifically reserved by Table 1 – Namespaces for metadata and style extension vocabulary:

  • TT Style Extensions

  • TT Metadata Extensions

In addition to standardized extension vocabulary, a conforming TT AF document instance may contain arbitrary namespace qualified elements that reside in any namespace other than those namespaces defined for use with this specification. Furthermore, a conforming TT AF document instance may contain arbitrary namespace qualified attributes on TT AF defined vocabulary where such attributes reside in any namespace other than those defined for use with this specification.

6 Parameters

This section specifies the parameters matter of the core vocabulary catalog, where parameters are to be understood as information that is either (1) essential or (2) of significant importance for the purpose of interpreting the semantics of other types of information expressed by core vocabulary items or for establishing a processing context by means of which TT AF content can be related to an external environment.

6.1 Element Vocabulary

No parameters related element vocabulary is defined for use in the core vocabulary catalog.

6.2 Attribute Vocabulary

The following attributes are defined in the TT Parameter Namespace.

Unless explicitly stated otherwise, linear white-space (LWSP) may appear between tokens of a value of a TT Parameter.

6.2.1 ttp:cellResolution

The ttp:cellResolution attribute may be used by an author to express the number of horizontal and vertical cells into which the root container region area is divided for the purpose of expressing presentation semantics in terms of a uniform grid.

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

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

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

Note:

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

A ttp:cellResolution attribute is considered to be significant only when specified on the tt element.

Note:

The use of a uniform grid is employed only for the purpose of measuring lengths and expressing coordinates. In particular, it is not assumed that the presentation of text or the alignment of individual glyph areas is coordinated with this grid. Such alignment is possible, but requires the use of a monospaced font and a font size whose EM square exactly matches the cell size.

6.2.2 ttp:clockMode

The ttp:clockMode attribute is used to specify the interpretation of time expressions as real-time time coordinates when operating with time base of clock as defined by 6.2.11 ttp:timeBase.

Note:

See 10.3 Time Value Expressions for the specification of time expression syntax.

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 by 6.2.11 ttp:timeBase, is designated as clock, then this parameter applies as follows: if the parameter's value is local, then time expressions are interpreted as local wall-clock time coordinates; if utc, then time expressions are interpreted as UTC time coordinates [UTC]; if gps, then time expressions are interpreted as GPS time coordinates [GPS].

Note:

The primary difference between GPS time and UTC time is that GPS time is not adjusted for leap seconds, while UTC time is adjusted as follows: UTC = TAI (Temp Atomique International) + leap seconds accumulated since 1972. TAI is maintained by the Bureau International des Poids et Mesures (BIPM) in Sevres, France. The GPS system time is steered to a Master Clock (MC) at the US Naval Observatory which is kept within a close but unspecified tolerance of TAI.

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

A ttp:clockMode attribute is considered to be significant only when specified on the tt element.

6.2.3 ttp:frameRate

The ttp:frameRate attribute is used to specify the frame rate of a related media object or the intrinsic frame rate of a document instance in case it is intended to 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 a document instance is used to interpret time expressions that are expressed in frames as defined by 10.3.1 <timeExpression>.

A frame is interpreted as a division of a second of media time, such that if the frame rate is specified as F, then a second of media time is divided into F intervals of equal duration, where each interval is labeled as frame f, with f ∈ [0…F−1].

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

A ttp:frameRate attribute is considered to be significant only when specified on the tt element.

6.2.4 ttp:frameRateMultiplier

The ttp:frameRateMultiplier attribute is used to specify a multiplier to be applied to the frame rate specified by a ttp:frameRate attribute in order to compute the effective frame rate.

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

Syntax Representation – ttp:frameRateMultiplier
ttp:frameRateMultiplier
  : numerator ( ":" denominator )?          // denominator != 0
numerator | denominator
  : <digit>+

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

If not specified, the frame rate multiplier must be considered to be equal to one (1:1). If a denominator is specified, then it must not be zero (0).

A ttp:frameRateMultiplier attribute is considered to be significant only when specified on the tt element.

Note:

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

Note:

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

6.2.5 ttp:markerMode

The ttp:markerMode attribute is used to specify constraints on the interpretation and use of time expressions that correspond with [SMPTE 12M] time coordinates when operating with time base of smpte as defined by 6.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 by 6.2.11 ttp:timeBase, is designated as smpte, then this parameter applies as follows: if the parameter's value is continuous, then [SMPTE 12M] time coordinates may be assumed to be linear and either monotonically increasing or decreasing; however, if discontinuous, then any assumption must not be made regarding linearity or monotonicity of time coordinates.

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

A ttp:markerMode attribute is considered to be significant only when specified on the tt element.

If a value of discontinuous applies, then time expressions must not be converted to either media time or real time coordinates, arithmetical operators (addition, multiplication) are not defined on time expressions, and, consequently, any expression of a duration must be ignored.

Note:

When operating with smpte time base and discontinuous marker mode, there is no effective time coordinate space; rather, all time expressions are interpreted as labeled synchronization events (markers), where some external synchronization context emits these events, which, when they correspond with time expressions that denote the same label, cause a temporal interval to begin or end accordingly.

An additional side-effect of operating in discontinuous mode is that time expressions of children have no necessary relationship with time expressions of their temporal container; that is, temporal containers and children of these containers are temporally activated and inactivated independently based on the occurrence of a labeled synchronization (marker) event.

Note:

The notion of marker discontinuity as captured by this parameter is logically independent from the method used to count frames as expressed by the ttp:smpteMode parameter. In particular, even if the ttp:smpteMode parameter is specified as dropNTSC or dropPAL, the marker mode may be specified as continuous, even in the presence of frame count discontinuities induced by the frame counting method, unless there were some other non-linearity or discontinuity in marker labeling, for example, two consecutive frames labeled as 10:00:00:00 and 10:00:01:00.

6.2.6 ttp:pixelAspectRatio

The ttp:pixelAspectRatio attribute may be used by a content author to express the aspect ratio of non-square pixels in the production of content that makes use of pixel coordinates.

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

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

If not specified, then square pixels (i.e., aspect ratio 1:1) must be assumed to apply. If specified, then width or height must not be zero.

A ttp:pixelAspectRatio attribute is considered to be significant only when specified on the tt element.

Note:

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

6.2.7 ttp:profile

The ttp:profile attribute may be used by a content author to express the profile of the Timed Text Authoring Format (TT AF) used in a document instance.

If specified, the value of this attribute must adhere to the xsd:anyURI data type defined by [XML Schema Part 2], §3.2.17, and, further, must specify a profile URI as defined by 5.2 Profiles.

If not specified, then the Distribution Format Exchange Profile (DFXP) must be assumed to apply.

A ttp:profile attribute is considered to be significant only when specified on the tt element.

6.2.8 ttp:smpteMode

The ttp:smpteMode attribute is used to specify constraints on the interpretation and use of frame counts that correspond with [SMPTE 12M] time coordinates when operating with time base of smpte as defined by 6.2.11 ttp:timeBase.

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

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

If the time base, defined by 6.2.11 ttp:timeBase, is designated as smpte, then this parameter applies as follows: if the parameter's value is nonDrop, then, within any given second of a time expression, frames count from 0 to N−1, where N is the value specified by the ttp:frameRate parameter, but while ignoring any value specified by the ttp:frameRateMultiplier parameter.

Note:

When operating in nonDrop mode, a second of a time expression may or may not be equal to a second of real time during normal (1x speed) forward playback. If the ttp:frameRateMultiplier parameter is specified and is not equal to 1:1, then a second of a time expression will either be shorter or longer than a second of elapsed play in real time.

If this parameter's value is dropNTSC, then, within any given second of a time expression except the second 00, frames count from 0 to N−1, where N is the value specified by the ttp:frameRate parameter, but while ignoring any value specified by the ttp:frameRateMultiplier parameter. If the second of a time expression is 00 and the minute of the time expression is not 00, 10, 20, 30, 40, or 50, then frame codes 00 and 01 are dropped during that second; otherwise, these frame codes are not dropped.

Note:

For example, when operating in dropNTSC mode with ttp:frameRate of 30, a discontinuity in frame count occurs between consecutive frames as shown in the following 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 is dropPAL, then, within any given second of a time expression except the second 00, frames count from 0 to N−1, where N is the value specified by the ttp:frameRate parameter, but while ignoring any value specified by the ttp:frameRateMultiplier parameter. If the second of a time expression is 00 and the minute of the time expression is even but not 00, 20, or 40, then frame codes 00 through 03 are dropped during that second; otherwise, these frame codes are not dropped.

Note:

For example, when operating in dropPAL mode with ttp:frameRate of 30, a discontinuity in frame count occurs between consecutive frames as shown in the following sequence of time expressions: 01:09:59:28, 01:09:59:29, 01:10:00:04, 01:10:00:04.

Note:

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

If not specified, then nonDrop must be assumed to apply.

A ttp:smpteMode attribute is considered to be significant only when specified on the tt element.

6.2.9 ttp:subFrameRate

The ttp:subFrameRate attribute is used to specify the sub-frame rate of a related media object or the intrinsic sub-frame rate of a document instance in case it is intended to 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 a document instance is used to interpret time expressions that are expressed in sub-frames as defined by 10.3.1 <timeExpression>.

A sub-frame is interpreted as a division of a frame of media time, such that if the sub-frame rate is specified as S, then a frame of media time is divided into S intervals of equal duration, where each interval is labeled as sub-frame s, with s ∈ [0…S−1].

If not specified, the sub-frame rate must be considered to be equal to one (1). If specified, then the sub-frame rate must be greater than zero (0).

A ttp:subFrameRate attribute is considered to be significant only when specified on the tt element.

Note:

The sub-frame is sometimes referred to as a field in the context of synchronization with an interlaced video media object.

6.2.10 ttp:tickRate

The ttp:tickRate attribute is used to specify the tick rate of a related media object or the intrinsic tick rate of content of a document instance in case it is intended to 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 a document instance is used to interpret time expressions that are expressed in ticks by using the t metric as defined by 10.3.1 <timeExpression>.

A tick is interpreted as an integral division of a second of media time, such that if the tick rate is specified as T, then a second of media time is divided into T intervals of equal duration, where each interval is labeled as tick t, with t ∈ [0…T−1].

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

Note:

There is no predefined relationship between ticks and frames or sub-frames. Ticks are an arbitrary division of seconds that permit use of fixed point arithmetic rather than fractional (and potentially inexact) expressions of seconds.

A ttp:tickRate attribute is considered to be significant only when specified on the tt element.

6.2.11 ttp:timeBase

The ttp:timeBase attribute is used to specify the temporal coordinate system by means of which time expressions are interpreted in a document instance.

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

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

If the time base is designated as media, then a time expression denotes a coordinate in some media object's time line, where the media object may be an external media object with which the content of a document instance is to be synchronized, or it may be the content of a document instance itself in a case where the timed text content is intended to establish an independent time line.

Note:

When using a media time base, if that time base is paused or scaled positively or negatively, then it is expected that the presentation of associated Timed Text content will be similarly paused, accelerated, or decelerated, respectively. The means for controlling an external media time base is outside the scope of this specification.

If the time base is designated as smpte, then a time expression denotes a [SMPTE 12M] time coordinate with which the content of a document instance is to be synchronized. In this case, the value of the ttp:markerMode and ttp:smpteMode parameters apply, as defined by 6.2.5 ttp:markerMode and 6.2.8 ttp:smpteMode, respectively

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

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

A ttp:timeBase attribute is considered to be significant only when specified on the tt element.

When operating with either media or smpte time bases, a diachronic presentation of a document instance may be subject to transformations of the controlling time line, such as temporal reversal, dilation (expansion), or constriction (compression); however, when operating with the clock time base, no transformations are permitted, and diacrhonic presentation proceeds on a linear, monotonically increasing time line based on the passage of real time.

Note:

Due to there being only one time base parameter that applies to a given document instance, the interpretation of time expressions is uniform throughout the document instance.

7 Content

This section specifies the content matter of the core vocabulary catalog.

7.1 Element Vocabulary

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

7.1.1 tt

The tt element serves as the root, document element of a document instance.

The tt element accepts as its children zero or one head element followed by zero or one body element.

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

The temporal beginning and ending of a document instance represented by a tt element is defined in relationship with some external application or presentation context. The temporal interval defined by these points is referred to subsequently as the external time interval.

A document instance has an implicit duration that is equal to the implicit duration of the body element of the document, if present, or zero, if not present.

An xml:lang attribute must be specified on the tt element. If the attribute value is empty, it signifies that there is no default language that applies to the text contained within the document instance.

If no xml:space attribute is specified upon the tt element, then it must be considered as if the attribute had been specified with a value of default.

7.1.2 head

The head element is a container element used to group header matter, including metadata, styling, and layout information.

The head element accepts as its children zero or more elements in the Metadata.class element group, followed by zero or one styling element, followed by zero or one layout element.

Any metadata specified by children in the Metadata.class element group applies semantically to the document instance as a whole, and not just the head element.

A styling child element is used to specify style constructs that are referenced from other style constructs, by layout constructs, and by content elements.

A layout child element is used to specify layout constructs that are referenced by content elements.

XML Representation – Element Information Item: head
<head
  xml:id = ID
  xml:lang = string
  xml:space = (default|preserve)>
  Content: Metadata.class*, styling?, layout?
</head>

To the extent that time semantics apply to the content of the head element, the implied time interval of this element is defined to be coterminous with the external time interval.

7.1.3 body

The body element functions as a logical container and a temporal structuring element for a sequence of textual content units represented as logical divisions.

The body element accepts as its children zero or more elements in the Metadata.class element group, followed by zero or more elements in the Animation.class element group, followed by zero or more div elements.

Any metadata specified by children in the Metadata.class element group applies semantically to the body element and its descendants as a whole.

Any animation elements specified by children in the Animation.class element group apply semantically to the body element.

XML Representation – Element Information Item: body
<body
  begin = <timeExpression>
  dur = <timeExpression>
  end = <timeExpression>
  region = IDREF
  style = IDREFS
  timeContainer = (par|seq)
  xml:id = ID
  xml:lang = string
  xml:space = (default|preserve)
  {any attribute in TT Metadata namespace ...}
  {any attribute in TT Style namespace ...}
  {any attribute not in default or any TT namespace ...}>
  Content: Metadata.class*, Animation.class*, div*
</body>

An author may specify a temporal interval for a body element using the begin, dur, and end attributes. If the begin point of this interval remains unspecified, then the begin point is interpreted as the begin point of the external time interval. Similarly, if the end point of this interval remains unspecified, then the end point is interpreted as the end point of the external time interval.

Note:

A TT AF document instance referenced from a SMIL presentation is expected to follow the same timing rules as apply to other SMIL media objects.

If relative begin or end times are specified on the body element, then these times are resolved by reference to the begin and end time of the external time interval.

If the external time interval is shorter than the computed duration of the body element, then the active time interval of a document instance is truncated to the active end point of the external time interval.

If no timeContainer attribute is specified, then a body element must be interpreted as having sequential time containment semantics.

If the tts:extent attribute is specified on the body element, then it specifies the spatial extent of the root container region in which content regions are located and presented. If no tts:extent attribute is specified, then the spatial extent of the root container region is considered to be determined by the external authoring or presentation context.

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

Note:

Style properties that are associated with a body element in a document instance are available for style inheritance by descendant content elements such as div, p, and span.

The declared value of an inline style attribute on a body element must not be inherit.

7.1.4 div

The div element functions as a logical container and a temporal structuring element for a sequence of textual content units represented as logical paragraphs.

Note:

When rendered on a continuous (non-paged) visual presentation medium, a div element is expected to generate a single block area that contains zero or more child block areas generated by the div element's child p elements.

If the single block area generated by a div element does not contain any child areas, then it is not expected to be presented.

The div element accepts as its children zero or more elements in the Metadata.class element group, followed by zero or more elements in the Animation.class element group, followed by zero or more p elements.

Note:

The core vocabulary intentionally does not support nested divisions in order to reduce the complexity of the profile to match that of the legacy distribution formats with which the core vocabulary was designed to interoperate.

Any metadata specified by children in the Metadata.class element group applies semantically to the div element and its descendants as a whole.

Any animation elements specified by children in the Animation.class element group apply semantically to the div element.

XML Representation – Element Information Item: div
<div
  begin = <timeExpression>
  dur = <timeExpression>
  end = <timeExpression>
  region = IDREF
  style = IDREFS
  timeContainer = (par|seq)
  xml:id = ID
  xml:lang = string
  xml:space = (default|preserve)
  {any attribute in TT Metadata namespace ...}
  {any attribute in TT Style namespace ...}
  {any attribute not in default or any TT namespace ...}>
  Content: Metadata.class*, Animation.class*, Block.class*
</div>

If no timeContainer attribute is specified, then a div element must be interpreted as having parallel time containment semantics.

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

Note:

Style properties that are associated to a div element in a document instance are available for style inheritance by descendant content elements such as p and span.

7.1.5 p

A p element represents a logical paragraph, serving as a transition between block level and inline level formatting semantics.

The p element accepts as its children zero or more elements in the Metadata.class element group, followed by zero or more elements in the Animation.class element group, followed by zero or more span element, br element, or text nodes interpreted as anonymous spans.

Any metadata specified by children in the Metadata.class element group applies semantically to the p element and its descendants as a whole.

Any animation elements specified by children in the Animation.class element group apply semantically to the p element.

XML Representation – Element Information Item: p
<p
  begin = <timeExpression>
  dur = <timeExpression>
  end = <timeExpression>
  region = IDREF
  style = IDREFS
  timeContainer = (par|seq)
  xml:id = ID
  xml:lang = string
  xml:space = (default|preserve)
  {any attribute in TT Metadata namespace ...}
  {any attribute in TT Style namespace ...}
  {any attribute not in default or any TT namespace ...}>
  Content: Metadata.class*, Animation.class*, Inline.class*
</p>

If a sequence of children of a p element consists solely of character information items, then that sequence must be considered to be an anonymous span for the purpose of applying style properties that apply to span elements.

7.1.6 span

The span element functions as a logical container and a temporal structuring element for a sequence of textual content units having inline level formatting semantics.

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

The span element accepts as its children zero or more elements in the Metadata.class element group, followed by zero or more elements in the Animation.class element group, followed by zero or more br element or text nodes interpreted as anonymous spans.

Note:

The core vocabulary intentionally does not support nested spans in order to reduce the complexity of the profile to match that of the legacy distribution formats with which the core vocabulary was designed to interoperate.

Any metadata specified by children in the Metadata.class element group applies semantically to the span element and its descendants as a whole.

Any animation elements specified by children in the Animation.class element group apply semantically to the span element.

XML Representation – Element Information Item: span
<span
  begin = <timeExpression>
  dur = <timeExpression>
  end = <timeExpression>
  region = IDREF
  style = IDREFS
  timeContainer = (par|seq)
  xml:id = ID
  xml:lang = string
  xml:space = (default|preserve)
  {any attribute in TT Metadata namespace ...}
  {any attribute in TT Style namespace ...}
  {any attribute not in default or any TT namespace ...}>
  Content: Metadata.class*, Animation.class*, Inline.class*
</span>

7.1.7 br

The br element denotes an explicit line break.

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

When presented on a visual medium, the presence of a br element must be interpreted as a forced line break.

Note:

The visual presentation of a br element is intended to produce the same effect as the ASCII control code CR followed by the control code NL when presented on a teletype device. Therefore, two br elements in sequence will produce a different effect than a single br element.

7.2 Attribute Vocabulary

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

7.2.1 xml:id

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

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

7.2.2 xml:lang

The xml:lang attribute is used as defined by [XML 1.1], §2.12, Language Identification.

The xml:lang attribute must be specified on the tt element and may be specified by an instance of any other element type in the core vocabulary catalog.

7.2.3 xml:space

The xml:space attribute is used as defined by [XML 1.1], §2.10, White Space Handling.

The xml:space attribute may be used with any element in the core vocabulary catalog.

The semantics of the value default are fixed to mean that when performing presentation processing of a document instance as described by 9.3.2 Synchronic Flow Processing, processing must occur as if the following properties were specified on the affected elements of the 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 value preserve are fixed to mean that when performing presentation processing, processing must occur as if the following properties were specified on the affected elements of the intermediate XSL-FO document:

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

  • linefeed-treatment="preserve"

  • white-space-collapse="false"

  • white-space-treatment="preserve"

When performing other types of processing intended to eventually result in a visual presentation by means other than those described in this specification, the semantics of space collapsing and preservation as described above should be respected. For other types of processing, the treatment of the xml:space attribute is processor dependent, but should respect the semantics described above if possible.

8 Styling

This section specifies the styling matter of the core vocabulary catalog, where styling is to be understood as a separable layer of information that applies to content and that denotes authorial intentions about the presentation of that content.

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

8.1 Element Vocabulary

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

8.1.1 styling

The styling element is a container element used to group styling matter, including metadata that applies to styling matter.

The styling element accepts as i