CARVIEW |
TTML Profiles for Internet Media Subtitles and Captions 1.0.1 (IMSC1)
W3C Recommendation , edited in place
- This version:
- https://www.w3.org/TR/2018/REC-ttml-imsc1.0.1-20180424/
- Latest published version:
- https://www.w3.org/TR/ttml-imsc1.0.1/
- Latest editor's draft:
- https://w3c.github.io/imsc/imsc1/spec/ttml-ww-profiles.html
- Previous version:
- https://www.w3.org/TR/2018/PR-ttml-imsc1.0.1-20180227/
- Editor:
- Pierre Lemieux
- Participate:
- GitHub w3c/imsc
- File a bug
- Commit history
- Pull requests
- Latest IMSC recommendation:
- https://www.w3.org/TR/ttml-imsc/rec
Please check the errata for any errors or issues reported since publication.
The English version of this specification is the only normative version. Non-normative translations may also be available.
Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and document use rules apply.
Abstract
This document specifies two profiles of [TTML1]: a text-only profile and an image-only profile. These profiles are intended to be used across subtitle and caption delivery applications worldwide, thereby simplifying interoperability, consistent rendering and conversion to other subtitling and captioning formats.
It is feasible to create documents that simultaneously conform to both [ttml10-sdp-us] and the text-only profile.
The document defines extensions to [TTML1], as well as incorporates extensions specified in [ST2052-1] and [EBU-TT-D].
Both profiles are based on [SUBM].
Status of This Document
Status Update (9 April 2020): In the document header, the "Latest IMSC1 Recommendation" link (pointing to the specific "TTML Profiles for Internet Media Subtitles and Captions 1.0.1" Recommendation) was replaced by a "Latest IMSC Recommendation" link pointing to the most recently published Recommendation in the "TTML Profiles for Internet Media Subtitles and Captions" family of Recommendations.
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 https://www.w3.org/TR/.This document was published by the Timed Text Working Group as a Recommendation. Comments regarding this document are welcome. Please file them in the github repository.
Please see the Working Group's implementation report.
A list of non-substantive changes applied since the Proposed Recommendation is found at changes-summary.txt. For convenience, a diff is offered at the W3C HTML Diff service.
This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.
This document was produced by a group operating under the 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.
This document is governed by the 1 February 2018 W3C Process Document.
1. Scope
This specification defines two profiles of [TTML1]: a text-only profile and an image-only profile. These profiles are intended for subtitle and caption delivery worldwide, including dialog language translation, content description, captions for deaf and hard of hearing, etc.
The text profile is a syntactic superset of [ttml10-sdp-us], and a document can simultaneously conform to both [ttml10-sdp-us] and the text-only profile.
The document defines extensions to [TTML1], as well as incorporates extensions specified in [ST2052-1] and [EBU-TT-D].
This version of the specification makes editorial corrections and adds two optional features (6.7.5 ittp:activeArea and 6.7.6 itts:fillLineGap) over the Recommendation dated 21 April 2016. Processors and document instances that conform to the Recommendation dated 21 April 2016 also conform to this version of the specification.
2. Documentation Conventions
This specification uses the same conventions as [TTML1] for the specification of parameter attributes, styling attributes and metadata elements. In particular:
- Section 2.3 of [TTML1] specifies conventions used in the XML representation of elements; and
- Sections 6.2 and 8.2 of [TTML1] specify conventions used when specifying the syntax of attribute values, such as in 6.7 Extensions.
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 expression "non-normative", then the entirety of the section or appendix is considered non-normative.
This specification uses Feature and Extension designations as defined in Appendices D.1 and E.1 at [TTML1]:
- when making reference to content conformance, these designations refer to the syntactic expression or the semantic capability associated with each designated Feature or Extension; and
- when making reference to processor conformance, these designations refer to processing requirements associated with each designated Feature or Extension.
If the name of an element referenced in this specification is not namespace qualified, then the TT namespace applies (see 6.3 Namespaces.)
3. Terms and Definitions
Default Region. See Section 9.3.1 at [TTML1].
Document Instance. See Section 2.2 at [TTML1].
Extension. See Section 2.2 at [TTML1].
Feature. See Section 2.2 at [TTML1].
Intermediate Synchronic Document. See Section 9.3.2 at [TTML1].
Document Interchange Context. See Section 2.2 at [TTML1].
Document Processing Context. See Section 2.2 at [TTML1].
Linear White-Space. See Section 2.3 at [TTML1].
Processor. Either a Presentation processor or a Transformation processor.
Presentation processor. See Section 2.2 at [TTML1].
Transformation processor. See Section 2.2 at [TTML1].
Related Media Object. See Section 2.2 at [TTML1].
Related Video Object. A Related Media Object that consists of a sequence of image frames, each a rectangular array of pixels.
Root Container Region. See Section 2.2 at [TTML1].
Text Alternative. As defined in [WCAG20].
4. Conformance
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, SHALL, SHALL NOT, SHOULD, and SHOULD NOT are to be interpreted as described in [RFC2119].
A Document Instance that conforms to a profile defined herein:
- SHALL satisfy all normative provisions specified by the profile;
- MAY include any vocabulary, syntax or attribute value associated with a Feature or Extension whose disposition is permitted or optional in the profile;
- SHALL NOT include any vocabulary, syntax or attribute value associated with a Feature or Extension whose disposition is prohibited in the profile.
A Document Instance, by definition, satisfies the requirements of Section 3.1 at [TTML1], and hence a Document Instance that conforms to a profile defined herein is also a conforming TTML1 Document Instance.
A presentation processor that conforms to a profile defined in this specification:
- SHALL satisfy the Generic Processor Conformance requirements at Section 3.2.1 of [TTML1];
- SHALL satisfy all normative provisions specified by the profile; and
- SHALL implement presentation semantic support for every Feature and Extension designated as permitted by the profile, subject to any additional constraints on each Feature and Extension as specified by the profile.
- MAY implement presentation semantic support for every Feature and Extension designated as optional by the profile, subject to any additional constraints on each Feature and Extension as specified by the profile.
A transformation processor that conforms to a profile defined in this specification:
- SHALL satisfy the Generic Processor Conformance requirements at Section 3.2.1 of [TTML1];
- SHALL satisfy all normative provisions specified by the profile; and
- SHALL implement transformation semantic support for every Feature and Extension designated as permitted by the profile, subject to any additional constraints on each Feature and Extension as specified by the profile.
- MAY implement transformation semantic support for every Feature and Extension designated as optional by the profile, subject to any additional constraints on each Feature and Extension as specified by the profile.
The use of the term presentation processor (transformation processor) within this specification does not imply conformance to the DFXP Presentation Profile (DFXP Transformation Profile) specified in [TTML1]. In other words, it is not considered an error for a presentation processor (transformation processor) to conform to a profile defined in this specification without also conforming to the DFXP Presentation Profile (DFXP Transformation Profile).
This specification does not specify presentation processor or transformation processor behavior when processing or transforming a non-conformant Document Instance.
The permitted and prohibited dispositions do not refer to the specification of a
ttp:feature
or ttp:extension
element as being permitted or prohibited within a
ttp:profile
element.
5. Profiles
5.1 General
Notwithstanding special cases, e.g. a Document Instance that contains no p
, span
,
br
element and no smpte:backgroundImage
attribute, it is generally not possible to construct a
Document Instance that conforms to the Text Profile and Image Profile simultaneously, and it is not
possible to construct a Document Instance that results in the presentation of both text data and image data.
In applications that require subtitle/caption content in image form to be simultaneously available in text form, two distinct Document Instances, one conforming to the Text Profile and the other conforming to the Image Profile, SHOULD be offered. In addition, the Text Profile Document Instance SHOULD be associated with the Image Profile Document Instance such that, when image content is encountered, assistive technologies have access to its corresponding text form. The method by which this association is made is left to each application.
The ittm:altText
element specified 6.7.4 ittm:altText also allows text equivalent
string to be associated with an image, e.g. to support indexation of the content and also facilitate quality checking of the
document during authoring.
Annex D. WCAG Considerations specifically discusses this specification in the context of the [WCAG20] guidelines.
5.2 Text Profile
The Text Profile consists of Sections 6. Common Constraints and 7. Text Profile Constraints.
5.3 Image Profile
The Image Profile consists of Sections 6. Common Constraints and 8. Image Profile Constraints.
5.4 Profile Resolution Semantics
For the purpose of content processing, the determination of the resolved profile SHOULD take into account both the signaled profile, as defined in 6.9 Profile Signaling, and profile metadata, as designated by either (or both) the Document Interchange Context or (and) the Document Processing Context, which MAY entail inspecting document content.
If the resolved profile is not a profile supported by the Processor but is feasibly interoperable with the Text Profile, then the resolved profile is the Text Profile; otherwise, if the resolved profile is not a profile supported by the Processor but is feasibly interoperable with the Image Profile, then the resolved profile is the Image Profile.
If the resolved profile is a profile supported by the Processor, then the Processor SHOULD process the Document Instance according to the resolved profile. If the resolved profile is neither Text Profile nor Image Profile, processing is outside the scope of this specification.
If the resolved profile is undetermined or not supported by the Processor, then the Processor SHOULD nevertheless process the Document Instance using one of its supported profiles, with a preference for the Text Profile over the Image Profile; otherwise, processing MAY be aborted.
6. Common Constraints
6.1 Document Encoding
A Document Instance SHALL use UTF-8 character encoding as specified in [UNICODE].
6.2 Foreign Element and Attributes
A Document Instance MAY contain elements and attributes that are neither specifically permitted nor forbidden by a profile.
A transformation processor SHOULD preserve such elements or attributes whenever possible.
Document Instances remain subject to the content conformance requirements specified at Section 3.1 of [TTML1]. In particular, a Document Instance can contain elements and attributes not in any TT namespace, i.e. in foreign namespaces, since such elements and attributes are pruned by the algorithm at Section 4 of [TTML1] prior to evaluating content conformance.
6.3 Namespaces
The following namespaces (see [xml-names]) are used in this specification:
Name | Prefix | Value | Defining Specification |
---|---|---|---|
XML | xml |
https://www.w3.org/XML/1998/namespace |
[xml-names] |
TT | tt |
https://www.w3.org/ns/ttml |
[TTML1] |
TT Parameter | ttp |
https://www.w3.org/ns/ttml#parameter |
[TTML1] |
TT Styling | tts |
https://www.w3.org/ns/ttml#styling |
[TTML1] |
TT Feature | none | https://www.w3.org/ns/ttml/feature/ |
[TTML1] |
SMPTE-TT Extension | smpte |
https://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt |
[ST2052-1] |
EBU-TT Styling | ebutts |
urn:ebu:tt:style |
[EBU-TT-D] |
EBU-TT Metadata | ebuttm |
urn:ebu:tt:metadata |
[EBU-TT-D] |
IMSC Styling | itts |
https://www.w3.org/ns/ttml/profile/imsc1#styling |
This specification |
IMSC Parameter | ittp |
https://www.w3.org/ns/ttml/profile/imsc1#parameter |
This specification |
IMSC Metadata | ittm |
https://www.w3.org/ns/ttml/profile/imsc1#metadata |
This specification |
IMSC Extension | none | https://www.w3.org/ns/ttml/profile/imsc1/extension/ |
This specification |
IMSC 1.0 Text Profile Designator | none | https://www.w3.org/ns/ttml/profile/imsc1/text |
This specification |
IMSC 1.0 Image Profile Designator | none | https://www.w3.org/ns/ttml/profile/imsc1/image |
This specification |
The namespace prefix values defined above are for convenience and Document Instances MAY use any prefix value that conforms to [xml-names].
The namespaces defined by this specification are mutable [namespaceState]; all undefined names in these namespaces are reserved for future standardization by the W3C.
6.4 Overflow
A Document Instance SHOULD be authored assuming strict clipping of content that falls out of region areas,
regardless of the computed value of tts:overflow
for the region.
As specified in [TTML1], tts:overflow
has no effect on the extent of the region, and hence
the total normalized drawing area S(En) at 9.3 Paint Regions.
6.5 Related Video Object
A Document Instance MAY be associated with a Related Video Object.
While this specification contains specific provisions when a Document Instance is associated with a Related Video Object, it does not prevent the use of a Document Instance with other kinds of Related Media Object, e.g. an audio object.
6.6 Synchronization
Each intermediate synchronic document of the Document Instance is intended to be displayed on a specific frame and removed on a specific frame of the Related Video Object.
When mapping a media time expression M to a frame F of a Related Video Object, e.g. for the purpose of rendering a Document Instance onto the Related Video Object, the presentation processor SHALL map M to the frame F with the presentation time that is the closest to, but not less, than M.
In typical scenario, the same video program (the Related Video Object) will be used for Document Instance authoring, delivery and user playback. The mapping from media time expression to Related Video Object above allows the author to precisely associate subtitle video content with video frames, e.g. around scene transitions. In circumstances where the video program is downsampled during delivery, the application can specify that, at playback, the relative video object be considered the delivered video program upsampled to is original rate, thereby allowing subtitle content to be rendered at the same temporal locations it was authored.
6.7 Extensions
6.7.1 ittp:aspectRatio
The ittp:aspectRatio
attributes allows authorial control of the mapping of the Root Container Region
of a Document Instance to each image frame of the Related Video Object.
If present, the ittp:aspectRatio
attribute SHALL conform to the following syntax:
ittp:aspectRatio
: numerator denominator // with int(numerator) != 0 and int(denominator) != 0
// where int(s) parses string s as a decimal integer.
numerator | denominator
: <digit>+ // no linear white-space is implied or permitted
// between each <digit> token
|
The Root Container Region of a Document Instance SHALL be mapped to each image frame of the Related Video Object according to the following:
-
If
ittp:aspectRatio
is present, the Root Container Region SHALL be mapped to a rectangular area within the image frame such that:- the ratio of the width to the height of the rectangular area is equal to
ittp:aspectRatio
, - the center of the rectangular area is collocated with the center of the image frame,
- the rectangular area is entirely within the image frame, and
- the rectangular area has a height or width equal to that of the image frame.
- the ratio of the width to the height of the rectangular area is equal to
-
Otherwise, the Root Container Region of a Document Instance SHALL be mapped to the image frame in its entirety.
An ittp:aspectRatio
attribute is considered to be significant only when specified on the tt
element.
The ittp:aspectRatio
parameter effectively defines the display aspect ratio (DAR) of the root
container, while the tts:extent
style property on the root element effectively defines the storage aspect
ratio (SAR) of the Root Container Region. As a result, when both tts:extent
and
ittp:aspectRatio
are specified on the tt
element, the effective pixel aspect ratio (PAR) of the
Root Container Region is equal to the ratio of the DAR to the SAR.
- A 16:9 video program is authored to ensure adequate presentation on 4:3 display devices using a center-cut.
Accordingly subtitle/captions are authored using
ittp:aspectRatio="4 3"
, allowing the combination to be displayed on both 4:3 and 16:9 display devices while preserving both caption/subtitles content and the relative position of caption/subtitles with video elements. - A playback system zooms the content of example (a) to fill a 21:9 display, perhaps as instructed by the user. The system elects to scale the Root Container Region to fit vertically within the display (maintaining its aspect ratio as authored), at the cost of losing relative positioning between caption/subtitles and video elements.
- The system described in (b) instead elects to map the Root Container Region to the video frame, maintaining relative positioning between caption/subtitles and video elements but at the risk of clipping subtitles/captions.
6.7.2 ittp:progressivelyDecodable
A progressively decodable Document Instance is structured to facilitate presentation before the document is
received in its entirety, and can be identified using ittp:progressivelyDecodable
attribute.
A progressively decodable Document Instance is a Document Instance that conforms to the following:
- no attribute or element of the TTML timing vocabulary is present within the
head
element; - given two intermediate synchronic documents A and
B of the Document Instance, with start times TA and TB, respectively, TA is
not greater than TB if A includes a
p
element that lexically precedes anyp
element that B includes; - no attribute of the TTML timing vocabulary is present on a descendant element of
p
; and - no element E1 explicitly references another element E2 where the opening tag of E2 is lexically subsequent to the opening tag of E1.
If present, the ittp:progressivelyDecodable
attribute SHALL conform to the following syntax:
ittp:progressivelyDecodable
: "true"
| "false"
|
An ittp:progressivelyDecodable
attribute is considered to be significant only when specified on the
tt
element.
If not specified, the value of ittp:progressivelyDecodable
SHALL be considered to be equal to
"false"
.
A Document Instance for which the computed value of ittp:progressivelyDecodable
is
"true"
SHALL be a progressively decodable Document Instance.
A Document Instance for which the computed value of ittp:progressivelyDecodable
is
"false"
is neither asserted to be a progressively decodable Document Instance nor asserted not to be a
progressively decodable Document Instance.
<tt
xmlns="https://www.w3.org/ns/ttml"
xmlns:ttm="https://www.w3.org/ns/ttml#metadata"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:ittp="https://www.w3.org/ns/ttml/profile/imsc1#parameter"
ittp:progressivelyDecodable="true"
ttp:profile="..."
>
...
</tt>
[TTML1] specifies explicitly referencing of elements identified using xml:id
in the following
circumstances:
- an element in
body
referencingregion
elements. In this case, Requirement 4 above is always satisfied. - an element in
body
referencingstyle
elements. In this case, Requirement 4 above is always satisfied. - a
region
element referencingstyle
elements. In this case, Requirement 4 above is always satisfied. - a
style
element referencing otherstyle
elements. In this case, Requirement 4 provides an optimization ofstyle
element ordering within thehead
element. - a
ttm:actor
element referencing attm:agent
element. In this case, Requirement 4 provides optimization of metadata elements ordering within the document. - a content element referencing
ttm:agent
elements using thettm:agent
attribute. In this case, Requirement 4 provides optimization of metadata elements ordering within the document.
6.7.3 itts:forcedDisplay
itts:forcedDisplay
can be used to hide content whose computed value of tts:visibility
is
"visible"
when the processor has been configured to do so via the application parameter
displayForcedOnlyMode
.
If and only if the value of displayForcedOnlyMode
is "true"
, a content element with a
itts:forcedDisplay
computed value of "false"
SHALL NOT produce any visible rendering, regardless
of the computed value of tts:visibility
.
The itts:forcedDisplay
attribute has no effect on content layout or composition, but merely determines
whether composed content is visible or not.
The itts:forcedDisplay
attribute SHALL conform to the following:
Values: | false | true |
Initial: | false |
Applies to: | body , div , p , region , span |
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
Annex C. Forced content (non-normative) illustrates the use of itts:forcedDisplay
in an application in which a
single document contains both hard of hearing captions and translated foreign language subtitles, using
itts:forcedDisplay
to display translation subtitles always, independently of whether the hard of hearing
captions are displayed or hidden.
The presentation processor SHALL accept an optional boolean parameter called displayForcedOnlyMode
,
whose value MAY be set by a context external to the presentation processor. If not set, the value of
displayForcedOnlyMode
SHALL be assumed to be equal to "false"
.
The algorithm for setting the displayForcedOnlyMode
parameter based on the circumstances under which the
Document Instance is presented is left to the application.
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en"
xmlns="https://www.w3.org/ns/ttml"
xmlns:ttm="https://www.w3.org/ns/ttml#metadata"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:ittp="https://www.w3.org/ns/ttml/profile/imsc1#parameter"
xmlns:itts="https://www.w3.org/ns/ttml/profile/imsc1#styling"
ittp:aspectRatio="16 9"
ttp:profile="https://www.w3.org/ns/ttml/profile/imsc1/text">
<head>
<layout>
<region xml:id="r1" tts:showBackground="whenActive" tts:origin="10% 2%" tts:extent="80% 10%" tts:color="white" itts:forcedDisplay="true" tts:backgroundColor="black"/>
<region xml:id="r2" tts:showBackground="whenActive" tts:origin="10% 80%" tts:extent="80% 10%" tts:color="white" tts:backgroundColor="black"/>
</layout>
</head>
<body>
<div>
<p region="r1" begin="1s" end="6s">Lycée</p>
<!-- the following will not appear if displayForcedOnlyMode='true' -->
<p region="r2" begin="4s" end="6s">Nous étions inscrits au même lycée.</p>
</div>
</body>
</tt>
As specified in [TTML1], the background of a region can be visible even if the computed value of
tts:visibility
equals "hidden"
for all active content within. The background of a region for
which itts:forcedDisplay
equals "true"
can therefore remain visible even if
itts:forcedDisplay
equals "false"
for all active content elements within the region and
displayForcedOnlyMode
equals "true"
. Authors can avoid this situation, for instance, by ensuring
that content elements and the regions that they are flowed into always have the same value of
itts:forcedDisplay
.
Although itts:forcedDisplay
, like all the TTML style attributes, has no defined semantics on a
br
content element, itts:forcedDisplay
will apply to a br
content element if it is
either defined on an ancestor content element of the br
content element or it is applied to a region element
corresponding to a region that the br
content element is being flowed into.
It is expected that the functionality of itts:forcedDisplay
will be mapped to a conditional
style construct in a future revision of this specification.
The presentation semantics associated with itts:forcedDisplay
are intended to be compatible
with those associated with the forcedDisplayMode
attribute defined in [CFF].
6.7.4 ittm:altText
ittm:altText
allows an author to provide a text string equivalent for an element, typically an image. This
text equivalent MAY be used to support indexing of the content and also facilitate quality checking of the document during
authoring.
The ittm:altText
element SHALL conform to the following syntax:
<ittm:altText
xml:id = ID
xml:lang = string
xml:space = (default|preserve)
{any attribute not in the default namespace, any TT namespace or any IMSC namespace}>
Content: #PCDATA
</ittm:altText>
|
The ittm:altText
element SHALL be a child of the metadata
element.
8. Image Profile Constraints specifies the use of the ittm:altText
element with images.
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="fr"
xmlns="https://www.w3.org/ns/ttml"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
ttp:profile="https://www.w3.org/ns/ttml/profile/imsc1/image"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:smpte="https://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt"
xmlns:ittm="https://www.w3.org/ns/ttml/profile/imsc1#metadata" tts:extent="320px 240px">
<head>
<layout>
<region xml:id="area1" tts:origin="20px 215px" tts:extent="180px 20px"/>
</layout>
</head>
<body>
<div begin="1s" end="9s" region="area1" smpte:backgroundImage="altText1-img.png">
<metadata>
<ittm:altText>Nous étions inscrits au même lycée.</ittm:altText>
</metadata>
</div>
</body>
</tt>
In contrast to the common use of alt
attributes in [HTML5], the ittm:altText
attribute content is not intended to be displayed in place of the element if the element is not loaded. The
ittm:altText
attribute content can however be read and used by assistive technologies.
6.7.5 ittp:activeArea
The Active Area of a Document Instance is the area within the Root Container Region that the author intends to be minimally visible to the viewer. This area typically fully contains all of the referenced regions within the Document Instance.
Under normal circumstances, the entirety of the Root Container Region is presented. However, under special
circumstances, such as when the related video object is cropped, a system can, for instance, use the
ittp:activeArea
parameter to avoid cropping areas of the Root Container Region that are intended to
be visible to the viewer. The specific behavior of the system is however left undefined intentionally: the system can
select a presentation mode appropriate to the display shape, user preferences, etc. The ittp:activeArea
is
analogous to the Active Format Description (AFD) metadata commonly used in broadcast applications.
The Active Area is specified using the ittp:activeArea
attribute.
If present, the ittp:activeArea
attribute SHALL conform to the following syntax:
ittp:activeArea
: leftOffset topOffset width height
leftOffset | topOffset | width | height
: <percentage> // where <percentage> is non-negative and not greater than 100%.
|
The width
percentage value is relative to the width of the Root Container Region.
The height
percentage value is relative to the height of the Root Container Region.
The width
and height
percentage values are the width and height of the Active Area.
The leftOffset
and topOffset
percentage values specify an alignment point between the root
container and the Active Area.
The origin top left {x, y} percentage coordinates of the Active Area SHALL be calculated as follows:
x = leftOffset * (1 - width/100) y = topOffset * (1 - height/100)
The use of left and top offset positions is co-incident with the [css3-background] background-position
property where a two percentage value position is used.
The syntax of the ittp:activeArea
parameter is such that the Active Area cannot extend outside the
Root Container Region in any dimension.
The ittp:activeArea
attribute is considered to be significant only when specified on the tt
element.
If the ittp:activeArea
attribute is not specified, the Active Area SHALL be the Root Container
Region.
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en"
xmlns="https://www.w3.org/ns/ttml"
xmlns:ttm="https://www.w3.org/ns/ttml#metadata"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:ittp="https://www.w3.org/ns/ttml/profile/imsc1#parameter"
ittp:activeArea="50% 50% 80% 80%"
tts:extent="640px 480px"
ttp:profile="https://www.w3.org/ns/ttml/profile/imsc1/text">
<head>
<layout>
<region xml:id="area1" tts:origin="10% 10%" tts:extent="80% 10%" tts:backgroundColor="blue" tts:displayAlign="center" tts:textAlign="center" tts:color="white" tts:fontSize="24px"/>
<region xml:id="area2" tts:origin="10% 80%" tts:extent="80% 10%" tts:backgroundColor="blue" tts:displayAlign="center" tts:textAlign="center" tts:color="white" tts:fontSize="24px"/>
<region xml:id="area3" tts:origin="10% 92%" tts:extent="80% 6%" tts:backgroundColor="red" tts:displayAlign="center" tts:textAlign="center" tts:color="yellow" tts:fontSize="24px"/>
</layout>
</head>
<body>
<div>
<p region="area1" begin="0s" end="6s">This region is within the editorial area.</p>
<p region="area2" begin="0s" end="6s">This region is within the editorial area.</p>
<p region="area3" begin="0s" end="6s">This region is not.</p>
</div>
</body>
</tt>
6.7.6 itts:fillLineGap
The itts:fillLineGap
attribute allows the author to control the application of background between
successive line areas.
If itts:fillLineGap="true"
then the background of each inline area generated by descendant spans of the
p
element SHALL extend to the before-edge and after-edge of its containing line area
(before-edge and after-edge are defined at Section 4.2.3 of [XSL11]).
The itts:fillLineGap
attribute SHALL conform to the following:
Values: | false | true |
Initial: | false |
Applies to: | p |
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
In the following example, the p
specifies itts:fillLineGap="true"
, and, as a result, no gap
exists between its lines.
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="https://www.w3.org/ns/ttml"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:itts="https://www.w3.org/ns/ttml/profile/imsc1#styling"
ttp:timeBase="media"
xml:lang="en"
ttp:cellResolution="50 30"
ttp:profile="https://www.w3.org/ns/ttml/profile/imsc1/text">
<head>
<styling>
<style xml:id="spanStyle" tts:color="#ffffff" tts:backgroundColor="#000000" />
<style xml:id="spanStyleSmall" tts:color="#000000" tts:backgroundColor="#dfbb02" tts:fontSize="50%"/>
<style xml:id="spanStyleBig" tts:color="#ffffff" tts:backgroundColor="#b75800" tts:fontSize="150%"/>
<style xml:id="paragraphStyle" tts:fontFamily="monospaceSerif" tts:textAlign="center"
tts:fontSize="200%" tts:lineHeight="165%" itts:fillLineGap="true"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 10%" tts:extent="80% 80%" tts:displayAlign="after" />
</layout>
</head>
<body>
<div>
<p xml:id="subtitle1" region="bottom" begin="00:00:00.000" end="00:00:30.000" style="paragraphStyle">
<span style="spanStyle">##Line gaps##</span><br/>
<span style="spanStyle">The quick </span><span style="spanStyleBig">brown</span><span style="spanStyle"> fox</span><br/>
<span style="spanStyle">jumps over the </span><span style="spanStyleSmall">lazy</span><span style="spanStyle"> dog</span><br/>
<span style="spanStyle">##Line gaps##</span>
</p>
</div>
</body>
</tt>

