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.0.1]] by supporting contemporary practices, while retaining compatibility with [[ttml-imsc1.0.1]] documents.

It is feasible to create documents that simultaneously conform to both [[ttml10-sdp-us]] and the text-only profile.

The specification defines extensions to [[!TTML2]], as well as incorporates extensions specified in [[!SMPTE2052-1]] and [[!EBU-TT-D]].

Both profiles are based on [[SUBM]].

Scope

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.0.1]] while adding the minimal set of features necessary to support contemporary practices for worldwide subtitling and captioning delivery.

The text profile is a syntactic superset of [[ttml10-sdp-us]], and a document can simultaneously conform to both [[ttml10-sdp-us]] and the text-only profile.

The specification defines extensions to [[!TTML2]], as well as incorporates extensions specified in [[!SMPTE2052-1]] and [[!EBU-TT-D]].

The specification is designed such that:

Documentation Conventions

This specification uses the same conventions as [[!TTML2]] for the specification of parameter attributes, styling attributes and metadata elements. In particular:

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

This specification uses Feature and Extension designations as defined in Appendices 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

Default Region. See Section 9.3.1 at [[!TTML2]].

Document Instance. See Section 2.2 at [[!TTML2]].

Extension. See Section 2.2 at [[!TTML2]].

External Processing Context. As defined in [[!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. See Section 2.2 at [[!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]].

Processor. Either a Presentation processor or a Transformation processor.

Presentation processor. See Section 2.2 at [[!TTML2]].

Transformation processor. See Section 2.2 at [[!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.

Text Alternative. As defined in [[!WCAG20]].

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

Profiles

General

Notwithstanding special cases, e.g. a Document Instance that contains no p, span, br element and no smpte:backgroundImage attribute, it is generally not possible to construct a Document Instance that conforms to the Text Profile and Image Profile simultaneously, and it is not possible to construct a Document Instance that results in the presentation of both text data and image data.

In applications that require subtitle/caption content in image form to be simultaneously available in text form, two distinct Document Instances, one conforming to the Text Profile and the other conforming to the Image Profile, SHOULD be offered. In addition, the Text Profile Document Instance SHOULD be associated with the Image Profile Document Instance such that, when image content is encountered, assistive technologies have access to its corresponding text form. The method by which this association is made is left to each application.

The ittm:altText element specified also allows text equivalent string to be associated with an image, e.g. to support indexation of the content and also facilitate quality checking of the document during authoring.

Annex specifically discusses this specification in the context of the [[WCAG20]] guidelines.

Text Profile

The Text Profile consists of Sections , and .

Image Profile

The Image Profile consists of Sections , and .

Profile Resolution Semantics

General

The Profile Semantics specified in [[!TTML2]] apply.

The following processor profiles are subsets of the Text Profile processor profile:

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

The following processor profiles are subsets of the Image Profile processor profile:

  • [[ttml-imsc1.0.1]] Image Profile

Override

If the profile of the Document Instance is specified by the external processing context, then the override content profile is set to this profile.

If the ebuttm:conformsToStandard element, as specified in [[!EBU-TT-D]], is present and includes at least one of the following designators, then the override content profile SHALL be set to the profile associated with that one designator:

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

The prose above assumes the existence of a override content profile that allows the external processing context to specify an effective processor profile in the case such information is made available through mechanisms other than those specified by [[!TTML2]], e.g. out of band of the Document Instance or using ebuttm:conformsToStandard, as defined in [[EBU-TT-D]] -- see Issue #467.

Supported Features and Extensions

See for a definition of permitted, prohibited and optional.

Feature or Extension Text Profile Disposition Image Profile Disposition
Relative to the TT Feature namespace
#activeArea prohibited
#animate prohibited
#animate-calculation-mode prohibited
#animate-key-splines prohibited
#animate-key-times prohibited
#animate-repeat prohibited
#animation permitted
#animation-version-2 prohibited
#audio prohibited
#audio-description prohibited
#audio-speech prohibited
#background prohibited
#background-color prohibited
#background-image prohibited
#backgroundClip prohibited
#backgroundColor permitted See individual disposition of #backgroundColor-inline, #backgroundColor-region and #backgroundColor-block.
#backgroundColor-block permitted
#backgroundColor-inline permitted prohibited
#backgroundColor-region permitted
#backgroundExtent prohibited
#backgroundImage prohibited
#backgroundOrigin prohibited
#backgroundPosition prohibited
#backgroundRepeat prohibited
#bidi permitted prohibited
#bidi-version-2 See individual disposition of #bidi and #unicodeBidi-isolate. prohibited
#border prohibited
#border-block prohibited
#border-inline prohibited
#border-radii prohibited
#border-radii-1 prohibited
#border-radii-2 prohibited
#border-region prohibited
#bpd prohibited
#cellResolution permitted
#chunk prohibited
#clockMode prohibited
#clockMode-gps prohibited
#clockMode-local prohibited
#clockMode-utc prohibited
#color permitted prohibited
#condition prohibited
#content permitted
#content-sizing prohibited
#contentProfiles permitted
#core permitted
#data prohibited
#direction permitted prohibited
#disparity permitted
#display permitted
#display-block permitted
#display-inline permitted
#display-region permitted
#displayAlign permitted prohibited
#displayAlign-block prohibited
#displayAlign-justify prohibited
#displayAlign-region permitted prohibited
#displayAlign-relative permitted prohibited
#displayAlign-version-2 See individual disposition of #displayAlign-block, #displayAlign-justify, #displayAlign-region, and #displayAlign-relative. prohibited
#displayAspectRatio prohibited
#dropMode prohibited
#dropMode-dropNTSC prohibited
#dropMode-dropPAL prohibited
#dropMode-nonDrop prohibited
#embedded-audio prohibited
#embedded-content prohibited
#embedded-data prohibited
#embedded-font prohibited
#embedded-image prohibited
#extent permitted
#extent-region permitted
#extent-root permitted
#fillLineGap prohibited
#font prohibited
#fontFamily permitted prohibited
#fontFamily-generic permitted prohibited
#fontFamily-non-generic permitted prohibited
#fontKerning permitted prohibited
#fontSelectionStrategy prohibited
#fontShear permitted prohibited
#fontSize See individual disposition of #fontSize-anamorphic and #fontSize-isomorphic. prohibited
#fontSize-anamorphic prohibited
#fontSize-isomorphic permitted prohibited
#fontStyle permitted prohibited
#fontStyle-italic permitted prohibited
#fontStyle-oblique permitted prohibited
#fontVariant prohibited
#fontWeight permitted prohibited
#fontWeight-bold permitted prohibited
#frameRate permitted
#frameRateMultiplier permitted
#gain prohibited
#image prohibited permitted
#inferProcessorProfile prohibited
#initial permitted prohibited
#inlineAreaBreak prohibited
#inlineAreaBreak-cloneMostNested prohibited
#ipd prohibited
#layout permitted
#length See individual disposition of #length-integer, #length-real, #length-positive, #length-negative, #length-cell, #length-em, #length-percentage, and #length-pixel.
#length-cell permitted
#length-em permitted prohibited
#length-integer permitted
#length-negative prohibited
#length-percentage permitted
#length-pixel permitted
#length-positive permitted
#length-real permitted
#letterSpacing prohibited
#lineBreak-uax14

The processor SHALL implement the #lineBreak-uax14 feature.

No processor requirement is specified.
#lineHeight permitted prohibited
#luminanceGain permitted
#markerMode prohibited
#markerMode-continuous prohibited
#markerMode-discontinuous prohibited
#metadata permitted
#nested-div permitted prohibited
#nested-span permitted prohibited
#opacity permitted
#origin 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-block prohibited
#padding-inline prohibited
#padding-region permitted prohibited
#padding-version-2 See individual disposition of #padding-block, #padding-inline, #padding-region, and #inlineAreaBreak-cloneMostNested prohibited
#pan prohibited
#permitFeatureNarrowing prohibited
#permitFeatureWidening prohibited
#pitch prohibited
#pixelAspectRatio prohibited
#position permitted prohibited
#presentation permitted
#processorProfiles prohibited
#profile permitted
#region-inline prohibited
#region-inline-explicit prohibited
#region-inline-implicit prohibited
#region-timing prohibited
#resources prohibited
#ruby As constrained by #ruby-non-nested. prohibited
#ruby-full See individual disposition of #ruby, #rubyAlign, #rubyOffset, #rubyOverflow, #rubyOverhang, #rubyOverhangClass, #rubyPosition, and #rubyReserve. prohibited
#ruby-non-nested permitted prohibited
#ruby-non-nested-full See individual disposition of #ruby-non-nested, #rubyAlign, #rubyOffset, #rubyOverflow, #rubyOverhang, #rubyOverhangClass, #rubyPosition, and #rubyReserve. prohibited
#rubyAlign permitted prohibited
#rubyOffset prohibited
#rubyOverflow permitted prohibited
#rubyOverhang permitted prohibited
#rubyOverhangClass prohibited
#rubyPosition permitted prohibited
#rubyReserve permitted prohibited
#showBackground permitted
#source prohibited
#speak prohibited
#speech 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
#subFrameRate prohibited
#textAlign permitted prohibited
#textAlign-absolute permitted prohibited
#textAlign-justify prohibited
#textAlign-relative permitted prohibited
#textAlign-version-2 See individual disposition of #textAlign-relative, #textAlign-absolute and #textAlign-justify. prohibited
#textCombine permitted prohibited
#textDecoration permitted prohibited
#textDecoration-over permitted prohibited
#textDecoration-through permitted prohibited
#textDecoration-under permitted prohibited
#textEmphasis permitted prohibited
#textEmphasis-minimal permitted prohibited
#textEmphasis-no-color permitted prohibited
#textEmphasis-no-quoted-string permitted prohibited
#textOrientation permitted prohibited
#textOutline See individual disposition of #textOutline-blurred and #textOutline-unblurred. prohibited
#textOutline-blurred prohibited
#textOutline-unblurred permitted prohibited
#textShadow permitted prohibited
#tickRate permitted
#timeBase-clock prohibited
#timeBase-media permitted
#timeBase-smpte prohibited
#timeContainer permitted
#time-clock permitted
#time-clock-with-frames permitted
#time-offset permitted
#time-offset-with-frames permitted
#time-offset-with-ticks permitted
#time-wall-clock prohibited
#timing permitted
#transformation permitted
#unicodeBidi permitted prohibited
#unicodeBidi-isolate prohibited
#validation prohibited
#version prohibited
#visibility permitted See individual disposition of #visibility-block, #visibility-inline and #visibility-region.
#visibility-block permitted
#visibility-inline permitted prohibited
#visibility-region permitted
#wrapOption permitted prohibited
#writingMode permitted See individual disposition of #writingMode-vertical and #writingMode-horizontal.
#writingMode-vertical permitted prohibited
#writingMode-horizontal permitted
#writingMode-horizontal-lr permitted
#writingMode-horizontal-rl permitted
#zIndex permitted-deprecated
Relative to the SMPTE-TT Extension Namespace
#image prohibited permitted-deprecated
Relative to the IMSC 1.0 Extension namespace
#aspectRatio permitted
#fillLineGap permitted prohibited
#forcedDisplay permitted
#linePadding permitted permitted-deprecated
#multiRowAlign permitted permitted-deprecated
#progressivelyDecodable permitted

The #linePadding and #multiRowAlign features were erroneously not designated as prohibited in the [[ttml-imsc1.0.1]] Image Profile.

The disposition of #version may change upon clarification of its semantics -- see issue #435.

Common Provisions

Document Encoding

A Document Instance SHALL use UTF-8 character encoding as specified in [[!UNICODE]].

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 specification for the tt root document element and its descendants, as specified in [[!TTML2]]. In particular, the [[!TTML2]] content specification specifies that elements and attributes not in any TT namespace, i.e. in foreign namespaces, are permitted as follows:
  • the metadata element is the only element whose child elements can belong to foreign namespaces, and the metadata element is permitted on all elements defined by [[!TTML2]] with the exception of the following: ttp:feature, ttp:extension, tt, style, ttm:title, ttm:desc, ttm:copyright, ttm:agent, ttm:name, and ttm:actor; and
  • foreign namespace attributes are permitted on all elements defined by [[!TTML2]].
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]]
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 1.0 Styling itts http://www.w3.org/ns/ttml/profile/imsc1#styling This specification
IMSC 1.0 Parameter ittp http://www.w3.org/ns/ttml/profile/imsc1#parameter This specification
IMSC 1.0 Metadata ittm http://www.w3.org/ns/ttml/profile/imsc1#metadata This specification
IMSC 1.0 Extension none http://www.w3.org/ns/ttml/profile/imsc1/extension/ This specification
IMSC 1.1 Text Profile Designator none See Section
IMSC 1.1 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.

Overflow

A Document Instance SHOULD be authored assuming strict clipping of content that falls out of region areas, regardless of the computed value of tts:overflow for the region.

As specified in [[!TTML2]], tts:overflow has no effect on the extent of the region, and hence the total normalized drawing area S(En) at .

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.

Extensions

ittp:aspectRatio

The ittp:aspectRatio attributes allows authorial control of the mapping of the root container of a Document Instance to each image frame of the Related Video Object.

If present, the ittp:aspectRatio attribute SHALL conform to the following syntax:

ittp:aspectRatio
  : numerator denominator          // with int(numerator) != 0 and int(denominator) != 0
                                   // where int(s) parses string s as a decimal integer.

numerator | denominator
  : <digit>+                 // no linear white-space is implied or permitted
                                   // between each <digit> token

The root container of a Document Instance SHALL be mapped to each image frame of the Related Video Object according to the following:

  1. If ittp:aspectRatio is present, the root container SHALL be mapped to a rectangular area within the image frame such that:

    1. the ratio of the width to the height of the rectangular area is equal to ittp:aspectRatio,
    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.
  2. Otherwise, the root container of a Document Instance SHALL be mapped to the image frame in its entirety.

An ittp:aspectRatio attribute is considered to be significant only when specified on the tt element.

The ittp:aspectRatio parameter effectively defines the display aspect ratio (DAR) of the root container, while the tts:extent style property on the root element effectively defines the storage aspect ratio (SAR) of the root container. As a result, when both tts:extent and ittp:aspectRatio are specified on the tt element, the effective pixel aspect ratio (PAR) of the root container is equal to the ratio of the DAR to the SAR.

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 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 ittp:aspectRatio="4 3", allowing the combination to be displayed on both 4:3 and 16:9 display devices while preserving both caption/subtitles content and the relative position of caption/subtitles with video elements.
  • A playback system zooms the content of example (a) to fill a 21:9 display, perhaps as instructed by the user. The system elects to scale the root container 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 to the video frame, maintaining relative positioning between caption/subtitles and video elements but at the risk of clipping subtitles/captions.

ittp:progressivelyDecodable

A progressively decodable Document Instance is structured to facilitate presentation before the document is received in its entirety, and can be identified using ittp:progressivelyDecodable attribute.

A progressively decodable Document Instance is a Document Instance that conforms to the following:

  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

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, but still affect layout, regardless of the computed value of tts:visibility.

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

ittm:altText

ittm:altText allows an author to provide a text string equivalent for an element, typically an image. This text equivalent MAY be used to support indexing of the content and also facilitate quality checking of the document during authoring.

The ittm:altText element SHALL conform to the following syntax:

<ittm:altText
  xml:id = ID
  xml:lang = string
  xml:space = (default|preserve)
  {any attribute not in the default namespace, any TT namespace or any IMSC 1.0 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 [[HTML5]], the ittm:altText attribute content is not intended to be displayed in place of the element if the element is not loaded. The ittm:altText attribute content can however be read and used by assistive technologies.

ittp:activeArea

The Active Area of a Document Instance is the area within the root container 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 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 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.

The height percentage value is relative to the height of the root container.

The width and height percentage values are the width and height of the Active Area.

The leftOffset and topOffset percentage values specify an alignment point between the root container and the Active Area.

The origin top left {x, y} percentage coordinates of the Active Area SHALL be calculated as follows:

x = leftOffset * (1 - width/100)
y = topOffset * (1 - height/100)
          

The use of left and top offset positions is co-incident with the [[css3-background]] background-position property where a two percentage value position is used.

The Active Area SHALL NOT extend outside the root container 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.


      

itts:fillLineGap

The itts:fillLineGap attribute allows the author to control the application of background between 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
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.

Profile Signaling

General

Unless one of the mutually exclusive scenarios specified in the following Sections apply:

  • the ttp:contentProfiles attribute SHALL be present on the tt element and include the profile designator (either Text Profile or Image Profile), corresponding to the profile to which the Document Instance conforms;
  • the ttp:contentProfiles attribute SHALL NOT simultaneously signal conformance to both Image Profile and Text Profile;
  • the ttp:profile attribute SHALL NOT be present; and
  • the ttp:profile element SHALL NOT be present.

The ttp:contentProfiles attribute can include additional designators, beyond those specified herein.

IMSC1 Compatibility

If the Document Instance conforms to one of the profiles specified in [[ttml-imsc1.0.1]], and compatibility with [[ttml-imsc1.0.1]] processors is desired:

  • the ttp:profile attribute SHOULD be present on the tt element and SHALL be equal to the designator of the [[ttml-imsc1.0.1]] profile to which the Document Instance conforms; and
  • the ttp:profile element SHOULD NOT be present; and
  • the ttp:contentProfiles attribute SHALL NOT be present.

If the ttp:profile is not set as recommended above, then conformance with the [[ttml-imsc1.0.1]] profile is communicated using the external processing context.

EBU-TT-D Compatibility

If the Document Instance conforms to both [[ttml-imsc1.0.1]] and [[EBU-TT-D]], and compatibility with [[EBU-TT-D]] processors is desired:

  • the ttp:profile attribute is not present;
  • the ttp:contentProfiles attribute is not present;
  • the ebuttm:conformsToStandard element, as specified in [[!EBU-TT-D]] and illustrated in , SHOULD include a single [[ttml-imsc1.0.1]] profile designator corresponding to the profile to which the Document Instance conforms;

SDP-US Compatibility

If the Document Instance conforms to both [[ttml-imsc1.0.1]] and [[ttml10-sdp-us]], and compatibility with [[ttml10-sdp-us]] processors is desired:

  • the ttp:profile attribute is not present;
  • the ttp:contentProfiles attribute is not present;
  • the ttp:profile element is present, as illustrated in .

Hypothetical Render Model

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 .

Constraints

Region

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, i.e. every coordinate in the set of coordinates of each region is also in the set of coordinates of the root container.

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.

#cellResolution

If the Document Instance includes any length value that uses the c expression, ttp:cellResolution SHOULD be present on the tt element.

#contentProfiles

The ttp:contentProfileCombination attribute SHALL not be used.

#extent-root

If the Document Instance includes any length value that uses the px expression, 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.

#tickRate

ttp:tickRate SHALL be present on the tt element if the document contains any time expression that uses the t metric.

#timeBase-media (non-normative)

[[TTML2]] specifies that the default timebase is "media" if ttp:timeBase is not specified on tt.

#time-offset-with-frames (non-normative)

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

All time expressions within a Document Instance SHOULD use the same syntax, either clock-time or offset-time.

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.

#zIndex (non-normative)

While permitted, but deprecated, this feature has no effect since, as specified at , presented regions do not overlap in a Document Instance.

Text Profile Provisions

Profile Designator

This profile is associated with the following profile designator:

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

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.

Constraints

#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 triplet #008000 and is not full luminance. For full luminance green, an author can specify the RGB triplet #00ff00ff or the named color "lime".

#extent-region

The tts:extent attribute SHALL be present on all region elements, where it SHALL use px units or "percentage" syntax.

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

#lineHeight

As implementation of the "normal" value is not uniform at the time of this writing, tts:lineHeight SHOULD NOT be set to "normal" and SHOULD be explicitly specified such that the specified style set of each p element contains a tts:lineHeight property whose value is not assigned by initial value fallback.

#origin

The tts:origin attribute SHALL use px units or "percentage" representation, and SHALL NOT use em units.

#textOutline-unblurred

The computed value of tts:textOutline on a span element SHALL be 10% or less than the computed value of tts:fontSize on the same element.

ebutts:linePadding

If used, the attribute ebutts:linePadding MAY be specified on elements region, body, div and p in addition to style.

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

If used, the attribute ebutts:multiRowAlign MAY be specified on elements region, body, div and p in addition to style

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.

Image Profile Provisions

Profile Designator

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

Presented Image

Definition

A presented image is a div element:

  • with a smpte:backgroundImage attribute or a child image element; and
  • that flows into a presented region.

Constraints

In a given intermediate synchronic document, each presented region SHALL contain at most one div element, which SHALL be a presented image.

Intermediate Synchronic Document Construction

For the purposes of constructing an intermediate synchronic document, a div element with a smpte:backgroundImage attribute SHALL NOT be considered empty.

Image Resources

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.

Constraints

#content

The p, span and br elements SHALL NOT be present. See Section for constraints on div elements.

#extent-region

The tts:extent attribute SHALL be present on all region elements, where it SHALL use px units.

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 contains a child image element SHOULD contain a metadata element containing an ittm:altText element 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:

  • the tts:extent attribute of the region in which the image element is presented; and
  • the dimensions (in pixels) of the image resource.

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

  • the width and height (in pixels) of the image source referenced by smpte:backgroundImage SHALL be equal to the width and height (as specified by the tts:extent attribute using px units) of the region in which the div element is presented;
  • the 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; and
  • The smpte:backgroundImage attribute SHALL reference an image resource that conforms to .

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 and smpte:backgroundImageVertical

smpte:backgroundImageHorizontal and smpte:backgroundImageVertical SHALL NOT be used.

smpte:image

smpte:image SHALL NOT be used.

Hypothetical Render Model

Overview (non-normative)

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.

Hypothetical Render Model
Hypothetical Render Model

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

General

The Presentation Compositor SHALL render in Presentation Buffer Pn each successive intermediate synchronic document En using the following steps in order:

  1. clear the pixels, except for the first intermediate synchronic document E0 for the which the pixels of P0 SHALL be assumed to have been cleared;
  2. paint, according to stacking order, all background pixels for each region;
  3. paint all pixels for background colors associated with text or image subtitle content; and
  4. paint the text or image subtitle content.

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.

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

Paint Regions

The total normalized drawing area S(En) for intermediate synchronic document En SHALL be

S(En) = CLEAR(En) + PAINT(En )

where CLEAR(E0) = 0 and CLEAR(En | n > 0) = 1, i.e. the root container in its entirety.

To ensure consistency of the Presentation Buffer, a new intermediate synchronic document requires clearing of the root container.

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 height ∙ root container 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:

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.

Paint Images

The Presentation Compositor SHALL paint into the Presentation Buffer Pn all visible pixels of presented images of intermediate synchronic document En.

For each presented image, the Presentation Compositor SHALL either:

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 height ∙ root container 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

Paint Text

In the context of this section, a glyph is a tuple consisting of (i) one character and (ii) the computed values of the following style properties:

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:

Example of Presentation Compositor Behavior for Text Rendering
Example of Presentation Compositor Behavior for Text Rendering

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 height)2

NRGA(Gi) does not take into account decorations (e.g. underline), effects (e.g. outline) or actual typographical glyph aspect ratio. An implementation can determine an actual buffer size needs based on worst-case glyph size complexity.

The contents of the Glyph Buffer Gn SHALL be copied instantaneously to Glyph Buffer Gn-1 at the presentation time of intermediate synchronic document En.

It SHALL be an error for the sum of NRGA(gi) over all glyphs Glyph Buffer Gn to be larger than the Normalized Glyph Buffer Size (NGBS).

Unless specified otherwise, the following table specifies values of GCpy, Ren and NGBS.

Normalized glyph copy performance factor (GCpy)
Script property (see Standard Annex #24 at [[!UNICODE]]) for the character of gi GCpy
latin, greek, cyrillic, hebrew or common 12
any other value 3
Text rendering performance factor Ren(Gi)
Block property (see [[!UNICODE]]) for the character of gi Ren(Gi)
CJK Unified Ideograph 0.6
any other value 1.2
Normalized Glyph Buffer Size (NGBS)
1

The choice of font by the presentation processor can increase rendering complexity. For instance, a cursive font can generally result in a given character yielding different typographical glyphs depending on context, even if latin script is used.

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 (non-normative)

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 Considerations

In order to meet the guidelines in [[!WCAG20]], the following considerations apply.

Guideline 1.1 of [[!WCAG20]] recommends that an implementation provide Text Alternatives for all non-text content. In the context of this specification, this Text Alternative is intended primarily to support users of the subtitles who cannot see images. Since the images of an Image Profile Document Instance usually represent subtitle or caption text, the guidelines for authoring text equivalent strings given at Images of text of [[HTML5]] are appropriate.

Thus, for each subtitle in an Image Profile Document Instance, a text equivalent content in a Text Profile Document Instance SHOULD be written so that it conveys all essential content and fulfills the same function as the corresponding subtitle image. In the context of subtitling and captioning, this content will be (as a minimum) the verbatim equivalent of the image without précis or summarization. However, the author MAY include extra information to the text equivalent string in cases where styling is applied to the text image with a deliberate connotation, as a functional replacement for the applied style.

For instance, in subtitling and captioning, italics can be used to indicate an off screen speaker context (for example a voice from a radio). An author can choose to include this functional information in the text equivalent; for example, by including the word "Radio: " before the image equivalent text. Note that images in an Image Profile Document Instance that are intended for use as captions, i.e. intended for a hard of hearing audience, might already include this functional information in the rendered text.

Guideline 1.1 of [[!WCAG20]] also recommends that accessible Text Alternatives must be "programmatically determinable." This means that the text must be able to be read and used by the assistive technologies (and the accessibility features in browsers) that people with disabilities use. It also means that the user must be able to use their assistive technology to find the alternative text (that they can use) when they land on the non-text content (that they can't use).

Sample Document Instance (non-normative)

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


    

  

Extensions

General

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

#progressivelyDecodable

A transformation processor supports the #progressivelyDecodable feature if it recognizes and is capable of transforming values of the ittp:progressivelyDecodable.

A presentation processor supports the #progressivelyDecodable feature if it implements presentation semantic support for values of the ittp:progressivelyDecodable attribute.

#aspectRatio

A transformation processor supports the #aspectRatio feature if it recognizes and is capable of transforming values of the ittp:aspectRatio.

A presentation processor supports the #aspectRatio feature if it implements presentation semantic support for values of the ittp:aspectRatio attribute.

#forcedDisplay

A transformation processor supports the #forcedDisplay feature if it recognizes and is capable of transforming values of the itts:forcedDisplay.

A presentation processor supports the #forcedDisplay feature if it implements presentation semantic support for values of the itts:forcedDisplay attribute.

#altText

A transformation processor supports the #altText feature if it recognizes and is capable of transforming values of the ittm:altText element.

A presentation processor supports the #altText feature if it implements presentation semantic support for values of the ittm:altText element.

#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 (non-normative)

XML Schema definitions (see [[xmlschema-1]]) for extension vocabulary defined by this specification are provided here for convenience.

These definitions are non-normative and are not sufficient to validate conformance of a Document Instance.

In any case where a definition specified by this appendix diverge from the prose of the specification, then the latter takes precedence.

Extensibility Objectives (non-normative)

This section documents extensibility objectives for this specification.

This specification is intended to allow:

Compatibility with other TTML-based specifications (non-normative)

Overview

This specification is designed to be compatible with [[!SMPTE2052-1]], [[!EBU-TT-D]] and [[ttml10-sdp-us]]. Specifically, 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.

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 ttp:profile attribute and element are not allowed by [[!EBU-TT-D]]. The ebuttm:conformsToStandard element is used instead, as discussed at .

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 both Text Profile and [[!EBU-TT-D]]. Note the presence of two 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:

[[ttml10-sdp-us]] requires a specific value of the use attribute of the ttp:profile. As a result, Text Profile is not signaled using the ttp:profile attribute. Instead, the Text Profile can be signaled using the ttp:contentProfiles attribute, or by the Document Interchange Context and/or the Document Processing Context. Alternatively, a processor can choose to process a document as a Text Profile document if the ttp:profile element signals [[ttml10-sdp-us]], since [[ttml10-sdp-us]] is feasibly interoperable with Text Profile.

It is not possible for a document that conforms to [[ttml10-sdp-us]] to also conform to Image Profile, and vice-versa, notwithstanding the special case where the document also conforms to Text Profile as noted at .

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.

This specification defines practical constraints on [[!SMPTE2052-1]], supplemented by a few extensions defined at . These constraints and extensions are intended to reflect industry practice.

As a result, particular care is required when creating a document intended to be processed according to both [[!SMPTE2052-1]] and Text Profile or Image Profile. 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 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:

IMSC1 and IMSC1.0.1

The Text Profile is a strict superset of the [[ttml-imsc1]] and [[ttml-imsc1.0.1]] Text Profile.

The Image Profile is a strict superset of the [[ttml-imsc1]] and [[ttml-imsc1.0.1]] Image Profile.

A document that conforms to [[ttml-imsc1]] or [[ttml-imsc1.0.1]] therefore also conforms to this specification.

Acknowledgements (non-normative)

The editor acknowledges the current and former members of the Timed Text Working Group, the members of other W3C Working Groups, and industry experts in other forums who have contributed directly or indirectly to the process or content of this document.

The editor wishes to especially acknowledge the following contributions by members: Glenn Adams, Skynav; John Birch, Invited expert; Mike Dolan, Invited expert; Nigel Megitt, British Broadcasting Corporation; Thierry Michel, W3C; Andreas Tai, Institut für Rundfunktechnik.

The editor also wishes to acknowledge Digital Entertainment Content Ecosystem (DECE) for contributing to the initial document for the Member Submission.

Privacy and Security Considerations (non-normative)

TTML security

The security and privacy considerations of [[rfc3023]] and [[!TTML2]] apply, particularly in relation to document parsing. XML Entities are excluded from the Reduced XML Infoset of TTML and are therefore not considered part of Document Instances; nevertheless implementations are encouraged to provide protection against recursive entity expansion or prevent entity expansion altogether in processors.

Privacy of preference

A user agent that selects, and causes to download or interpret a Document Instance, might indicate to the origin server that the user has a need for captions or subtitles, and also the language preference of the user for captions or subtitles. That is a small piece of information about the user. However, the offering of a Document Instance, and the choice whether to retrieve and consume it, are characteristics of the application that makes the offer (e.g. a web application based on [[HTML5]]), rather than of the Document Instance itself.

Security and Privacy related to external images

The Image Profile includes a mechanism for referencing external images. A user agent that downloads external images during media playback indicates to the origin server of the images the progress of the user's media consumption. In many cases such media progress information is available to the origin server of the media via other mechanisms, for example by scripting or by monitoring streaming media requests.

User agents that do not enforce cross origin policies when downloading external images expose such media progress information and potentially other user tracking information to other origins without the consent of the web site serving the media and without the consent of the user. This specification defines no APIs and makes no statement on how implementations are expected to obtain referenced images.

Summary of substantive changes (non-normative)

Overview

This appendix summarize changes made from [[!ttml-imsc1.0.1]].

Changes

Reference to TTML2

Replaced normative references to [[TTML1]] with normative references to [[TTML2]].

Profile resolution semantics

Section is now based on [[TTML2]] Profile Semantics.

Profile signaling

Section adds support for signaling of profiles specified hereing.

Profile designators

Profile designators introduced for each of the profiles specified herein. See Sections and .

Added Features

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

Relative to the TT Feature namespace
#contentProfiles
#disparity
#fontKerning
#fontShear
#initial
#image
#luminanceGain
#position
#ruby
#rubyAlign
#rubyOverflow
#rubyOverhang
#rubyPosition
#rubyReserve
#textEmphasis
#textOrientation
#textCombine
#textShadow
#version

Deprecated selected Features

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

Relative to the TT Feature namespace
#zIndex
Relative to the SMPTE-TT Extension namespace
#image
Relative to the IMSC 1.0 Extension namespace
#linePadding
(deprecated in Image Profile only)
#multiRowAlign
(deprecated in Image Profile only)

Revised Profile Signaling

Section , has been revised to include support for profiles specified herein.