This specification defines a text-only profile of [[ttml2]] intended for subtitle and caption delivery applications worldwide.

It improves over the Text Profile specified at at [[ttml-imsc1.2]], with the improvements summarized at .

Scope

This specification defines a text-only profile of [[ttml2]], which is intended for subtitle and caption delivery worldwide, including dialog language translation, content description, captions for deaf and hard of hearing, etc.

The specification is designed such that:

Introduction

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.

The format is a profile of [[ttml2]], called the Text Profile, consisting of a subset of the features of [[ttml2]] alongside additional features specified in [[EBU-TT-D]], e.g., , and defines new features, e.g., . The Text Profile is text-only: the timed text that comprise the subtitles and captions is expressed exclusively using code points defined in [[[Unicode]]].

As detailed in and , this specification is designed to be compatible with other text-only profiles of TTML, including [[ttml-imsc1]], [[ttml-imsc1.0.1]], [[ttml-imsc1.1]], [[ttml-imsc1.2]], [[SMPTE2052-1]], [[EBU-TT-D]], [[ttml10-sdp-us]] and [[CFF]].

Earlier versions of this specification specify an image-only profile, called the Image Profile, which is no longer specified herein. discusses the relationship between this and earlier versions of the specification.

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.

An Hypothetical Render Model is specified separately at [[imsc-hrm]]. The Hypothetical Render Model allows subtitle and caption authors and providers to verify that the Text Profile documents they supply do not exceed defined complexity levels, so that playback systems can render the content synchronized with the author-specified display times.

This specification was initially based on [[SUBM]].

Documentation Conventions

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

Terms and Definitions

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

Linear White-Space. See Section 2.3 at [[!ttml2]].

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 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 the Text Profile:

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 the Text Profile:

A transformation processor that conforms to the Text Profile:

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 the Text Profile is not required to conform to any other profile. For convenience, and for consistency with previous versions of this specification, the terms Text Profile transformation 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.

Text Profile

General

The Text Profile consists of Sections and .

Designator

This Text Profile is associated with the following profile designator:

Profile Name Profile Designator
IMSC 1.3 Text http://www.w3.org/ns/ttml/profile/imsc1.3/text

Profile Resolution Semantics

General

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:

  • [[ttml10-sdp-us]]
  • [[EBU-TT-D]]
  • [[ttml-imsc1.0.1]] Text Profile
  • [[ttml-imsc1.1]] Text Profile
  • [[ttml-imsc1.2]] Text Profile

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.

Override

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:

  • [[ttml-imsc1.0.1]] Text Profile Designator
  • [[ttml-imsc1.1]] Text Profile Designator
  • [[ttml-imsc1.2]] Text Profile Designator
  • Text Profile Designator
  • urn:ebu:tt:distribution:2014-01, as specified in [[!EBU-TT-D]]
  • urn:ebu:tt:distribution:2018-04, as specified in [[!EBU-TT-D]]

Supported Features and Extensions

See for a definition of permitted, prohibited, optional and permitted-deprecated.

Feature or Extension Text 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
#backgroundColor-block permitted
#backgroundColor-inline permitted
#backgroundColor-region permitted
#base permitted
#base-version-2 Partially supported via #base.
#bidi permitted
#bidi-version-2 Partially supported via #bidi and #unicodeBidi-version-2.
#cellResolution permitted
#color permitted
Section specifies additional constraints.
#content permitted
#contentProfiles permitted
#core permitted
#direction permitted
#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
#displayAlign-region permitted
#displayAlign-relative permitted
#displayAlign-version-2 Partially supported via #displayAlign-region, and #displayAlign-relative.
#displayAspectRatio permitted
Section specifies additional constraints.
#embedded-audio prohibited
#embedded-data is however partially supported.
#embedded-content Partially supported via #embedded-font.
#embedded-data Partially supported via #resources and #source.
#embedded-font Partially supported via #embedded-data and #font.
#embedded-image prohibited
#embedded-data is however partially supported.
#extent permitted
#extent-full-version-2 Partially supported via #extent-version-2.
#extent-length permitted
#extent-length-version-2 permitted
#extent-region 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.
#font permitted
Section specifies additional constraints.
#fontFamily permitted
Section specifies additional constraints.
#fontFamily-generic permitted
Section specifies additional constraints.
#fontFamily-non-generic permitted
#fontSize Partially supported via #fontSize-isomorphic.
#fontSize-isomorphic permitted
#fontStyle permitted
#fontStyle-italic permitted
Section provides additional information.
#fontStyle-oblique permitted
Section provides additional information.
#fontVariant permitted
Section specifies additional constraints.
#fontWeight permitted
#fontWeight-bold permitted
#frameRate permitted
Section specifies additional constraints.
#frameRateMultiplier permitted
#initial permitted
#layout permitted
Section specifies additional constraints.
#length permitted
#length-cell permitted
Section specifies additional constraints.
#length-em permitted
#length-integer permitted
#length-negative 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.
#length-version-2 permitted
#lineBreak-uax14