itts:fillLineGap="true"
removed (left) or
preserved (right). Blue lines have been added to show the before-edge and after-edge of each line
area, which are coincident for successive line areas.
Also, as illustrated in the following example, because the line areas of successive p
elements are
contiguous, no gap exists between two successive p
elements where itts:fillLineGap="true"
.
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="https://www.w3.org/ns/ttml"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:itts="https://www.w3.org/ns/ttml/profile/imsc1#styling"
ttp:timeBase="media"
xml:lang="en"
ttp:cellResolution="50 30"
ttp:profile="https://www.w3.org/ns/ttml/profile/imsc1/text">
<head>
<styling>
<style xml:id="spanStyle" tts:color="#ffffff" tts:backgroundColor="#000000" />
<style xml:id="paragraphStyleNoGap" tts:fontFamily="monospaceSerif" tts:textAlign="center" tts:fontSize="200%"
tts:lineHeight="165%" itts:fillLineGap="true"/>
<style xml:id="paragraphStyle" tts:fontFamily="monospaceSerif" tts:textAlign="center" tts:fontSize="200%"
tts:lineHeight="165%" itts:fillLineGap="false"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 10%" tts:extent="80% 80%" tts:displayAlign="after" />
<region xml:id="top" tts:origin="10% 10%" tts:extent="80% 80%" tts:displayAlign="before" />
</layout>
</head>
<body>
<div region="bottom" begin="00:00:00.000" end="00:00:30.000">
<p xml:id="subtitle1" style="paragraphStyle">
<span style="spanStyle">Paragraph 1</span>
</p>
<p xml:id="subtitle1" style="paragraphStyle">
<span style="spanStyle">Paragraph 2</span>
</p>
</div>
<div region="top" begin="00:00:00.000" end="00:00:30.000">
<p xml:id="subtitle1" style="paragraphStyleNoGap">
<span style="spanStyle">Paragraph 1</span>
</p>
<p xml:id="subtitle1" style="paragraphStyleNoGap">
<span style="spanStyle">Paragraph 2</span>
</p>
</div>
</body>
</tt>

