This specification defines two profiles of [[ttml2]]: 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.
This specification improves on [[ttml-imsc1.1]] by supporting contemporary practices, while retaining compatibility with [[ttml-imsc1.1]] documents. Relative to [[ttml-imsc1.1]], any addition or deprecation of features are summarized at .
A list of the substantive changes applied since the initial Working Draft is found at substantive-changes-summary.txt.
This specification defines two profiles of [[!ttml2]]: 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.
This specification maintains the scope of [[ttml-imsc1.1]] while adding the minimal set of features necessary to support contemporary practices for worldwide subtitling and captioning delivery.
The specification is designed such that:
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 Profile.
This specification defines a document exchange format and associated validation and presentation requirements for subtitle and caption delivery worldwide, including dialog language translation, content description, captions for deaf and hard of hearing, etc. It is based on [[ttml2]] and includes extensions specified in [[SMPTE2052-1]] and [[EBU-TT-D]].
Two profiles are defined: in the Text Profile, timed text is expressed exclusively using code points defined in [[[Unicode]]], whereas, in the Image Profile, timed text is expressed exclusively using bitmap images. The clear distinction between the two profiles reduces authoring and processing complexity. For example, it allows systems to unambiguously specify whether timed text in text and/or image form is permitted.
Timed text in image form can be used in scenarios where the required text rendering functionality is not available, for example if the required fonts can not be distributed, or if the receiving processor has insufficient computing resources to present text while displaying video. They can also be used to achieve a visual effect that is beyond the capabilities of this specification, e.g. illuminated letters.
As detailed in , two distinct mechanisms are used to associate text alternative with timed text in image form:
altText
named metadata item
can be used to associate a simple text string with each image.As detailed in and , this specification is designed to be compatible with other TTML-based timed text formats, including [[ttml-imsc1]], [[ttml-imsc1.0.1]], [[SMPTE2052-1]], [[EBU-TT-D]], [[ttml10-sdp-us]] and [[CFF]].
To improve rendering fidelity, defines reference fonts and requires Processors to support one or more fonts with similar font metrics as these reference fonts. Similarly, in order to increase the confidence that text will be presented correctly by Processors targeting specific languages, defines common character sets that authors are encouraged to use.
To assist implementers in developing Processors that can render all Document Instances, specifies an hypothetical rendering model that is used to measure and limiting Document Instance complexity.
Both Text Profile and the Image Profile were based on [[SUBM]].
This specification uses the same conventions as [[!ttml2]] for the specification of parameter attributes, styling attributes and metadata elements. In particular:
This specification uses Feature and Extension designations as defined in Appendices E.1 and F.1 at [[!ttml2]]:
If the name of an element referenced in this specification is not namespace qualified, then the TT namespace applies (see .)
Associated region. The region
element associated with an element according to the [associate region]
procedure defined in [[!ttml2]].
Character Information Item. See Section 2.2 at [[!ttml2]].
Document Instance. See Section 2.2 at [[!ttml2]].
Default Processor Profile. As defined in [[!ttml2]].
Default Region. See Section 9.3.1 at [[!ttml2]].
Extension. See Section 2.2 at [[!ttml2]].
External Data Resource. See Section 2.2 at [[!ttml2]].
Feature. See Section 2.2 at [[!ttml2]].
Intermediate Synchronic Document. See Section 9.3.2 at [[!ttml2]].
Document Interchange Context. See Section 2.2 at [[!ttml2]].
Document Processing Context. As defined in [[!ttml2]].
Effective Processor Profile. As defined in [[!ttml2]].
Font Resource. As defined in [[!ttml2]].
Image Profile transformation processor. A transformation processor that conforms to the Image Profile.
Image Profile presentation processor. A presentation processor that conforms to the Image Profile.
Linear White-Space. See Section 2.3 at [[!ttml2]].
non-text content. As defined in [[!WCAG21]].
Override Content Profile. As defined in [[!ttml2]].
Processor. Either a Presentation processor or a Transformation processor.
Presentation processor. See Section 2.2 at [[!ttml2]].
Specified Value. As defined in [[!ttml2]].
Transformation processor. See Section 2.2 at [[!ttml2]].
Processor Profile. As defined in [[!ttml2]].
Related Media Object. See Section 2.2 at [[!ttml2]].
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 [[!ttml2]].
text alternative. As defined in [[!WCAG21]].
Text Profile transformation processor. A transformation processor that conforms to the Text Profile.
Text Profile presentation processor. A presentation processor that conforms to the Text Profile.
A Document Instance that conforms to a profile defined herein:
A Document Instance, by definition, satisfies the requirements of Section 3.1 at [[ttml2]], 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:
A transformation processor that conforms to a profile defined in this specification:
A Feature or Extension currently designated permitted-deprecated is intended to be designated as optional or prohibited in future versions of this specification.
A Feature or Extension designated as partially supported is neither completely prohibited nor completely permitted. Instead, the disposition of each of its subset Feature or Extension is specified individually.
[[ttml2]] makes a distinction between a presentation processor, whose purpose is to present a Document Instance, and transformation processor, whose purpose is to process a Document Instance without presenting it. A renderer embedded in the media pipeline of a mobile device is an example of a presentation processor, whereas a validator is an example of a transformation processor.
A processor that conforms to one profile defined in this specification is not required to conform to the other profile. For convenience, the terms Image Profile transformation processor, Text Profile transformation processor, Image Profile presentation processor, and Text Profile presentation processor are defined.
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 [[ttml2]]. 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.
Notwithstanding special cases, e.g. a Document Instance that contains no p
, span
,
br
, image
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.
The Profile Semantics specified in [[!ttml2]] apply.
The default value of prohibited attributes, e.g. ttp:contentProfileCombination
, applies.
The Text Profile processor profile includes all of the features required by each of the following processor profiles:
The Image Profile processor profile includes all of the features required by each of the following processor profiles:
Authors can use TTML content verification tools to detect and warn about overly constrained uses of content and processor profile attribute vocabulary, e.g. warn if (a) a document simultaneously (i) specifies conformance to content profile X and (ii) requires use of processor profile Y, and (b) profiles X and Y are semantically incompatible.
If one or more ebuttm:conformsToStandard
elements, as specified in [[!EBU-TT-M]], are set to any of the
following designators, then the override content profile SHALL be set to the profile associated with any one of the
matching designators:
urn:ebu:tt:distribution:2014-01
, as specified in [[!EBU-TT-D]]urn:ebu:tt:distribution:2018-04
, as specified in [[!EBU-TT-D]]See for a definition of permitted, prohibited, optional and permitted-deprecated.
Feature or Extension | Text Profile Disposition | Image Profile Disposition |
---|---|---|
Relative to the TT Feature namespace All features specified in [[ttml2]] are prohibited unless specified otherwise below |
||
#animation
|
permitted | |
#animation-version-2
|
Partially supported via #animation . |
|
#background
|
Partially supported via #backgroundColor . |
|
#backgroundColor
|
permitted | Partially supported via #backgroundColor-region and #backgroundColor-block . |
#backgroundColor-block
|
permitted | |
#backgroundColor-inline
|
permitted | prohibited |
#backgroundColor-region
|
permitted | |
#base
|
permitted | |
#base-version-2
|
Partially supported via #base . |
|
#bidi
|
permitted | Partially supported via #writingMode-horizontal . |
#bidi-version-2
|
Partially supported via #bidi and #unicodeBidi-version-2 . |
prohibited |
#cellResolution
|
permitted | |
#color
|
permitted Section specifies additional constraints. |
prohibited |
#content
|
permitted | permitted Section specifies additional constraints. |
#contentProfiles
|
permitted | |
#core
|
permitted | |
#direction
|
permitted | prohibited |
#disparity
|
permitted | |
#display
|
permitted | |
#display-block
|
permitted | |
#display-inline
|
permitted | |
#display-region
|
permitted | |
#display-version-2
|
Partially supported via #display , #display-block , #display-inline ,
and #display-region . |
|
#displayAlign
|
permitted | prohibited |
#displayAlign-region
|
permitted | prohibited |
#displayAlign-relative
|
permitted | prohibited |
#displayAlign-version-2
|
Partially supported via #displayAlign-region , and #displayAlign-relative . |
prohibited |
#displayAspectRatio
|
permitted Section specifies additional constraints. |
|
#embedded-audio
|
prohibited#embedded-data is however partially supported. |
prohibited. |
#embedded-content
|
Partially supported via #embedded-font . |
prohibited |
#embedded-data
|
Partially supported via #resources and #source . |
prohibited |
#embedded-font
|
Partially supported via #embedded-data and #font . |
prohibited |
#embedded-image
|
prohibited#embedded-data is however partially supported. |
Partially supported via #image . |
#extent
|
permitted | |
#extent-full-version-2
|
Partially supported via #extent-version-2 . |
|
#extent-image
|
prohibited | permitted Section specifies additional constraints. |
#extent-length
|
permitted | |
#extent-length-version-2
|
permitted | See the disposition of #length-version-2 . |
#extent-region
|
Partially supported via #extent-length .Section specifies additional constraints. |
Partially supported via #extent-length .Section specifies additional constraints. |
#extent-region-version-2
|
Partially supported via #extent-region . |
|
#extent-root
|
Partially supported via #extent-length .Section specifies additional constraints. |
|
#extent-root-version-2
|
Partially supported via #extent-root . |
|
#extent-version-2
|
Partially supported via #extent and #extent-region-version-2 . |
Partially supported via #extent , #extent-image , and
#extent-region-version-2 . |
#font
|
permitted Section specifies additional constraints. |
prohibited |
#fontFamily
|
permitted Section specifies additional constraints. |
prohibited |
#fontFamily-generic
|
permitted Section specifies additional constraints. |
prohibited |
#fontFamily-non-generic
|
permitted | prohibited |
#fontSize
|
Partially supported via #fontSize-isomorphic . |
prohibited |
#fontSize-isomorphic
|
permitted | prohibited |
#fontStyle
|
permitted | prohibited |
#fontStyle-italic
|
permitted Section provides additional information. |
prohibited |
#fontStyle-oblique
|
permitted Section provides additional information. |
prohibited |
#fontWeight
|
permitted | prohibited |
#fontWeight-bold
|
permitted | prohibited |
#frameRate
|
permitted Section specifies additional constraints. |
|
#frameRateMultiplier
|
permitted | |
#image
|
prohibited | permitted Section specifies additional constraints. |
#image-png
|
prohibited | permitted Section specifies additional constraints. |
#initial
|
permitted | prohibited |
#layout
|
permitted Section specifies additional constraints. |
|
#length
|
permitted | Partially supported via #length-integer , #length-real , #length-positive ,
#length-negative , #length-cell , #length-percentage , and
#length-pixel . |
#length-cell
|
permitted Section specifies additional constraints. |
|
#length-em
|
permitted | prohibited |
#length-integer
|
permitted | |
#length-negative
|
permitted Section specifies additional constraints. |
permitted Section specifies additional constraints. |
#length-percentage
|
permitted | |
#length-pixel
|
permitted | |
#length-positive
|
permitted | |
#length-real
|
permitted | |
#length-root-container-relative
|
permitted Section specifies additional constraints. |
prohibited |
#length-version-2
|
permitted | Partially supported via #length . |
#lineBreak-uax14
|
The processor SHALL implement the |
No processor requirement is specified. |
#lineHeight
|
permitted Section specifies additional constraints. |
prohibited |
#luminanceGain
|
permitted | |
#metadata
|
permitted | |
#metadata-item
|
permitted Section specifies additional constraints. |
|
#metadata-version-2
|
permitted | |
#nested-div
|
permitted | prohibited |
#nested-span
|
permitted | prohibited |
#opacity
|
permitted | |
#opacity-region
|
permitted | |
#opacity-version-2
|
Partially supported via #opacity . |
|
#origin
|
permitted Section specifies additional constraints. |
permitted |
#overflow
|
permitted | |
#overflow-visible
|
permitted | |
#padding
|
permitted | prohibited |
#padding-1
|
permitted | prohibited |
#padding-2
|
permitted | prohibited |
#padding-3
|
permitted | prohibited |
#padding-4
|
permitted | prohibited |
#padding-region
|
permitted | prohibited |
#padding-version-2
|
Partially supported via #padding , #padding-1 , #padding-2 ,
#padding-3 , #padding-4 , and #padding-region |
prohibited |
#position
|
permitted Section specify additional constraints. |
prohibited |
#presentation
|
permitted | |
#presentation-version-2
|
Partially supported via #presentation and #profile-version-2 |
|
#profile
|
permitted | |
#profile-full-version-2
|
Partially supported via #contentProfiles , #profile , and
#profile-version-2 . |
|
#profile-version-2
|
Partially supported via #contentProfiles , and #profile . |
|
#region-timing
|
permitted | |
#resources
|
permitted Section specify additional constraints. |
prohibited |
#ruby
|
permitted | prohibited |
#ruby-full
|
Partially supported via #ruby , #rubyAlign , #rubyPosition , and
#rubyReserve . |
prohibited |
#rubyAlign
|
Partially supported via #rubyAlign-minimal . |
prohibited |
#rubyAlign-minimal
|
permitted Section specifies additional constraints. |
prohibited |
#rubyPosition
|
permitted | prohibited |
#rubyReserve
|
permitted | prohibited |
#set
|
permitted | |
#shear
|
permitted Section provides additional information. |
prohibited |
#showBackground
|
permitted | |
#source
|
permitted Section specify additional constraints. |
prohibited |
#structure
|
permitted | |
#styling
|
permitted | |
#styling-chained
|
permitted | |
#styling-inheritance-content
|
permitted | |
#styling-inheritance-region
|
permitted | |
#styling-inline
|
permitted | |
#styling-nested
|
permitted | |
#styling-referential
|
permitted | |
#textAlign
|
permitted | prohibited |
#textAlign-absolute
|
permitted | prohibited |
#textAlign-relative
|
permitted | prohibited |
#textAlign-version-2
|
Partially supported via #textAlign , #textAlign-relative , and
#textAlign-absolute . |
prohibited |
#textCombine
|
permitted | prohibited |
#textDecoration
|
permitted | prohibited |
#textDecoration-over
|
permitted | prohibited |
#textDecoration-through
|
permitted | prohibited |
#textDecoration-under
|
permitted | prohibited |
#textEmphasis
|
Partially supported via #textEmphasis-minimal . |
prohibited |
#textEmphasis-minimal
|
permitted | prohibited |
#textOutline
|
Partially supported via #textOutline-unblurred . |
prohibited |
#textOutline-unblurred
|
permitted Section specifies additional constraints. |
prohibited |
#textShadow
|
permitted Section specifies additional constraints. |
prohibited |
#tickRate
|
permitted Section specifies additional constraints. |
|
#timeBase-media
|
permitted | |
#timeContainer
|
permitted | |
#time-clock
|
permitted | |
#time-clock-with-frames
|
permitted | |
#time-offset
|
permitted | |
#time-offset-with-frames
|
permitted | |
#time-offset-with-ticks
|
permitted | |
#timing
|
permitted Section specifies additional constraints. |
|
#transformation
|
permitted | |
#transformation-version-2
|
Partially supported via #transformation and #profile-version-2 . |
|
#unicodeBidi
|
permitted | prohibited |
#unicodeBidi-version-2
|
Partially supported via #unicodeBidi . |
prohibited |
#visibility
|
permitted | Partially supported via #visibility-block and #visibility-region . |
#visibility-block
|
permitted | |
#visibility-image
|
prohibited | permitted |
#visibility-inline
|
permitted | prohibited |
#visibility-region
|
permitted | |
#visibility-version-2
|
Partially supported via #visibility . |
Partially supported via #visibility and #visibility-image . |
#wrapOption
|
permitted | prohibited |
#writingMode
|
permitted | Partially supported via #writingMode-horizontal . |
#writingMode-horizontal
|
permitted | Partially supported via #writingMode-horizontal-lr and #writingMode-horizontal-rl . |
#writingMode-horizontal-lr
|
permitted | |
#writingMode-horizontal-rl
|
permitted | permitted-deprecated |
#writingMode-vertical
|
permitted | prohibited |
#zIndex
|
permitted-deprecated | |
Relative to the SMPTE-TT Extension Namespace | ||
#image |
prohibited | permitted-deprecated Section specifies additional constraints. |
Relative to the IMSC Extension namespace | ||
#activeArea
|
permitted | |
#altText
|
permitted-deprecated Section specifies additional constraints. |
|
#aspectRatio
|
permitted-deprecated Section specifies additional constraints. |
|
#fillLineGap
|
permitted | prohibited |
#forcedDisplay
|
permitted | |
#linePadding
|
permitted Section specifies additional constraints. |
permitted-deprecated |
#multiRowAlign
|
permitted Section specifies additional constraints. |
permitted-deprecated |
#progressivelyDecodable
|
permitted-deprecated |
A Document Instance SHALL be concretely encoded as a well-formed XML 1.0 [[!xml]] document using the UTF-8 character encoding as specified in [[!UNICODE]].
The resulting [[!xml]] document SHOULD NOT contain any of the following physical structures:
These physical structures are intended to be prohibited in future versions of this specification.
The resulting [[xml]] document can contain character references, and entity references to predefined entities.
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 [[ttml2]]. 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 [[ttml2]] prior to evaluating content conformance.
The following namespaces (see [[!xml-names]]) are used in this specification:
Name | Prefix | Value | Defining Specification |
---|---|---|---|
XML | xml |
http://www.w3.org/XML/1998/namespace |
[[!xml-names]] |
TT | tt |
http://www.w3.org/ns/ttml |
[[!ttml2]] |
TT Parameter | ttp |
http://www.w3.org/ns/ttml#parameter |
[[!ttml2]] |
TT Styling | tts |
http://www.w3.org/ns/ttml#styling |
[[!ttml2]] |
TT Feature | none | http://www.w3.org/ns/ttml/feature/ |
[[!ttml2]] |
SMPTE-TT Extension | smpte |
http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt |
[[!SMPTE2052-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 |
http://www.w3.org/ns/ttml/profile/imsc1#styling |
This specification |
IMSC Parameter | ittp |
http://www.w3.org/ns/ttml/profile/imsc1#parameter |
This specification |
IMSC Metadata | ittm |
http://www.w3.org/ns/ttml/profile/imsc1#metadata |
This specification |
IMSC Extension | none | http://www.w3.org/ns/ttml/profile/imsc1/extension/ |
This specification |
IMSC 1.2 Text Profile Designator | none | See Section | |
IMSC 1.2 Image Profile Designator | none | See Section |
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.
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 [[ttml2]], tts:overflow
has no effect on the extent of the region, and hence the
total normalized drawing area S(En) at .
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.
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.
The Root Container Region of a Document Instance SHALL be mapped to a rectangular area within each image frame of the Related Video Object according to the following:
ttp:displayAspectRatio="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.ttp:displayAspectRatio="16 9"
to match the 16:9 video, but
ittp:activeArea
indicates that the Active Area is smaller than the Root Container Region. The
system, which uses a 4:3 display, elects to scale the video and the Root Container Region such that all of the
subtitle/caption content within the Active Area is visible, with positional alignment maintained, at the cost of
clipping some of the video.
The #aspectRatio
feature is designated as permitted-deprecated in the profiles
defined by this specification. The #displayAspectRatio
feature provides equivalent semantics.
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 |
An ittp:aspectRatio
attribute is considered to be significant only when specified on the tt
element.
If specified on the tt
element, the ittp:aspectRatio
attribute specifies the display aspect
ratio of the Root Container Region. If not specified, then the display aspect ratio of the Root Container
Region is determined according to Appendix H of [[!ttml2]].
The #progressivelyDecodable
feature is designated as permitted-deprecated in
the profiles defined by this specification.
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:
head
element;p
element that lexically precedes any p
element that B includes;
p
; andIf 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="http://www.w3.org/ns/ttml" xmlns:ttm="http://www.w3.org/ns/ttml#metadata" xmlns:tts="http://www.w3.org/ns/ttml#styling" xmlns:ttp="http://www.w3.org/ns/ttml#parameter" xmlns:ittp="http://www.w3.org/ns/ttml/profile/imsc1#parameter" ittp:progressivelyDecodable="true" ttp:profile="..." > ... </tt>
[[ttml2]] specifies explicitly referencing of elements identified using xml:id
in the following
circumstances:
body
referencing region
elements. In this case, Requirement 4 above is
always satisfied.body
referencing style
elements. In this case, Requirement 4 above is
always satisfied.region
element referencing style
elements. In this case, Requirement 4 above is always
satisfied.style
element referencing other style
elements. In this case, Requirement 4 provides an
optimization of style
element ordering within the head
element.ttm:actor
element referencing a ttm:agent
element. In this case, Requirement 4 provides
optimization of metadata elements ordering within the document.ttm:agent
elements using the ttm:agent
attribute. In this
case, Requirement 4 provides optimization of metadata elements ordering within the document.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 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.
As specified in [[ttml2]], 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]].
The #altText
feature is designated as permitted-deprecated in the profiles
defined by this specification. The altText
named metadata item provides equivalent semantics.
ittm:altText
allows an author to provide a text string equivalent for an element, typically an image. This
text alternative MAY be used to support indexing of the content, facilitate quality checking of the document during
authoring and make a Image Profile Document Instance accessible to timed text authors with (visual)
disabilities in absence of a corresponding Text Profile Document Instance.
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.
specifies the use of the ittm:altText
element with images.
In contrast to the common use of alt
attributes in [[HTML]], 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.
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 Region 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.
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.
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"
.
The ttp:contentProfiles
attribute SHOULD be present on the tt
element, with exactly one of its
values equal to the designator of the profile (either Text Profile or Image Profile) to which the Document
Instance conforms.
The ttp:contentProfiles
attribute is prohibited in some profiles, e.g. [[EBU-TT-D]] as
discussed in .
To minimize the risk of incompatibility, the use of the ttp:contentProfiles
attribute and
other syntax introduced in [[ttml2]] is not recommended in documents intended to conform to profiles that are based on
[[TTML1]], e.g. [[SMPTE2052-1]], [[ttml-imsc1]] , [[ttml-imsc1.0.1]] , or [[ttml10-sdp-us]].
The ttp:contentProfiles
attribute can include additional designators, beyond those specified
herein, including designators for other versions of this specification.
specifies the process by which the effective processor profile associated with the Document Instance is determined.
When using the ebuttm:conformsToStandard
element specified in [[!EBU-TT-M]], the designators of the Text
Profile and Image Profile SHALL be used when indicating conformance to the corresponding profile.
See for a sample Document Instance that follows the recommendations of this section.
It SHALL be possible to apply the Hypothetical Render Model specified in Section to any sequence of consecutive intermediate synchronic documents without error as defined in Section .
The following style properties SHALL be subject to the Style Resolution procedures specified at Section 10.4 of [[!ttml2]]:
itts:fillLineGap
itts:forcedDisplay
ebutts:linePadding
ebutts:multiRowAlign
The style properties above can be specified as attributes of the initial
element specified at
Section 10.1.1 of [[ttml2]].
A presented region is a temporally active region that satisfies the following conditions:
tts:opacity
is not equal to "0.0"
; andtts:display
is not "none"
; andtts:visibility
is not "hidden"
; andtts:showBackground
is
equal to "always"
and the computed value of tts:backgroundColor
has non-transparent
alpha.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.
The number of presented regions in a given intermediate synchronic document SHALL NOT be greater than 4.
altText
named metadata itemA altText
named metadata item SHALL NOT be present in a Document Instance if any
ittm:altText
element is also present.
#altText
The ittm:altText
element SHOULD NOT be present unless compatibility with [[ttml-imsc1.0.1]] processors is
desired.
A ittm:altText
element SHALL NOT be present in a Document Instance if any altText
named
metadata item element is also present.
#aspectRatio
The ittp:aspectRatio
attribute SHOULD NOT be present in a Document Instance unless compatibility
with [[ttml-imsc1.0.1]] processors is desired.
The ittp:aspectRatio
attribute SHALL not be present in a Document Instance if any
ttp:displayAspectRatio
attribute is also present.
#displayAspectRatio
The ttp:displayAspectRatio
attribute SHALL not be present in a Document Instance if any
ittp:aspectRatio
attribute is also present.
#extent-root
If the Document Instance includes any length value that uses the px
unit, tts:extent
SHALL be present on the tt
element.
#frameRate
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.
#length-cell
c
units SHALL NOT be present outside of the value of ebutts:linePadding
.
#length-root-container-relative
When specified on a tts:extent
or tts:position
attribute:
rh
units SHALL NOT be used for horizontal length components; andrw
units SHALL NOT be used for vertical length components.#tickRate
ttp:tickRate
SHALL be present on the tt
element if the document contains any time expression
that uses the t
metric.
#timeBase-media
[[ttml2]] specifies that the default timebase is "media"
if ttp:timeBase
is not specified on
tt
.
#time-offset-with-frames
As specified in [[ttml2]], 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
)).
#timing
For any content element that contains br
elements or text nodes or a smpte:backgroundImage
attribute, both the begin
attribute and one of either the end
or dur
attributes
SHOULD be specified on the content element or at least one of its ancestors.
usesForced
named metadata itemThe usesForced
named metadata item does not apply since the condition
attribute is
prohibited.
The itts:forcedDisplay
attribute is used to specify forced content semantics.
#zIndex
This feature has no effect since, as specified at , presented regions do not overlap in a Document Instance.
This profile is associated with the following profile designator:
Profile Name | Profile Designator |
---|---|
IMSC 1.2 Text | http://www.w3.org/ns/ttml/profile/imsc1.2/text |
A Document Instance SHOULD be authored using characters selected from the sets specified in .
When rendering codepoints matching one of the combinations of computed font family and codepoints listed in , 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 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 . Two fonts with equal metrics can have a different appearance, but flow identically.
A Presentation Processor SHALL support font resources of the following media types, as defined in [[!IANA-MEDIA-TYPES]]:
[[IANA-MEDIA-TYPES]] specifies that the media type
font/otf
includes file extensions .ttf
and .otf
.
#color
The initial value of tts:color
SHALL be "white"
.
This is consistent with [[SMPTE2052-1]].
The named color green
defined in [[ttml2]] is equivalent to the RGB color triple
#008000
and is not full luminance. For full luminance green, an author can specify the RGB color triple
#00ff00
or the named color lime
.
#extent-region
For each region
element defined in the Document Instance, the specified value of the tts:extent
style
property SHALL consist of two length expressions that use pixel (px), percentage (%), or root container relative units.
If no region
element is defined in the Document Instance, then content flows into the default region;
conversely, if one or more region
elements are defined in the Document Instance, the default region is not used.
The requirement above requires the author to explicitly specify the value of tts:extent
in the Document Instance,
e.g. by specifying the tts:extent
attribute for each region
element.
#font
and #source
A font
element in the Document Instance SHALL not specify a src
attribute.
All source
elements that are children of a font
element SHALL reference an external data resource.
A Processor MAY use the [[css-fonts-3]] §5 font matching algorithm for associating a font with a run of text.
#fontFamily-generic
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 monospaceSerif
or proportionalSansSerif
generic font
families, for which reference font metrics are defined at .
If the computed value of tts:fontFamily
is "default"
, then the used value of
tts:fontFamily
SHALL be "monospaceSerif"
.
The term used value is defined in CSS 2.1, as normatively referenced by [[ttml2]].
#fontFamily
Linear white-space SHOULD NOT appear between components of the specified value of
tts:fontFamily
.
#length-negative
Strictly negative length
expressions SHALL NOT be used with attributes other than:
tts:disparity
; andtts:textShadow
.#lineHeight
The specified value of the tts:lineHeight
attribute SHOULD be such that specified style set of each
p
element contains a tts:lineHeight
property whose value is not normal
.
Implementation of the normal
value is not uniform at the time of this writing.
#origin
The value of the tts:origin
attribute SHALL consist of two length expressions that use pixel (px) or percentage (%) units.
If the tts:position
attribute is specified anywhere in a Document Instance, then the
tts:origin
attribute SHALL NOT be specified anywhere in that Document Instance.
#position
All length
components of the value of a tts:position
attribute SHALL use pixel (px), percentage (%) or root
container relative units.
If the tts:origin
attribute is specified anywhere in a Document Instance, then the
tts:position
attribute SHALL NOT be specified anywhere in that Document Instance.
#resources
The resources
element SHALL not contain any of the following children elements:
audio
;data
; andimage
.#rubyAlign
The specified value of the tts:rubyAlign
attribute SHALL be such that its computed value is
center
or spaceAround
.
#textOutline-unblurred
The specified value of the tts:textOutline
attribute SHALL be such that its computed value on any
span
element is 10% or less than the computed value of tts:fontSize
attribute on the same
element.
#textShadow
The specified value of the tts:textShadow
attribute SHALL NOT have more than 4 <shadow>
values.
ebutts:linePadding
In addition to the style
element, the attribute ebutts:linePadding
MAY be specified on the
following elements:
region
body
div
p
initial
The processor:
ebutts:linePadding
to p
only; andebutts:linePadding
as inheritable.The ebutts:linePadding
attribute only supports c
length units.
In contrast to this specification, [[EBU-TT-D]] specifies that the attribute
ebutts:linePadding
is allowed only on the style
element.
ebutts:multiRowAlign
In addition to the style
element, the attribute ebutts:multiRowAlign
MAY be specified on the
following elements:
region
body
div
p
initial
The processor:
ebutts:multiRowAlign
to p
only; andebutts:multiRowAlign
as inheritable.In contrast to this specification, [[EBU-TT-D]] specifies that the attribute
ebutts:multiRowAlign
is allowed only on the style
element.
Since (a) Japanese-language fonts typically do not include italic or oblique faces, and
(b) Japanese-language slanted vertical text consists of characters slanted in the vertical direction (and not
in the horizontal direction), it is recommended that tts:shear
be specified to slant Japanese-language text
– instead of specifying tts:fontStyle="italic"
or tts:fontStyle="oblique"
.
This profile is associated with the following profile designator:
Profile Name | Profile Designator |
---|---|
IMSC 1.1 Image | http://www.w3.org/ns/ttml/profile/imsc1.1/image |
This profile designator remains unchanged from [[ttml-imsc1.1]] since this specification makes no substantive changes to the Image Profile.
A presented image is a div
element:
smpte:backgroundImage
attribute or a child image
element; andA presented image is never presented in the default region since, as specified in and
, it is always associated with a region
defined in the Document Instance.
In a given intermediate synchronic document, each presented region SHALL contain at most one
div
element, which SHALL be a presented image.
For the purposes of constructing an intermediate synchronic document, a div
element with a
smpte:backgroundImage
attribute SHALL NOT be considered empty.
An image resource is a PNG datastream as specified in [[!PNG]].
If a pHYs chunk is present, it SHALL indicate square pixels.
[[PNG]] specifies that, if no pixel aspect ratio is carried, the default of square pixels is assumed.
#content
The p
, span
and br
elements SHALL NOT be present.
Sections below specify constraints on div
elements.
#extent-region
The tts:extent
attribute SHALL be present on each region
element defined in the Document Instance
and its value SHALL consist of two length expressions that use pixel (px) units.
#length-negative
Strictly negative length
expressions SHALL NOT be used with attributes other than:
tts:disparity
.TTML #image Feature
The image
element SHALL only be used in a image presentation context.
The image
element SHALL be a child of a div
element that does not have a
smpte:backgroundImage
attribute.
A div
element SHALL have zero or one child image
element.
A div
element that has a child image
element SHALL be associated
with a region
element defined in the Document Instance.
A div
element that contains a child image
element SHOULD contain a metadata
element containing an altText
named metadata item that is a text alternative of the image resource
referenced by the image
element.
An image
element SHALL specify a src
attribute, which references an image resource that
conforms to .
An image
element SHALL specify a type
attribute.
An image
element SHALL specify a tts:extent
attribute, which shall be equal to:
tts:extent
style property of the region
element in which the image
element is presented; andSMPTE #image Extension
smpte:backgroundImage
smpte:backgroundImage
MAY be used with the semantics of the attribute defined by Sections 5.5.2 of
[[!SMPTE2052-1]].
If a smpte:backgroundImage
attribute is applied to a div
element:
div
element SHALL be associated with a region
element defined in the Document Instance;smpte:backgroundImage
SHALL be
equal to the width and height expressed by the tts:extent
attribute of the region in which the div
element is presented;div
element SHOULD contain a metadata
element containing an ittm:altText
element that is a text alternative of the image referenced by the smpte:backgroundImage
attribute;
smpte:backgroundImage
attribute SHALL reference an image resource that conforms to ; and
div
element SHALL NOT have any image
element as a descendant.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
.
The rendering semantics of smpte:backgroundImage
are not identical to those of
background-image
specified at Section 7.8.3 of [[XSL11]]. In particular, Section 5.5.6 at [[SMPTE2052-1]]
amends the semantics of background-image
by specifying values for its min-height
and
min-width
properties.
smpte:backgroundImageHorizontal
and smpte:backgroundImageVertical
smpte:backgroundImageHorizontal
and smpte:backgroundImageVertical
SHALL NOT be used.
smpte:image
smpte:image
SHALL NOT be used.
This Section specifies the Hypothetical Render Model illustrated in .
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 Root Container Region dimensions, 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.
The Presentation Compositor SHALL render in Presentation Buffer Pn each successive intermediate synchronic document En using the following steps in order:
The Presentation Compositor SHALL start rendering En:
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
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.
It SHALL be an error if the total retrieved font size exceeds 10 MiB.
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.
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:
region
layout element that defines the region; ordiv
, p
, span
or br
content element that is to
be flowed into the region for presentation in the intermediate synchronic document (see [[!ttml2]] for more details
on when a content element is followed into a region); or
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 [[!ttml2]] for more details on when a
set
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.
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:
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
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 |
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
tts:textShadow
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:
In the case of external data resource retrieved using [[HTTP11]], the size in bytes of the external data resource
is the entity-length
of the message.
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
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 base | 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.
Computed Font Family | Code Points | Reference Font |
---|---|---|
monospaceSerif |
All code points specified in | Courier New or Liberation Mono |
proportionalSansSerif |
All code points specified in , excluding the code points defined for Hebrew and Arabic scripts. | Arial or Helvetica or Liberation Sans |
While a Processor is required to accept, and encouraged to render, all Character Information Items, practical considerations can result in a Processor being capable of rendering only a subset of them. In order to increase the confidence that text will be presented correctly by Processors targeting specific languages, this section defines common character sets that authors are encouraged to use.
The common character sets defined herein are expected to evolve over time, and implementers are encouraged to review them regularly.
The definition of common character sets herein is in no way intended to limit the set of characters that a Processor renders.
Implementers are cautioned that a given sequence of characters can yield different visual representations depending on the context, including surrounding characters, language and font. In other words, there is not necessarily a one-to-one mapping between a character and its visual representation.
For a given language indicated using the xml:lang
attribute, the common character set is equal to the union of
the following sets:
Some of the sets above can overlap.
Table 1 captures the set of characters intended to be always available to authors. 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 |
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.
Success Criterion 1.1.1 at [[!WCAG21]] specifies that, with some exceptions, all non-text content that is presented to the user has a text alternative that serves the equivalent purpose.
As such, when an Image Profile Document Instance is made available to a consumer, a corresponding Text Profile Document Instance SHOULD simultaneously be offered and associated with the Image Profile Document Instance such that, when image content is encountered, assistive technologies have access to its text alternative. The method by which this association is made is left to each application.
In the context of this specification, text alternative is intended primarily to support users of the subtitles who cannot see images (the non-text content). Since the images of an Image Profile Document Instance usually represent subtitle or caption text, the guidelines of Text that has been rendered to a graphic for typographical effect at [[!HTML]] are appropriate.
Thus, for each subtitle in an Image Profile Document Instance, text alternative 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 alternative in cases where styling is applied to the text image with a deliberate connotation, as a functional replacement for the applied style.
During authoring, the altText
named metadata item can be
used to associate a simple text string with an image to, for example:
Success Criterion 1.4.3 at [[!WCAG21]] specifies that, with some exceptions, the visual presentation of text and images of text has a contrast ratio of at least 4.5:1.
In the context of Text Profile, this is achieved by specifying appropriate foreground and background colors.
Success Criterion 1.4.12 at [[!WCAG21]] specifies that no loss of content or functionality occur when spacing of lines, letters, words and paragraphs is modified by a specified amount.
In the context of this specification, this is achieved by specifying an appropriate combination of style properties to achieve the desired line height, font size, region extent, etc.
Success Criteria 3.1.1 and 3.1.2 at [[!WCAG21]] specify that the human language of each passage or phrase in the content can be programmatically determined.
In the context of this specification, this is achieved by specifying
xml:lang
.
Authors and implementers are encouraged to consult [[media-accessibility-reqs]], which presents accessibility requirements users with disabilities have with respect to audio and video on the web.
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.
The following sections define extension designations, expressed as relative URIs (fragment identifiers) relative to the IMSC Extension Namespace base URI.
The #progressivelyDecodable
feature is designated as permitted-deprecated in the
profiles defined by this specification.
A transformation processor supports the #progressivelyDecodable
feature if it recognizes and is
capable of transforming values of the ittp:progressivelyDecodable
attribute.
A presentation processor supports the #progressivelyDecodable
feature if it implements presentation
semantic support for values of the ittp:progressivelyDecodable
attribute.
The #aspectRatio
feature is designated as permitted-deprecated in the profiles
defined by this specification. The #displayAspectRatio
feature provides equivalent semantics.
A transformation processor supports the #aspectRatio
feature if it recognizes and is capable of
transforming values of the ittp:aspectRatio
attribute.
A presentation processor supports the #aspectRatio
feature if it implements presentation semantic
support for values of the ittp:aspectRatio
attribute.
A transformation processor supports the #forcedDisplay
feature if it recognizes and is capable of
transforming values of the itts:forcedDisplay
attribute.
A presentation processor supports the #forcedDisplay
feature if it implements presentation semantic
support for values of the itts:forcedDisplay
attribute.
The #altText
feature is designated as permitted-deprecated in the profiles
defined by this specification. The altText
named metadata item provides equivalent semantics.
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.
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]].
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]].
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.
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.
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.
This section documents extensibility objectives for this specification.
This specification is intended to allow:
This specification is designed to be compatible with [[ttml-imsc1]], [[ttml-imsc1.0.1]], [[SMPTE2052-1]], [[EBU-TT-D]] and [[ttml10-sdp-us]]. Specifically, by selecting a subset of the features and extensions defined in this specification, it is possible to create a document that:
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.
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:
The profile vocabulary defined in [[ttml2]] is prohibited by [[EBU-TT-D]]. Instead, as specified in [[EBU-TT-M]], multiple
ebuttm:conformsToStandard
elements are optionally present in the metadata
element of the
head
element, with each ebuttm:conformsToStandard
indicating conformance to a specification,
including other versions of this specification.
Conformance to a [[ttml-imsc1.0.1]] profile can be indicated as defined in [[ttml-imsc1.0.1]], by including
an additional ebuttm:conformsToStandard
element whose value is equal to the designator of the [[ttml-imsc1.0.1]]
profile to which the Document Instance conforms.
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 .
The following is an example of a document that conforms to Text Profile, [[ttml-imsc1.0.1]] Text Profile and
[[EBU-TT-D]]. Note the presence of multiple ebuttm:conformsToStandard
elements, one of which equals the Text
Profile designator:
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:
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 .
As an illustration, Example 3 at [[ttml10-sdp-us]] conforms to both Text Profile and [[ttml10-sdp-us]].
[[SMPTE2052-1]] specifies the use of the DFXP Full Profile (see Appendix F.3 at [[ttml2]]) supplemented by a number of
extensions, including http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt#image
.
This specification defines practical constraints on [[SMPTE2052-1]], supplemented by extensions defined herein and selected [[ttml2]] features. 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 [[SMPTE2052-1]], and Text Profile or Image Profile. In particular:
smpte:backgroundImage
attributes and any of p
, span
, or br
elements;
http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt#image
extension;
The following is an example of a document that conforms to both Text Profile and [[SMPTE2052-1]]:
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:
progressivelyDecodable
attribute is different;forcedDisplayMode
attribute in [[CFF]] is renamed to forcedDisplay
in this
specification;ttp:frameRate
is not subject to the requirements specified at Section ; and
use
attribute of the ttp:profile
. This value signals a
processor profile that is not compatible with the processor profiles specified in this specification.The Text Profile is a strict superset of the [[ttml-imsc1]], [[ttml-imsc1.0.1]] and [[ttml-imsc1.1]] Text Profile.
The Image Profile is a strict superset of the [[ttml-imsc1]], [[ttml-imsc1.0.1]] and [[ttml-imsc1.1]] Image Profile.
A document that conforms to [[ttml-imsc1]] or [[ttml-imsc1.0.1]] or [[ttml-imsc1.1]] therefore also conforms to this specification.
A number of features that were previously permitted in previous versions of IMSC are designated as permitted-deprecated in the Text Profile and Image Profile. Documents that use such features are therefore susceptible to being incompatible with future versions of this specification.
The following is an example of a document that conforms to both Image Profile and [[ttml-imsc1.0.1]] Image Profile:
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; Stefan Pöschel, 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.
With the exception of the following, the security and privacy considerations of [[ttml2]] apply:
condition
attribute is not supported.This appendix summarizes changes made from [[ttml-imsc1.1]].
Replaced normative references to [[WCAG20-20081211]] with normative references to [[WCAG21]].
In the Text Profile, and as specified at , the specified value of the tts:extent
style property of a region
element can be set using any style association mechanism, e.g. nested styling.
Revised the Text Profile designator.
Added support (partial or complete) for the following features.
Relative to the TT Feature namespace |
#font |
#resources |
#source |
None