The processor SHALL implement the #lineBreak-uax14 feature.

#lineHeight permitted
Section specifies additional constraints.
#luminanceGain permitted
#metadata permitted
#metadata-item permitted
Section specifies additional constraints.
#metadata-version-2 permitted
#nested-div permitted
#nested-span permitted
#opacity permitted
#opacity-region permitted
#opacity-version-2 Partially supported via #opacity.
#origin permitted
Section specifies additional constraints.
#overflow permitted
#overflow-visible permitted
#padding permitted
#padding-1 permitted
#padding-2 permitted
#padding-3 permitted
#padding-4 permitted
#padding-region permitted
#padding-version-2 Partially supported via #padding, #padding-1, #padding-2, #padding-3, #padding-4, and #padding-region
#position permitted
Section specify additional constraints.
#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.
#ruby permitted
#ruby-full Partially supported via #ruby, #rubyAlign, #rubyPosition, and #rubyReserve.
#rubyAlign Partially supported via #rubyAlign-minimal.
#rubyAlign-minimal permitted
Section specifies additional constraints.
#rubyPosition permitted
#rubyReserve permitted
#set permitted
#shear permitted
Section provides additional information.
#showBackground permitted
#source permitted
Section specify additional constraints.
#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
#textAlign-absolute permitted
#textAlign-relative permitted
#textAlign-version-2 Partially supported via #textAlign, #textAlign-relative, and #textAlign-absolute.
#textCombine permitted
#textDecoration permitted
#textDecoration-over permitted
#textDecoration-through permitted
#textDecoration-under permitted
#textEmphasis Partially supported via #textEmphasis-minimal.
#textEmphasis-minimal permitted
#textOutline Partially supported via #textOutline-unblurred.
#textOutline-unblurred permitted
Section specifies additional constraints.
#textShadow permitted
Section specifies additional constraints.
#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
#unicodeBidi-version-2 Partially supported via #unicodeBidi.
#visibility permitted
#visibility-block permitted
#visibility-inline permitted
#visibility-region permitted
#visibility-version-2 Partially supported via #visibility.
#wrapOption permitted
#writingMode permitted
#writingMode-horizontal permitted
#writingMode-horizontal-lr permitted
#writingMode-horizontal-rl permitted
#writingMode-vertical permitted
#zIndex permitted-deprecated
Relative to the IMSC Extension namespace
#activeArea permitted
#altText permitted-deprecated
#aspectRatio permitted-deprecated
Section specifies additional constraints.
#fillLineGap permitted
#forcedDisplay permitted
#linePadding permitted
Section specifies additional constraints.
#multiRowAlign permitted
Section specifies additional constraints.
#progressivelyDecodable permitted-deprecated

Additional Provisions

Reference Fonts

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.

Font Resources

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.

Document Encoding

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.

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

For validation purposes it is good practice to define and use a content specification for all foreign namespace elements and attributes used within a Document Instance.

Namespaces

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

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.

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.

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.

Mapping the Root Container Region to the Related Video Object

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:

  1. the ratio of the width to the height of the rectangular area is equal to the display aspect ratio of the Root Container Region as determined in Appendix H of [[!ttml2]];
  2. the center of the rectangular area is collocated with the center of the image frame;
  3. the rectangular area is entirely within the image frame; and
  4. the rectangular area has a height or width equal to that of the image frame.