itts:fillLineGap="true"
on the two
paragraphs of the top region, itts:fillLineGap="false"
on the two paragraphs of the bottom region.
6.8 Region
6.8.1 Presented Region
A presented region is a temporally active region that satisfies the following conditions:
- the computed value of
tts:opacity
is not equal to"0.0"
; and - the computed value of
tts:display
is not"none"
; and - the computed value of
tts:visibility
is not"hidden"
; and - either (a) content is selected into the region or (b) the computed value of
tts:showBackground
is equal to"always"
and the computed value oftts:backgroundColor
has non-transparent alpha.
6.8.2 Dimensions and Position
All regions SHALL NOT extend beyond the Root Container Region, i.e. every coordinate in the set of coordinates of each region is also in the set of coordinates of the Root Container Region.
No two presented regions in a given intermediate synchronic document SHALL overlap, i.e. the intersection of the sets of coordinates within each presented region is empty.
6.8.3 Maximum number
The number of presented regions in a given intermediate synchronic document SHALL NOT be greater than 4.
6.9 Profile Signaling
The ttp:profile
attribute SHOULD be present on the tt
element and equal to the designator of the
IMSC 1.0 profile to which the Document Instance conforms, and the ttp:profile
element SHOULD NOT be
present, unless:
-
the Document Instance also conforms to [EBU-TT-D], in which case neither the
ttp:profile
attribute nor thettp:profile
element are present, and, instead, the designator of the IMSC 1.0 profile to which the Document Instance conforms and the URI"urn:ebu:tt:distribution:2014-01"
SHOULD each be carried in anebuttm:conformsToStandard
element as specified in [EBU-TT-D] and illustrated in I.2 EBU-TT-D; orNoteMultiple other
ebuttm:conformsToStandard
elements can be present in addition to the two recommended above, indicating simultaneous conformance to profiles defined in other specifications, including future versions of this specification. - the Document Instance also conforms to [ttml10-sdp-us], in which case the
ttp:profile
attribute is not present and thettp:profile
element is present, as illustrated in I.3 SDP-US.
The ttp:profile
and ebuttm:conformsToStandard
elements SHALL NOT signal conformance to both
Image Profile and Text Profile in a given Document Instance.
6.10 Hypothetical Render Model
It SHALL be possible to apply the Hypothetical Render Model specified in Section 9. Hypothetical Render Model to any sequence of consecutive intermediate synchronic documents without error as defined in Section 9.2 General.
6.11 Features and Extensions
See 4. Conformance for a definition of permitted, prohibited and optional.
Feature | Disposition | Additional provision |
---|---|---|
Relative to the TT Feature namespace | ||
#animation |
permitted | |
#backgroundColor-block |
permitted | |
#backgroundColor-region |
permitted | |
#cellResolution |
permitted |
If the Document Instance includes any length value that uses the c expression,
ttp:cellResolution SHOULD be present on the tt element.
|
#clockMode |
prohibited | |
#clockMode-gps |
prohibited | |
#clockMode-local |
prohibited | |
#clockMode-utc |
prohibited | |
#core |
permitted | |
#display-block |
permitted | |
#display-inline |
permitted | |
#display-region |
permitted | |
#display |
permitted | |
#dropMode |
prohibited | |
#dropMode-dropNTSC |
prohibited | |
#dropMode-dropPAL |
prohibited | |
#dropMode-nonDrop |
prohibited | |
#extent-root |
permitted |
If the Document Instance includes any length value that uses the px expression,
tts:extent SHALL be present on the tt element.
|
#extent |
permitted | |
#frameRate |
permitted |
If the Document Instance includes any clock time expression that uses the frames term or any
offset time expression that uses the f metric, the ttp:frameRate attribute SHALL be present
on the tt element.
|
#frameRateMultiplier |
permitted | |
#layout |
permitted | |
#length-cell |
permitted | c units SHALL NOT be present outside of the value of ebutts:linePadding . |
#length-integer |
permitted | |
#length-negative |
prohibited | |
#length-percentage |
permitted | |
#length-pixel |
permitted | |
#length-positive |
permitted | |
#length-real |
permitted | |
#length |
permitted | |
#markerMode |
prohibited | |
#markerMode-continuous |
prohibited | |
#markerMode-discontinuous |
prohibited | |
#metadata |
permitted | |
#opacity |
permitted | |
#origin |
permitted | |
#overflow |
permitted | |
#overflow-visible |
permitted | |
#pixelAspectRatio |
prohibited | |
#presentation |
permitted | See constraints applied to #profile. |
#profile |
permitted | See 6.9 Profile Signaling. |
#showBackground |
permitted | |
#structure |
permitted | |
#styling-chained |
permitted | |
#styling-inheritance-content |
permitted | |
#styling-inheritance-region |
permitted | |
#styling-inline |
permitted | |
#styling-nested |
permitted | |
#styling-referential |
permitted | |
#styling |
permitted | |
#subFrameRate |
prohibited | |
#tickRate |
permitted | ttp:tickRate SHALL be present on the tt element if the document contains any time
expression that uses the t metric. |
#timeBase-clock |
prohibited | |
#timeBase-media |
permitted |
NOTE: [TTML1] specifies that the default timebase is |
#timeBase-smpte |
prohibited | |
#time-clock-with-frames |
permitted | |
#time-clock |
permitted | |
#time-offset-with-frames |
permitted | |
#time-offset-with-ticks |
permitted | |
#time-offset |
permitted | |
#timeContainer |
permitted | |
#timing |
permitted |
|
#transformation |
permitted | See constraints at #profile. |
#visibility-block |
permitted | |
#visibility-region |
permitted | |
#writingMode-horizontal-lr |
permitted | |
#writingMode-horizontal-rl |
permitted | |
#writingMode-horizontal |
permitted | |
#zIndex |
permitted | NOTE: While permitted, this feature has no effect since, as specified at 6.8.2 Dimensions and Position, regions do not overlap in a Document Instance. |
Extension | Disposition | Provisions |
Relative to the IMSC Extension namespace | ||
#aspectRatio |
permitted | |
#forcedDisplay |
permitted | |
#progressivelyDecodable |
permitted | |
#altText |
permitted | |
#activeArea |
optional | NOTE: This feature is optional such that a processor that conforms to the earlier version of this specification also conforms to this version. |
As specified in [TTML1], a #time-offset-with-frames
expression is translated to a media time
M according to M = 3600 · hours + 60 · minutes + seconds + (frames ÷ (ttp:frameRateMultiplier
·
ttp:frameRate
)).
6.12 Style Resolution
The following style properties are subject to the Style Resolution procedures specified at Section 8.4 of [TTML1]:
itts:fillLineGap
itts:forcedDisplay
ebutts:linePadding
ebutts:multiRowAlign
7. Text Profile Constraints
7.1 Profile Designator
This profile is associated with the following profile designator:
Profile Name | Profile Designator |
---|---|
IMSC 1.0 Text | https://www.w3.org/ns/ttml/profile/imsc1/text |
As specified in 6.11 Features and Extensions, the presence of the ttp:profile
attribute is
not required by this profile. The profile designator specified above is intended to be generally used to signal conformance
of a Document Instance to the profile. The details of such signaling depends on the application, and can, for
instance, use metadata structures out-of-band of the Document Instance.
7.2 Recommended Character Sets
A Document Instance SHOULD be authored using characters selected from the sets specified in B. Recommended Character Sets.
#PCDATA
content within p
and span
elements of a Document Instance SHOULD NOT
include the TAB (U+0009) character.
No presentation semantics are specified for the TAB (U+0009) character.
7.3 Reference Fonts
When rendering codepoints matching one of the combinations of computed font family and codepoints listed in A. Reference Fonts, a processor SHALL use a font that generates a glyph sequence whose dimension is substantially identical to the glyph sequence that would have been generated by one of the specified reference fonts.
This clause only applies to codepoints supported by the processor. See 7.2 Recommended Character Sets for codepoints that a processor is likely to encounter for various languages.
When a content author sets a bounding box for a subtitle, they want to maximize the likelihood that the text
will fit within it when displayed by the processor. If the processor doesn't use the specific font the content author had in
mind, the font actually used might cause the text to grow in size so that it no longer fits in the bounding box. This is
further compounded by differences in the way text wraps when a font has bigger glyphs, which might increase the number of
lines used, and increased line spacing, which might also push some of the text outside the bounding box.
To help ensure that things such as text size, line breaking, and line height behave as expected relative to the size of the
bounding box set by the content author, the author can use one of the reference fonts defined by this specification. This
specification requires processors to support one or more fonts with similar font metrics as reference fonts. Note that,
however, the reference fonts as currently defined only cover characters used for a few writing systems – in particular, a
subset of those based on Latin, Greek, Cyrillic, Hebrew, and Arabic scripts.
Implementations can use fonts other than those specified in A. Reference Fonts. Two fonts with equal metrics can have a different appearance, but flow identically.
7.4 Features and Extensions
See 4. Conformance for a definition of permitted, prohibited and optional.
Feature | Disposition | Additional provisions |
---|---|---|
Relative to the TT Feature namespace | ||
#backgroundColor-inline |
permitted | |
#backgroundColor |
permitted | |
#bidi |
permitted | |
#content |
permitted | |
#color |
permitted |
The initial value of NOTE 1: This is consistent with [ST2052-1]. NOTE 2: The named color |
#direction |
permitted | |
#displayAlign |
permitted | |
#extent-region |
permitted | The tts:extent attribute SHALL be present on all region elements, where it SHALL use
px units or "percentage" syntax. |
#fontFamily-generic |
permitted |
In absence of specific instructions on the choice of font families, and in order to enhance reproducibility of
line fitting, authors are encouraged to use the If the computed value of NOTE: The term used value is defined in CSS 2.1, as normatively referenced by [TTML1]. |
#fontFamily-non-generic |
permitted | |
#fontFamily |
permitted |
Linear white-space SHOULD NOT appear between components of the specified value of
|
#fontSize-anamorphic |
prohibited | |
#fontSize-isomorphic |
permitted | |
#fontSize |
See individual disposition of #fontSize-anamorphic and #fontSize-isomorphic .
|
|
#fontStyle-italic |
permitted | |
#fontStyle-oblique |
permitted | |
#fontStyle |
permitted | |
#fontWeight-bold |
permitted | |
#fontWeight |
permitted | |
#length-em |
permitted | |
#lineBreak-uax14 |
The processor SHALL implement the #lineBreak-uax14 feature defined in the TT Feature namespace.
|
|
#lineHeight |
permitted | As implementation of the "normal" value is not uniform at the time of this writing,
tts:lineHeight SHOULD NOT be set to "normal" and SHOULD be explicitly specified such that the
specified style set of each p element contains a tts:lineHeight property whose value is not
assigned by initial value fallback. |
#nested-div |
permitted | |
#nested-span |
permitted | |
#origin |
permitted | The tts:origin attribute SHALL use px units or "percentage" representation, and SHALL NOT
use em units. |
#padding-1 |
permitted | |
#padding-2 |
permitted | |
#padding-3 |
permitted | |
#padding-4 |
permitted | |
#padding |
permitted | |
#textAlign-absolute |
permitted | |
#textAlign-relative |
permitted | |
#textAlign |
permitted | |
#textDecoration-over |
permitted | |
#textDecoration-through |
permitted | |
#textDecoration-under |
permitted | |
#textDecoration |
permitted | |
#textOutline-blurred |
prohibited | |
#textOutline-unblurred |
permitted | |
#textOutline |
permitted | The computed value of tts:textOutline on a span element SHALL be 10% or less than the
computed value of tts:fontSize on the same element. |
#unicodeBidi |
permitted | |
#visibility |
permitted | |
#visibility-inline |
permitted | |
#wrapOption |
permitted | |
#writingMode |
permitted | |
#writingMode-vertical |
permitted | |
Extension | Disposition | Provisions |
Relative to the SMPTE-TT Extension Namespace | ||
#image |
prohibited | |
Relative to the IMSC Extension namespace | ||
#linePadding |
permitted |
If used, the attribute The processor:
NOTE: The |
#multiRowAlign |
permitted |
If used, the attribute The processor:
|
#fillLineGap |
optional | NOTE: This feature is optional such that a processor that conforms to the earlier version of this specification also conforms to this version. |
In contrast to this specification, [EBU-TT-D] specifies that the attributes
ebutts:linePadding
and ebutts:multiRowAlign
are allowed only on the style
element.
8. Image Profile Constraints
8.1 Profile Designator
This profile is associated with the following profile designator:
Profile Name | Profile Designator |
---|---|
IMSC 1.0 Image | https://www.w3.org/ns/ttml/profile/imsc1/image |
As specified in 6.11 Features and Extensions, the presence of the ttp:profile
attribute is
not required by this profile. The profile designator specified above is intended to be generally used to signal conformance
of a Document Instance to the profile. The details of such signaling depends on the application, and can, for
instance, use metadata structures out-of-band of the Document Instance.
8.2 Presented Image
8.2.1 Definition
A presented image is a div
element with a smpte:backgroundImage
attribute that
flows into a presented region.
8.2.2 Constraints
In a given intermediate synchronic document, each presented region SHALL contain at most one
div
element, which SHALL be a presented image.
8.2.3 Intermediate Synchronic Document Construction
For the purposes of constructing an intermediate synchronic document, a div
element with a
smpte:backgroundImage
attribute SHALL NOT be considered empty.
8.3 smpte:backgroundImage Constraints
If a smpte:backgroundImage
attribute is applied to a div
element:
- the width and height (in pixels) of the image source referenced by
smpte:backgroundImage
SHALL be equal to the width and height (as specified by thetts:extent
attribute usingpx
units) of the region in which thediv
element is presented; - the
div
element SHOULD contain ametadata
element containing anittm:altText
element that is a Text Alternative of the image referenced by thesmpte:backgroundImage
attribute; and - The
smpte:backgroundImage
attribute SHALL reference a PNG datastream as specified in [PNG]. If a pHYs chunk is present, it SHALL indicate square pixels. Note that if no pixel aspect ratio is carried, the default of square pixels is assumed.
In [TTML1], tts:extent
and tts:origin
do not apply to div
elements.
In order to individually position multiple div
elements, each div
can be associated with a distinct
region
with the desired tts:extent
and tts:origin
.
8.4 Features and Extensions
See 4. Conformance for a definition of permitted, prohibited and optional.
Feature | Disposition | Additional provisions |
---|---|---|
Relative to the TT Feature namespace | ||
#backgroundColor-inline |
prohibited | |
#backgroundColor |
See individual disposition of #backgroundColor-inline ,
#backgroundColor-region and #backgroundColor-block .
|
|
#bidi |
See individual disposition of #direction , #unicodeBidi and #writingMode-horizontal .
|
|
#color |
prohibited | |
#content |
permitted |
The p , span and br elements SHALL NOT be present. See Section 8.2.2 Constraints for constraints on div elements.
|
#direction |
prohibited | |
#displayAlign |
prohibited | |
#extent-region |
permitted | The tts:extent attribute SHALL be present on all region elements, where it SHALL use
px units. |
#fontFamily |
prohibited | |
#fontFamily-generic |
prohibited | |
#fontFamily-non-generic |
prohibited | |
#fontSize |
prohibited | |
#fontSize-anamorphic |
prohibited | |
#fontSize-isomorphic |
prohibited | |
#fontStyle |
prohibited | |
#fontStyle-italic |
prohibited | |
#fontStyle-oblique |
prohibited | |
#fontWeight |
prohibited | |
#fontWeight-bold |
prohibited | |
#length-em |
prohibited | |
#lineBreak-uax14 |
No processor requirement is specified. | |
#lineHeight |
prohibited | |
#nested-div |
prohibited | |
#nested-span |
prohibited |
NOTE: The prohibition of |
#padding |
prohibited | |
#padding-1 |
prohibited | |
#padding-2 |
prohibited | |
#padding-3 |
prohibited | |
#padding-4 |
prohibited | |
#textAlign |
prohibited | |
#textAlign-absolute |
prohibited | |
#textAlign-relative |
prohibited | |
#textDecoration |
prohibited | |
#textDecoration-over |
prohibited | |
#textDecoration-through |
prohibited | |
#textDecoration-under |
prohibited | |
#textOutline |
prohibited | |
#textOutline-blurred |
prohibited | |
#textOutline-unblurred |
prohibited | |
#unicodeBidi |
prohibited | |
#visibility |
See individual disposition of #visibility-inline , #visibility-region and #visibility-block .
|
|
#visibility-inline |
prohibited | |
#wrapOption |
prohibited | |
#writingMode |
See individual disposition of #writingMode-vertical and
#writingMode-horizontal .
|
|
#writingMode-vertical |
prohibited | |
Extension | Disposition | Provisions |
Relative to the SMPTE-TT Extension namespace | ||
#image |
permitted |
|
Relative to the IMSC Extension namespace | ||
#fillLineGap |
prohibited |
9. Hypothetical Render Model
9.1 Overview (non-normative)
This Section specifies the Hypothetical Render Model illustrated in Figure 3.
The purpose of the model is to limit Document Instance complexity. It is not intended as a specification of the processing requirements for implementations. For instance, while the model defines a glyph buffer for the purpose of limiting the number of glyphs displayed at any given point in time, it neither requires the implementation of such a buffer, nor models the sub-pixel character positioning and anti-aliased glyph rendering that can be used to produce text output.

