Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
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.
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 third Last Call Working Draft of the Timed Text (TT) Authoring Format 1.0 – Distribution Format Exchange Profile (DFXP). The W3C membership and other interested parties are invited to review the document and send comments to public-tt@w3.org (with public archive) through 30 June 2009.
This document is based on feedback from implementers. The list of changes made since the previous Candidate Recommendation is available in O.3 Changes from First Candidate Recommendation to Third Last Call Working Draft. A diff version with the previous working draft is also available.
A test suite is available, along with its coverage report and a preliminary implementation report. Note that the test suite and implementations are work in progress and may not reflect all of the changes of this document.
Publication as a Working Draft 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.
This document has been produced by the Timed Text (TT) Working Group as part of the W3C Video in the Web 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 was produced by a group operating under the 5 February 2004 W3C Patent Policy. 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.
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.2.1 Generic Processor Conformance
3.2.2 Transformation Processor Conformance
3.2.3 Presentation 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 Parameter Element Vocabulary
6.1.1 ttp:profile
6.1.2 ttp:features
6.1.3 ttp:feature
6.1.4 ttp:extensions
6.1.5 ttp:extension
6.2 Parameter 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 Content 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 Content Attribute Vocabulary
7.2.1 xml:id
7.2.2 xml:lang
7.2.3 xml:space
8 Styling
8.1 Styling Element Vocabulary
8.1.1 styling
8.1.2 style
8.2 Styling 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 <flowFunction>
8.3.7 <flowIntervalFunction>
8.3.8 <genericFamilyName>
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 Resolution
8.4.1 Style Association
8.4.1.1 Inline Styling
8.4.1.2 Referential Styling
8.4.1.3 Chained Referential Styling
8.4.1.4 Nested Styling
8.4.2 Style Inheritance
8.4.2.1 Content Style Inheritance
8.4.2.2 Region Style Inheritance
8.4.3 Style Resolution Value Categories
8.4.3.1 Specified Values
8.4.3.2 Computed Values
8.4.3.3 Actual Values
8.4.4 Style Resolution Processing
8.4.4.1 Conceptual Definitions
8.4.4.2 Specified Style Set Processing
8.4.4.3 Computed Style Set Processing
8.4.4.4 Style Resolution Process
9 Layout
9.1 Layout Element Vocabulary
9.1.1 layout
9.1.2 region
9.2 Layout Attribute Vocabulary
9.2.1 region
9.3 Region Layout and Presentation
9.3.1 Default Region
9.3.2 Intermediate Synchronic Document Construction
9.3.3 Synchronic Flow Processing
9.3.4 Elaborated Example
9.4 Line Layout
10 Timing
10.1 Timing Element Vocabulary
10.2 Timing 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 Animation Element Vocabulary
11.1.1 set
11.2 Animation Attribute Vocabulary
12 Metadata
12.1 Metadata 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 Metadata Attribute Vocabulary
12.2.1 ttm:agent
12.2.2 ttm:role
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.4.4 Combined Flow 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 Parameters Module
C.1.2.13 Parameter Items Module
C.1.2.14 Parameter Attributes Module
C.1.2.15 Styling Attributes Module
C.1.2.16 Styling Module
C.1.2.17 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 Parameters Module
C.2.2.12 Parameter Items Module
C.2.2.13 Parameter Attributes Module
C.2.2.14 Styling Attributes Module
C.2.2.15 Styling Module
C.2.2.16 Timing Attributes Module
C.2.2.17 XML Attributes Module
D Media Type Registration
E Features
E.1 Feature Designations
E.1.1 #animation
E.1.2 #backgroundColor
E.1.3 #backgroundColor-block
E.1.4 #backgroundColor-inline
E.1.5 #backgroundColor-region
E.1.6 #bidi
E.1.7 #cellResolution
E.1.8 #clockMode
E.1.9 #color
E.1.10 #content
E.1.11 #core
E.1.12 #direction
E.1.13 #display
E.1.14 #display-block
E.1.15 #display-inline
E.1.16 #display-region
E.1.17 #displayAlign
E.1.18 #dynamicFlow
E.1.19 #dynamicFlow-character
E.1.20 #dynamicFlow-clear
E.1.21 #dynamicFlow-fill
E.1.22 #dynamicFlow-glyph
E.1.23 #dynamicFlow-in
E.1.24 #dynamicFlow-jump
E.1.25 #dynamicFlow-line
E.1.26 #dynamicFlow-out
E.1.27 #dynamicFlow-rollUp
E.1.28 #dynamicFlow-smooth
E.1.29 #dynamicFlow-teletext
E.1.30 #dynamicFlow-word
E.1.31 #extent
E.1.32 #fontFamily
E.1.33 #fontFamily-generic
E.1.34 #fontFamily-non-generic
E.1.35 #fontSize
E.1.36 #fontSize-anisomorphic
E.1.37 #fontSize-isomorphic
E.1.38 #fontStyle
E.1.39 #fontStyle-italic
E.1.40 #fontWeight
E.1.41 #fontWeight-bold
E.1.42 #frameRate
E.1.43 #frameRateMultiplier
E.1.44 #layout
E.1.45 #length
E.1.46 #length-cell
E.1.47 #length-em
E.1.48 #length-integer
E.1.49 #length-negative
E.1.50 #length-percentage
E.1.51 #length-pixel
E.1.52 #length-positive
E.1.53 #length-real
E.1.54 #lineBreak-uax14
E.1.55 #lineHeight
E.1.56 #markerMode
E.1.57 #metadata
E.1.58 #nested-div
E.1.59 #nested-span
E.1.60 #opacity
E.1.61 #origin
E.1.62 #overflow
E.1.63 #overflow-dynamic
E.1.64 #padding
E.1.65 #padding-1
E.1.66 #padding-2
E.1.67 #padding-3
E.1.68 #padding-4
E.1.69 #pixelAspectRatio
E.1.70 #presentation
E.1.71 #profile
E.1.72 #rollUp
E.1.73 #showBackground
E.1.74 #smpteMode
E.1.75 #structure
E.1.76 #styling
E.1.77 #styling-chained
E.1.78 #styling-inheritance-content
E.1.79 #styling-inheritance-region
E.1.80 #styling-inline
E.1.81 #styling-nested
E.1.82 #styling-referential
E.1.83 #subFrameRate
E.1.84 #textAlign
E.1.85 #textAlign-absolute
E.1.86 #textAlign-relative
E.1.87 #textDecoration
E.1.88 #textDecoration-over
E.1.89 #textDecoration-through
E.1.90 #textDecoration-under
E.1.91 #textOutline
E.1.92 #textOutline-blur
E.1.93 #tickRate
E.1.94 #timeBase-clock
E.1.95 #timeBase-media
E.1.96 #timeBase-smpte
E.1.97 #timeContainer
E.1.98 #time-clock
E.1.99 #time-clock-with-frames
E.1.100 #time-offset
E.1.101 #time-offset-with-frames
E.1.102 #time-offset-with-ticks
E.1.103 #timing
E.1.104 #transformation
E.1.105 #unicodeBidi
E.1.106 #visibility
E.1.107 #visibility-block
E.1.108 #visibility-inline
E.1.109 #visibility-region
E.1.110 #wrapOption
E.1.111 #writingMode
E.1.112 #writingMode-vertical
E.1.113 #writingMode-horizontal
E.1.114 #writingMode-horizontal-lr
E.1.115 #writingMode-horizontal-rl
E.1.116 #zIndex
E.2 Feature Support
F Extensions
F.1 Extension Designations
G Profiles
G.1 DFXP Transformation Profile
G.2 DFXP Presentation Profile
G.3 DFXP Full Profile
H References
I Other References (Non-Normative)
J Requirements (Non-Normative)
K Vocabulary Derivation (Non-Normative)
K.1 Element Derivation
K.2 Attribute Derivation
L QA Framework Compliance (Non-Normative)
L.1 Requirements
L.2 Guidelines
M Streaming DFXP Content (Non-Normative)
N Acknowledgments (Non-Normative)
O Change History (Non-Normative)
O.1 Changes from First to Second Last Call Working Draft
O.2 Changes from Second Last Call Working Draft to First Candidate
Recommendation
O.3 Changes from First Candidate Recommendation to Third Last Call
Working Draft
Unless specified otherwise, this section and its sub-sections are non-normative.
DFXP is expressly designed to meet only a limited set of requirements established by [TTAF1-REQ], and summarized in J 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 M 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.
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.
![]() |
<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1"> <head> <metadata/> <styling/> <layout/> </head> <body/> </tt> |
<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> |
In Example Fragment – DFXP Styling, four style sets of specifications are defined, with one set serving as a collection of default styles.
<styling xmlns:tts="http://www.w3.org/2006/10/ttaf1#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" 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.)
<layout xmlns:tts="http://www.w3.org/2006/10/ttaf1#styling"> <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.
<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.
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.
![]() |
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.
![]() |
The third subtitle continues, using a variant style which overrides the default style's foreground color with a different color.
![]() |
The fourth subtitle reverts to the default style.
![]() |
The fifth subtitle continues, again using a variant style which overrides the default style's foreground color with a different color.
![]() |
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.
![]() |
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.
![]() |
The eighth subtitle uses the same style override as the previous subtitle in order to maintain the right (end) justification of the paragraph.
![]() |
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.
![]() |
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.
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 |
An instance of an abstract data set as represented by a Reduced XML Infoset.
A set of constraints that defines a class of XML Information Sets [XML InfoSet].
Each specified or defaulted attribute of an XML document corresponds with an attribute information item as defined by [XML InfoSet], §2.3.
Each data character appearing in an XML document corresponds with a character information item as defined by [XML InfoSet], §2.6.
A processing system capable of importing (receiving) timed text authoring format content for the purpose of transforming, presenting, or otherwise processing the content.
A collection of features and extensions that are (or may be) employed by timed text authoring format content.
A logical region into which rendered content is placed when modeling or performing presentation processing.
Each element appearing in an XML document corresponds with an element information item as defined by [XML InfoSet], §2.2.
A content profile that serves a set of needs for content interchange.
A syntactic or semantic expression or capability that is defined and labeled (using a extension designation) in another (public or private) specification.
A syntactic or semantic expression or capability that is defined and labeled (using a feature designation) in this specification (or a future revision of this specification).
See Content Processor.
A collection of features and extensions that must or may be implemented (supported) by by a content processor.
A document that defines a specific collection of features and extensions for which support is required or optional in a recipient content processor.
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.
An XML Information Set [XML InfoSet] that satisfieds the constraints specify by A Reduced XML Infoset.
A logical region that establishes a coordinate system into which content regions are placed and optionally clipped.
Textual information that is intrinsically or extrinsically associated with timing information.
A content type that represents timed text media for the purpose of interchange among authoring systems.
A content authoring system capable of importing and exporting timed text authoring format content.
Conforming documents and/or TT AF processors are permitted to, but need not behave as described.
<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:
<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1"> <head> <metadata/> <styling/> <layout/> </head> <body/> </tt> |
This section specifies the general conformance requirements for TT AF content and processors.
A TT AF document instance conforms to this specification if the following criteria are satisfied:
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
a profile designator as
defined by
5.2 Profiles.
The document instance is or can be represented as a Reduced XML Infoset as defined by A Reduced XML Infoset.
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.
The Reduced XML Infoset that corresponds to the document instance is a Valid Abstract Document Instance of the associated Abstract Document Type.
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].
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.
The processor does not a priori reject or abort the processing of a conformant TT AF document instance unless the processor does not support some required (mandatory) feature specified or implied by a TT AF content profile declared to apply to the document instance.
The processor supports all mandatory processing semantics defined by this specification.
If the processor supports some optional processing semantics defined by this specification, then it does so in a manner consistent with the defined semantics.
The processor satisfies all requirements specified by 3.2.1 Generic Processor Conformance.
The processor supports the DFXP Transformation profile as specified by G.1 DFXP Transformation Profile.
The processor satisfies all requirements specified by 3.2.1 Generic Processor Conformance.
The processor supports the DFXP Presentation profile as specified by G.2 DFXP Presentation Profile.
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
either (1)
a ttp:profile
attribute on its root
tt
element
as defined by 6.2.7 ttp:profile
or (2)
a ttp:profile
element as a child of the
head
element as defined by
6.1.1 ttp:profile.
This section defines the following TT AF Abstract Document Types:
Each abstract document type consists of the following constraints:
a non-empty collection of element types, where each element type consists of a name, a (possibly empty) collection of attributes, and a content specification
a non-empty collection of element types that may appear as the document element
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
pruning all element information items whose names are not members of the collection of element types defined by the associated abstract document type, then
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
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 that adheres to a supported content profile, a given document instance may be constrained by the author or authoring tool to satisfy a more restrictive definition of validity.
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.
Note:
The schemas included in this specification do not validate all syntactic constraints defined by this specification. In particular, performing validation with one of the above referenced schemas may result in a false positive indication of validity. However, their use will not produce a false negative indication of validity when used with a compliant validating processor.
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#styling |
TT Metadata | ttm: | http://www.w3.org/2006/10/ttaf1#metadata |
TT Profile | none | http://www.w3.org/2006/10/ttaf1/profile |
TT Feature | none | http://www.w3.org/2006/10/ttaf1/feature |
TT Extension | none | http://www.w3.org/2006/10/ttaf1/extension |
All TT AF Namespaces are mutable [NSState]; all undefined names in these namespaces are reserved for future standardization by the W3C.
The Timed Text Authoring Format (TT AF) employs a number of standard, predefined profiles of its vocabulary and associated semantics. The following table specifies this set of profiles, indicating a normative name and designator for each predefined profile, and where each of these profiles is formally elaborated in G Profiles.
Name | Designator |
---|---|
DFXP Transformation | http://www.w3.org/2006/10/ttaf1/profile/dfxp-transformation |
DFXP Presentation | http://www.w3.org/2006/10/ttaf1/profile/dfxp-presentation |
DFXP Full | http://www.w3.org/2006/10/ttaf1/profile/dfxp-full |
A profile designator must adhere to the
xsd:anyURI
data type defined by [XML Schema Part 2],
§3.2.17. If the profile designator is expressed as a relative URI,
then it must be absolutized by using the TT Profile Namespace value as
the base URI.
Note:
For example, if a profile designator is expressed as
dfxp-presentation
, then the absolutized profile designator
would be
http://www.w3.org/2006/10/ttaf1/profile/dfxp-presentation
.
A profile designator is not restricted to the set of designators enumerated in Table 2 – Profiles, but may be any URI that feasibly dereferences a TT AF Profile Definition Document.
The profile of TT AF that must be supported by a
TT AF content processor in order to process a document
instance is specified either (1) by specifying a
ttp:profile
attribute on the root tt
element, as
defined by 6.2.7 ttp:profile, or (2) by
including one or more ttp:profile
elements in the head
element, in
accordance with 6.1.1 ttp:profile.
If a ttp:profile
element appears as a
descendant of the tt
element, then the ttp:profile
attribute should not be specified on the tt
element. If both
a ttp:profile
element and a ttp:profile
attribute are present (in a given document instance), then the
ttp:profile
attribute must be ignored for the purpose of
determining the declared profile requirements.
If more than one ttp:profile
element appears in
a TT AF document instance, then all specified profiles apply
simultaneously. In such a case, if some feature or some extension is
specified by one profile to be used (mandatory and enabled) and by
another profile to be required (mandatory) or optional (voluntary),
then that feature or extension must be considered to be used
(mandatory and enabled); if some feature or some extension is
specified by one profile to be merely required (mandatory) and by
another profile to be optional (voluntary), then that feature or
extension must be considered to be required (mandatory).
If neither
ttp:profile
attribute nor
ttp:profile
element is present in a TT AF document instance, and if the document
interchange context does not specify a profile,
then the DFXP Transformation
profile applies.
Note:
It is intended that the ttp:profile
attribute be used when
the author wishes to reference one of the standard, predefined profiles of
TT AF content, and does not wish to modify (by supersetting or subsetting)
that profile. This attribute may also be used by an author to indicate the use
of a non-standard profile, in which case the specified profile designator expresses
a URI that denotes an externally defined TT AF Profile Definition Document.
However, it is not required that a conformant TT AF content processor be able
to dereference such an externally specified profile definition.
In contrast, it is intended that the ttp:profile
element be
used when the author wishes to make use of a modified predefined profile or
wishes to include in the document instance a non-standard profile definition
not based upon one of the predefined profiles.
A predefined profile is supersetted by specifying some feature or extension to be required (mandatory) that was either not specified in the underlying, baseline profile or was specified as optional (voluntary) in the baseline profile. A predefined profile is subsetted by specifying some feature or extension to be optional (voluntary) that was specified as required in the underlying, baseline profile.
When a baseline profile is modified by subsetting, the resulting, derived profile is referred to as a subtractive profile; when modified by supersetting, the result is referred to as an additive profile. It is also possible to define a derived profile that is simultaneously subtractive and additive.
If a TT AF document instance makes use of a feature defined by E.1 Feature Designations and if the intended use of the document requires the recognition and processing of that feature, then the document must include a required feature or a used feature specification in one of its declared or referenced profiles. If a TT AF document instance makes use of an extension designatable by F.1 Extension Designations and if the intended use of the document requires the recognition and processing of that extension, then the document must include a required extension or a used extension specification in one of its declared or referenced profiles.
Note:
A required or used feature
specification is expressed directly (or indirectly by referring to a
profile) by means of a ttp:feature
element where the value of its value
attribute is
required
or use
,
respectively. A required or used
extension specification is expressed directly (or indirectly by
referring to a profile) by means of a ttp:extension
element where the value of its value
attribute is
required
or use
,
respectively.
An example of an author defined additive, derived profile of the DFXP Presentation profile is shown below in Example Fragment – DFXP Additive Profile.
<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1"> <head> <profile use="dfxp-presentation" xmlns="http://www.w3.org/2006/10/ttaf1#parameter"> <features xml:base="http://www.w3.org/2006/10/ttaf1/feature"> <feature value="required">#fontStyle-italic</feature> </features> </profile> </head> <body/> </tt> |
Note:
In the above example, the baseline profile is declared to be
the DFXP Presentation profile, which is then additively modified by making the
#fontStyle-italic
feature required (rather than
optional as it is defined
in G.2 DFXP Presentation Profile). Note also the resetting of the
default XMLNS binding on the profile
element to the TT Parameter Namespace.
The core catalog defines the baseline, core vocabulary of the TT AF, and, in particular, the vocabulary of DFXP. The extension catalog serves as a placeholder for extensions to the core vocabulary defined by DFXP.
The core element vocabulary specified for use with a TT AF document instance is enumerated in 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 |
Parameter Items | ttp:profile, ttp:features, ttp:feature, ttp:extensions, ttp:extension |
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.
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 |
Parameters.class | ttp:profile |
The attribute vocabulary specified for use with the core vocabulary catalog is enumerated in 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:
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 multiple element types, are listed in Table 5 – Attribute Vocabulary above.
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.
The difference between a feature and an extension is where it is defined an how it is labeled: if defined in this specification (or a future revision thereof) and labeled with a feature designation in E Features, then it is considered to be a feature; if defined in another specification and labeled there with an extension designation, then it is considered to be an extension. In general, features are expected to be defined by the W3C standards process, while extensions are expected to be defined by third parties.
This specification defines two distinct uses of the ttp:profile
element:
as a child of the head
element within a TT AF document
instance;
as the root element of a TT AF Profile Definition document instance;
When a tt:profile
element appears within a TT AF document
instance, its purpose is to express authorial intentions about which
features and extensions must or may be supported by a recipient
content processor. In addition, the element indirectly expresses
information about the set of features or extensions that are (or may
expected to be) used by the document instance.
When a tt:profile
element is used by a TT AF
Profile Definition document instance, it serves to publish a machine
readable specification of a specific TT AF content profile, of which
this specification defines four such Profile Definition Documents in
G Profiles.
The ttp:profile
element accepts as its children zero or more
elements in the Metadata.class
element group, followed by
zero or more ttp:features
elements, followed by
zero or more ttp:extensions
elements.
<ttp:profile use = string xml:id = ID {any attribute not in default or any TT namespace}> Content: Metadata.class*, ttp:features*, ttp:extensions* </ttp:profile> |
If specified, the use
attribute must adhere to the
xsd:anyURI
data type defined by [XML Schema Part 2],
§3.2.17, and, furthermore, must denote a profile designator in
accordance with 5.2 Profiles. In this case,
the profile designator must refer to (1) a standard, predefined
TT AF Profile Definition Document as defined by G Profiles,
or (2) a dereferenceable resource representing a valid TT AF Profile Definition
document instance. In either case, the referenced profile serves as the
baseline profile of the specifying ttp:profile
element.
If the use
attribute is not specified, then the baseline
profile of the ttp:profile
element must be considered to be
the empty (null) profile, i.e., a profile definition containing no
feature or extension specifications.
The collection of features and extensions of a profile are determined according to the following ordered rules:
initialize the features and extensions of the profile to the empty set;
if a use
attribute is present, then augment the profile
with the set of features and extensions specified by the referenced
baseline profile;
for each ttp:feature
and ttp:extension
element
descendant of the ttp:profile
element, using a post-order
traversal, merge the specified feature or extension with the features
and extensions of the profile, where merging a feature or extension
entails replacing an existing feature or extension specification, if
it already exists, or adding a new feature or extension specification,
if it does not yet exist in the profile;
A conformant TT AF processor is not required to be able to dereference a TT AF Profile Definition Document that is not one of the standard, predefined profiles defined by G Profiles. A conformant TT AF processor may make use of a built-in, static form of each standard, predefined profile so as not to require dereferencing a network resource.
If a TT AF processor is unable to dereference a non-standard TT AF Profile Definition Document, then it must not further process the document without the presence of an explicit override from an end-user or some implementation specific parameter traceable to an end-user or to a user or system configuration setting. If a TT AF processor aborts processing of a TT AF document instance due to the inability to reference a non-standard TT AF Profile Definition Document, 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.
The ttp:profile
element is illustrated by the following example.
<ttp:profile use="dfxp-presentation"> <ttp:features xml:base="http://www.w3.org/2006/10/ttaf1/feature"> <ttp:feature>#rollUp</ttp:feature> </ttp:features> </ttp:profile> |
Note:
In the above example, the DFXP presentation profile is used as the
baseline profile. This baseline profile is then supersetted (thus
creating an additive derived profile) by requiring support for
#rollUp
feature.
<ttp:features xml:base = string : TT Feature Namespace xml:id = ID {any attribute not in default or any TT namespace}> Content: Metadata.class*, ttp:feature* </ttp:features> |
If specified, the xml:base
attribute must (1) adhere to the
xsd:anyURI
data type defined by [XML Schema Part 2],
§3.2.17, (2) express an absolute URI that
adheres to [XML Base] and,
(3) express a feature namespace as defined by
E.1 Feature Designations. If not specified, the
xml:base
attribute's default
value applies, which is the TT Feature Namespace.
The xml:base
attribute is
used to permit the abbreviation of feature designation URIs expressed
by child ttp:feature
elements.
The children of the ttp:feature
element must express a non-empty
sequence of character information items that adheres to the
xsd:anyURI
data type defined by [XML Schema Part 2],
§3.2.17.
<ttp:feature value = (optional|required|use) : required xml:id = ID {any attribute not in default or any TT namespace}> Content: #PCDATA </ttp:feature> |
If the URI expressed by the content of the ttp:feature
element is a relative URI, then, when combined with the
feature namespace value expressed by the
xml:base
attribute of the
nearest ancestor ttp:features
element, it must express an
absolute URI. In either case (original absolute URI or resulting
absolutized URI), the URI expressed by the ttp:feature
element must further adhere to the syntax of a feature designation as
defined by E.1 Feature Designations.
If
the URI expressed by the content of the ttp:feature
element
is a relative URI, then an xml:base
attribute should be
specified on the nearest ancestor ttp:features
element.
The value
attribute specifies whether a conforming TT AF
processor must or may implement the designated feature in order to
process the document. If the value of the value
attribute
is optional
, then the processor need
not implement or otherwise support the feature in order to process the
document; if the value is required
, then the processor
must implement or otherwise support the feature in order to process
the document; if the value is
use
, then the processor must both (1) implement or
otherwise support the feature and (2) enable (activate) use of the
feature.
Note:
The default value of the value
attribute is
required
, as indicated in the above element information
item definition. Therefore, if a value
attribute is not
specified on a ttp:feature
element, it is equivalent to
specifying that support for the feature is required.
If the value of the value
attribute is
required
or use
,
and if the TT AF processor implementation does
not support the feature, then it must not further process the document
without the presence of an explicit override from an end-user or some
implementation specific parameter traceable to an end-user or to a
user or system configuration setting. If a TT AF processor aborts
processing of a TT AF document instance due to the specification of a
required, but unsupported feature by this element, 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.
If the value of the value
attribute is
optional
, and if the TT AF processor implementation does
not support the feature, then it may further process the document even
in the case that some use of the feature is present in the document.
In the case of actual use of a feature designated as optional, the
default semantics associated with that feature apply; that is, the
processor may behave as if the feature were not actually used or
referenced by the document. Notwithstanding the above, the syntactic
presence or reference to an optional feature by a document must not be
considered to be a violation of document validity or a barrier to
further processing if the syntactic expression is well-formed and
valid.
The ttp:feature
element is illustrated by the following example.
<ttp:profile use="http://www.w3.org/2006/10/ttaf1/profile/dfxp-presentation"> <ttp:features xml:base="http://www.w3.org/2006/10/ttaf1/feature"> <ttp:feature value="required">#fontStyle-italic</ttp:feature> <ttp:feature value="required">#textDecoration-under</ttp:feature> </ttp:features> </ttp:profile> |
Note:
In the above example, the DFXP presentation profile is used as the
baseline profile. This baseline profile is then modified by two
ttp:feature
elements in order to
superset the baseline profile (since neither
#fontStyle-italic
nor #textDecoration-under
are required by the DFXP presentation profile). Note that
the explicit specification of required
on the
value
attribute on these two
ttp:feature
elements is not strictly
necessary, since it is the default value of this
attribute.
The effect of this example is to express authorial intentions that italic font style and text underlining must be supported.
<ttp:extensions xml:base = string : TT Extension Namespace xml:id = ID {any attribute not in default or any TT namespace}> Content: Metadata.class*, ttp:extension* </ttp:extensions> |
If specified, the xml:base
attribute must (1) adhere to the
xsd:anyURI
data type defined by [XML Schema Part 2],
§3.2.17, (2) express an absolute URI that
adheres to [XML Base] and,
(3) express an extension namespace as defined by
F.1 Extension Designations. If not specified, the
xml:base
attribute's default
value applies, which is the TT Extension Namespace.
The xml:base
attribute is
used to permit the abbreviation of feature designation URIs expressed
by child ttp:extension
elements.
The children of the ttp:extension
element must express a non-empty
sequence of character information items that adheres to the
xsd:anyURI
data type defined by [XML Schema Part 2],
§3.2.17.
<ttp:extension value = (optional|required|use) : required xml:id = ID {any attribute not in default or any TT namespace}> Content: #PCDATA </ttp:extension> |
If the URI expressed by the content of the ttp:extension
element is a relative URI, then, when combined with the
extension namespace value expressed by the
xml:base
attribute of the
nearest ancestor ttp:extensions
element, it must express an
absolute URI. In either case (original absolute URI or resulting
absolutized URI), the URI expressed by the ttp:extension
element must further adhere to the syntax of an extension designation
as defined by F.1 Extension Designations.
If the URI expressed by the content of the
ttp:feature
element is a relative URI, then an
xml:base
attribute should be specified on the nearest
ancestor ttp:extensions
element.
The value
attribute specifies whether a conforming TT AF
processor must or may implement the designated extension in order to
process the document. If the value of the value
attribute
is optional
, then the processor need
not implement or otherwise support the extension in order to process the
document; if the value is required
, then the processor
must implement or otherwise support the extension in order to process
the document; if the value is
use
, then the processor must both (1) implement or
otherwise support the extension and (2) enable (activate) use of the
extension.
Note:
The default value of the value
attribute is
required
, as indicated in the above element information
item definition. Therefore, if a value
attribute is not
specified on a ttp:extension
element, it is equivalent to
specifying that support for the extension is required.
If the value of the value
attribute is
required
or use
,
and if the TT AF processor implementation does not support the
extension, then it must not further process the document without the
presence of an explicit override from an end-user or some
implementation specific parameter traceable to an end-user or to a
user or system configuration setting. If a TT AF processor aborts
processing of a TT AF document instance due to the specification of a
required, but unsupported extension by this element, 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.
If the value of the value
attribute is
optional
, and if the TT AF processor implementation does
not support the extension, then it may further process the document even
in the case that some use of the extension is present in the document.
In the case of actual use of an extension designated as optional, the
default semantics associated with that extension apply; that is, the
processor may behave as if the extension were not actually used or
referenced by the document. Notwithstanding the above, the syntactic
presence or reference to an optional extension by a document must not be
considered to be a violation of document validity or a barrier to
further processing if the syntactic expression is well-formed and
valid.
The ttp:extension
element is illustrated by the following example.
<ttp:profile use="http://www.w3.org/2006/10/ttaf1/profile/dfxp-transformation">
<ttp:extensions xml:base="http://foo.bar.example.org/ttaf1/extension">
<ttp:extension value="use">#prefilter-by-language</ttp:extension>
</ttp:extensions>
</ttp:profile>
|
Note:
In the above example, the DFXP transformation profile is used as the baseline profile. This baseline profile is then supersetted by specifying that support and use is required for a private extension defined in a third party namespace.
The effect of this example is to express authorial intentions that a recipient processor must support the DFXP transformation profile and must also support and use an extension defined by a third party.
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.
If specified, the value of this attribute must adhere to the following syntax:
ttp:cellResolution : columns rows // columns != 0; rows != 0 columns | rows : <digit>+ |
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.
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:
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.
If specified, the value of this attribute must adhere to the following syntax:
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.
If specified, the value of this attribute must adhere to the following syntax:
ttp:frameRateMultiplier : numerator ( ":" denominator )? // denominator != 0 numerator | denominator : <digit>+ |
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.
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:
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
.
If specified, the value of this attribute must adhere to the following syntax:
ttp:pixelAspectRatio : width ":" height // width != 0; height != 0 width | height : <digit>+ |
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 designator in accordance with
5.2 Profiles.
A ttp:profile
attribute is considered to be significant only when specified on the
tt
element.
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:
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.
If specified, the value of this attribute must adhere to the following syntax:
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.
If specified, the value of this attribute must adhere to the following syntax:
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.
If specified, the value of this attribute must adhere to the following syntax:
ttp:timeBase : "media" | "smpte" | "clock" |
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 diachronic
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.
This section specifies the content matter of the core vocabulary catalog.
The following elements specify the structure and principal content aspects of a document instance:
The tt
element serves as the root, document element of a document
instance.
If the tts:extent
attribute is specified on the tt
element, then it must adhere to 8.2.8 tts:extent, in which case 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 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
.
A layout
child element is used to specify layout constructs that
are referenced by content elements.
<head xml:id = ID xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace}> Content: Metadata.class*, Parameters.class*, styling?, layout? </head> |
<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> |
<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> |
<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> |
<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> |
The br
element denotes an explicit line break.
<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> |
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.
The xml:lang
attribute is used as defined by
[XML 1.0], §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.
The xml:space
attribute is used as defined by
[XML 1.0], §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.3 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.
The following elements specify the structure and principal styling aspects of a document instance:
<styling xml:id = ID xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace}> Content: Metadata.class*, style* </styling> |
The style
element is used to define
a set of style specifications expressed as a
specified style set in accordance with
8.4.4.2 Specified Style Set Processing.
The style
element accepts as its children zero or more metadata
elements.
<style style = IDREFS xml:id = ID xml:lang = string xml:space = (default|preserve) {any attribute in TT Style namespace} {any attribute not in default or any TT namespace}> Content: Metadata.class* </style> |
If a style
element appears as a descendant of a
region
element, then the style
element must be
ignored for the purpose of computing referential styles as defined by
8.4.1.2 Referential Styling and 8.4.1.3 Chained Referential Styling.
Note:
That is to say, when referential styling is used by an element to
refer to a style
element, then the referenced style
element must appear as a descendant of the styling
element, and
not in any other context.
This section defines the 8.2.1 style attribute used with both style definition elements as well as content elements.
In addition, this section specifies the following attributes in the TT Style Namespace for use with style definition elements, certain layout elements, and content elements that support inline style specifications:
Unless explicitly stated otherwise, linear white-space (LWSP) may appear between tokens of a value of a TT Style or TT Style Extension Property.
Note:
This specification makes use of lowerCamelCased local names for style attributes that are based upon like-named properties defined by [XSL 1.1]. This convention is likewise extended to token values of such properties.
Note:
A style property may be expressed as a specified attribute on any content element type independently of whether the property applies to that element type. This capability permits the expression of an inheritable style property on ancestor elements to which the property property does not apply.
The style
attribute may be specified by an instance of the following
element types:
Note:
See the specific element type definitions that permit use of the
style
attribute, as well as 8.4.1.2 Referential Styling and 8.4.1.3 Chained Referential Styling, for
further information on its semantics.
Values: | <color> |
Initial: | transparent |
Applies to: |
body ,
div ,
p ,
region ,
span
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
The tts:backgroundColor
style is illustrated by the following example.
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:backgroundColor="red"/> <style tts:color="white"/> <style tts:displayAlign="after"/> <style tts:padding="3px 40px"/> </region> ... <p region="r1" tts:backgroundColor="purple" tts:textAlign="center"> Twinkle, twinkle, little bat!<br/> How <span tts:backgroundColor="green">I wonder</span> where you're at! </p> |
![]() |
Values: | <color> |
Initial: | see prose |
Applies to: |
span
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:color
style is illustrated by the following example.
<region xml:id="r1"> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="after"/> <style tts:textAlign="center"/> </region> ... <p region="r1"> In spring, when woods are <span tts:color="green">getting green</span>,<br/> I'll try and tell you what I mean. </p> |
![]() |
Values: |
ltr |
rtl
|
Initial: |
ltr
|
Applies to: |
p ,
span
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:direction
style is illustrated by the following example.
<region xml:id="r1">
<style tts:extent="265px 84px"/>
<style tts:padding="5px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="center"/>
</region>
...
<p region="r1">
Little birds are playing<br/>
Bagpipes on the shore,<br/>
<span tts:unicodeBidi="bidiOverride" tts:direction="rtl">where the tourists snore.</span>
</p>
|
![]() |
Values: |
auto |
none
|
Initial: |
auto
|
Applies to: |
body ,
div ,
p ,
region ,
span
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
The tts:display
style is illustrated by the following example.
<region xml:id="r1"> <style tts:extent="369px 119px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="before"/> <style tts:textAlign="start"/> </region> ... <div region="r1"> <p dur="5s"> [[[ <span tts:display="none"> <set begin="1s" dur="1s" tts:display="auto"/> Beautiful soup, </span> <span tts:display="none"> <set begin="2s" dur="1s" tts:display="auto"/> so rich and green, </span> <span tts:display="none"> <set begin="3s" dur="1s" tts:display="auto"/> waiting in a hot tureen! </span> ]]] </p> </div> |
![]() |
![]() |
![]() |
![]() |
![]() |
Values: |
before |
center |
after
|
Initial: |
before
|
Applies to: |
region
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:displayAlign
style is illustrated by the following example.
<region xml:id="r1"> <style tts:extent="128px 66px"/> <style tts:origin="0px 0px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="before"/> <style tts:textAlign="start"/> </region> <region xml:id="r2"> <style tts:extent="192px 66px"/> <style tts:origin="128px 66px"/> <style tts:backgroundColor="green"/> <style tts:color="white"/> <style tts:displayAlign="after"/> <style tts:textAlign="start"/> </region> <region xml:id="r3"> <style tts:extent="128px 66px"/> <style tts:origin="0px 132px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="before"/> <style tts:textAlign="start"/> </region> <region xml:id="r4"> <style tts:extent="192px 66px"/> <style tts:origin="128px 198px"/> <style tts:backgroundColor="green"/> <style tts:color="white"/> <style tts: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> |
![]() |
Values: |
none | rollUp |
<flowFunction>+ <flowIntervalFunction>*
|
Initial: | none |
Applies to: |
region
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
If the value of this attribute is none
, then no
dynamic flow semantics apply.
The choice of a definite duration of 0.433 seconds for the clear interval for roll up dynamic flow timing is based upon recommendations specified in [CC-DECODER-REQ], p. 792.
If the value of this attribute contains a single <flowFunction>, then that flow function applies equally to fill into and clear from dynamic flow operations.
If either fill()
or
clear()
<flowIntervalFunction>
is not specified, then the auto
value for the missing
<flowIntervalFunction>
applies. Multiple instances of the same <flowIntervalFunction>
must not appear in the value of this attribute.
The normative processing model for dynamic flow behavior is specified in B Dynamic Flow Processing Model.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value none
were specified.
The tts:dynamicFlow
style is illustrated by the
following example, and depicted in an SVG Animation.
<region xml:id="r1"> <style tts:extent="140px 70px"/> <style tts:displayAlign="after"/> <style tts:backgroundColor="transparent"/> <style tts:fontFamily="proportionalSansSerif"/> <style tts:fontSize="18px"/> <style tts:overflow="dynamic"/> <style tts:dynamicFlow="in(word,jump) fill(1.0s) out(line,smooth) clear(0.3s)"/> </region> ... <p region="r1"> <span tts:backgroundColor="black" tts:color="white"> Five o'clock tea!<br/> Ever to thee,<br/> Faithful I'll be,<br/> Five o'clock tea!<br/> <br/> <br/> <br/> </span> </p> |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
Values: |
auto |
<length> <length>
|
Initial: | auto |
Applies to: |
tt ,
region
|
Inherited: | no |
Percentages: | relative to width and height of root container region |
Animatable: | discrete |
If the value of this attribute consists of two <length> specifications, then they must be interpreted as width and height, where the first specification is the width, and the second specification is the height.
If the value of this attribute is auto
, then the initial value
of the style property must be considered to be the same as the root container extent.
The root container extent is determined either by a
tts:extent
specified on the tt
element, if
present, or by the external authoring context, if not present.
If
tts:extent
is specified on the tt
element,
then
the width and height
must be
expressed in terms of two
<length> specifications,
and
these specifications must be expressed as non-percentage,
definite lengths using pixel units.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value auto
were specified.
The tts:extent
style is illustrated by the following example.
<region xml:id="r1">
<style tts: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>
|
![]() |
Values: |
(<familyName> | <genericFamilyName>)
(","
(<familyName> | <genericFamilyName>))*
|
Initial: | default |
Applies to: |
span
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The initial value, default
, is a generic font family name, and is
further described in 8.3.8 <genericFamilyName> below.
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be enclosed in an anonymous
span.
If a specified font family is not available, then a
presentation processor must attempt to map the specified font family
to an available font family that has similar typographic
characteristics, or, in the absence of such a mapping, it must
interpret the font family as if the value default
were
specified.
The tts:fontFamily
style is illustrated by the following example.
<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"/> <style tts: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> |
![]() |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.1], § 7.8.2.
Values: | <length> <length>? |
Initial: | 1c |
Applies to: |
span
|
Inherited: | yes |
Percentages: | relative to parent element's font size |
Animatable: | discrete |
If a single <length> value is specified, then this length applies equally to horizontal and vertical scaling of a glyph's EM square; if two <length> values are specified, then the first expresses the horizontal scaling and the second expresses vertical scaling.
Note:
Use of independent horizontal and vertical font sizes is expected to be used with cell based metrics in order to denote fonts that are two rows in height and one column in width.
If horizontal and vertical sizes are expressed independently, then the metrics of the <length> values must be the same.
The <length> value(s) used to express font size must be non-negative.
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be enclosed in an anonymous
span.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value 1c
were specified.
The tts:fontSize
style is illustrated by the following example.
<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"/> <style tts:fontSize="18px"/> </region> ... <p region="r1"> Then fill up the glasses<br/> with treacle and ink,<br/> Or anything else<br/> that is <span tts:fontSize="24px">pleasant</span> to drink. </p> |
![]() |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.1], § 7.8.4.
Values: |
normal |
italic |
oblique |
reverseOblique
|
Initial: | normal |
Applies to: |
span
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:fontStyle
style is illustrated by the following example.
<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 <span tts:fontStyle="italic">write it down.</span>
</p>
|
![]() |
Values: |
normal |
bold
|
Initial: | normal |
Applies to: |
span
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:fontWeight
style is illustrated by the following example.
<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/> <span tts:fontWeight="bold">and mentioned me to him:</span><br/> She gave me a good character<br/> <span tts:fontWeight="bold">but said I could not swim.</span> </p> |
![]() |
Values: |
normal |
<length>
|
Initial: | normal |
Applies to: |
p
|
Inherited: | yes |
Percentages: | relative to this element's font size |
Animatable: | discrete |
If specified as a <length>, then the length must be non-negative.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value normal
were specified.
The tts:lineHeight
style is illustrated by the following example.
<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"/>
<style tts: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>
|
![]() |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.1], § 7.15.4.
Values: | <alpha> |
Initial: |
1.0
|
Applies to: |
region
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
An <alpha> value greater than 1.0 must be considered equivalent to an <alpha> value of 1.0.
The tts:opacity
style is illustrated by the following example.
<region xml:id="r1" dur="5s"> <set begin="0s" dur="1s" tts:opacity="1.00"/> <set begin="1s" dur="1s" tts:opacity="0.75"/> <set begin="2s" dur="1s" tts:opacity="0.50"/> <set begin="3s" dur="1s" tts:opacity="0.25"/> <set begin="4s" dur="1s" tts:opacity="0.00"/> <style tts:extent="304px 77px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="after"/> <style tts:textAlign="center"/> </region> ... <p region="r1"> The sun was shining on the sea </p> |
![]() |
![]() |
![]() |
![]() |
![]() |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [CSS3 Color], § 3.2.
Values: |
auto |
<length> <length>
|
Initial: | auto |
Applies to: |
region
|
Inherited: | no |
Percentages: | relative to width and height of root container region |
Animatable: | discrete |
If the value of this attribute consists of two <length> specifications, then they must be interpreted as x and y coordinates, where the first specification is the x coordinate, and the second specification is the y coordinate.
If the value of this attribute is auto
, then the initial value
of the style property must be considered to be the same as the root container origin.
The root container origin is determined by the external authoring context.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value auto
were specified.
The tts:origin
style is illustrated by the following example.
<region xml:id="r1">
<style tts: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>
|
![]() |
Values: |
visible |
hidden |
dynamic
|
Initial: | hidden |
Applies to: |
region
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
The tts:overflow
style is illustrated by the following example.
<region xml:id="r1"> <style tts:extent="232px 40px"/> <style tts:origin="0px 0px"/> <style tts:backgroundColor="black"/> <style tts:color="red"/> <style tts:displayAlign="before"/> <style tts:textAlign="start"/> <style tts:fontFamily="proportionalSansSerif"/> <style tts:fontSize="18px"/> <style tts:wrapOption="noWrap"/> <style tts:overflow="visible"/> </region> <region xml:id="r2"> <style tts:extent="232px 40px"/> <style tts:origin="0px 43px"/> <style tts:backgroundColor="black"/> <style tts:color="red"/> <style tts:displayAlign="before"/> <style tts:textAlign="start"/> <style tts:fontFamily="proportionalSansSerif"/> <style tts:fontSize="18px"/> <style tts:wrapOption="noWrap"/> <style tts:overflow="hidden"/> </region> ... <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> |
![]() |
The tts:padding
attribute is used to specify padding (or inset)
space on all sides of a region area.
Values: | <length> | <length> <length> | <length> <length> <length> | <length> <length> <length> <length> |
Initial: | 0px |
Applies to: |
region
|
Inherited: | no |
Percentages: | relative to width and height of region |
Animatable: | discrete |
If the value of this attribute consists of one <length> specification, then that length applies to all edges of the affected areas. If the value consists of two <length> specifications, then the first applies to the before and after edges, and the second applies to the start and end edges. If three <length> specifications are provided, then the first applies to the before edge, the second applies to the start and end edges, and the third applies to the after edge. If four <length> specifications are provided, then they apply to before, end, after, and start edges, respectively.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value 0px
were specified.
The tts:padding
style is illustrated by the following example.
<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"/>
<style tts: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 that applies to the area is rendered into the padded portion of the area.
![]() |
Values: |
always |
whenActive
|
Initial: | always |
Applies to: |
region
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
The tts:showBackground
style is illustrated by the following example.
<region xml:id="r1"> <style tts:origin="0px 0px"/> <style tts:extent="265px 100px"/> <style tts:backgroundColor="black"/> <style tts: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"/> <style tts:showBackground="whenActive"/> </region> |
Values: |
left |
center |
right |
start |
end
|
Initial: | start |
Applies to: |
p
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:textAlign
style is illustrated by the following example.
<region xml:id="r1"> <style tts:extent="355px 43px"/> <style tts:origin="0px 0px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts: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"/> <style tts: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> |
![]() |
Values: |
none |
[ [
underline |
noUnderline
] || [
lineThrough |
noLineThrough
] || [
overline |
noOverline
] ]
|
Initial: | none |
Applies to: | span |
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:textDecoration
style is illustrated by the following example.
<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"/> <style tts:textDecoration="underline"/> </region> ... <p region="r1"> The sea was wet<span tts:textDecoration="noUnderline"> as </span>wet <span tts:textDecoration="noUnderline"> could be,<br/> The sand was dry as dry.<br/> <span tts:textDecoration="lineThrough">There weren't any</span> You <span tts:textDecoration="lineThrough">couldn't</span> could not see a cloud<br/> Because no cloud was in the sky. </span> </p> |
![]() |
Values: |
none |
<color>?
<length>
<length>?
|
Initial: | none |
Applies to: |
span
|
Inherited: | yes |
Percentages: | relative to this element's font size |
Animatable: | discrete |
The value of this attribute consists of an optional <color> term
followed by one or two <length> terms. If a color term is
present, then it denotes the outline color; if no color term is
present, the computed value of the tts:color
applies. The first
length term denotes the outline thickness and the second length
term, if present, indicates the blur radius.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value none
were specified.
The tts:textOutline
style is illustrated by the following
example.
<region xml:id="r1">
<style tts:backgroundColor="transparent"/>
<style tts:color="yellow"/>
<style tts: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>
|
![]() |
Values: |
normal |
embed |
bidiOverride
|
Initial: |
normal
|
Applies to: |
p ,
span
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
The tts:unicodeBidi
style is illustrated by the following example.
<region xml:id="r1">
<style tts:extent="265px 84px"/>
<style tts:padding="5px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="center"/>
</region>
...
<p region="r1">
Little birds are playing<br/>
Bagpipes on the shore,<br/>
<span tts:unicodeBidi="bidiOverride" tts:direction="rtl">where the tourists snore.</span>
</p>
|
![]() |
Values: |
visible |
hidden
|
Initial: |
visible
|
Applies to: |
body ,
div ,
p ,
region ,
span
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:visibility
style is illustrated by the following example.
<region xml:id="r1"> <style tts:extent="398px 121px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style/> </region> ... <p region="r1" dur="4s"> <span tts:visibility="hidden"> <set begin="1s" tts:visibility="visible"/> Curiouser </span> <span tts:visibility="hidden"> <set begin="2s" tts:visibility="visible"/> and </span> <span tts:visibility="hidden"> <set begin="3s" tts:visibility="visible"/> curiouser! </span> </p> |
![]() |
![]() |
![]() |
![]() |
Values: |
wrap |
noWrap
|
Initial: | wrap |
Applies to: |
span
|
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
The tts:wrapOption
style is illustrated by the following example.
<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"/>
<style tts: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>
|
![]() |
Values: |
lrtb |
rltb |
tbrl |
tblr |
lr |
rl |
tb
|
Initial: | lrtb |
Applies to: |
region
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
The tts:writingMode
style is illustrated by the following example.
<region xml:id="r1"> <style tts:extent="50px 570px"/> <style tts:origin="0px 0px"/> <style tts:padding="10px 3px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:writingMode="tbrl"/> </region> <region xml:id="r2"> <style tts:extent="310px 50px"/> <style tts:origin="70px 120px"/> <style tts:padding="10px 3px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:writingMode="rltb"/> </region> ... <p region="r1"> I sometimes dig for buttered rolls,<br/> Or set limed twigs for crabs: </p> <p region="r2" tts:direction="rtl" tts:unicodeBidi="bidiOverride"> I sometimes search the grassy knolls for the wheels of Hansom-cabs. </p> |
![]() |
Values: |
auto |
<integer>
|
Initial: | auto |
Applies to: |
region
|
Inherited: | no |
Percentages: | N/A |
Animatable: | discrete |
The semantics of the value auto
are those defined by
[XSL 1.1], § 7.28.9, where the tt
element
is considered to establish the root stacking context.
If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value auto
were specified.
The tts:zIndex
style is illustrated by the following example.
<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"/> <style tts: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"/> <style tts: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"/> <style tts: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"/> <style tts: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> |
![]() |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.1], § 7.28.9.
Style property values include the use of the following expressions:
<alpha> : float |
In the above syntax representation, the syntactic element
float
must adhere to the lexical
representation 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 value
represented is greater than 1.0, then it must be interpreted as
1.0.
If a presentation processor does not support a specific, valid opacity value, then it must interpret it as being equal to the closest supported value.
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% opacity and minimum (0) at 0% opacity, and where the applicable color space is defined by [SRGB].
<color> : "#" rrggbb | "#" rrggbbaa | "rgb" "(" r-value "," g-value "," b-value ")" | "rgba" "(" r-value "," g-value "," b-value "," a-value ")" | <namedColor> rrggbb : <hexDigit>{6} rrggbbaa : <hexDigit>{8} r-value | g-value | b-value | a-value : component-value component-value : non-negative-integer // valid range: [0,255] non-negative-integer : <digit>+ |
When expressing RGB component values, these values are considered to not be premultiplied by alpha.
For the purpose of performing presentation processing such that non-opaque or non-transparent alpha or opacity values apply, then the semantics of compositing functions are defined with respect to the use of the [SRGB] color space for both inputs and outputs of the composition function.
Note:
The use of [SRGB] for the stated semantics of composition is not meant to prevent an actual processor from using some other color space either for internal or external purposes. For example, a presentation processor may ultimately convert the SRGB values used here to the YUV color space for rendition on a television device.
If a presentation processor does not support a specific, valid color or alpha value, then it must interpret it as being equal to the closest supported value.
A <digit> is used to express integers and other types of numbers or tokens.
<digit> : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" |
A <duration> expression is used to express a temporal duration value.
A <familyName> expression specifies a font family name.
<familyName> : <string> | <quotedString> |
<flowFunction> : "in(" flowArguments ")" | "out(" flowArguments ")" flowArguments : flowUnit [ "," flowStyle ] flowUnit : "glyph" | "line" | "character" | "word" | extensionToken flowStyle : "jump" | "smooth" | extensionToken extensionToken : "x-" <token> |
<flowIntervalFunction> : "fill(" flowIntervalArguments ")" | "clear(" flowIntervalArguments ")" flowIntervalArguments : "auto" | <duration> | flowIntervalRate flowIntervalRate : <digit>+ ( "." <digit>+ )? |
The fill()
flow interval function is used to
determine the computed fill interval state parameter for performing
dynamic flow processing, which expresses the
duration of time between fill
timer events, as specified by B.5.1 Fill Timer, which
in turn, limits the dynamic flowed content fill rate.
The clear()
flow interval function is used to
determine the computed clear interval state parameter for performing
dynamic flow processing, which expresses the
duration of time between clear
timer events, as specified by B.5.2 Clear Timer, which in turn,
limits the dynamic flowed content retention period.
If a <duration> is
specified as an argument to a flow interval function, then it is
considered to represent a definite duration.
If a flow interval rate is
specified as an argument to a flow interval function, then it is
considered to represent a definite rate in units per
second, where the applicable unit is determined in the context of
whether the rate is used with an fill()
or
clear()
flow interval function.
The computed fill and clear interval values are defined by B.3 Flow Interval Timing Calculation.
<genericFamilyName> : "default" | "monospace" | "sansSerif" | "serif" | "monospaceSansSerif" | "monospaceSerif" | "proportionalSansSerif" | "proportionalSerif" |
For the purpose of parsing, no distinction must be made between lower and upper case.
<hexDigit> : <digit> | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F" |
An <integer> expression is used to express an arbitrary, signed integral value.
<integer> : ( "+" | "-" )? <digit>+ |
<length> : scalar | percentage scalar : number units percentage : number "%" sign : "+" | "-" number : sign? non-negative-number non-negative-number : non-negative-integer | non-negative-real non-negative-integer : <digit>+ non-negative-real : <digit>* "." <digit>+ units : "px" | "em" | "c" // abbreviation of "cell" |
It is an error to omit the units component of a scalar length value.
The semantics of
the unit of measure px
(pixel)
are as defined by [XSL 1.1], § 5.9.13.
When specified relative to a font whose size is expressed as a single length
measure or as two length measures of equal length, the unit of measure em
is considered to be
identical to that defined by [XSL 1.1], § 5.9.13;
however, when specified relative to a font whose size is expressed as
two length measures of non-equal lengths, then one em
is
equal to the inline progression dimension of the anisomorphically
scaled font when used to specify lengths in the inline progression
direction and equal to the block progression dimension of the scaled
font when used to specify lengths in the block progression direction.
The semantics of the unit of measure c
(cell) are
defined by the parameter 6.2.1 ttp:cellResolution.
A <namedColor> is used to express an RGBA color with a convenient name, and where the applicable color space is defined by [SRGB].
For the purpose of parsing, no distinction must be made between lower and upper case.
<namedColor> : "transparent" // #00000000 | "black" // #000000ff | "silver" // #c0c0c0ff | "gray" // #808080ff | "white" // #ffffffff | "maroon" // #800000ff | "red" // #ff0000ff | "purple" // #800080ff | "fuchsia" // #ff00ffff | "magenta" // #ff00ffff (= fuchsia) | "green" // #008000ff | "lime" // #00ff00ff | "olive" // #808000ff | "yellow" // #ffff00ff | "navy" // #000080ff | "blue" // #0000ffff | "teal" // #008080ff | "aqua" // #00ffffff | "cyan" // #00ffffff (= aqua) |
Note:
Except for transparent
, the set of named colors specified above constitutes a proper
subset of the set of named colors specified by [SVG 1.1], § 4.2.
<quotedString> : "\"" ( char - { "\"" } )* "\"" | "\'" ( char - { "\'" } )* "\'" |
In the above syntax representation, the syntactic element char
must adhere to production
[2] Char
as defined by [XML 1.0] §
2.2.
<string> : ( char - { "\"" | "\'" } )+ |
In the above syntax representation, the syntactic element char
must adhere to production
[2] Char
as defined by [XML 1.0] §
2.2.
Any implementation of this model is permitted provided that the externally observable results are consistent with the results produced by this model.
Note:
The semantics of style resolution employed here are based upon [XSL 1.1], § 5.
Style association is a sub-process of 8.4.4 Style Resolution Processing used to determine the specified style set of each content and layout 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:
<p tts:color="white">White 1 <span tts:color="yellow">Yellow</span> White 2</p> |
A single content element may be associated with style properties by a hybrid mixture of inline and referential styling, in which case inline styling is given priority as described above by 8.4.1.1 Inline Styling.
<style xml:id="s1" tts:color="white"/> <style xml:id="s2" tts:color="yellow"/> ... <p style="s1">White 1 <span style="s2">Yellow</span> White 2</p> |
Note:
In the above example, the two text fragments "White 1 "
and
" White 2"
, which are interpreted as anonymous spans, are not
associated with a color style property; rather, they inherit their color style
from their parent p
element as described in 8.4.2.1 Content Style Inheritance below.
A loop in a sequence of chained style references must be considered an error.
A single content element may be associated with style properties by a hybrid mixture of inline, referential styling, and chained referential styling, in which case inline styling is given priority as described above by 8.4.1.1 Inline Styling.
<style xml:id="s1" tts:color="white" tts:fontFamily="monospaceSerif"/> <style xml:id="s2" style="s1" tts:color="yellow"/> ... <p style="s1">White Monospace</p> <p style="s2">Yellow Monospace</p> |
<region xml:id="r1"> <style tts:extent="128px 66px"/> <style tts:origin="0px 0px"/> <style tts:displayAlign="center"/> </region> |
Style inheritance is a sub-process of 8.4.4 Style Resolution Processing used to determine the specified style set of each content and layout element.
Styles are further propagated to content matter using:
For the purpose of determining inherited styles, the element hierarchy of an intermediate synchronic document form of a DFXP document instance must be used, where such intermediate forms are defined by 9.3.2 Intermediate Synchronic Document Construction.
Note:
The intermediate synchronic document form is utilized rather than the original form in order to facilitate region inheritance processing.
<p tts:fontFamily="monospaceSansSerif">
<span tts:color="yellow">Yellow Monospace</span>
</p>
|
Style properties are inherited from a region element in the following case:
if that style property P is in the computed style set of region R, and
if that element E is flowed into (presented within) region R.
<region xml:id="r1"> <style tts:color="yellow"/> <style tts:fontFamily="monospaceSerif"/> </region> ... <p region="r1">Yellow Monospace</p> |
The process described here forms an integral sub-process of 9.3 Region Layout and Presentation.
[ ["http://www.w3.org/2006/10/ttaf1#styling", "color"], ["specified", color, "red"] ] |
{ [ ["http://www.w3.org/2006/10/ttaf1#styling", "backgroundColor"], ["specified", color, 0x00FF00 ] ], [ ["http://www.w3.org/2006/10/ttaf1#styling", "color"], ["specified", color, "red" ] ], [ ["http://www.w3.org/2006/10/ttaf1#styling", "fontSize"], ["specified", length, "1c" ] ], [ ["http://www.w3.org/2006/10/ttaf1#styling", "lineHeight"], ["specified", length, "117%" ] ] } |
{ [ ["http://www.w3.org/2006/10/ttaf1#styling", "backgroundColor"], ["specified", color, 0x00FF00 ] ], [ ["http://www.w3.org/2006/10/ttaf1#styling", "color"], ["computed", color, 0xFF0000 ] ], [ ["http://www.w3.org/2006/10/ttaf1#styling", "fontSize"], ["computed", length, "24px" ] ], [ ["http://www.w3.org/2006/10/ttaf1#styling", "lineHeight"], ["computed", length, "28px" ] ] } |
[initialization] initialize the specified style set SSS of E to the empty set;
[implicit inheritance] if the
element type of E is not the styling element type
style
, then for each inheritable style property
PINH in the set of style properties defined
above in 8.2 Styling Attribute Vocabulary, perform the
following ordered sub-steps:
if PINH is present in the specified style set of E, SSS(E), then continue to the next inheritable style property;
if the element type of E is the layout element
type region
, then set P′ to the initial value of
property P, where the initial value of a property is
determined according to the specific property definition found above
in 8.2 Styling Attribute Vocabulary;
if the element type of E is a content element type or anonymous span, then set P′ to the result of looking up the value of P in the computed style set of the immediate ancestor element of E, i.e., CSS(PARENT(E));
if the value of P′ is not undefined, then merge P′ into the specified style set of E, SSS(E).
[resolve specified styles] determine (obtain) the specified style set SSS of E, namely, SSS(E), in accordance with 8.4.4.2 Specified Style Set Processing;
[initialization] initialize CSS(E) to a (deep) copy of SSS(E);
[filter] if
E is a style
element, then return
CSS(E) as the resulting computed style set without
further resolution; otherwise, continue with the next rule;
[relative value resolution] for each style property P in CSS(E), where the value type of P is relative, perform the following ordered sub-steps:
replace the relative value of P with an equivalent, non-relative (computed) value;
set the category of P to "computed";
Note:
As a result of the filtering rule above, the computed style set of
a style
element includes only specified values, in which case
relative value expressions remain relative; consequently, the
resolution of relative value expressions (that may be assigned by
means of referential style association) always takes place in the
context of a layout or content element which has a presentation
context, and not in the non-presentation, declaration context
of a referentiable style
element.
The following elements specify the structure and principal layout aspects of a document instance:
<layout xml:id = ID xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace}> Content: Metadata.class*, region* </layout> |
In addition, and in accordance with
8.4.2.2 Region Style Inheritance,
the region
element may be used to specify inheritable style properties to be
inherited by content that is flowed into it.
The region
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 style
elements.
Any metadata specified by children in the Metadata.class
element group applies semantically to the region
element and its descendants as a whole.
Any animation elements specified by children in the Animation.class
element group apply semantically to the region
element.
Any style
child element must be considered a local style
definition that applies only to the containing region
element, i.e., does not apply for resolving referential styling.
<region begin = <timeExpression> dur = <timeExpression> end = <timeExpression> style = IDREFS timeContainer = (par|seq) ttm:role = string xml:id = ID xml:lang = string xml:space = (default|preserve) {any attribute in TT Style namespace} {any attribute not in default or any TT namespace}> Content: Metadata.class*, Animation.class*, style* </region> |
If begin
and (or) end
attributes are specified on a
region
element, then they specify the beginning and (or) ending points
of a time interval during which the region is eligible for activation and with
respect to which animation child elements of the region are timed.
If specified, these begin and end points are relative to the time
interval of the nearest ancestor element associated with a time
interval, irregardless of whether that interval is explicit or implied.
The nearest ancestor element of a region
element that is associated
with a time interval is the document instance's root tt
element.
If a dur
attribute is specified on the region
element, then it
specifies the simple duration of the region.
For the purpose of determining the semantics of presentation processing, a region that is temporally inactive must not produce any visible marks when presented on a visual medium.
Note:
A region
element may be associated with a time interval for two
purposes: (1) in order to temporally bound the presentation of the region and
its content, and (2) to provide a temporal context in which animations of region
styles may be effected.
For example, an author may wish a region that is otherwise empty, but may have a visible background color to be presented starting at some time and continuing over the region's duration. The simple duration of the region serves additionaly to scope the presentation effects of content that is targeted to the region. An author may also wish to move a region within the root container extent or change a region's background color by means of animation effects. In both of these cases, it is necessary to posit an active time interval for a region.
If no timeContainer
attribute is specified on
a region
element, then it must be interpreted as having
parallel time containment semantics.
If a ttm:role
attribute is
specified on a region
element, then it must adhere to the
value syntax defined by Syntax Representation – ttm:role, and where the role(s) identified
by this attribute expresses the semantic role(s) of the region
independently from the semantic role(s) of any content targeted to
(associated with) the region.
This section defines the 9.2.1 region attribute used with content elements.
The region
attribute may be specified by an instance of the following
element types:
Note:
See 9.3 Region Layout and Presentation below for further information on content flow in a region.
Any implementation is permitted provided that the externally observable results are consistent with the results produced by this model.
If a DFXP document instance does not specify a
region
element,
then a default region is implied with the following characteristics:
the identity of the default region is considered to be anonymous;
the extent of the default region is the same as the root container region;
the temporal interval of the default region is the same as temporal interval of the document instance;
Furthermore, if no region
element was
specified, then the region
attribute must
not be specified on any content element in the document
instance.
If a default region is implied for a given document instance, then
the body
element
is implicitly targeted to (associated with) the default region.
When implying a default region, the document instance is to be
treated as if a region
element and its
parent layout
element were specified in a head
element, and a matching region
attribute were
specified on the body
element
as shown in the following example:
<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1"> <head> <layout> <region xml:id="anonymous"/> </layout> </head> <body region="anonymous"/> </tt> |
Note:
In the above example, a default region
element and region
attribute are implied. In addition, a layout
container element is implied for
the implied region
element.
for each temporally active region R, replicate the
sub-tree
of DOCsource
headed by the body
element;
if the pruned sub-tree is non-empty, then reparent it to the R element;
if the element specifies a region
attribute,
then the element is associated with the region referenced by that
attribute;
if some ancestor of that element specifies a region
attribute,
then the element is associated with the region referenced by the most
immediate ancestor that specifies this attribute;
if the element contains a descendant element that
specifies a region
attribute,
then the element is associated with the region referenced by that
attribute;
if a default region was implied (due to the absence of any
region
element),
then the element is associated with the default region;
the element is not associated with any region.
The pseudo-code shown in Example – Content Hierarchy Region Mapping provides one possible algorithm that implements these processing steps.
PREPARE-CONTENT ( D ) := foreach R in SELECT ( D, "/tt/head/layout/region" ) if TEMPORALLY-ACTIVE? ( R ) APPEND-CHILDREN ( R, SELECT ( D, "/tt/body" ) ) foreach E in POSTORDER-TRAVERSE ( R ) if ! CONTENT-ELEMENT? ( E ) or ! TEMPORALLY-ACTIVE? ( E ) or EMPTY? ( E ) or REGION-OF ( E ) != R then PRUNE ( E ) PRUNE ( SELECT ( D, "/tt/body" ) ) PRUNE ( SELECT ( D, "//*/@region" ) ) PRUNE ( SELECT ( D, "//*/@begin" ) ) PRUNE ( SELECT ( D, "//*/@end" ) ) PRUNE ( SELECT ( D, "//*/@dur" ) ) REGION-OF ( E ) := if NULL? ( E ) return NULL else if HAS-ATTRIBUTE? ( E, "region" ) return VALUE-OF-ATTRIBUTE ( E, "region" ) else return REGION-OF ( PARENT-OF ( E ) ) |
The result of performing the processing described above will be a sequence of N intermediate synchronic document instances, DOCinter0 … DOCinterN−1.
Subsequent to performing a temporal (synchronic) slice and subsequent remapping of regionally selected content hierarchy, the resulting intermediate synchronic document is subjected to a flow transformation step that produces a rooted flow object tree represented as an XSL FO document instance as defined by [XSL 1.1], and semantically extended by TT AF specific style properties that have no XSL FO counterpart.
Each intermediate synchronic document produced by 9.3.2 Intermediate Synchronic Document Construction is mapped to an XSL FO document instance, F, as follows:
perform the following ordered sub-steps to create anonymous spans:
for each significant text node in a content element, synthesize an anonymous span to enclose the text node, substituting the new anonymous span for the original text node child in its sibling and parent hierarchy;
for each contiguous sequence of anonymous spans, replace the sequence with a single anonymous span which contains a sequence of text nodes representing the individual text node children of the original sequence of anonymous spans;
for each span element whose child is a single anonymous span, replace the anonymous span with its sequence of child text nodes;
resolve styles according to 8.4.4.4 Style Resolution Process;
map the tt
element to an fo:root
element, populated
initially with an fo:layout-master-set
element that contains a valid
fo:simple-page-master
that, in turn, contains an
fo:region-body
child, where the root container extent expressed on the
tt
element is mapped to page-width
and
page-height
attributes on the fo:simple-page-master
element;
map the layout
element to an fo:page-sequence
element and a
child fo:flow
element that reference the page master and page region
defined by the simple page master produced above;
map each non-empty region
element to an fo:block-container
element with an absolute-position
attribute with value
absolute
, and where the region's position and extent are mapped to equivalent
top
, left
, width
, and height
attributes;
for each body
, div
, and p
element that is not
associated with a tts:display
style property with the value
none
, map the element to a distinct fo:block
element,
populating the style properties of fo:block
by using the computed
style set associated with each original TT AF content element;
for the resulting fo:block
formatting object
produced in the previous step that corresponds to the body
element, synthesize and append to the end of its children an empty
fo:block
with the following attributes:
space-after.optimum
, space-after.maximum
, and
space-after.conditionality
, where the value of the former
two attributes is the height or width of the containing
fo:block-container
element, whichever of these is designated
as the block progression dimension, and where the value of the last is
retain
;
for each span
element that is not
associated with a tts:display
style property with the value
none
and for each anonymous
span that is a child of a p
or span
element,
map the element or
sequence of character items to a distinct fo:inline
element,
populating the style properties of fo:inline
by using the computed
style set associated with each original TT AF content element
or anonymous span;
for each br
element that is not
associated with a tts:display
style property with the value
none
, map the element
to a distinct fo:character
element having the following
properties:
character="
"
suppress-at-line-break="retain"
for each TT AF style property attribute in some computed style set that has no counterpart in [XSL 1.1], map that attribute directly through to the relevant formatting object produced by the input TT AF content element to which the style property applies;
optionally, synthesize a unique id
attribute on each resulting
formatting object element that relates that element to the input element that
resulted in that formatting object element;
For each resulting XSL FO document instance DOCFO, if processing requires presentation on a visual medium, then apply the formatting semantics prescribed by [XSL 1.1] in order to produce an XSL FO area tree that may then be subsequently rendered onto the visual medium.
Note:
In the XSL FO area tree produced by formatting
DOCFO, the page-viewport-area
,
which is generated by fo:page-sequence
element by
reference to the sole generated fo:simple-page-master
element, corresponds to the root container region defined
above in 2 Definitions.
Note:
Due to the possible presence of TT AF style properties or style property values in a given DFXP document instance for which there is no [XSL 1.1] counterpart, the use of a compliant [XSL 1.1] formatting processor is not necessarily sufficient to satisfy the presentation semantics defined by this specification.
An example of the processing steps described above is elaborated below, starting with Example – Sample Source Document.
<tt tts:extent="640px 480px" xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#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, each containing two paragraphs. This content is targeted (selected into) one of two non-overlapping regions that are styled identically except for their position and their foreground colors, the latter of which is inherited by and applies to the (and, in this case, anonymous) spans reparented into the regions.
The following, first intermediate document shows the synchronic state at time
interval [0,1), during which time only division d1
is temporally active,
and where paragraphs p1
and p2
(and their ancestors)
are selected into regions r1
and r2
, respectively.
Note:
The intermediate documents shown below are not valid DFXP document instances, but rather, are representations of possible internal processing states used for didactic purposes.
<tt tts:extent="640px 480px" xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#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 produced by performing flow processing upon the first intermediate document is shown below.
<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 id="r1" absolute-position="absolute" left="10px" top="100px" width="620px" height="96px" background-color="black" display-align="center"> <!-- body (b1) --> <fo:block id="b1-1"> <!-- div (d1) --> <fo:block id="d1-1"> <!-- p (p1) --> <fo:block id="p1" text-align="center"> <fo:inline font-size="40px" font-weight="bold" color="red">Text 1</fo:inline> </fo:block> </fo:block> <!-- body's space 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 id="r2" absolute-position="absolute" left="10px" top="300px" width="620px" height="96px" background-color="black" display-align="center"> <!-- body (b1) --> <fo:block id="b1-2"> <!-- div (d1) --> <fo:block id="d1-2"> <!-- p (p2) --> <fo:block id="p2" text-align="center"> <fo:inline font-size="40px" font-weight="bold" color="yellow">Text 2</fo:inline> </fo:block> </fo:block> <!-- body's space 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 at
time interval [1,2), at which time both divisions d1
and
d2
are temporally active, and where paragraphs p1
and
p4
(and their ancestors) are selected into region r1
and paragraphs p2
and p3
(and their ancestors) are
selected into region r2
.
<tt tts:extent="640px 480px" xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#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 at time
interval [2,3), at which time only division d2
is temporally active,
and where paragraphs p4
and p3
(and their ancestors)
are selected into regions r1
and r2
, respectively.
<tt tts:extent="640px 480px" xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#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> |
The semantics of line layout, including line breaking, defined by [XSL 1.1] apply to the performance of the composition and layout of lines for presentation processing of a document instance on a visual medium.
If a profile that applies to a document instance
requires use of the #lineBreak-uax14 feature
(i.e., the value attribute for the feature is specified as use
), then
the recommendations defined by Line
Breaking Algorithm [UAX14] apply when performing
line layout on the content of the document instance.
No timing related element vocabulary is defined for use in the core vocabulary catalog.
This section defines the following basic timing attributes for use with timed elements:
In addition, this section defines the 10.2.4 timeContainer attribute for use with timed elements that serve simultaneously as timing containers.
The begin
attribute is used to specify the begin
point of a temporal interval associated with a timed element. If
specified, the value of a begin
attribute must adhere to
a <timeExpression> specification as defined by 10.3.1 <timeExpression>.
The begin point of a temporal interval is included in the interval; i.e., the interval is left-wise closed.
The semantics of the begin
attribute are those defined
by [SMIL 2.1], § 10.4.1,
while taking into account any overriding semantics defined by this specification.
The end
attribute is used to specify the ending point
of a temporal interval associated with a timed element. If
specified, the value of an end
attribute must adhere to a
<timeExpression> specification as defined by 10.3.1 <timeExpression>.
The ending point of a temporal interval is not included in the interval; i.e., the interval is right-wise open.
The presentation effects of a non-empty active temporal interval include the frame immediately prior to the frame (or tick) equal to or immediately following the time specified by the ending point, but do not extend into this latter frame (or tick).
Note:
For example, if an active interval is [10s,10.33333s), and the frame rate is 30 frames per second, then the presentation effects of the interval are limited to frames 300 through 309 only (assuming that 0s corresponds with frame 0). The same holds if the active interval is specified as [300f,310f).
The semantics of the end
attribute are those defined
by [SMIL 2.1], § 10.4.1,
while taking into account any overriding semantics defined by this specification.
The dur
attribute is used to specify the duration of a
temporal interval associated with a timed element. If specified,
the value of a dur
attribute must adhere to a
<timeExpression> specification as defined by 10.3.1 <timeExpression>.
The semantics of the dur
attribute are those defined
by [SMIL 2.1], § 10.4.1,
while taking into account any overriding semantics defined by this specification.
If specified, the value of a timeContainer
attribute must be one
of the following:
Time container semantics applies only to the following element types:
The semantics of parallel and sequential time containment are those defined by [SMIL 2.1], § 10.3.2, while taking into account any overriding semantics defined by this specification.
Timing attribute values include the use of the following expressions:
See 6.2.11 ttp:timeBase, 6.2.3 ttp:frameRate, 6.2.9 ttp:subFrameRate, and 6.2.10 ttp:tickRate for further information on explicit specification of time base, frame rate, sub-frame rate, and tick rate.
<timeExpression> : clock-time | offset-time clock-time : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )? offset-time : time-count fraction? metric hours : <digit> <digit> | <digit> <digit> <digit>+ minutes | seconds : <digit> <digit> frames : <digit> <digit> | <digit> <digit> <digit>+ sub-frames : <digit>+ fraction : "." <digit>+ time-count : <digit>+ metric : "h" // hours | "m" // minutes | "s" // seconds | "ms" // milliseconds | "f" // frames | "t" // ticks |
If a <timeExpression> is expressed in terms of a clock-time, then leading zeroes are used when expressing hours, minutes, seconds, and frames less than 10. Minutes are constrained to the range [0…59], while seconds are constrained to [0…60], where the value 60 applies only to leap seconds.
If a <timeExpression> is expressed in terms of a
clock-time and a frames term is specified,
then the value of this term must be constrained to the interval
[0…F-1], where F is the frame rate
determined by the the ttp:frameRate
parameter as defined
by 6.2.3 ttp:frameRate.
If a <timeExpression> is expressed in terms of a
clock-time and a sub-frames term is specified,
then the value of this term must be constrained to the interval
[0…S-1], where S is the sub-frame rate
determined by the the ttp:subFrameRate
parameter as defined
by 6.2.9 ttp:subFrameRate.
The semantics of time containment, durations, and intervals defined by [SMIL 2.1] apply to the interpretation of like-named timed elements and timing vocabulary defined by this specification, given the following constraints:
The implicit duration of
an anonymous span
is defined as follows: if
the
anonymous span's
parent time container is a parallel time container, then
the implicit duration is equivalent to the indefinite
duration value as defined by [SMIL 2.1]; if the
anonymous span's
parent time container is a sequential time container, then the
implicit duration is equivalent to zero.
The implicit duration of a body
, div
, p
,
or span
element is determined in accordance to (1) whether
the element is a parallel or sequential time container, and (2) the
semantics of [SMIL 2.1] as applied to these time
containers.
The implicit duration of the region
element is defined to
be equivalent to the indefinite
duration value as defined by [SMIL 2.1].
If the governing time mode is media
or
smpte
with mode continuous
, then time
expressions must be interpreted as equivalent to offset clock values
related to the associated media time line.
If the governing time mode is smpte
with mode
discontinuous
, then time expressions must be interpreted
as equivalent to marker values produced by an external marker event
source, in which case all time expressions are equivalent to event
based timing in [SMIL 2.1].
If the governing time mode is clock
, then time
expressions must be interpreted as equivalent to wallclock time
expressions in [SMIL 2.1], where the applicable wallclock
used is determined by the clock mode parameter.
The following elements specify the structure and principal animation aspects of a document instance:
The set
element accepts as its children zero or more
elements in the Metadata.class
element group.
<set begin = <timeExpression> dur = <timeExpression> end = <timeExpression> xml:id = ID xml:lang = string xml:space = (default|preserve) {a single attribute in TT Style namespace} {any attribute not in default or any TT namespace}> Content: Metadata.class* </set> |
An example of using the set
element to animate content
styling is illustrated below:
... <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> ... |
An example of using the set
element to animate region
styling is illustrated below:
<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter" xmlns:tts="http://www.w3.org/2006/10/ttaf1#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> |
The 12.1.1 metadata element serves as a generic container element for grouping metadata information.
In addition, the following elements, all defined in the TT Metadata Namespace, provide standard representations for common metadata that is expected to be commonly used in a document instances:
The metadata
element functions as a generic container for metadata
information.
The use of document metadata is illustrated by the following example.
... <head> <metadata xmlns:ttm="http://www.w3.org/2006/10/ttaf1#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.
... <div> <metadata xmlns:ttm="http://www.w3.org/2006/10/ttaf1#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.
... <div xmlns:ext="http://foo.bar.example.org/ttaf1#metadata"> <metadata ext:ednote="remove this division prior to publishing"/> </div> ... |
The ttm:title
element is used to express a human-readable title of
a specific element instance.
Examples of the ttm:name
element are shown above in
Example Fragment – Document Metadata and
Example Fragment – Element Metadata.
The ttm:desc
element is used to express a human-readable description of
a specific element instance.
Examples of the ttm:desc
element are shown above in
Example Fragment – Document Metadata and
Example Fragment – Element Metadata.
The use of agent metadata is illustrated by the following example.
<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#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> ... <p ttm:agent="bond">I travel, a sort of licensed troubleshooter.</p> ... </div> </body> </tt> |
The ttm:name
element is used to specify a name of a person, character,
group, or organization.
Two examples of the ttm:name
element are shown above in
Example Fragment – Agent Metadata.
An example of the ttm:actor
element is shown above in
Example Fragment – Agent Metadata.
Note:
Only certain metadata item attributes may be used with content elements. See the definitions of content elements to determine permissible usage.
An example of the ttm:agent
attribute is shown above in
Example Fragment – Agent Metadata.
If specified, the value of this attribute must adhere to the following
syntax, where
the syntactic element S must adhere to production
[3] S
as defined by [XML 1.0] §
2.3:
ttm:role role ( S role )* role : "action" | "caption" | "description" | "dialog" | "expletive" | "kinesic" | "lyrics" | "music" | "narration" | "quality" | "sound" | "source" | "suppressed" | "reproduction" | "thought" | "title" | "transcription" | extension-role extension-role : "x-" token-char+ token-char : { XML NameChar } // XML 1.1 Production [4a] |
Note:
All values of ttm:role
that do not start with the prefix
x-
are reserved for future standardization.
For the purposes of this specification, a Reduced XML Infoset is an XML Information Set [XML InfoSet] that consists of only the following information items and information item properties:
This sub-section is non-normative.
In describing dynamic flow, the flow process is logically divided into two types of flow operations:
Each region subject to dynamic flow processing may be modeled in terms of:
the region with a definite extent, into which content is to be flowed;
two independent flow operation single-shot timers: a fill timer and a clear timer;
a set of state parameters that includes:
fill unit, as specified by the flowUnit
argument
of the in()
flow function;
fill style, as specified by the flowStyle
argument
of the in()
flow function;
reflow unit, which is set to the same value as the clear unit parameter;
reflow style, which is set to the same value as the clear style parameter;
clear unit, as specified by the flowUnit
argument
of the out()
flow function;
clear style, as specified by the flowStyle
argument
of the out()
flow function;
fill interval, as specified by the fill()
flow interval function;
clear interval, as specified by the clear()
flow interval function;
computed fill interval, as determined by the flow interval timing calculation below;
computed clear interval, as determined by the flow interval timing calculation below;
last fill time, the time at which the last fill operation occurred;
last clear time, the time at which the last clear operation occurred;
The content of a flow buffer is defined to be equivalent (in form) to the
content of an fo:block-container
element produced by
9.3.3 Synchronic Flow Processing, and represents
content that is awaiting, but has not yet been flowed into (made
visible in) the
presentation region with which the flow buffer is associated.
Note:
In the context of dynamic flow processing, the temporal extent of a region's flow buffer is assumed to persist over a period that includes multiple instantiations of synchronous intermediate documents, as described by 9.3.3 Synchronic Flow Processing. This is feasible since the set of regions associated with a DFXP document instance is fixed and determined statically at authoring time.
The temporal content of a flow buffer is related to the performance of 9.3 Region Layout and Presentation as follows:
At the time a dynamically flowed presentation region becomes temporally active, its flow buffer is reset to the empty state;
If times Tk
and
Tk+1
are two immediately adjacent time
coordinates at which synchronic region construction occurs, with
Tk≤Tk+1
, then compute the
difference between the content produced for use in the region between
time Tk
and time Tk+1
,
characterizing the difference as one of the following:
no difference present;
difference present, but only before the logical content position that corresponds with the most logically prior content presently visible in the region;
difference present, but only between the logical content positions that correspond with the most logically prior and subsequent content presently visible in the region;
difference present, but only after the logical content position that corresponds with the most logically subsequent content presently visible in the region;
difference present, but not limited to before, between, or after the logical content positions that correspond with the most logically prior and subsequent content presently visible in the region;
If any one of the conditions 2a, 2b, and 2c applies, then do not change the flow buffer.
If condition 2d applies, then replace
at time Tk+1
the affected
content of the flow buffer with the new content (in part or in whole) that corresponds with
time Tk+1
such that the
logical content position
of the content that
corresponds with the start of the flow buffer does not change with
respect to the corresponding
logical content position of the previous content.
If condition 2e applies, then subdivide the new content that
corresponds with time Tk+1
into two parts: (1)
that part that wholly precedes the
logical content position that corresponds with the
most logically subsequent content presently visible in the region, and
(2) that part that corresponds with or wholly follows the
logical content position
that corresponds with the most logically subsequent content presently
visible in the region, then ignore the first part and process the second part
in the same manner as if condition 2d had originally applied.
If after performing the above steps the flow buffer is non-empty, then perform the following steps:
If, due to style property animation, the dynamic flow state parameters for the region have changed since last performing this procedure, then re-perform the process described in B.3 Flow Interval Timing Calculation, then reset both fill and clear timers to their inactive state.
If using automatic flow interval timing, then re-perform the process described in B.3 Flow Interval Timing Calculation.
If the fill timer is not active, then reset the fill timer to the current value of the computed fill interval.
In the procedure described above, the content of a flow
buffer at time Tk
is considered to be
significantly different from the content of the same flow buffer at
time Tk+1
if the set of glyph areas that would
be produced by
performing synchronic flow processing on the intermediate
synchronic document at time
Tk
differs from the set of glyph areas that
would be produced by
performing synchronic flow processing on the intermediate
synchronic document at time
Tk+1
in any of the following ways:
the number of glyph areas are different;
the (positionally) ordered sets of glyphs associated with the two sets of glyph areas are different;
the positions assigned to the glyph images associated with the two sets of glyph areas are different;
Note:
Other potential, but insignificant differences (as far as flow buffer processing is concerned) between the two sets of glyph areas are ignored, including (among others) differences in: background color, foreground color, glyph decoration(s), actual presentation order of glyphs (independently from their assigned position).
If the value of a style property assigned to content awaiting in a flow buffer or already dynamically flowed into a presentation region is changed due to animation or other temporal effects, and that style property change is not otherwise construed as a significant difference between temporal flow buffer states as described above, then the semantic, presentation effects of that change of value still apply.
In the procedure described above, the phrase logical content position refers to a tuple [active duration begin time, active duration end time, character information item index], where the active duration begin and end times refer to the computed active time interval for which the character information item is considered active, where the character information item index refers to the logical index of the character information item in the synchronic intermediate document instance associated with the character information item, and where the logical index of the character information item refers to the enumeration index that results by performing a post-order traversal enumeration of the character information items contained in the region sub-tree (of the synchronic intermediate document instance) associated with the presentation region of the current flow buffer.
A logical content position P0 is considered to be prior to (before) logical content position P1 if (1) the active duration begin time of P0 is temporally prior to the active duration begin time of P1, or (2) the active duration begin times of P0 and P1 are equal and the character information item index of P0 precedes (is less than) the character information item index of P1. Similarly, a logical content position P0 is considered to be subsequent to (after) logical content position P1 if (1) the active duration begin time of P0 is temporally subsequent to the active duration begin time of P1, or (2) the active duration begin times of P0 and P1 are equal and the character information item index of P0 follows (is greater than) the character information item index of P1. If a logical content position P0 and a logical content position P1 are neither prior nor subsequent to one another, then they are considered to be the same logical content position (in the present context).
A fill operation causes the following ordered steps to be performed:
reset the last fill time to the current value of the flow timers timeline;
reset the fill timer to the current value of the computed fill interval.
A clear operation causes the following ordered steps to be performed:
A combined flow operation causes the following ordered steps to be performed:
if the presentation region contains sufficient formatted content to compose a clear unit, then perform the processing described in B.4.3 Clear Operation;
if (1) the space created by the above clear operation is sufficient to accept a reflow unit and (2) the presentation region contains sufficient formatted content to compose a reflow unit, then perform the processing described in B.4.2 Reflow Operation;
if (1) the difference between the current value of the flow timers timeline and the last fill time is greater than or equal to the current value of the computed fill interval, (2) the presentation region contains sufficient space to accept a fill unit, and (3) the flow buffer contains sufficient content to compose a fill unit, then perform the processing described in B.4.1 Fill Operation;
If more than one of the clear, reflow or fill operations would be performed by the above steps, then the visual rendering of these operations should be performed in such a manner as to reduce or eliminate delays between the completion of one operation and the start of the next operation.
Note:
For example, if the applicable clear, reflow, and fill styles are
indicated as smooth
flow style, then it should appear
that the clear, reflow, and fill units are simultaneously translated
in a continuous, smooth translation.
In the case of continuous time bases, the timeline of
flow timers follows (is synchronized with) the time base that applies
to the document instance as determined by the ttp:timeBase
parameter; however, in the case of a discontinuous time base, the
timeline of flow timers follows real (clock) time.
Note:
The semantics of flow timer initiated processing expressed below reflects the intent that clear and reflow operations or clear, reflow, and flow operations are performed simultaneously if the (logically, but not necesesarily temporally) prior operation would create sufficient space in the presentation region to accept the subsequent unit of formatted content.
When resetting a flow timer, the dynamic flow lock must first be acquired prior to changing the flow timer's value, and must be released immediately after making the change.
Each time the fill timer expires, the following ordered steps are performed:
if (1) the presentation region is non-full and contains sufficient space to accept a fill unit and (2) the flow buffer contains sufficient content to compose a fill unit, then perform the processing described in B.4.1 Fill Operation;
if the presentation region is non-empty, then perform the following ordered sub-steps:
if the clear timer is not active, then reset the clear timer to the current value of the computed clear interval;
if the fill timer is not active and the flow buffer is empty, then reset the fill timer to the current value of the computed fill interval.
otherwise (the difference between the current value of the flow timers timeline and the last fill time is less than the current value of the computed fill interval), reset the fill timer to the difference between the current value of the computed fill interval and the current value of the flow timers timeline;
release dynamic flow lock.
Each time the clear timer expires, the following ordered steps are performed:
if the presentation region is non-empty and contains sufficient formatted content to compose a clear unit and either (1) the presentation region is so full as to prevent it from accepting another fill unit or (2) the flow buffer is empty, then perform the processing described in B.4.4 Combined Flow Operation;
otherwise (the difference between the current value of the flow timers timeline and the last clear time is less than the current value of the computed clear interval), reset the clear timer to the difference between the current value of the computed clear interval and the current value of the flow timers timeline;
release dynamic flow lock.
This appendix specifies the following schemas for use with DFXP document instances:
This section specifies a Relax NG Compact Syntax (RNC) [RELAX NG] based schema for DFXP, also available in a ZIP Archive.
This section specifies a W3C XML Schema Definition (XSD) [XML Schema Part 1] based schema for DFXP, also available in a ZIP Archive.
This appendix registers a new MIME media type, "application/ttaf+xml" in conformance with BCP 13 and W3CRegMedia. The information in this appendix is being submitted to the Internet Engineering Steering Group (IESG) for review, approval, and registration with the Internet Assigned Numbers Authority (IANA).
application
ttaf+xml
None.
The encoding of a TT AF document must be determined by the XML encoding declaration. This has identical semantics to the application/xml media type in the case where the charset parameter is omitted, as specified in [XML Media], Sections 8.9, 8.10 and 8.11.
The document profile of a TT AF document may be specified using
an optional profile
parameter, which, if specified,
the value of which must adhere to the syntax and semantics of
ttp:profile
parameter defined by
Section
6.2.7 ttp:profile
of the published specification.
Same for application/xml. See [XML Media], Section 3.2.
None.
As with other XML types and as noted in [XML Media] Section 10, repeated expansion of maliciously constructed XML entities can be used to consume large amounts of memory, which may cause XML processors in constrained environments to fail.
In addition, because of the extensibility features for TT AF and of XML in general, it is possible that "application/ttaf+xml" may describe content that has security implications beyond those described here. However, if the processor follows only the normative semantics of the published specification, this content will be outside TT AF namespaces and may be ignored. Only in the case where the processor recognizes and processes the additional content, or where further processing of that content is dispatched to other processors, would security issues potentially arise. And in that case, they would fall outside the domain of this registration document.
The published specification describes processing semantics that dictate behavior that must be followed when dealing with, among other things, unrecognized elements and attributes, both in TT AF namespaces and in other namespaces.
Because TT AF is extensible, conformant "application/ttaf+xml" processors must expect that content received is well-formed XML, but it cannot be guaranteed that the content is valid to a particular DTD or Schema or that the processor will recognize all of the elements and attributes in the document.
This media type registration is extracted from Appendix D Media Type Registration of the Timed Text (TT) Authoring Format 1.0 - Distribution Format Exchange Profile (DFXP) specification.
None.
Glenn Adams (public-tt@w3.org)
COMMON
The published specification is a work product of the World Wide Web Consortium's Timed Text (TT) Working Group. The W3C has change control over this specification.
A feature designation is expressed as a string that adheres to the following form:
A TT AF transformation processor supports the #animation
feature if it recognizes and is capable of transforming the following
vocabulary defined by 11 Animation:
A TT AF presentation processor supports the #animation
feature if it implements presentation semantic support for the
same vocabulary enumerated above.
A TT AF transformation processor supports the
#backgroundColor
feature if it recognizes and is capable of
transforming the tts:backgroundColor
attribute.
A TT AF presentation processor supports the
#backgroundColor
feature if it (1) implements presentation semantic support
for the tts:backgroundColor
attribute
and (2) is capable of displaying or generating an output display
signal that distinguishes between at least sixteen (16) values of color,
including all primary and secondary colors of the SRGB color space.
A TT AF transformation processor supports the
#backgroundColor-block
feature if it recognizes and is
capable of transforming all defined values of the tts:backgroundColor
attribute when applied to a content element that would generate a
block area during presentation processing.
A TT AF presentation processor supports the
#backgroundColor-block
feature if it (1) implements presentation semantic
support for the tts:backgroundColor
attribute when applied to a content element that generates a
block area
and (2) is capable of displaying or generating an output display
signal that distinguishes between at least sixteen (16) values of color,
including all primary and secondary colors of the SRGB color space.
A TT AF transformation processor supports the
#backgroundColor-inline
feature if it recognizes and is
capable of transforming all defined values of the tts:backgroundColor
attribute when applied to a content element that would generate an
inline area during presentation processing.
A TT AF presentation processor supports the
#backgroundColor-inline
feature if it (1) implements presentation semantic
support for the tts:backgroundColor
attribute when applied to a content element that generates an
inline area
and (2) is capable of displaying or generating an output display
signal that distinguishes between at least sixteen (16) values of color,
including all primary and secondary colors of the SRGB color space.
A TT AF transformation processor supports the
#backgroundColor-region
feature if it recognizes and is
capable of transforming all defined values of the tts:backgroundColor
attribute when applied to a region
element.
A TT AF presentation processor supports the
#backgroundColor-region
feature if it (1) implements presentation semantic
support for the tts:backgroundColor
attribute when applied to a region
element
and (2) is capable of displaying or generating an output display
signal that distinguishes between at least sixteen (16) values of color,
including all primary and secondary colors of the SRGB color space
.
A TT AF transformation processor supports the
#cellResolution
feature if it recognizes and is capable of
transforming the ttp:cellResolution
attribute.
A TT AF presentation processor supports the
#cellResolution
feature if it implements presentation semantic support
for the ttp:cellResolution
attribute.
A TT AF transformation processor supports the
#clockMode
feature if it recognizes and is capable of
transforming the ttp:clockMode
attribute.
A TT AF presentation processor supports the
#clockMode
feature if it implements presentation semantic support
for the ttp:clockMode
attribute.
A TT AF transformation processor supports the
#color
feature if it recognizes and is capable of
transforming the tts:color
attribute.
A TT AF presentation processor supports the
#color
feature if it (1) implements presentation semantic support
for the tts:color
attribute
and (2) is capable of displaying or generating an output display
signal that distinguishes between at least sixteen (16) values of color,
including all primary and secondary colors of the SRGB color space.
A TT AF transformation processor supports the #content
feature if it recognizes and is capable of transforming the following
vocabulary defined by 7 Content:
A TT AF presentation processor supports the #content
feature if it implements presentation semantic support for the
same vocabulary enumerated above.
A TT AF transformation processor supports the #core
feature if it recognizes and is capable of transforming the following
core attributes vocabulary defined by 7 Content:
A TT AF presentation processor supports the #core
feature if it implements presentation semantic support for the
same vocabulary enumerated above.
A TT AF transformation processor supports the
#direction
feature if it recognizes and is capable of
transforming all defined values of the tts:direction
attribute.
A TT AF presentation processor supports the
#direction
feature if it implements presentation semantic support
for all defined values of the tts:direction
attribute.
A TT AF transformation processor supports the
#display
feature if it recognizes and is capable of
transforming all defined values of the tts:display
attribute.
A TT AF presentation processor supports the
#display
feature if it implements presentation semantic support
for all defined values of the tts:display
attribute.
A TT AF transformation processor supports the
#display-block
feature if it recognizes and is
capable of transforming all defined values of the tts:display
attribute when applied to a content element that would generate a
block area during presentation processing.
A TT AF presentation processor supports the
#display-block
feature if it implements presentation semantic
support for all defined values of the tts:display
attribute when applied to a content element that generates a
block area.
A TT AF transformation processor supports the
#display-inline
feature if it recognizes and is
capable of transforming all defined values of the tts:display
attribute when applied to a content element that would generate an
inline area during presentation processing.
A TT AF presentation processor supports the
#display-inline
feature if it implements presentation semantic
support for all defined values of the tts:display
attribute when applied to a content element that generates an
inline area.
A TT AF transformation processor supports the
#display-region
feature if it recognizes and is
capable of transforming all defined values of the tts:display
attribute when applied to a region
element.
A TT AF presentation processor supports the
#display-region
feature if it implements presentation semantic
support for all defined values of the tts:display
attribute when applied to a region
element.
A TT AF transformation processor supports the
#displayAlign
feature if it recognizes and is capable of
transforming all defined values of the tts:displayAlign
attribute.
A TT AF presentation processor supports the
#displayAlign
feature if it implements presentation semantic support
for all defined values of the tts:displayAlign
attribute.
A TT AF transformation processor supports the
#dynamicFlow
feature if it recognizes and is capable of
transforming all defined values of the tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow
feature if it implements presentation semantic support
for all defined values of the tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-character
feature if it recognizes and
is capable of transforming the flow unit character
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-character
feature if it implements
presentation semantic support for the flow unit character
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-clear
feature if it recognizes and
is capable of transforming the flow interval function clear(..)
as
defined by 8.3.7 <flowIntervalFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-clear
feature if it implements
presentation semantic support for the flow interval function clear(..)
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-fill
feature if it recognizes and
is capable of transforming the flow interval function fill(..)
as
defined by 8.3.7 <flowIntervalFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-fill
feature if it implements
presentation semantic support for the flow interval function fill(..)
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-glyph
feature if it recognizes and
is capable of transforming the flow unit glyph
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-glyph
feature if it implements
presentation semantic support for the flow unit glyph
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-in
feature if it recognizes and
is capable of transforming the flow function in(..)
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-in
feature if it implements
presentation semantic support for the flow function in(..)
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-jump
feature if it recognizes and
is capable of transforming the flow style jump
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-jump
feature if it implements
presentation semantic support for the flow style jump
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-line
feature if it recognizes and
is capable of transforming the flow unit line
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-line
feature if it implements
presentation semantic support for the flow unit line
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-out
feature if it recognizes and
is capable of transforming the flow function out(..)
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-out
feature if it implements
presentation semantic support for the flow function out(..)
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-rollUp
feature if it recognizes and is
capable of transforming the rollUp
value of the tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-rollUp
feature if it implements presentation semantic
support for the rollUp
of the tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-smooth
feature if it recognizes and
is capable of transforming the flow style smooth
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-smooth
feature if it implements
presentation semantic support for the flow style smooth
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#dynamicFlow-teletext
feature if it recognizes and
is capable of transforming any well-defined value of the
tts:dynamicFlow
attribute that is equivalent to
in(glyph,jump) out(line,jump)
.
A TT AF presentation processor supports the
#dynamicFlow-teletext
feature if it implements presentation semantic
support for any well-defined value of the
tts:dynamicFlow
attribute that is equivalent to in(glyph,jump)
out(line,jump)
.
A TT AF transformation processor supports the
#dynamicFlow-word
feature if it recognizes and
is capable of transforming the flow unit word
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF presentation processor supports the
#dynamicFlow-word
feature if it implements
presentation semantic support for the flow unit word
as
defined by 8.3.6 <flowFunction> when used with the
tts:dynamicFlow
attribute.
A TT AF transformation processor supports the
#extent
feature if it recognizes and is capable of
transforming the tts:extent
attribute.
A TT AF presentation processor supports the
#extent
feature if it implements presentation semantic support for
the tts:extent
attribute.
A TT AF transformation processor supports the
#fontFamily
feature if it recognizes and is capable of
transforming the tts:fontFamily
attribute.
A TT AF presentation processor supports the
#fontFamily
feature if it implements presentation semantic support
for the tts:fontFamily
attribute.
A TT AF transformation processor supports the
#fontFamily-generic
feature if it recognizes and is
capable of transforming <genericFamilyName>
values when used with the tts:fontFamily
attribute.
A TT AF presentation processor supports the
#fontFamily-generic
feature if it implements presentation semantic
support for <genericFamilyName>
values when used with the tts:fontFamily
attribute.
A TT AF transformation processor supports the
#fontFamily-non-generic
feature if it recognizes and is
capable of transforming <familyName>
values when used with the tts:fontFamily
attribute.
A TT AF presentation processor supports the
#fontFamily-non-generic
feature if it implements presentation semantic
support for <familyName>
values when used with the tts:fontFamily
attribute.
A TT AF transformation processor supports the
#fontSize
feature if it recognizes and is capable of
transforming the tts:fontSize
attribute.
A TT AF presentation processor supports the
#fontSize
feature if it implements presentation semantic support
for the tts:fontSize
attribute.
A TT AF transformation processor supports the
#fontSize-anisomorphic
feature if it recognizes and is
capable of transforming values of the tts:fontSize
attribute that consist of two <length> specifications.
A TT AF presentation processor supports the
#fontSize-anisomorphic
feature if it implements presentation semantic
support for defined values of the tts:fontSize
attribute that consist of two <length> specifications.
A TT AF transformation processor supports the
#fontSize-isomorphic
feature if it recognizes and is
capable of transforming values of the tts:fontSize
attribute that consist of a single <length> specification.
A TT AF presentation processor supports the
#fontSize-isomorphic
feature if it implements presentation semantic
support for defined values of the tts:fontSize
attribute that consist of a single <length> specification.
A TT AF transformation processor supports the
#fontStyle
feature if it recognizes and is capable of
transforming all defined values of the tts:fontStyle
attribute.
A TT AF presentation processor supports the
#fontStyle
feature if it implements presentation semantic support
for all defined values of the tts:fontStyle
attribute.
A TT AF transformation processor supports the
#fontStyle-italic
feature if it recognizes and is
capable of transforming the italic
value of the tts:fontStyle
attribute.
A TT AF presentation processor supports the
#fontStyle-italic
feature if it implements presentation semantic
support for the italic
of the tts:fontStyle
attribute.
A TT AF transformation processor supports the
#fontWeight
feature if it recognizes and is capable of
transforming all defined values of the tts:fontWeight
attribute.
A TT AF presentation processor supports the
#fontWeight
feature if it implements presentation semantic support
for all defined values of the tts:fontWeight
attribute.
A TT AF transformation processor supports the
#fontWeight-bold
feature if it recognizes and is
capable of transforming bold
value of the tts:fontWeight
attribute.
A TT AF presentation processor supports the
#fontWeight-bold
feature if it implements presentation semantic
support for the bold
of the tts:fontWeight
attribute.
A TT AF transformation processor supports the
#frameRate
feature if it recognizes and is capable of
transforming the ttp:frameRate
attribute.
A TT AF presentation processor supports the
#frameRate
feature if it implements presentation semantic support
for the ttp:frameRate
attribute.
A TT AF transformation processor supports the
#frameRateMultiplier
feature if it recognizes and is capable of
transforming the ttp:frameRateMultiplier
attribute.
A TT AF presentation processor supports the
#frameRateMultiplier
feature if it implements presentation semantic support
for the ttp:frameRateMultiplier
attribute.
A TT AF transformation processor supports the #layout
feature if it (1) recognizes and is capable of transforming the following
vocabulary defined by 9 Layout:
and (2) supports the following attributes when applied to the
region
element:
A TT AF presentation processor supports the #layout
feature if it implements presentation semantic support for the
same vocabulary and features enumerated above.
A TT AF transformation processor supports the #length
feature if it recognizes and is capable of transforming all defined
values of the <length>
style value expression.
A TT AF presentation processor supports the #length
feature if it implements presentation semantic support for all defined values of
the <length> style value
expression.
A TT AF transformation processor supports the
#length-cell
feature if it recognizes and is capable of
transforming scalar values of the <length> style value expression
that use c
(cell) units.
A TT AF presentation processor supports the
#length-cell
feature if it implements presentation semantic support
for scalar values of the <length> style value expression
that use c
(cell) units.
A TT AF transformation processor supports the
#length-em
feature if it recognizes and is capable of
transforming scalar values of the <length> style value expression
that use em
(EM) units.
A TT AF presentation processor supports the
#length-em
feature if it implements presentation semantic support
for scalar values of the <length> style value expression
that use em
(EM) units.
A TT AF transformation processor supports the
#length-integer
feature if it recognizes and is
capable of transforming integer values of the <length> style value
expression.
A TT AF presentation processor supports the
#length-integer
feature if it implements presentation semantic
support for integer values of the <length> style value
expression.
A TT AF transformation processor supports the
#length-negative
feature if it recognizes and is
capable of transforming negative values of the <length> style value
expression.
A TT AF presentation processor supports the
#length-negative
feature if it implements presentation semantic
support for negative values of the <length> style value
expression.
A TT AF transformation processor supports the
#length-percentage
feature if it recognizes and is
capable of transforming percentage values of the <length> style value
expression.
A TT AF presentation processor supports the
#length-percentage
feature if it implements presentation semantic
support for percentage values of the <length> style value
expression.
A TT AF transformation processor supports the
#length-pixel
feature if it recognizes and is capable of
transforming scalar values of the <length> style value expression
that use px
(pixel) units.
A TT AF presentation processor supports the
#length-pixel
feature if it implements presentation semantic support
for scalar values of the <length> style value expression
that use px
(pixel) units.
A TT AF transformation processor supports the
#length-positive
feature if it recognizes and is
capable of transforming positive values of the <length> style value
expression.
A TT AF presentation processor supports the
#length-positive
feature if it implements presentation semantic
support for positive values of the <length> style value
expression.
A TT AF transformation processor supports the
#length-real
feature if it recognizes and is
capable of transforming real values of the <length> style value
expression.
A TT AF presentation processor supports the
#length-real
feature if it implements presentation semantic
support for real values of the <length> style value
expression.
A TT AF transformation processor supports the
#lineBreak-uax14
feature if it recognizes and is capable of
transforming requirements expressed by [UAX14] into its
target document space.
A TT AF presentation processor supports the
#lineBreak-uax14
feature if it implements presentation semantic support
for [UAX14] as applies to line breaking.
A TT AF transformation processor supports the
#lineHeight
feature if it recognizes and is capable of
transforming the tts:lineHeight
attribute.
A TT AF presentation processor supports the
#lineHeight
feature if it implements presentation semantic support for
the tts:lineHeight
attribute.
A TT AF transformation processor supports the
#markerMode
feature if it recognizes and is capable of
transforming the ttp:markerMode
attribute.
A TT AF presentation processor supports the
#markerMode
feature if it implements presentation semantic support
for the ttp:markerMode
attribute.
A TT AF transformation processor supports the #metadata
feature if it recognizes and is capable of transforming the following
vocabulary defined by 12 Metadata:
A TT AF presentation processor supports the #metadata
feature if it recognizes and is capable of presenting the information
expressed by the same vocabulary enumerated above.
Note:
This specification does not define a standardized form for the presentation of metadata information. The presentation or ability to present metadata information is considered to be implementation dependent.
A TT AF transformation processor supports the #nested-div
feature if it recognizes and is capable of transforming nested
div
elements.
A TT AF presentation processor supports the #nested-div
feature if it implements presentation semantic support for nested
div
elements.
A TT AF transformation processor supports the #nested-span
feature if it recognizes and is capable of transforming nested
span
elements.
A TT AF presentation processor supports the #nested-span
feature if it implements presentation semantic support for nested
span
elements.
A TT AF transformation processor supports the
#opacity
feature if it recognizes and is capable of
transforming the tts:opacity
attribute.
A TT AF presentation processor supports the
#opacity
feature if it (1) implements presentation semantic support for
the tts:opacity
attribute and (2) is capable of displaying or generating an output display
signal that distinguishes between at least eight (8) values of opacity.
A TT AF transformation processor supports the
#origin
feature if it recognizes and is capable of
transforming the tts:origin
attribute.
A TT AF presentation processor supports the
#origin
feature if it implements presentation semantic support for
the tts:origin
attribute.
A TT AF transformation processor supports the
#overflow
feature if it recognizes and is capable of
transforming all defined values of the tts:overflow
attribute.
A TT AF presentation processor supports the
#overflow
feature if it implements presentation semantic support for
all defined values of the tts:overflow
attribute.
A TT AF transformation processor supports the
#overflow-dynamic
feature if it recognizes and is capable of
transforming the dynamic
value of the tts:overflow
attribute.
A TT AF presentation processor supports the
#overflow-dynamic
feature if it implements presentation semantic support for
the dynamic
value of the tts:overflow
attribute.
A TT AF transformation processor supports the
#padding
feature if it recognizes and is capable of
transforming the tts:padding
attribute.
A TT AF presentation processor supports the
#padding
feature if it implements presentation semantic support for
the tts:padding
attribute.
A TT AF transformation processor supports the
#padding-1
feature if it recognizes and is capable of
transforming values of the tts:padding
attribute
that consist of one <length> specification.
A TT AF presentation processor supports the #padding-1
feature if it implements presentation semantic support for values of the tts:padding
attribute
that consist of one <length> specification.
A TT AF transformation processor supports the
#padding-2
feature if it recognizes and is capable of
transforming values of the tts:padding
attribute
that consist of two <length> specification.
A TT AF presentation processor supports the #padding-2
feature if it implements presentation semantic support for values of the tts:padding
attribute
that consist of two <length> specification.
A TT AF transformation processor supports the
#padding-3
feature if it recognizes and is capable of
transforming values of the tts:padding
attribute
that consist of three <length> specification.
A TT AF presentation processor supports the #padding-3
feature if it implements presentation semantic support for values of the tts:padding
attribute
that consist of three <length> specification.
A TT AF transformation processor supports the
#padding-4
feature if it recognizes and is capable of
transforming values of the tts:padding
attribute
that consist of four <length> specification.
A TT AF presentation processor supports the #padding-4
feature if it implements presentation semantic support for values of the tts:padding
attribute
that consist of four <length> specification.
A TT AF transformation processor supports the
#pixelAspectRatio
feature if it recognizes and is capable of
transforming the ttp:pixelAspectRatio
attribute.
A TT AF presentation processor supports the
#pixelAspectRatio
feature if it implements presentation semantic support
for the ttp:pixelAspectRatio
attribute.
A TT AF processor supports the
#presentation
feature if it
(1) satisfies the generic processor criteria defined by
3.2.1 Generic Processor Conformance,
(2) implements support for the region and line layout
semantics defined by 9.3 Region Layout and Presentation and
9.4 Line Layout, respectively, and
(3) implements presentation semantics for the following features:
In addition, a TT AF processor that supports the
#presentation
feature should satisfy the user agent
accessibility guidelines specified by [UAAG].
A TT AF transformation processor supports the #profile
feature if it recognizes and is capable of transforming the
ttp:profile
attribute on the tt
element and
transforming the following vocabulary defined by
6.1 Parameter Element Vocabulary:
A TT AF presentation processor supports the
#profile
feature if it implements presentation semantic support
for the same vocabulary specified above.
A TT AF transformation processor supports the
#showBackground
feature if it recognizes and is capable
of transforming all defined values of the tts:showBackground
attribute.
A TT AF presentation processor supports the
#showBackground
feature if it implements presentation semantic support
for all defined values of the tts:showBackground
attribute.
A TT AF transformation processor supports the
#smpteMode
feature if it recognizes and is capable of
transforming the ttp:smpteMode
attribute.
A TT AF presentation processor supports the
#smpteMode
feature if it implements presentation semantic support
for the ttp:smpteMode
attribute.
A TT AF transformation processor supports the #structure
feature if it recognizes and is capable of transforming the following
vocabulary defined by 7 Content:
A TT AF presentation processor supports the #structure
feature if it implements presentation semantic support for the
same vocabulary enumerated above.
A TT AF transformation processor supports the #styling
feature if it recognizes and is capable of transforming the following
vocabulary defined by 8 Styling:
A TT AF presentation processor supports the #styling
feature if it implements presentation semantic support for the
same vocabulary enumerated above.
A TT AF transformation processor supports the
#styling-chained
feature if it recognizes and is capable
of transforming chained style association as defined by 8.4.1.3 Chained Referential Styling.
A TT AF presentation processor supports the
#styling-chained
feature if it implements presentation semantic
support for chained style association as defined by 8.4.1.3 Chained Referential Styling.
A TT AF transformation processor supports the
#styling-inheritance
feature if it recognizes and is
capable of transforming content style inheritance as defined by
8.4.2.1 Content Style Inheritance.
A TT AF presentation processor supports the
#styling-inheritance-content
feature if it implements
presentation semantic support for content style inheritance as defined by 8.4.2.1 Content Style Inheritance.
A TT AF transformation processor supports the
#styling-inheritance
feature if it recognizes and is
capable of transforming region style inheritance as defined by
8.4.2.2 Region Style Inheritance.
A TT AF presentation processor supports the
#styling-inheritance-region
feature if it implements
presentation semantic support for region style inheritance as defined by 8.4.2.2 Region Style Inheritance.
A TT AF transformation processor supports the
#styling-inline
feature if it recognizes and is capable
of transforming inline style association as defined by 8.4.1.1 Inline Styling.
A TT AF presentation processor supports the
#styling-inline
feature if it implements presentation semantic support
for inline style association as defined by 8.4.1.1 Inline Styling.
A TT AF transformation processor supports the
#styling-nested
feature if it recognizes and is capable
of transforming nested style association as defined by 8.4.1.4 Nested Styling.
A TT AF presentation processor supports the
#styling-nested
feature if it implements presentation semantic support
for nested style association as defined by 8.4.1.4 Nested Styling.
A TT AF transformation processor supports the
#styling-referential
feature if it recognizes and is capable
of transforming referential style association as defined by 8.4.1.2 Referential Styling.
A TT AF presentation processor supports the
#styling-referential
feature if it implements presentation semantic
support for referential style association as defined by 8.4.1.2 Referential Styling.
A TT AF transformation processor supports the
#subFrameRate
feature if it recognizes and is capable of
transforming the ttp:subFrameRate
attribute.
A TT AF presentation processor supports the
#subFrameRate
feature if it implements presentation semantic support
for the ttp:subFrameRate
attribute.
A TT AF transformation processor supports the
#textAlign
feature if it recognizes and is capable
of transforming all defined values of the tts:textAlign
attribute.
A TT AF presentation processor supports the
#textAlign
feature if it implements presentation semantic support
for all defined values of the tts:textAlign
attribute.
A TT AF transformation processor supports the
#textAlign-absolute
feature if it recognizes and is
capable of transforming the left
, center
,
and right
values of the tts:textAlign
attribute.
A TT AF presentation processor supports the
#textAlign-absolute
feature if it implements presentation semantic
support for the left
, center
, and
right
values of the tts:textAlign
attribute.
A TT AF transformation processor supports the
#textAlign-relative
feature if it recognizes and is
capable of transforming the start
, center
,
and end
values of the tts:textAlign
attribute.
A TT AF presentation processor supports the
#textAlign-relative
feature if it implements presentation semantic
support for the start
, center
, and
end
values of the tts:textAlign
attribute.
A TT AF transformation processor supports the
#textDecoration
feature if it recognizes and is capable
of transforming all defined values of the tts:textDecoration
attribute.
A TT AF presentation processor supports the
#textDecoration
feature if it implements presentation semantic support
for all defined values of the tts:textDecoration
attribute.
A TT AF transformation processor supports the
#textDecoration-over
feature if it recognizes and is
capable of transforming the overline
and
noOverline
values of the tts:textDecoration
attribute.
A TT AF presentation processor supports the
#textDecoration-over
feature if it implements
presentation semantic support for the overline
and
noOverline
values of the tts:textDecoration
attribute.
A TT AF transformation processor supports the
#textDecoration-through
feature if it recognizes and is
capable of transforming the lineThrough
and
noLineThrough
values of the tts:textDecoration
attribute.
A TT AF presentation processor supports the
#textDecoration-through
feature if it implements
presentation semantic support for the lineThrough
and
noLineThrough
values of the tts:textDecoration
attribute.
A TT AF transformation processor supports the
#textDecoration-under
feature if it recognizes and is
capable of transforming the underline
and
noUnderline
values of the tts:textDecoration
attribute.
A TT AF presentation processor supports the
#textDecoration-under
feature if it implements
presentation semantic support for the underline
and
noUnderline
values of the tts:textDecoration
attribute.
A TT AF transformation processor supports the
#textOutline
feature if it recognizes and is capable of
transforming the tts:textOutline
attribute.
A TT AF presentation processor supports the
#textOutline
feature if it implements presentation semantic support
for the tts:textOutline
attribute.
A TT AF transformation processor supports the
#textOutline-blur
feature if it recognizes and is capable of
transforming values of the tts:textOutline
attribute that include a blur radius specification.
A TT AF presentation processor supports the
#textOutline-blur
feature if it implements presentation semantic support
for values of the tts:textOutline
attribute that include a blur radius specification.
A TT AF transformation processor supports the
#tickRate
feature if it recognizes and is capable of
transforming the ttp:tickRate
attribute.
A TT AF presentation processor supports the
#tickRate
feature if it implements presentation semantic support
for the ttp:tickRate
attribute.
A TT AF transformation processor supports the
#timeBase-clock
feature if it recognizes and is capable
of transforming the clock
value of the ttp:timeBase
attribute and if it supports the #clockMode
feature.
A TT AF presentation processor supports the
#timeBase-clock
feature if it implements presentation
semantic support for the clock
value of the ttp:timeBase
attribute and if it supports the #clockMode
feature.
A TT AF transformation processor supports the
#timeBase-media
feature if it recognizes and is capable
of transforming the media
value of the ttp:timeBase
attribute.
A TT AF presentation processor supports the
#timeBase-media
feature if it implements presentation
semantic support for the media
value of the ttp:timeBase
attribute.
A TT AF transformation processor supports the
#timeBase-smpte
feature if it recognizes and is capable
of transforming the smpte
value of the ttp:timeBase
attribute and if it supports the #smpteMode
feature.
A TT AF presentation processor supports the
#timeBase-smpte
feature if it implements presentation
semantic support for the smpte
value of the ttp:timeBase
attribute and if it supports the #smpteMode
feature.
A TT AF transformation processor supports the
#timeContainer
feature if it recognizes and is capable of
transforming the timeContainer
attribute.
A TT AF presentation processor supports the
#timeContainer
feature if it implements presentation semantic support
for the timeContainer
attribute.
A TT AF transformation processor supports the
#time-clock
feature if it recognizes and is capable of
transforming all values of the <timeExpression> that
satisfy the following subset of time expression syntax:
<timeExpression> : hours ":" minutes ":" seconds ( fraction )?
A TT AF presentation processor supports the
#time-clock
feature if it implements presentation
semantic support for the same syntax specified above.
A TT AF transformation processor supports the
#time-clock-with-frames
feature if it supports the
#frameRate
,
#frameRateMultiplier
, and
#subFrameRate
features
and if it recognizes and is capable of
transforming all values of the <timeExpression> that
satisfy the following subset of time expression syntax:
<timeExpression> : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?
A TT AF presentation processor supports the
#time-clock-with-frames
feature if it implements
presentation semantic support for the same features and syntax
specified above.
A TT AF transformation processor supports the
#time-offset
feature if it recognizes and is capable of
transforming all values of the <timeExpression> that
satisfy the following subset of time expression syntax:
<timeExpression> : time-count fraction? ( "h" | "m" | "s" | "ms" )
A TT AF presentation processor supports the
#time-offset
feature if it implements presentation
semantic support for the same syntax specified above.
A TT AF transformation processor supports the
#time-offset-with-frames
feature if it supports the
#frameRate
,
#frameRateMultiplier
, and
#subFrameRate
features
and if it recognizes and is capable of
transforming all values of the <timeExpression> that
satisfy the following subset of time expression syntax:
<timeExpression> : time-count fraction? "f"
A TT AF presentation processor supports the
#time-offset-with-frames
feature if it implements
presentation semantic support for the same features and syntax
specified above.
A TT AF transformation processor supports the
#time-offset-with-ticks
feature if it supports the
#tickRate
feature
and if it recognizes and is capable of
transforming all values of the <timeExpression> that
satisfy the following subset of time expression syntax:
<timeExpression> : time-count fraction? "t"
A TT AF presentation processor supports the
#time-offset-with-ticks
feature if it implements presentation
semantic support for the same features and syntax specified above.
A TT AF transformation processor supports the #timing
feature if it recognizes and is capable of transforming the following
vocabulary defined by 10 Timing:
A TT AF presentation processor supports the #timing
feature if it implements presentation semantic support for the
same vocabulary enumerated above.
A TT AF processor supports the
#transformation
feature if it
(1) satisfies the generic processor criteria defined by
3.2.1 Generic Processor Conformance and
(2) implements transformation semantics for the following features:
A TT AF transformation processor supports the
#unicodeBidi
feature if it recognizes and is capable of
transforming all defined values of the tts:unicodeBidi
attribute.
A TT AF presentation processor supports the
#unicodeBidi
feature if it implements presentation semantic support
for all defined values of the tts:unicodeBidi
attribute.
A TT AF transformation processor supports the
#visibility
feature if it recognizes and is capable
of transforming all defined values of the tts:visibility
attribute.
A TT AF presentation processor supports the
#visibility
feature if it implements presentation semantic support
for all defined values of the tts:visibility
attribute.
A TT AF transformation processor supports the
#visibility-block
feature if it recognizes and is
capable of transforming all defined values of the tts:visibility
attribute when applied to a content element that would generate a
block area during presentation processing.
A TT AF presentation processor supports the
#visibility-block
feature if it implements presentation semantic
support for all defined values of the tts:visibility
attribute when applied to a content element that generates a
block area.
A TT AF transformation processor supports the
#visibility-inline
feature if it recognizes and is
capable of transforming all defined values of the tts:visibility
attribute when applied to a content element that would generate an
inline area during presentation processing.
A TT AF presentation processor supports the
#visibility-inline
feature if it implements presentation semantic
support for all defined values of the tts:visibility
attribute when applied to a content element that generates an
inline area.
A TT AF transformation processor supports the
#visibility-region
feature if it recognizes and is
capable of transforming all defined values of the tts:visibility
attribute when applied to a region
element.
A TT AF presentation processor supports the
#visibility-region
feature if it implements presentation semantic
support for all defined values of the tts:visibility
attribute when applied to a region
element.
A TT AF transformation processor supports the
#wrapOption
feature if it recognizes and is capable
of transforming all defined values of the tts:wrapOption
attribute.
A TT AF presentation processor supports the
#wrapOption
feature if it implements presentation semantic support
for all defined values of the tts:wrapOption
attribute.
A TT AF transformation processor supports the
#writingMode
feature if it recognizes and is capable
of transforming all defined values of the tts:writingMode
attribute.
A TT AF presentation processor supports the
#writingMode
feature if it implements presentation semantic support
for all defined values of the tts:writingMode
attribute.
A TT AF transformation processor supports the
#writingMode-vertical
feature if it recognizes and is
capable of transforming the tbrl
, tblr
, and
tb
values of the tts:writingMode
attribute.
A TT AF presentation processor supports the
#writingMode-vertical
feature if it implements presentation semantic
support for the tbrl
, tblr
, and
tb
values of the tts:writingMode
attribute.
A TT AF transformation processor supports the
#writingMode-horizontal
feature if it recognizes and is
capable of transforming the lrtb
, rltb
,
lr
and rl
values of the tts:writingMode
attribute.
A TT AF presentation processor supports the
#writingMode-horizontal
feature if it implements presentation semantic
support for the lrtb
, rltb
, lr
and rl
values of the tts:writingMode
attribute.
A TT AF transformation processor supports the
#writingMode-horizontal
feature if it recognizes and is
capable of transforming the lrtb
and lr
values of the tts:writingMode
attribute.
A TT AF presentation processor supports the
#writingMode-horizontal-lr
feature if it implements presentation semantic
support for the lrtb
and lr
values of the
tts:writingMode
attribute.
A TT AF transformation processor supports the
#writingMode-horizontal
feature if it recognizes and is
capable of transforming the rltb
and rl
values of the tts:writingMode
attribute.
A TT AF presentation processor supports the
#writingMode-horizontal-rl
feature if it implements presentation semantic
support for the rltb
and rl
values of the
tts:writingMode
attribute.
A TT AF transformation processor supports the
#zIndex
feature if it recognizes and is capable of
transforming the tts:zIndex
attribute.
A TT AF presentation processor supports the
#zIndex
feature if it implements presentation semantic support for
the tts:zIndex
attribute.
The following table, Table E-1 – Feature Support, enumerates every defined feature designation (expressed without the TT Feature Namespace), and, for each designated feature, specifies whether the feature is mandatory (M) or optional (O) for transformation and presentation processors.
For the sake of convenience, the following table, Table E-2 – Mandatory Features - Transformation, enumerates all mandatory features for a TT AF Transformation Processor, providing additional comments to summarize the context of usage or the nature of the feature. The TT AF Profile Definition Document that defines the corresponding DFXP Transformation Profile is specified in G.1 DFXP Transformation Profile.
Feature | Comments |
#content |
body ,
div ,
p ,
span ,
br
|
#core |
@xml:id ,
@xml:lang ,
@xml:space
|
#profile | |
#structure |
tt ,
head
|
#time-offset | |
#timing |
@begin ,
@dur ,
@end
|
#transformation |
For the sake of convenience, the following table, Table E-3 – Mandatory Features - Presentation, enumerates all mandatory features for a TT AF Presentation Processor, providing additional comments to summarize the context of usage or the nature of the feature. The TT AF Profile Definition Document that defines the corresponding DFXP Presentation Profile is specified in G.2 DFXP Presentation Profile.
Feature | Comments |
#content |
body ,
div ,
p ,
span ,
br
|
#core |
@xml:id ,
@xml:lang ,
@xml:space
|
#profile | |
#presentation | |
#structure |
tt ,
head
|
#time-offset | |
#timing |
@begin ,
@dur ,
@end
|
This appendix specifies the following standard TT AF profiles:
Each TT AF profile is defined in terms of a TT AF Profile Definition Document, which is expressed as an XML document wherein the root element adheres to 6.1.1 ttp:profile.
The Distribution Format Exchange Profile (DFXP) of the Timed Text Authoring Format (TT AF) satisfies a subset of the requirements established by [TTAF1-REQ]. The following table enumerates these requirements and indicates the extent to which they are satisfied by this specification, where S denotes a requirement is satisfied, P denotes a requirement is partially satisfied, and N denotes a requirement is not satisfied.
ID | Name | Status | Comments |
---|---|---|---|
R100 | Specification Format | S | |
R101 | Specification Modularity | S | |
R102 | Specification Organization | S | |
R103 | Core and Periphery | S | TT extension namespaces |
R104 | Evolution of Core | S | TT extension namespaces |
R105 | Ownership of Core | S | TT namespaces |
R106 | Surjection of Core | S | |
R107 | Evolution of Periphery | S | TT extension namespaces |
R108 | Ownership of Periphery | S | Non-TT namespaces |
R109 | Transformation | S | Supports 3GPP, QText, RealText, SAMI |
R110 | Streamable Transformation | S | Progressive decoding |
R111 | Accessibility – Content | S | Alternative document instances |
R112 | Accessibility – Authoring System | S | |
R200 | Authorability | S | |
R201 | Multiple Natural Languages | S | Alternative document instances |
R202 | Natural Language Coverage | S | Unicode 4.0 |
R203 | Natural Language Association Granularity | S | See xml:lang |
R204 | Minimum Character Representability | S | Unicode 4.0 |
R205 | Intrinsic and Extrinsic Text Content | P | Intrinsic only |
R206 | Markup Association | P | Intrinsic only |
R207 | Conditional Content | N | |
R208 | Flowed Text | S | |
R209 | Logical Flowed Text Vocabulary | S | |
R210 | Presentational Flowed Text Vocabulary | S | Implied mapping from logical flowed text. |
R211 | Flowed Text Vocabulary Relationship | S | |
R212 | Flowed Text Vocabulary Separation | N | |
R213 | Non-Flowed Text | N | |
R214 | Non-Flowed Text Vocabulary | N | |
R215 | Hybrid Flowed and Non-Flowed Text | N | |
R216 | Hyperlinking | N | Can support via XLink |
R217 | Embedded Graphics | N | |
R218 | Non-Embedded Graphics | N | |
R219 | Embedded Fonts | N | |
R220 | Non-Embedded Fonts | N | |
R221 | Descriptive Vocabulary | S | See ttm:agent , ttm:role |
R222 | Embedded Audio | N | |
R223 | Non-Embedded Audio | N | |
R290 | Markup Format | S | |
R291 | Markup Format and Unicode Interaction | S | |
R292 | Extrinsic Resource References | N | No extrinsic references |
R293 | Schema Validity Specification | S | |
R300 | Inline Styling | S | |
R301 | Inline Styling Form | P | Inline and referential styling |
R301 | Out-of-Line Styling | N | |
R301 | Out-of-Line Styling Form | N | |
R304 | Styling Prioritization | S | |
R305 | Style Parameters – Aural | N | |
R306 | Style Parameters – Visual | P | Supports absolute position, background color, color, display none, display alignment, font family, font size, font style, font weight, height, line height, origin, opacity, overflow, padding (before, after, start, end), text alignment, text shadow (as outline), visibility, width, writing mode, z-index |
R307 | Style Parameters – Temporal Fill Mode | S | See tts:dynamicFlow |
R390 | Style Parameter Symmetry | S | |
R391 | Style Parameter Definitions | S | |
R392 | Style Parameter Shorthands | S | |
R401 | Inline Timing | S | |
R402 | Out-of-Line Timing | N | |
R403 | Synchronization Parameters | P | Supports begin, end, dur |
R404 | Synchronization Parameter Value Spaces | P | Supports offset values, media marker values (SMPTE 12M), wallclock values |
R405 | Time Containment Semantics | P | Supports sequential, parallel |
R500 | Animation Modes | P | Supports discrete |
R501 | Scroll Animation | S | See tts:dynamicFlow |
R502 | Highlight Animation | S | <set tts:backgroundColor="..."/> |
R503 | Fade Transition Animation | S | <set tts:opacity="..."/> |
R504 | Animated Style Parameters – Aural | N | |
R505 | Animated Style Parameters – Visual | P | Supports animating background color, color, display, opacity, origin, visibility |
N506 | Animated Content | S | |
R600 | Metadata Item Association | S | See metadata , Metadata.class |
R601 | Metadata Item Constituents | P | Supports name, value |
R602 | Metadata Item Value Representation | P | See metadata |
R603 | Metadata Item Extensibility | S | See metadata |
R604 | Metadata Item Validation | S | See metadata |
R690 | Dublin Core Preference | N | Uses ttm:copyright , ttm:desc , ttm:title |
The first column of Table K-1 – Elements specifies a TT AF element vocabulary item; the second column specifies the syntactic and/or semantic model on which the vocabulary item is based; the third column specifies the reference that defines the model (if a model is indicated); the fourth column specifies details about the derivation; the last column refers to additional notes describing the nature of the derivation.
In the fourth column, which describes details of derivation, a
notation is use to indicate the addition or removal of an attribute.
For example, in the derivation of the tt:div
element, the
details column includes "-@class", which denotes that the
class
attribute that is specified for use with the
xhtml:div
model element is not specified for use with the
corresponding TT AF element; in contrast, the details column includes
"+@begin", which denotes that a begin
attribute is added
that is not specified for use with the xhtml:div
model
element.
Element | Model | Reference | Details | Notes |
tt:body | xhtml:body | [XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*; content model subsetted to zero or more division (div) children, and supersetted by optional metadata and animation children | 1,2 |
tt:br | xhtml:br | [XHTML 1.0] | -@class, -@title; +@ttm:*, +@tts:*, +@xml:lang, +@xml:space; content model supersetted by optional metadata and animation children for congruity with other content vocabulary | 1,2 |
tt:div | xhtml:div | [XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model subsetted to zero or more paragraph (p) children, and supersetted by optional metadata and animation children | 1,2,3 |
tt:head | xhtml:head | [XHTML 1.0] | -@dir, -@lang, -@profile; +@id, +@xml:space; content model changed to optional metadata children, followed by optional styling child, followed by optional layout child | 1,3 |
tt:layout | fo:simple-page-master | [XSL 1.1] | conceptual derivation | 4 |
tt:metadata | svg:metadata | [SVG 1.1] | -@xml:base; +@ttm:*, +@xml:lang, +@xml:space; content model subsetted to foreign namespace element content only (no #PCDATA) | 3,5 |
tt:p | xhtml:p | [XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model subsetted to zero or more span children, and supersetted by optional metadata and animation children | 1,2,3 |
tt:region | fo:region-* | [XSL 1.1] | conceptual derivation | 4 |
tt:set | svg:set | [SVG 1.1] | -@* except begin, dur, end; +@tts:*, +@xml:lang, +@xml:space | 3,6 |
tt:span | xhtml:span | [XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model subsetted to zero or more #PCDATA or break (br) children, and supersetted by optional metadata and animation children | 1,2,3 |
tt:style | style specification | [CSS2] | XML representation of identified set of pairs of style property name and value, with optional inclusion of other styles by reference to other style elements | 7 |
tt:styling | xhtml:style | [XHTML 1.0] | XML representation of a set of style specifications sets, each represented by a style child element | 1,7 |
tt:tt | xhtml:html | [XHTML 1.0] | -@dir, -@lang; +@id, +@ttp:*, +@xml:space; content model subsetted by permitting body and/or head to be optional | 1,8 |
ttm:actor | mpeg7:Creator | [MPEG7-5] | conceptual derivation | 4 |
ttm:agent | mpeg7:Agent | [MPEG7-5] | conceptual derivation | 4 |
ttm:copyright | mpeg7:CopyrightString | [MPEG7-5] | conceptual derivation | 4 |
ttm:desc | svg:desc | [SVG 1.1] | -@class, -@style, -@xml:base | 2,5,9 |
ttm:name | mpeg7:Name | [MPEG7-5] | conceptual derivation | 4 |
ttm:title | svg:title | [SVG 1.1] | -@class, -@style, -@xml:base | 2,5,9 |
ttp:extension | @requiredExtensions | [SVG 1.1] | conceptual derivation | 10 |
ttp:extensions | @requiredExtensions | [SVG 1.1] | conceptual derivation | 10 |
ttp:feature | @requiredFeatures | [SVG 1.1] | conceptual derivation | 10 |
ttp:features | @requiredFeatures | [SVG 1.1] | conceptual derivation | 10 |
ttp:profile | @baseProfile | [SVG 1.1] | conceptual derivation | 11 |
Note:
Derivation is indicated with respect to the strict DTD defined by [XHTML 1.0], §A.1.
The class
attribute is effectively replaced by the
style
attribute, which, instead of specifying an inline style,
refers indirectly to one or more style
elements that define a set of style specification sets.
The xml:lang
and xml:space
attributes are defined for all element
types in order to support their inheritance semantics to operate in
the context of foreign namespace elements.
Derivation is conceptual (notional) only.
The xml:base
attribute is not used since there are no external
references from core vocabulary.
The attributeName
and to
attributes of
svg:set
are replaced by the
direct expression of the target attribute name and value by use of a
tts:*
attribute.
CSS style specification syntax is mapped to XML by use of attributes defined in the TT Style Namespace.
The xml:id
attribute is defined for use on all element types.
The style
attribute is supported only on content
elements.
Derived from the use of @requiredExtensions
and @requiredFeatures
on the svg:svg
element,
but extended to support distinct specification of optionality.
Derived from the use of @baseProfile
and @version
on the svg:svg
element.
The first column of Table K-2 – Attributes specifies a TT AF attribute vocabulary item; the second column specifies the syntactic and/or semantic model on which the vocabulary item is based; the third column specifies the reference that defines the model (if a model is indicated); the fourth column specifies details about the derivation; the last column refers to additional notes describing the nature of the derivation.
In the fourth column, which describes details of derivation, a
notation is use to indicate the addition or removal of an attribute
value. For example, in the derivation of the timeContainer
attribute,
the details column includes "-excl", which denotes that the
excl
value that is specified for use with the
timeContainer
model attribute is not specified for use with the
corresponding TT AF attribute; similarly, an "+value"
in the details column indicates that the attribute's values have been
extended to include value.
Only those attributes that are specified for use on more than one TT AF element type are listed below. Those per-element namespace attributes that are uniquely defined for a specific TT AF element type are not listed below, but are considered to be part of the specific element type's derivation described in Table K-1 – Elements above.
Attribute | Model | Reference | Details | Notes |
begin | begin | [SMIL 2.1] | see notes | 2,3,4 |
dur | dur | [SMIL 2.1] | see notes | 2,3,4 |
end | end | [SMIL 2.1] | see notes | 2,3,4 |
region | master-reference | [XSL 1.1] | conceptual derivation | |
style | class | [CSS2] | dereferences style specification(s) directly | |
timeContainer | timeContainer | [SMIL 2.1] | -excl, -none; no default attribute value | 5 |
ttm:agent | none | used to attribute agent of content | ||
ttm:role | none | used to attribute role of content | ||
ttp:cellResolution | none | expresses uniform grid resolution for cell based coordinates | ||
ttp:clockMode | none | determines how to interpret time expressions | ||
ttp:frameRate | none | expresses integral frame rate | ||
ttp:frameRateMultiplier | none | used to express non-integral, rational frame rates | ||
ttp:markerMode | none | expresses marker continuity semantics | ||
ttp:pixelAspectRatio | none | expresses pixel aspect ratio of related media | ||
ttp:profile | none | expresses profile of TT AF used by document instance | ||
ttp:smpteMode | none | expresses frame counting (drop) modes | ||
ttp:subFrameRate | none | expresses sub-frame rate | ||
ttp:tickRate | none | used to interpret tick based time expressions | ||
ttp:timeBase | none | used to interpret semantics of time expressions | ||
tts:backgroundColor | background-color | [XSL 1.1] | -inherit | 1,6 |
tts:color | color | [XSL 1.1] | -inherit | 6 |
tts:direction | direction | [XSL 1.1] | -inherit | |
tts:display | display | [CSS2] | only auto , none | |
tts:displayAlign | display-align | [XSL 1.1] | -inherit | 1 |
tts:dynamicFlow | none | defines dynamic overflow behavior | ||
tts:extent | width , height | [XSL 1.1] | shorthand property | |
tts:fontFamily | font-family | [XSL 1.1] | -inherit , extends generic family names | 1 |
tts:fontSize | font-size | [XSL 1.1] | -inherit | 1,7 |
tts:fontStyle | font-style | [XSL 1.1] | -inherit , uses alias reverseOblique for backslant | 1 |
tts:fontWeight | font-weight | [XSL 1.1] | -inherit , -bolder , -lighter , -<number> | 1 |
tts:lineHeight | line-height | [XSL 1.1] | -inherit , -<number> , -<space> | 1 |
tts:opacity | opacity | [CSS3 Color] | -inherit | |
tts:origin | top , left | [XSL 1.1] | shorthand property | |
tts:overflow | overflow | [XSL 1.1] | -inherit , -auto , -error-if-overflow ; +dynamic | 8 |
tts:padding | padding | [XSL 1.1] | -inherit | 9 |
tts:showBackground | showBackground | [SMIL 2.1] | -inherit | |
tts:textAlign | text-align | [XSL 1.1] | -inherit | 1 |
tts:textDecoration | text-decoration | [XSL 1.1] | -inherit | 1,10,13 |
tts:textOutline | text-shadow | [XSL 1.1] | -inherit | 11,13 |
tts:unicodeBidi | unicode-bidi | [XSL 1.1] | -inherit | 1 |
tts:visibility | visibility | [XSL 1.1] | -inherit , -collapse | |
tts:wrapOption | wrap-option | [XSL 1.1] | -inherit | 1 |
tts:writingMode | writing-mode | [XSL 1.1] | -inherit , +tblr | 1 |
tts:zIndex | z-index | [XSL 1.1] | -inherit | 1 |
xml:id | xml:id | [XML ID] | complies with model | |
xml:lang | xml:lang | [XML 1.0] | complies with model | |
xml:space | xml:space | [XML 1.0] | see notes | 12 |
Note:
Attribute name and/or value(s) are normalized to use lowerCamelCase naming convention.
Restricted to expressing a clock value that denotes one of the
following in accordance to whether the parameter expressed by the
ttp:timeBase
attribute is media
, smpte
,
or clock
, respectively:
(1) an offset from an implicit syncbase that is linked to a media time
line, (2) an event time
that represents the occurrence of an implicit media marker, or (3) a wallclock
time.
Syntactically subsets and supersets the [SMIL 2.1] Clock-value
syntax as follows:
(1) requires non-negative Full-clock-value
or
Timecount-value
;
(2) if Full-clock-value
then hours must be two or more digits;
(3) if Timecount-value
, then metric must be
specified;
(4) uses m
as alias for min
metric to denote
minutes;
(5) adds f
and t
metrics denoting frames and
ticks, respectively;
(6) adds alternative expression of optional Fraction
in
Full-clock-value
by specifying frame count or frame
count with subframe count.
Interpretation of time expression is further constrained by
parameters expressed by
ttp:clockMode
,
ttp:frameRate
,
ttp:frameRateMultiplier
,
ttp:markerMode
,
ttp:smpteMode
,
ttp:subFrameRate
,
ttp:tickRate
, and
ttp:timeBase
attributes.
Uses subset of named colors from model to which two aliases are
added as follows: magenta
as fuchsia
, and cyan
as aqua
.
If not specified, then parallel (par) container semantics apply to the element types specified by 10.2.4 timeContainer.
Restricts size to length specification which can be a percentage; adds optional second length (or percentage) for specifying separate horizontal and vertical scaling of glyph's EM square.
The value dynamic
is defined in terms of the
tts:dynamicFlow
style property.
Expressed in terms of writing mode relative padding properties rather than absolute padding properties.
Excludes blink
and no-blink
values.
Uses only one length specification instead of two, where one length defines distance of outline effect from nominal edge of glyph contour outline perpendicular to point of glyph contour. Percentage lengths are also added to express outline effect in relative to font size. Outline effects are intended to be drawn both outside of outer closed contours and inside of inner closed contours.
On root element, default attribute value specified as
default
, which is defined in terms of whitespace
normalization. Semantics of preservation and default normalization are
defined in terms of presentation semantics by 7.2.3 xml:space.
Defined to be inheritable.
This appendix specifies the compliance of this specification with the requirements and guidelines defined by QA Framework Specifications Guidelines [QAF SG].
When making normative references to external specifications, specific clauses or sections are cited.
Test assertions and test suites will be provided prior to entering Proposed Recommendation (PR) phase.
See criterion #3 in 3.2 Processor Conformance and definition of TT AF Abstract Document Instance.
No feature is deprecated or obsoleted by this version of this specification.
DFXP Content is designed to support streamability by implementing the following properties:
An example of such a fragmentation of a DFXP document instance is shown in Figure 2 – Fragment Streaming.
![]() |
Note:
This specification does not define a transport buffer model or a decoder capabilities model.
Technical Changes The following changes result in a technical change of the conformance criteria, the normative abstract document type that is defined for use with DFXP, or the defined value space of an attribute or property: * Change TT Style Namespace to use #styling instead of #style as fragment identifier [I-087]. * Add ttp:{profile,features,feature,extensions,extension} element types [I-060]. * Add Parameters.class group, containing ttp:profile element, to content model of head element [I-060]. * Define three normative profiles: dfxp-{transformation,presentation,full}, with dfxp-transformation being the default in absence of declaration [I-060, I-096]. * Subdivide processor conformance into transformation and presentation processors, mandating support for the respective profile [A-035]. * Add optional tts:extent attribute to tt element [A-028, I-069]. * Change default time containment of body element to 'par' [I-041]. * Remove 'inherit' value from all tts:* style attributes [I-054]. * Allow unquoted font family names to contain whitespace in <familyName> style value expression used with tts:fontFamily attribute [I-033]. * Change 'scroll' value to 'dynamic' on tts:overflow attribute [I-082]. * Add 'rollUp' value to tts:dynamicFlow attribute [A-034, I-101]. * Remove (1) 'within' flow function, (2) 'block', 'inline', and 'pixel' flow units, (3) 'fade' flow style, and (4) flow transition and flow transition styles from <flowFunction> style value expression [I-081, I-086, I-100]. * Rename intra(..) and inter(..) to fill(..) and clear(..), respectively, in <flowIntervalFunction> style value expression [I-102]. * Allow tts:display style property to apply to region element [I-051]. * Allow ttm:role attribute on region element [A-032]. * Improve content model of metadata element [I-097]. * Change data type of ttm:role attribute to NMTOKENS [I-089]. * Add 'description' value to ttm:role attribute [I-008]. Editorial Changes The following changes are editorial in nature or entail semantic clarifications that do not affect the abstract document type, defined schemas, or conformance criteria for DFXP: * Clarify prose with respect to support for nested div and span [A-024, I-028]. * Define default region in absence of explicit region [A-026, I-012, I-042]. * Map anonymous spans to fo:inline only when parent is p or span [A-027, I-037]. * Fix inconsistencies regarding time containment semantics [A-029]. * Clarify semantics of dur and end attributes [A-030]. * Unify specification of behavior of style resolution processing [A-033, I-032, I-040, I-050]. * Add examples of metadata and animation vocabulary [I-009]. * Revert XML and XML Namespace references to their 1.0 versions [I-015]. * Fix incorrect reference to SMIL2 sections [I-016]. * Fix syntactic definition of <duration> style value expression [I-017]. * Correct name of tts:textDecoration value 'lineThrough' [I-027]. * Clarify prose describing <opacity> style value expression [I-035, I-090]. * Clarify processing and inheritance of anonymous spans [I-034, I-036, I-077]. * Fix example code for content hierarchy region mapping [I-043]. * Fix various typos and formatting issues [I-044, I-045, I-056, I-073, I-076]. * Add missing inheritance and percentage constraints [I-046]. * Fix ordering and missing entry in list of style value expressions [I-052]. * Designate tts:textDecoration and tts:textOutline as inheritable [I-055]. * Make all style properties animatable [I-059]. * Correct flow interval computation with definite rate [I-061]. * Clarify dynamic flow buffer semantics [I-062, I-063, I-066, I-067, I-104]. * Clarify dynamic flow timing semantics [I-064, I-104]. * Clarify affect of animation of styles and dynamic flow [I-065]. * Clarify semantics of space filling of region [I-068]. * Clarify extent of region with respect to tts:overflow semantics [I-070]. * Update XSL reference to 1.1 version [I-079]. * Remove appendix containing sample code [I-080]. * Clarify dynamic flow operation semantics [I-083, I-099]. * Clarify default flow style semantics [I-084]. * Clarify default denominator on ttp:frameRateMultiplier [I-085]. * Add missing style default semantics [I-091]. * Clarify mutability of TT AF namespaces [I-094]. * Clarify constraints on syntax of flow functions [I-103]. * Clarify interaction between dynamic flow and wrap option processing [I-105]. * Clarify line breaking semantics [I-106]. * Enlarge syntactic treatment of foreign attributes on head element [I-110]. * Fix note regarding context of usage of metadata items [I-111]. * Remove style and metadata extension namespaces [I-112]. * Clarify region association algorithm [I-118].