The mapping algorithm above allows the author to precisely control caption/subtitle position relative to elements within each frame of the video program, e.g. to match the position of actors. This mapping algorithm does not however specify the presentation of either the video frame or Root Container Region on the ultimate display device. This presentation depends on many factors, including user input, and can involve displaying only parts of the content. Authors are therefore encouraged to follow best practices for the intended target applications. Below are selected examples:
  • 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 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.
  • 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.
  • Subtitle/captions are authored using 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.

Document complexity

A Text Profile document SHOULD conform to the Hypothetical Render Model specified at [[!imsc-hrm]].

This limits the complexity of the Text Profile document, so that playback systems can render the content synchronized with the author-specified display times.

Regions

Presented Region

A presented region is a temporally active region that satisfies the following conditions:

  1. the computed value of tts:opacity is not equal to "0.0"; and
  2. the computed value of tts:display is not "none"; and
  3. the computed value of tts:visibility is not "hidden"; and
  4. either (a) content is selected into the region or (b) the computed value of tts:showBackground is equal to "always" and the computed value of tts:backgroundColor has non-transparent alpha.

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.

Maximum number

The number of presented regions in a given intermediate synchronic document SHALL NOT be greater than 4.

Extension Vocabulary

ittp:aspectRatio

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

ittp:progressivelyDecodable

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:

  1. no attribute or element of the TTML timing vocabulary is present within the head element;
  2. 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 any p element that B includes;
  3. no attribute of the TTML timing vocabulary is present on a descendant element of p; and
  4. 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="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:

  • an element in body referencing region elements. In this case, Requirement 4 above is always satisfied.
  • an element in body referencing style elements. In this case, Requirement 4 above is always satisfied.
  • a region element referencing style elements. In this case, Requirement 4 above is always satisfied.
  • a style element referencing other style elements. In this case, Requirement 4 provides an optimization of style element ordering within the head element.
  • a ttm:actor element referencing a ttm:agent element. In this case, Requirement 4 provides optimization of metadata elements ordering within the document.
  • a content element referencing ttm:agent elements using the ttm:agent attribute. In this case, Requirement 4 provides optimization of metadata elements ordering within the document.

itts:forcedDisplay

The itts:forcedDisplay attribute can be used to hide content when the processor has been configured to do so via the application parameter displayForcedOnlyMode.

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

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

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

ittm:altText

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, which MAY be used to support indexing of the content, or facilitate quality checking of the document. It can also be used by assistive technologies.

The #altText feature is primarily useful in providing a text alternative to image-based subtitles and captions, which are not supported by the Text Profile.

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

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


      

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.



        
itts:fillLineGap rendering example 1
Illustrative rendition of the example immediately above with 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".



        
itts:fillLineGap rendering example 2
Illustrative rendition of the example immediately above, where itts:fillLineGap="true" on the two paragraphs of the top region, itts:fillLineGap="false" on the two paragraphs of the bottom region.

Profile Signaling

General

The ttp:contentProfiles attribute SHOULD be present on the tt element, with exactly one of its values equal to the designator Text Profile.

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.

Signaling conformance using EBU-TT metadata

When using the ebuttm:conformsToStandard element specified in [[!EBU-TT-M]], the designators of the Text Profile SHALL be used when indicating conformance to the corresponding profile.

See for a sample Document Instance that follows the recommendations of this section.

Style Resolution

The following style properties SHALL be subject to the Style Resolution procedures specified at Section 10.4 of [[!ttml2]]:

The style properties above can be specified as attributes of the initial element specified at Section 10.1.1 of [[ttml2]].

Constraints on Features and Extensions

#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; and
  • tts: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; and
  • image.

#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:

  • SHALL apply ebutts:linePadding to p only; and
  • SHALL treat ebutts: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:

  • SHALL apply ebutts:multiRowAlign to p only; and
  • SHALL treat ebutts:multiRowAlign as inheritable.

In contrast to this specification, [[EBU-TT-D]] specifies that the attribute ebutts:multiRowAlign is allowed only on the style element.

Slanted Japanese-language text

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

#fontVariant

The computed value of the tts:fontVariant attribute SHALL be one of the following:

  • normal;
  • sub; or
  • super.

altText named metadata item

The altText named metadata item SHOULD NOT be present since no image-based timed text information is used in a Text Profile Document Instance.