The model operates on successive intermediate synchronic documents obtained from an input Document Instance, and uses a simple double buffering model: while an intermediate synchronic document En is being painted into Presentation Buffer Pn (the "front buffer" of the model), the previous intermediate synchronic document En-1 is available for display in Presentation Buffer Pn-1 (the "back buffer" of the model).
The model specifies an (hypothetical) time required for completely painting an intermediate synchronic document as a proxy for complexity. Painting includes drawing region backgrounds, rendering and copying glyphs, and decoding and copying images. Complexity is then limited by requiring that painting of intermediate synchronic document En completes before the end of intermediate synchronic document En-1.
Whenever applicable, constraints are specified relative to the dimensions of the Root Container Region, allowing subtitle sequences to be authored independently of Related Video Object resolution.
To enable scenarios where the same glyphs are used in multiple successive intermediate synchronic documents, e.g. to convey a CEA-608/708-style roll-up (see [CEA-608] and [CEA-708]), the Glyph Buffers Gn and Gn-1 store rendered glyphs across intermediate synchronic documents, allowing glyphs to be copied into the Presentation Buffer instead of rendered, a more costly operation.
Similarly, Decoded Image Buffers Dn and Dn-1 store decoded images across intermediate synchronic documents, allowing images to be copied into the Presentation Buffer instead of decoded.
9.2 General
The Presentation Compositor SHALL render in Presentation Buffer Pn each successive intermediate synchronic document En using the following steps in order:
- clear the pixels, except for the first intermediate synchronic document E0 for the which the pixels of P0 SHALL be assumed to have been cleared;
- paint, according to stacking order, all background pixels for each region;
- paint all pixels for background colors associated with text or image subtitle content; and
- paint the text or image subtitle content.
The Presentation Compositor SHALL start rendering En:
- at the presentation time of E0 minus Initial Painting Delay (IPD), if n = 0; or
- at the presentation time of En-1, if n > 0.
The duration DUR(En) for painting an intermediate synchronic document En in the Presentation Buffer Pn SHALL be:
DUR(En) = S(En) / BDraw + DURT(En) + DURI(En)
where
- S(En) is the total normalized drawing area for intermediate synchronic document En, as specified in 9.3 Paint Regions;
- BDraw is the normalized background drawing performance factor;
- DURT(En) is the duration, in seconds, for painting the text subtitle content for intermediate synchronic document En, as specified in Section 9.5 Paint Text; and
- DURI(En) is the duration, in seconds, for painting the image subtitle content for intermediate synchronic document En, as specified in Section .
The contents of the Presentation Buffer Pn SHALL be transferred instantaneously to Presentation Buffer Pn-1 at the presentation time of intermediate synchronic document En, making the latter available for display.
It is possible for the contents of Presentation Buffer Pn-1 to never be displayed. This can happen if Presentation Buffer Pn is copied twice to Presentation Buffer Pn-1 between two consecutive video frame boundaries of the Related Video Object.
It SHALL be an error for the Presentation Compositor to fail to complete painting pixels for En before the presentation time of En.
Unless specified otherwise, the following table SHALL specify values for IPD and BDraw.
Parameter | Initial value |
---|---|
Initial Painting Delay (IPD) | 1 s |
Normalized background drawing performance factor (BDraw) | 12 s-1 |
BDraw effectively sets a limit on fillings regions - for example, assuming that the Root Container Region is ultimately rendered at 1920×1080 resolution, a BDraw of 12 s-1 would correspond to a fill rate of 1920×1080×12/s=23.7×220pixels s-1.
IPD effectively sets a limit on the complexity of any given intermediate synchronic document.
9.3 Paint Regions
The total normalized drawing area S(En) for intermediate synchronic document En SHALL be
S(En) = CLEAR(En) + PAINT(En )
where CLEAR(E0) = 0 and CLEAR(En | n > 0) = 1, i.e. the Root Container Region in its entirety.
To ensure consistency of the Presentation Buffer, a new intermediate synchronic document requires clearing of the Root Container Region.
PAINT(En) SHALL be the normalized area to be painted for all regions that are used in intermediate synchronic document En according to:
PAINT(En) = ∑Ri∈Rp NSIZE(Ri) ∙ NBG(Ri)
where R_p SHALL be the set of presented regions in the intermediate synchronic document En.
NSIZE(Ri) SHALL be given by:
NSIZE(Ri) = (width of Ri ∙ height of Ri ) ÷ (Root Container Region height ∙ Root Container Region width)
NBG(Ri) SHALL be the total number of tts:backgroundColor
attributes associated with the given
region Ri in the intermediate synchronic document. A tts:backgroundColor
attribute is
associated with a region when it is explicitly specified (either as an attribute in the element, or by reference to a
declared style) in the following circumstances:
- it is specified on the
region
layout element that defines the region; or - it is specified on a
div
,p
,span
orbr
content element that is to be flowed into the region for presentation in the intermediate synchronic document (see [TTML1] for more details on when a content element is followed into a region); or - it is specified on a
set
animation element that is to be applied to content elements that are to be flowed into the region for presentation in the intermediate synchronic document (see [TTML1] for more details on when aset
animation element is applied to content elements).
Even if a specified tts:backgroundColor
is the same as specified on the nearest ancestor content element or
animation element, specifying any tts:backgroundColor
SHALL require an additional fill operation for all region
pixels.
9.4 Paint Images
The Presentation Compositor SHALL paint into the Presentation Buffer Pn all visible pixels of presented images of intermediate synchronic document En.
For each presented image, the Presentation Compositor SHALL either:
- if an identical image is present in Decoded Image Buffer Dn, copy the image from Decoded Image Buffer Dn to the Presentation Buffer Pn using the Image Copier; or
- if an identical image is present in Decoded Image Buffer Dn-1, i.e. an identical image was present in intermediate synchronic document En-1, copy using the Image Copier the image from Decoded Image Buffer Dn-1 to both the Decoded Image Buffer Dn and the Presentation Buffer Pn; or
- otherwise, decode the image using the Image Decoder the image into the Presentation Buffer Pn and Decoded Image Buffer Dn.
Two images SHALL be identical if and only if they reference the same encoded image source.
The duration DURI(En) for painting images of an intermediate synchronic document En in the Presentation Buffer SHALL be as follows:
DURI(En) = ∑Ii ∈ Ic NRGA(Ii) / ICpy + ∑Ij ∈ Id NSIZ(Ij) / IDec
where
- Ic is the set of images copied when painting intermediate synchronic document En;
- Id is the set of images decoded when painting intermediate synchronic document En;
- IDec is the image decoding rate; and
- ICpy is the normalized image copy performance factor.
NRGA(Ii) is the Normalized Image Area of presented image Ii and SHALL be equal to:
NRGA(Ii)= (width of Ii ∙ height of Ii ) ÷ ( Root Container Region height ∙ Root Container Region width )
NSIZ(Ii) SHALL be the number of pixels of presented image Ii.
The contents of the Decoded Image Buffer Dn SHALL be transferred instantaneously to Decoded Image Buffer Dn-1 at the presentation time of intermediate synchronic document En.
The total size occupied by images stored in Decoded Image Buffers Dn or Dn-1 SHALL be the sum of their Normalized Image Area.
The size of Decoded Image Buffers Dn or Dn-1 SHALL be the Normalized Decoded Image Buffer Size (NDIBS).
Unless specified otherwise, the following table SHALL specify ICpy, IDec, and NDBIS.
Parameter | Initial value |
---|---|
Normalized image copy performance factor (ICpy) | 6 |
Image Decoding rate (IDec) | 1 × 220 pixels s-1 |
Normalized Decoded Image Buffer Size (NDIBS) | 0.9885 |
9.5 Paint Text
In the context of this section, a glyph is a tuple consisting of (i) one character and (ii) the computed values of the following style properties:
tts:color
tts:fontFamily
tts:fontSize
tts:fontStyle
tts:fontWeight
tts:textDecoration
tts:textOutline
While one-to-one mapping between characters and typographical glyphs is generally the rule in some scripts, e.g. latin script, it is the exception in others. For instance, in arabic script, a character can yield multiple glyphs depending on its position in a word. The Hypothetical Render Model always assumes a one-to-one mapping, but reduces the performance of the glyph buffer for scripts where one-to-one mapping is not the general rule (see GCpy below).
For each glyph associated with a character in a presented region of intermediate synchronic document En, the Presentation Compositor SHALL:
- if an identical glyph is present in Glyph Buffer Gn, copy the glyph from Glyph Buffer Gn to the Presentation Buffer Pn using the Glyph Copier; or
- if an identical glyph is present in Glyph Buffer Gn-1, i.e. an identical glyph was present in intermediate synchronic document En-1, copy using the Glyph Copier the glyph from Glyph Buffer Gn-1 to both the Glyph Buffer Gn and the Presentation Buffer Pn; or
- otherwise render using the Glyph Renderer the glyph into the Presentation Buffer Pn and Glyph Buffer Gn.