A 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 since no image-based timed text information is used in a Text Profile Document Instance.

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; and
  • rw 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-clock-with-frames

As specified in [[ttml2]], a #time-clock-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, 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 item

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

Reference Fonts

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

Forced content

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.

Illustration of the use of itts:forcedDisplay
Illustration of the use of itts:forcedDisplay

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.

WCAG and MAUR Considerations

WCAG Considerations

Success Criterion 1.4.3 Contrast (Minimum)

Success Criterion 1.4.3 at [[!WCAG22]] 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 Text Spacing

Success Criterion 1.4.12 at [[!WCAG22]] 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 Language of Page and 3.1.2 Language of Parts

Success Criteria 3.1.1 and 3.1.2 at [[!WCAG22]] 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.

MAUR Considerations

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.

Sample Document Instance

The following sample Document Instances conforms to the Text Profile. This sample are for illustration only, and are neither intended to capture current or future practice, nor exercise all normative prose contained in this specification.


  

Extensions

General

The following sections define extension designations, expressed as relative URIs (fragment identifiers) relative to the IMSC Extension Namespace base URI.

#progressivelyDecodable

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.

#aspectRatio

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.

#forcedDisplay

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.

#altText

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.

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

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

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

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

XML Schema Definitions

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.

Extensibility Objectives

This section documents extensibility objectives for this specification.

This specification is intended to allow:

Compatibility with other TTML-based specifications

Overview

This specification is designed to be compatible with [[ttml-imsc1]], [[ttml-imsc1.0.1]], [[ttml-imsc1.1]], [[ttml-imsc1.2]], [[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:conforms to one or more of [[ttml-imsc1]], [[ttml-imsc1.0.1]], [[ttml-imsc1.1]], [[ttml-imsc1.2]], [[SMPTE2052-1]], [[EBU-TT-D]] or [[ttml10-sdp-us]], and also conforms to Text Profile.

This specification is also intended to allow straightforward conversion of a document that conforms to the text profile of [[CFF]] to the Text Profile.

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:

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.

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:


    

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:

As an illustration, Example 3 at [[ttml10-sdp-us]] conforms to both Text Profile and [[ttml10-sdp-us]].

SMPTE-TT (SMPTE ST 2052-1)

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

The Text Profile applies a set of practical constraints and extensions to [[SMPTE2052-1]] for text-only subtitles and captions. These constraints and extensions reflect industry practice and experience.

Care is required when creating a document intended to be processed according to [[SMPTE2052-1]], and Text Profile presentation processor. In particular:

The following is an example of a document that conforms to both Text Profile and [[SMPTE2052-1]]:


    

CFF-TT

This specification was derived from the text profile specified in Section 6 at [[CFF]], and is intended to be a superset of it in terms of capabilities. Additional processing is however generally necessary to convert a [[CFF]] Text Profile document to a Document Instance that conforms to the Text Profile specification. In particular:

It is not possible to transform a [[CFF]] Image Profile document to a document that conforms to the Text Profile specification without additional complex processing such as extracting text content from images.

Previous versions of IMSC

A document that conforms to [[ttml-imsc1]] or [[ttml-imsc1.0.1]] or [[ttml-imsc1.1]] or [[ttml-imsc1.2]] Text Profile also conforms to this specification.

A number of features that are previously permitted in previous versions of IMSC Text Profile are designated as permitted-deprecated in the Text Profile. Documents that use such features are therefore susceptible to being incompatible with future versions of this specification.

Earlier versions of this specification specify an image-only profile, called the Image Profile, which is no longer specified herein. Applications that require such an image-only profile can consider referencing [[ttml-imsc1.2]].

Acknowledgements

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.

Privacy and Security Considerations

With the exception of the following, the security and privacy considerations of [[ttml2]] apply:

Summary of substantive changes

Overview

This appendix summarizes changes made from [[ttml-imsc1.2]].

Changes

Japanese character set

Added Japanese (ja) set to the Supplementary Character Sets at .

Hypothetical Render Model

The definition of the Hypothetical Render Model is removed from this document and replaced with a reference to [[imsc-hrm]].

Image Profile

The Image Profile specified in earlier versions of this specification is removed.

Added Features

Added support (partial or complete) for the following features.

Relative to the TT Feature namespace
#fontVariant

Deprecated Features

None