The duration DURT(En) for rendering the text of an intermediate synchronic document En in the Presentation Buffer is as follows:
DURT(En) = ∑gi ∈ Γr NRGA(gi) / Ren(gi) + ∑gj ∈ Γc NRGA(gj) / GCpy
where
- Γr is the set of glyphs rendered into the Presentation Buffer Pn using the Glyph Renderer in intermediate synchronic document En;
- Γc is the set of glyphs copied to the Presentation Buffer Pn using the Glyph Copier in intermediate synchronic document En;
- Ren(gi) is the text rendering performance factor for glyph gi; and
- GCpy is the normalized glyph copy performance factor.
The Normalized Rendered Glyph Area NRGA(gi) of a glyph gi SHALL be equal to:
NRGA(gi) = (fontSize of gi as percentage of Root Container Region height)2
NRGA(Gi) does not take into account decorations (e.g. underline), effects (e.g. outline) or actual typographical glyph aspect ratio. An implementation can determine an actual buffer size needs based on worst-case glyph size complexity.
The contents of the Glyph Buffer Gn SHALL be copied instantaneously to Glyph Buffer Gn-1 at the presentation time of intermediate synchronic document En.
It SHALL be an error for the sum of NRGA(gi) over all glyphs Glyph Buffer Gn to be larger than the Normalized Glyph Buffer Size (NGBS).
Unless specified otherwise, the following table specifies values of GCpy, Ren and NGBS.
Normalized glyph copy performance factor (GCpy) | |
---|---|
Script property (see Standard Annex #24 at [UNICODE]) for the character of gi | GCpy |
latin, greek, cyrillic, hebrew or common | 12 |
any other value | 3 |
Text rendering performance factor Ren(Gi) | |
Block property (see [UNICODE]) for the character of gi | Ren(Gi) |
CJK Unified Ideograph | 0.6 |
any other value | 1.2 |
Normalized Glyph Buffer Size (NGBS) | |
1 |
The choice of font by the presentation processor can increase rendering complexity. For instance, a cursive font can generally result in a given character yielding different typographical glyphs depending on context, even if latin script is used.
A. Reference Fonts
Computed Font Family | Code Points | Reference Font |
---|---|---|
monospaceSerif |
All code points specified in B. Recommended Character Sets | Courier New or Liberation Mono |
proportionalSansSerif |
All code points specified in B. Recommended Character Sets, excluding the code points defined for Hebrew and Arabic scripts. | Arial or Helvetica or Liberation Sans |
B. Recommended Character Sets
When authoring textual content, authors are encouraged to select from sets of characters based on the language indicated
using xml:lang
. The idea is to increase the confidence that the text will be presented correctly by
implementations targeting specific locales.
Specifically, for a given language, an author SHOULD choose characters from the set resulting from the union of the following sets:
- the main exemplar character set specified for the language in [CLDR] as well as any corresponding uppercase characters as specified in [UNICODE]; and
- the punctuation exemplar character set specified for the language in [CLDR];
- the digits and symbols included in all numberSystems specified for the language in [CLDR];
- the common character set specified in Table 1; and
- supplementary characters specified for the language in Table 2, if any.
Some of these sets overlap.
Table 1 captures the set of characters intended to be available to authors across all languages. The terms used in the table are defined in [UNICODE].
(Basic Latin) |
---|
U+0020 - U+007E |
(Latin-1 Supplement) |
U+00A0 - U+00FF |
(Latin Extended-A) |
U+0152 : LATIN CAPITAL LIGATURE OE |
U+0153 : LATIN SMALL LIGATURE OE |
U+0160 : LATIN CAPITAL LETTER S WITH CARON |
U+0161 : LATIN SMALL LETTER S WITH CARON |
U+0178 : LATIN CAPITAL LETTER Y WITH DIAERESIS |
U+017D : LATIN CAPITAL LETTER Z WITH CARON |
U+017E : LATIN SMALL LETTER Z WITH CARON |
(Latin Extended-B) |
U+0192 : LATIN SMALL LETTER F WITH HOOK |
(Spacing Modifier Letters) |
U+02DC : SMALL TILDE |
(Combining Diacritical Marks) |
U+0301 : COMBINING ACUTE ACCENT |
(General Punctuation) |
U+2010 - U+2015 : Dashes |
U+2016 - U+2027 : General punctuation |
U+2030 - U+203A : General punctuation |
(Currency symbols) |
U+20AC : EURO SIGN |
(Letterlike Symbols) |
U+2103 : DEGREES CELSIUS |
U+2109 : DEGREES FAHRENHEIT |
U+2120 : SERVICE MARK SIGN |
U+2122 : TRADE MARK SIGN |
(Number Forms) |
U+2153 - U+215F : Fractions |
(Mathematical Operators) |
U+2212 : MINUS SIGN |
U+221E : INFINITY |
(Box Drawing) |
U+2500 : BOX DRAWINGS LIGHT HORIZONTAL |
U+2502 : BOX DRAWINGS LIGHT VERTICAL |
U+250C : BOX DRAWINGS LIGHT DOWN AND RIGHT |
U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT |
U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT |
U+2518 : BOX DRAWINGS LIGHT UP AND LEFT |
(Block Elements) |
U+2588 : FULL BLOCK |
(Geometric Shapes) |
U+25A1 : WHITE SQUARE |
(Musical Symbols) |
U+2669 : QUARTER NOTE |
U+266A : EIGHTH NOTE |
U+266B : BEAMED EIGHTH NOTES |
Table 2 specifies supplementary character set that have proven useful in captioning and subtitling applications for a number of selected languages. Table 2 is non-exhaustive, and will be extended as needs arise.
Primary language subtag | Characters |
---|---|
sq, fi, da, nl, en, de, is, no, sv, ca, fr, it | no supplementary characters |
lv, lt, et, tr, hr, cs, pl, sl, sk | (Latin Extended-A) U+0100 - U+017F |
ro | (Latin Extended-A) U+0100 - U+017F (Latin Extended-B) U+0218 - U+0219 U+021A - U+021B |
el | (Combining Diacritical Marks) U+0308 (Greek and Coptic) U+0386 - U+038A U+038C U+038E - U+03A1 U+03A3 - U+03CE |
pt, es | (Currency symbols) U+20A1 - U+20A2 U+20B3 |
ar | (Arabic) U+0609 U+060C - U+060D U+061B U+061E - U+061F U+0621 - U+063A U+0640 - U+0652 U+0660 - U+066D U+0670 |
he | (Hebrew) U+05B0 - U+05C3 U+05D0 - U+05EA U+05F3 - U+05F4 |
bs, bg, mk, ru, sr, uk | (Latin Extended-A) U+0100 - U+017F (Spacing Modifier Letters) U+02BC (Cyrillic) U+0400 - U+045F U+048A - U+04F9 (Letterlike Symbols) U+2116 |
kk | (Latin Extended-A) U+0100 - U+017F (Cyrillic) U+0400 - U+045F U+048A - U+04F9 |
hu | (Latin Extended-A) U+0100 - U+017F (General Punctuation) U+2052 (Miscellaneous Mathematical Symbols-A) U+27E8–U+27E9 |
C. Forced content (non-normative)
Figure 5 below illustrates the use of forced content, i.e. itts:forcedDisplay
and
displayForcedOnlyMode
. The content with itts:forcedDisplay="true"
is the French translation of the
"High School" sign. The content with itts:forcedDisplay="false"
are French subtitles capturing a voiceover.

When the user selects French as the playback language but does not select French subtitles,
displayForcedOnlyMode
is set to "true"
, causing the display of the sign translation, which is useful
to any French speaker, but hiding the voiceover subtitles as the voiceover is heard in French.
If the user selects French as the playback language and also selects French subtitles, e.g. if the user is hard-of-hearing,
displayForcedOnlyMode
is set to "false"
, causing the display of both the sign translation and the
voiceover subtitles.
The algorithm for setting the displayForcedOnlyMode
parameter and selecting the appropriate combination of
subtitle and audio tracks depends on the application.
D. WCAG Considerations
In order to meet the guidelines in [WCAG20], the following considerations apply.
Guideline 1.1 of [WCAG20] recommends that an implementation provide Text Alternatives for all non-text content. In the context of this specification, this Text Alternative is intended primarily to support users of the subtitles who cannot see images. Since the images of an Image Profile Document Instance usually represent subtitle or caption text, the guidelines for authoring text equivalent strings given at Images of text of [HTML5] are appropriate.
Thus, for each subtitle in an Image Profile Document Instance, a text equivalent content in a Text Profile Document Instance SHOULD be written so that it conveys all essential content and fulfills the same function as the corresponding subtitle image. In the context of subtitling and captioning, this content will be (as a minimum) the verbatim equivalent of the image without précis or summarization. However, the author MAY include extra information to the text equivalent string in cases where styling is applied to the text image with a deliberate connotation, as a functional replacement for the applied style.
For instance, in subtitling and captioning, italics can be used to indicate an off screen speaker context (for example a voice from a radio). An author can choose to include this functional information in the text equivalent; for example, by including the word "Radio: " before the image equivalent text. Note that images in an Image Profile Document Instance that are intended for use as captions, i.e. intended for a hard of hearing audience, might already include this functional information in the rendered text.
Guideline 1.1 of [WCAG20] also recommends that accessible Text Alternatives must be "programmatically determinable." This means that the text must be able to be read and used by the assistive technologies (and the accessibility features in browsers) that people with disabilities use. It also means that the user must be able to use their assistive technology to find the alternative text (that they can use) when they land on the non-text content (that they can't use).
E. Sample Document Instance (non-normative)
The following sample Document Instances conforms to the Text Profile and Image Profile, respectively. These samples are for illustration only, and are neither intended to capture current or future practice, nor exercise all normative prose contained in this specification.
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en"
xmlns="https://www.w3.org/ns/ttml"
xmlns:ttm="https://www.w3.org/ns/ttml#metadata"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:ittp="https://www.w3.org/ns/ttml/profile/imsc1#parameter"
ittp:aspectRatio="4 3"
ttp:profile="https://www.w3.org/ns/ttml/profile/imsc1/text">
<head>
<layout>
<region xml:id="area1" tts:origin="10% 10%" tts:extent="80% 10%" tts:backgroundColor="black" tts:displayAlign="center" tts:color="red"/>
</layout>
</head>
<body>
<div>
<p region="area1" begin="0s" end="6s">Lorem ipsum dolor.</p>
</div>
</body>
</tt>
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="fr"
xmlns="https://www.w3.org/ns/ttml"
xmlns:ttm="https://www.w3.org/ns/ttml#metadata"
xmlns:tts="https://www.w3.org/ns/ttml#styling"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:smpte="https://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt"
xmlns:itts="https://www.w3.org/ns/ttml/profile/imsc1#styling"
tts:extent="640px 480px"
ttp:frameRate="25"
ttp:profile="https://www.w3.org/ns/ttml/profile/imsc1/image">
<head>
<layout>
<region xml:id="region1" tts:origin="120px 410px" tts:extent="240px 40px" tts:showBackground="whenActive"/>
<region xml:id="region2" tts:origin="120px 20px" tts:extent="240px 40px" tts:showBackground="whenActive"/>
</layout>
</head>
<body>
<div region="region1" begin="00:00:01:00" end="00:00:02:00" smpte:backgroundImage="1.png"/>
<div region="region1" begin="00:00:03:20" end="00:00:04:12" smpte:backgroundImage="2.png"/>
<div region="region2" itts:forcedDisplay="true" begin="00:00:03:20" end="00:00:04:12" smpte:backgroundImage="3.png"/>
</body>
</tt>
F. Extensions
F.1 General
The following sections define extension designations, expressed as relative URIs (fragment identifiers) relative to the IMSC Extension Namespace base URI.
F.2 #progressivelyDecodable
A transformation processor supports the #progressivelyDecodable
feature if it recognizes and is
capable of transforming values of the ittp:progressivelyDecodable
.
A presentation processor supports the #progressivelyDecodable
feature if it implements presentation
semantic support for values of the ittp:progressivelyDecodable
attribute.
F.3 #aspectRatio
A transformation processor supports the #aspectRatio
feature if it recognizes and is capable of
transforming values of the ittp:aspectRatio
.
A presentation processor supports the #aspectRatio
feature if it implements presentation semantic
support for values of the ittp:aspectRatio
attribute.
F.4 #forcedDisplay
A transformation processor supports the #forcedDisplay
feature if it recognizes and is capable of
transforming values of the itts:forcedDisplay
.
A presentation processor supports the #forcedDisplay
feature if it implements presentation semantic
support for values of the itts:forcedDisplay
attribute.
F.5 #altText
A transformation processor supports the #altText
feature if it recognizes and is capable of
transforming values of the ittm:altText
element.
A presentation processor supports the #altText
feature if it implements presentation semantic support
for values of the ittm:altText
element.
F.6 #linePadding
A transformation processor supports the #linePadding
feature if it recognizes and is capable of
transforming values of the ebutts:linePadding
attribute specified in [EBU-TT-D].
A presentation processor supports the #linePadding
feature if it implements presentation semantic
support for values of the ebutts:linePadding
attribute specified in [EBU-TT-D].
F.7 #multiRowAlign
A transformation processor supports the #multiRowAlign
feature if it recognizes and is capable of
transforming values of the ebutts:multiRowAlign
attribute specified in [EBU-TT-D].
A presentation processor supports the #multiRowAlign
feature if it implements presentation semantic
support for values of the ebutts:multiRowAlign
attribute specified in [EBU-TT-D].
F.8 #activeArea
A transformation processor supports the #activeArea
feature if it recognizes and is capable of
transforming values of the ittp:activeArea
attribute.
A presentation processor supports the #activeArea
feature if it implements presentation semantic
support for values of the ittp:activeArea
attribute.
F.9 #fillLineGap
A transformation processor supports the #fillLineGap
feature if it recognizes and is capable of
transforming values of the itts:fillLineGap
attribute.
A presentation processor supports the #fillLineGap
feature if it implements presentation semantic
support for values of the itts:fillLineGap
attribute.
G. XML Schema Definitions (non-normative)
XML Schema definitions (see [xmlschema-1]) for extension vocabulary defined by this specification are provided here for convenience.
These definitions are non-normative and are not sufficient to validate conformance of a Document Instance.
In any case where a definition specified by this appendix diverge from the prose of the specification, then the latter takes precedence.
H. Extensibility Objectives (non-normative)
This section documents extensibility objectives for this specification.
This specification is intended to allow:
- other profiles of TTML and future revisions of this specification to specify support for documents and/or processors conforming to Text Profile or Image Profile, in addition to specifying additional extensions;
- subject to the structural requirements of [TTML1], content from external namespaces to be present in a document that conforms to Text Profile or Image Profile (a) without affecting transformation or presentation, and (b) to be carried through by a transformation processor (see 6.2 Foreign Element and Attributes);
- a document that conforms to Text Profile or Image Profile to be embedded in other XML documents.
I. Compatibility with other TTML-based specifications (non-normative)
I.1 Overview
This specification is designed to be compatible with [ST2052-1], [EBU-TT-D] and [ttml10-sdp-us]. Specifically, it is possible to create a document that:
- conforms to one of [ST2052-1], [EBU-TT-D] or [ttml10-sdp-us], and also conforms to Text Profile; or
- conforms to [ST2052-1], and also conforms to Image Profile.
This specification is also intended to allow straightforward conversion of a document that conforms to the text or image profiles of [CFF] to the Text Profile or Image Profile, respectively.
I.2 EBU-TT-D
The Text Profile is a strict syntactic superset of [EBU-TT-D].
A document that conforms to [EBU-TT-D] therefore generally also conforms to the Text Profile, with a few exceptions, including:
- [EBU-TT-D] does not constrain document complexity using an HRM;
- [EBU-TT-D] recommends use of UTF-8 encoding but allows alternate encodings; and
- [EBU-TT-D] does not constrain the number of presented regions in a given intermediate synchronic document.
The ttp:profile
attribute and element are not allowed by [EBU-TT-D]. The
ebuttm:conformsToStandard
element is used instead, as discussed at 6.9 Profile Signaling.
It is not possible for a document that conforms to [EBU-TT-D] to also conform to Image Profile, and vice-versa, notwithstanding the special case where the document also conforms to Text Profile as noted at 5. Profiles.
The following is an example of a document that conforms to both Text Profile and [EBU-TT-D]. Note the presence of two
ebuttm:conformsToStandard
elements, one of which equals the Text Profile designator:
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xmlns="https://www.w3.org/ns/ttml" xmlns:ttp="https://www.w3.org/ns/ttml#parameter"
xmlns:tts="https://www.w3.org/ns/ttml#styling" xmlns:ttm="https://www.w3.org/ns/ttml#metadata"
xmlns:ebutts="urn:ebu:tt:style" xml:lang="en" ttp:timeBase="media" xmlns:ebuttm="urn:ebu:tt:metadata" >
<head>
<metadata>
<ebuttm:documentMetadata>
<ebuttm:conformsToStandard>urn:ebu:tt:distribution:2014-01</ebuttm:conformsToStandard>
<ebuttm:conformsToStandard>https://www.w3.org/ns/ttml/profile/imsc1/text</ebuttm:conformsToStandard>
</ebuttm:documentMetadata>
</metadata>
<styling>
<style xml:id="baseStyle" tts:color="#FFFFFF" tts:lineHeight="100%"/>
<style xml:id="blackBackground" tts:backgroundColor="#000000"/>
<style xml:id="greenBackground" tts:backgroundColor="#00FF00"/>
<style xml:id="startEnd" tts:textAlign="start" ebutts:multiRowAlign="end"/>
<style xml:id="centerStart" tts:textAlign="center" ebutts:multiRowAlign="start"/>
</styling>
<layout>
<region xml:id="area1" tts:origin="15% 10%" tts:extent="70% 20%" style="greenBackground" tts:displayAlign="center"/>
<region xml:id="area2" tts:origin="15% 70%" tts:extent="70% 20%" style="blackBackground" tts:displayAlign="center"/>
</layout>
</head>
<body>
<div style="baseStyle">
<p xml:id="s1" region="area1" style="startEnd" begin="00:00:01" end="00:00:09">
multiRowAlign="end"<br/>textAlign="start"
</p>
<p xml:id="s2" region="area2" style="centerStart" begin="00:00:01" end="00:00:09">
multiRowAlign="start"<br/>textAlign="center"
</p>
</div>
</body>
</tt>
I.3 SDP-US
The Text Profile is a strict syntactic superset of [ttml10-sdp-us].
A document that conforms to [ttml10-sdp-us] therefore also generally conforms to the Text Profile, with a few exceptions, including:
- [ttml10-sdp-us] does not constrain document complexity using an HRM.
[ttml10-sdp-us] requires a specific value of the use
attribute of the ttp:profile
. As a
result, Text Profile is not signaled using the ttp:profile
attribute. Instead, as specified in 5.4 Profile Resolution Semantics, the Text Profile can be signaled by the Document Interchange Context and/or the Document
Processing Context. Alternatively, a processor can choose to process a document as a Text Profile document if the
ttp:profile
element signals [ttml10-sdp-us], since [ttml10-sdp-us] is feasibly interoperable with Text
Profile.
It is not possible for a document that conforms to [ttml10-sdp-us] to also conform to Image Profile, and vice-versa, notwithstanding the special case where the document also conforms to Text Profile as noted at 5. Profiles.
As an illustration, Example 3 at [ttml10-sdp-us] conforms to both Text Profile and [ttml10-sdp-us].
I.4 SMPTE-TT (SMPTE ST 2052-1)
[ST2052-1] specifies the use of the DFXP Full Profile (see Appendix F.3 at [TTML1]) supplemented by a number of
extensions, including https://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt#image
.
This specification defines practical constraints on [ST2052-1], supplemented by a few extensions defined at F. Extensions. These constraints and extensions are intended to reflect industry practice.
As a result, particular care is required when creating a document intended to be processed according to both [ST2052-1] and Text Profile or Image Profile. In particular:
- in contrast to Text Profile and Image Profile, [ST2052-1] allows documents to contain both
smpte:backgroundImage
attributes and any ofp
,span
, orbr
elements; - Image Profile allows only a subset of the
https://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt#image
extension; - [ST2052-1] does not support the
#aspectRatio
,#forcedDisplay
,#linePadding
and#multiRowAlign
extensions that impact presentation; and - when the designator
"https://www.smpte-ra.org/schemas/2052-1/2010/profiles/smpte-tt-full"
is used as a value forttp:profile
element or attribute (see Section 5.8 at [ST2052-1]), Text Profile or Image Profile is signaled by the Document Interchange Context and/or the Document Processing Context.
The following is an example of a document that conforms to both Text Profile and [ST2052-1]:
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en" xmlns="https://www.w3.org/ns/ttml" xmlns:ttm="https://www.w3.org/ns/ttml#metadata"
xmlns:ttp="https://www.w3.org/ns/ttml#parameter" ttp:profile="https://www.smpte-ra.org/schemas/2052-1/2010/profiles/smpte-tt-full"
xmlns:tts="https://www.w3.org/ns/ttml#styling" ttp:frameRate="24">
<head>
<layout>
<region xml:id="area1" tts:origin="10% 70%" tts:extent="80% 20%" tts:showBackground="whenActive" tts:backgroundColor="red" tts:displayAlign="center" tts:color="white"/>
</layout>
</head>
<body tts:lineHeight="100%">
<div>
<p region="area1" begin="00:00:01.01" end="00:00:03">This should appear on frame 25.</p>
<p region="area1" begin="00:00:04" end="00:00:06">This should appear on frame 96.</p>
<p region="area1" begin="00:00:07.33" end="00:00:09">This should appear on frame 176.</p>
</div>
</body>
</tt>
I.5 CFF-TT
This specification was derived from the text and image profiles specified in Section 6 at [CFF], and is intended to be a superset in terms of capabilities. Additional processing is however generally necessary to convert a document from [CFF] to this specification. In particular:
- the namespace of the
progressivelyDecodable
attribute is different; - the
forcedDisplayMode
attribute in [CFF] is renamed toforcedDisplay
in this specification; - the [CFF] HRM does not specifies GCpy as a function of script;
- in [CFF], the attribute
ttp:frameRate
is not subject to the requirements specified at 6.11 Features and Extensions; and - [CFF] requires the use of the
ttp:profile
element, whereas this specification recommends the use of thettp:profile
attribute.
J. Acknowledgements (non-normative)
The editor acknowledges the current and former members of the Timed Text Working Group, the members of other W3C Working Groups, and industry experts in other forums who have contributed directly or indirectly to the process or content of this document.
The editor wishes to especially acknowledge the following contributions by members: Glenn Adams, Skynav; John Birch, Invited expert; Mike Dolan, Invited expert; Nigel Megitt, British Broadcasting Corporation; Thierry Michel, W3C; Andreas Tai, Institut für Rundfunktechnik.
The editor also wishes to acknowledge Digital Entertainment Content Ecosystem (DECE) for contributing to the initial document for the Member Submission.
K. Privacy and Security Considerations (non-normative)
TTML security
The security and privacy considerations of [rfc3023] and [TTML1] apply, particularly in relation to document parsing. XML Entities are excluded from the Reduced XML Infoset of TTML and are therefore not considered part of Document Instances; nevertheless implementations are encouraged to provide protection against recursive entity expansion or prevent entity expansion altogether in processors.
Privacy of preference
A user agent that selects, and causes to download or interpret a Document Instance, might indicate to the origin server that the user has a need for captions or subtitles, and also the language preference of the user for captions or subtitles. That is a small piece of information about the user. However, the offering of a Document Instance, and the choice whether to retrieve and consume it, are characteristics of the application that makes the offer (e.g. a web application based on [HTML]), rather than of the Document Instance itself.Security and Privacy related to external images
The Image Profile includes a mechanism for referencing external images. A user agent that downloads external images during media playback indicates to the origin server of the images the progress of the user's media consumption. In many cases such media progress information is available to the origin server of the media via other mechanisms, for example by scripting or by monitoring streaming media requests.
User agents that do not enforce cross origin policies when downloading external images expose such media progress information and potentially other user tracking information to other origins without the consent of the web site serving the media and without the consent of the user. This specification defines no APIs and makes no statement on how implementations are expected to obtain referenced images.
L. References
L.1 Normative references
- [CLDR]
- Unicode Consortium. The Common Locale Data Repository Project
- [EBU-TT-D]
- European Broadcasting Union (EBU). Tech 3380, EBU-TT-D Subtitling Distribution Format Version 1.0
- [PNG]
- Portable Network Graphics (PNG) Specification (Second Edition). Tom Lane. W3C. 10 November 2003. W3C Recommendation. URL: https://www.w3.org/TR/PNG/
- [RFC2119]
- Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
- [ST2052-1]
- SMPTE ST 2052-1, Timed Text Format (SMPTE-TT) URL: https://www.smpte.org/standards
- [TTML1]
- Timed Text Markup Language 1 (TTML1) (Second Edition). Glenn Adams. W3C. 24 September 2013. W3C Recommendation. URL: https://www.w3.org/TR/ttml1/
- [UNICODE]
- The Unicode Standard. Unicode Consortium. URL: https://www.unicode.org/versions/latest/
- [WCAG20]
- Web Content Accessibility Guidelines (WCAG) 2.0. Ben Caldwell; Michael Cooper; Loretta Guarino Reid; Gregg Vanderheiden et al. W3C. 11 December 2008. W3C Recommendation. URL: https://www.w3.org/TR/WCAG20/
- [xml-names]
- Namespaces in XML 1.0 (Third Edition). Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. W3C. 8 December 2009. W3C Recommendation. URL: https://www.w3.org/TR/xml-names/
L.2 Informative references
- [CEA-608]
- Consumer Technology Association. CTA 608-E, Line-21 Data Services.
- [CEA-708]
- Consumer Technology Association. CTA 708-D, Digital Television (DTV) Closed Captioning.
- [CFF]
- Digital Entertainment Content Ecosystem (DECE). Common File Format & Media Formats Specification (CFF) Version 2.2.
- [css3-background]
- CSS Backgrounds and Borders Module Level 3. Bert Bos; Elika Etemad; Brad Kemper. W3C. 17 October 2017. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-backgrounds-3/
- [HTML]
- HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
- [HTML5]
- HTML5. Ian Hickson; Robin Berjon; Steve Faulkner; Travis Leithead; Erika Doyle Navara; Theresa O'Connor; Silvia Pfeiffer. W3C. 27 March 2018. W3C Recommendation. URL: https://www.w3.org/TR/html5/
- [namespaceState]
- The Disposition of Names in an XML Namespace. Norman Walsh. W3C. 29 March 2006. W3C Working Draft. URL: https://www.w3.org/TR/namespaceState/
- [rfc3023]
- XML Media Types. M. Murata; S. St. Laurent; D. Kohn. IETF. January 2001. Proposed Standard. URL: https://tools.ietf.org/html/rfc3023
- [SUBM]
- World Wide Web Consortium (W3C). TTML Text and Image Profiles for Internet Media Subtitles and Captions (Member Submission, 07 June 2013)
- [ttml10-sdp-us]
- TTML Simple Delivery Profile for Closed Captions (US). Glenn Adams; Monica Martin; Sean Hayes. W3C. 5 February 2013. W3C Note. URL: https://www.w3.org/TR/ttml10-sdp-us/
- [xmlschema-1]
- XML Schema Part 1: Structures Second Edition. Henry Thompson; David Beech; Murray Maloney; Noah Mendelsohn et al. W3C. 28 October 2004. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema-1/
- [XSL11]
- Extensible Stylesheet Language (XSL) Version 1.1. Anders Berglund. W3C. 5 December 2006. W3C Recommendation. URL: https://www.w3.org/TR/xsl11/