Timed Text Markup Language 2 (TTML2) Change Summary

1 Change History (Non-Normative)

Changes are ordered from most recent to least recent.

1.1 Changes from TTML1 (2nd Ed.) to TTML2 First Candidate Recommendation (CR1)

Technical Changes

* In 3.2.1, add performance of document validation.

* In 5, insert new section 5.3, defining normative validation semantics.

* In 5.1, add TT Intermediate Synchronic Document Namespace to Table 5-1.

* In 5.2, add TTML2 (transformation, presentation, full) profiles.

* In 5.2, specify profile state concepts and algorithm semantics in detail.

* In 5.2, change profile defaulting to be dependent upon primary function of
  content processor, i.e., presentation vs transformation; e.g., if defaulting
  for a presentation processor, then use a presentation profile as a default
  not a transformation profile.

* In 5.4.1, add new vocabulary:
  'animate',
  'animation',
  'audio',
  'chunk',
  'data',
  'font',
  'image',
  'initial',
  'source',
  'resources',
  and
  'ttm:item'
  to Table 5-3.

* In 5.4.1, add new profile attribute vocabulary
  'ttp:contentProfiles',
  'ttp:contentProfileCombination',
  'ttp:inferProcessorProfileMethod',
  'ttp:inferProcessorProfileSource',
  'ttp:permitFeatureNarrowing',
  'ttp:permitFeatureWidening',
  'ttp:processorProfiles',
  'ttp:processorProfileCombination',
  'ttp:validation',
  and
  'ttp:validationAction'
  to Table 5-5.

* In 5.3.1, add new parameter attribute vocabulary
  'ttp:displayAspectRatio'
  to Table 5-5.

* In 5.4.1, add new animation vocabulary, 'animate', to Animation.class in
  Table 5-4.

* In 5.4.1, add new 'ttm:item' to to Metadata.class in Table 5-4.

* In 5.4.1, add new styling attribute vocabulary
  'tts:backgroundClip',
  'tts:backgroundExtent',
  'tts:backgroundImage',
  'tts:backgroundOrigin',
  'tts:backgroundPosition',
  'tts:backgroundRepeat',
  'tts:border',
  'tts:bpd',
  'tts:disparity',
  'tts:fontKerning',
  'tts:fontSelectionStrategy',
  'tts:fontShear',
  'tts:fontVariant',
  'tts:ipd',
  'tts:letterSpacing',
  'tts:luminanceGain',
  'tts:position',
  'tts:ruby',
  'tts:rubyAlign',
  'tts:rubyOverflow',
  'tts:rubyOverhang',
  'tts:rubyOverhangClass',
  'tts:rubyPosition',
  'tts:rubyReserve',
  'tts:textCombine',
  'tts:textEmphasis',
  'tts:textOrientation',
  and
  'tts:textShadow'
  to Table 5-5.

* In 5.4.1, add new animation binding attribute vocabulary, 'animate',
  to Table 5-5.

* In 5.4.1, add new data attributes vocabulary, 'encoding', 'format',
  'src', and 'type' to Table 5-5.

* In 5.3.1, add new Conditionalization Attribute vocabulary, 'condition',
  to Table 5-5.

* In 5.3.1, add new Linking Attribute vocabulary, 'xlink:*',
  to Table 5-5.

* In 6.1.1, add support for nesting profiles by changing content model of
  ttp:profile to permit either (1) a list of features/extensions or (2)
  a list of nested profiles.

* In 6.1.1, add 'combine' attribute to ttp:profile element, including normative
  processing semantics.

* In 6.1.1, add 'designator' attribute to ttp:profile element in order to
  normatively associate a profile designator with a profile definition.

* In 6.1.3, obsolete 'use' value for 'value' attribute, and, if used, requires
  decoder to intepret as if 'required' had been specified.

* In 6.1.3, add 'prohibited' value to 'value' attribute of ttp:feature
  element, including normative processing semantics.

* In 6.1.3, change default for 'value' attribute to be dependent upon profile
  type (processor or profile).

* In 6.1.3, add optional 'extends' and 'restricts' attributes to the
  ttp:feature element in order to express superset/subset relations between a
  feature and another feature.

* In 6.1.5, obsolete 'use' value for 'value' attribute, and, if used, requires
  decoder to intepret as if 'required' had been specified.

* In 6.1.5, add 'prohibited' value to 'value' attribute of ttp:extension
  element, including normative processing semantics.

* In 6.1.5, change default for 'value' attribute to be dependent upon profile
  type (processor or profile).

* In 6.1.5, add optional 'extends' and 'restricts' attributes to the
  ttp:extension element in order to express superset/subset relations between an
  extension and another feature or extension.

* In 6.2, add 'ttp:contentProfiles' parameter attribute.

* In 6.2, add 'ttp:contentProfileCombination' parameter attribute.

* In 6.2, add 'ttp:inferProcessorProfileMethod' parameter attribute.

* In 6.2, add 'ttp:inferProcessorProfileSource' parameter attribute.

* In 6.2, add 'ttp:permitFeatureNarrowing' parameter attribute.

* In 6.2, add 'ttp:permitFeatureWidening' parameter attribute.

* In 6.2, add 'ttp:processorProfiles' parameter attribute.

* In 6.2, add 'ttp:processorProfileCombination' parameter attribute.

* In 6.2, add 'ttp:validation parameter attribute.

* In 6.2, add 'ttp:validationAction parameter attribute.

* In 6.2.7, deprecate 'ttp:profile' parameter attribute, replacing it with
  'ttp:processorProfiles' parameter attribute.

* In 8.1.1, add explicit tts:position style property support to 'tt' element

* In 8.1.2, add new 'animation' container element as optional child of 'head'
  element.

* In 8.1.3, add 'animate' attribute to 'body' element.

* In 8.1.4, extend content model of 'div' to permit zero or one 'region' element
  child (in the Layout.class) prior to any content element.

* In 8.1.4, specify semantics of using 'tts:extent', 'tts:origin' and
  'tts:position'  with 'div' element to imply an anonymous inline region.

* In 8.1.4, add 'animate' attribute to 'div' element.

* In 8.1.4, extend content model of 'div' to permit the use of embedded content
  'audio' and 'image' element children.

* In 8.1.5, extend content model of 'p' to permit zero or one 'region' element
  child (in the Layout.class) prior to any content element.

* In 8.1.5, specify semantics of using 'tts:extent', 'tts:origin' and
  'tts:position' with 'p' element to imply an anonymous inline region.

* In 8.1.5, add 'animate' attribute to 'p' element.

* In 8.1.5, extend content model of 'p' to permit the use of embedded content
  'audio' and 'image' element children.

* In 8.1.6, add 'animate' attribute to 'span' element.

* In 8.1.6, extend content model of 'span' to permit the use of embedded content
  'audio' and 'image' element children.

* In 8.1.6, add use of 'xlink:*' attributes to provide linking semantics.

* In 8.2, add 'condition' attribute.

* In 8.2, add 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', and
  'xlink:title' attributes, applicable to span and image element types.

* Insert new top-level section 9, defining embedded content element
  types: audio, chunk, data, font, image, resources, source.

* Insert new subsection 10.1.1, defining  'initial' element type used to
  redefine initial value of style property(ies).

* In 10.1.2, add Metadata.class children to 'style' element.

* In 10.2, add 'tts:backgroundClip' styling attribute.

* In 10.2, add 'tts:backgroundExtent' styling attribute.

* In 10.2, add 'tts:backgroundImage' styling attribute.

* In 10.2, add 'tts:backgroundOrigin' styling attribute.

* In 10.2, add 'tts:backgroundPosition' styling attribute.

* In 10.2, add 'tts:backgroundRepeat' styling attribute.

* In 10.2, add 'tts:border' styling attribute.

* In 10.2, add 'tts:bpd' styling attribute.

* In 10.2, add 'tts:disparity styling attribute.

* In 10.2, add 'tts:fontKerning' styling attribute.

* In 10.2, add 'tts:fontSelectionStrategy' styling attribute.

* In 10.2, add 'tts:fontShear' styling attribute.

* In 10.2, add 'tts:fontVariant' attribute.

* In 10.2, add 'tts:ipd' styling attribute.

* In 10.2, add 'tts:letterSpacing' styling attribute.

* In 10.2, add 'tts:luminance styling attribute.

* In 10.2, add 'tts:position' styling attribute.

* In 10.2, add 'tts:ruby' styling attribute.

* In 10.2, add 'tts:rubyAlign' styling attribute.

* In 10.2, add 'tts:rubyOverhang' styling attribute.

* In 10.2, add 'tts:rubyOverhangClass' styling attribute.

* In 10.2, add 'tts:rubyOverflow' styling attribute.

* In 10.2, add 'tts:rubyPosition' styling attribute.

* In 10.2, add 'tts:rubyReserve' styling attribute.

* In 10.2, add 'tts:textCombine' styling attribute.

* In 10.2, add 'tts:textEmphasis' styling attribute.

* In 10.2, add 'tts:textOrientation' styling attribute.

* In 10.2, add 'tts:textShadow' styling attribute.

* In 10.2 prologue, add proscription against specifying non-applicable,
  non-inheritable style attributes on stylable elements.

* In 10.2.1, add 'image' and 'set' elements to enumeration of element
  types to which 'style' attribute applies.

* In 10.2.16, add 'div' and 'p' elements to enumeration  of element types to
  which tts:extent applies. Define semantics that causes the use of tts:extent
  to generate an implied inline region.

* In 10.2.16, add 'contain' and 'cover' values to tts:extent.

* In 10.2.17, add 'p' element to enumeration  of element types to which
  tts:fontFamily applies.

* In 10.2.21, add 'p' element to enumeration  of element types to which
  tts:fontSize applies. Clarify that "1em" is equivalent to "100%".

* In 10.2.22, add 'p' element to enumeration  of element types to which
  tts:fontStyle applies.

* In 10.2.24, add 'p' element to enumeration  of element types to which
  tts:fontWeight applies.

* In 10.2.27, specify algorithm for resolving the 'normal' value of
  tts:lineHeight that takes into account the use of per-font-metrics for
  ascent, descent, and line gap, using 125% of font size as a fall back.

* In 10.2.28, add content elements to enumeration of element types to which
  tts:opacity applies.

* In 10.2.29, add 'div' and 'p' elements to enumeration of element types to
  which tts:origin applies. Define semantics that causes the use of tts:origin
  to generate an implied inline region.

* In 10.2.31, add content elements to enumeration of element types to which
  tts:padding applies.

* In 10.2.45, add 'span' to enumeration of element types to which
  tts:textAlign applies.

* In 10.2.45, add 'justify' keyword value to tts:textAlign.

* In 10.3, add
  <border-color>,
  <border-style>,
  <border-thickness>,
  <character-class>,
  <emphasis-color>,
  <emphasis-position>,
  <emphasis-style>,
  <lwsp>,
  <measure>,
  <named-character-class>,
  <non-negative-integer>,
  <number>,
  <percentage>, and
  <position>,
  <shadow>,
  <whitespace>
  value expressions.

* In 10.3.12, add 'rw' and 'rh' units of measure in order to
  express lengths as a percentage of the root container region.

* In 10.4.4, add semantics for determining specified style set and computed
  style set for 'set' element.

* In 10.4.4.2, rework SSS(E) processing algorithm to properly account for
  inheritable and non-inheritable properties and use of specified initial
  value overrides.

* In 10.13.14, make units component of a <length> expression optional,
  which, if absent, is interpreted as if 'px' were specified.

* In 11.1.2, require out-of-line region to specify 'xml:id' attribute.

* In 11.3.1, qualify default region in terms of out-of-line region(s).

* In 11.3.2, define inline region processing semantics.

* In 12.2.2, specify that a duration (@dur) of zero is explicitly permitted.

* In 12.3.1, make metric component of a <time-epression> expression optional,
  which, if absent, is interpreted as if 's' were specified.

* In 12.3.1, add wallclock-time form of <time-epression> in order to
  express time with an explicit date.

* In 13.1.1, add 'animation' element in order to support out-of-line animation
  specifications.

* In 13.1.2, add 'animate' element.

* In 13.1.3, add 'style' attribute to 'set' element.

* In 13.1.3, permit multiple attributes from TT Style Namespace on 'set'
  element.

* In 13.1.3, add 'fill' and 'repeatCount' attributes to 'set' element for
  symmetry with 'animate'.

* In 13.2.1, add definition of 'animate' attribute in order to perform binding
  between content elements and region element and associated animate and set
  out-of-line animation elements.

* In 13.3 (new), add new sub-section defining animation specific value
  expressions.

* In 14.1, add new 'ttm:item' element to represent arbitrary named
  metadata information items.

* In 14.1.1, extend content model of 'metadata' to permit the use of
  embedded content 'data' element children.

* In Appendix A, upgrade material on concrete encoding to normative,
  (previously in Appendix O of TTML1).

* In Appendix A, add missing &apos; and &quot; character entities.

* In Appendix C, update referenced schemas to reflect new/changed vocabulary
  definitions.

* In Appendix E, add
#animation-version-2,
#bidi-version-2,
#border,
#profile-version-2,
#region-timing,
#ruby,
#ruby-non-nested,
#textAlign-justify,
#textAlign-version-2,
#textEmphasis,
#textEmphasis-minimal,
#textEmphasis-no-color,
#textEmphasis-no-quoted-string,
#textOrientation,
#time-wall-clock,
#unicodeBidi-isolate, and
#validation
  feature designators.

* In Appendix G, define only newly introduced TTML2 profiles.

* In Appendix G, add #border and #textOrientation
  designators in standard profiles.

* In Appendix J, add (normative) reference to RFC2396 (URI).

* In Appendix J, add (normative) reference to Ruby Annotations REC.

* In Appendix J, add (normative) reference to CSS Ruby Draft.

* In Appendix J, move SVG1.1 reference from Appendix H and update to Second
  Edition.

* In Appendix H, upgrade material on time expression semantics to normative,
  (previously in Appendix N of TTML1).

Editorial Changes

* In 1.1, update Figure 1 - System Model.

* In 2.1, add acronym: "ISD".

* In 2.2, add definitions:
  "anonymous profile",
  "audio defining context",
  "audio presentation context",
  "authoring viewport",
  "baseline profile",
  "chunked data embedding",
  "content profile",
  "data binding context",
  "data binding context for metadata",
  "data binding context for source",
  "data context context",
  "data element",
  "data resource",
  "default processor profile",
  "designated profile",
  "display aspect ratio",
  "display region target",
  "display target",
  "document temporal coordinate space",
  "dot pitch",
  "embedded content element",
  "embedded data resource",
  "enclosing document instance",
  "extension specification",
  "external data resource",
  "external data source",
  "feature specification",
  "font defining context",
  "font presentation context",
  "font selection process",
  "fragment identifier",
  "image defining context",
  "image presentation context",
  "implied inline region",
  "inline animation",
  "inline region",
  "intermediate synchronic document",
  "intermediate synchronic document sequence",
  "intermediate synchronic document sequence syntax",
  "nested embedded source",
  "nested profile",
  "nesting profile",
  "non-nested embedded source",
  "non-nesting profile",
  "out-of-line animation",
  "out-of-line region",
  "pixel aspect ratio",
  "presentation viewport",
  "profile",
  "profile designator",
  "profile fragment identifier",
  "profile specification",
  "related media object region target",
  "sourced data embedding",
  "storage aspect ratio",
  "top-level profile",
  "undesignated profile",
  "viewport", and
  "viewport target".

* In 2.2, refine definition of "out-of-line region" to better account for
  default region implication.

* In 2.3, add text clarifying meaning of expression '{any attribute not in
  default or any TT namespace}'.

* In 2.3, add convention for deprecated syntactic features (using distinct
  background color).

* In 5.*, renumber tables to use M-N format.

* In 5.1, extend note under Table 5-1 to clarify meaning of unqualified
  attribute names.

* In 6.*, subdivide section 6 into two top level sections that segregate profile and
  parameter matter.

* In 6.*, renumber tables to use M-N format.

* In 6.1.3, segregate the semantics of the 'value' attribute according to
  whether the profile is a processor or content profile.

* In 6.1.5, segregate the semantics of the 'value' attribute according to
  whether the profile is a processor or content profile.

* In 10.2, add note about the use of non-applicable style attributes.

* In 10.2, renumber sub-sections to account for newly defined attributes.

* In 10.4.4.4, rework [filter] step to explicitly enumerate element types
  not filtered.

* In 11.3, insert "Inline Regions" as sub-section 9.3.2, renumbering following
  sub-sections.

* In 12.2, reorder attributue sub-sections to be alphabetic.

* In 12.3, permit metric component to be omitted from offset-time, in which case
  's' (seconds) is implied.

* In 14.1, reorder ttm:* attribute sub-sections to be alphabetic.

* Reorder (and relabel) appendices to maintain normative appendices followed by
  non-normative appendices.

* In Appendix I, add subsections describing the relationship of media
  time to document time.

* In Appendix J, add reference to Japanese Language Requirements
  (JLREQ), used normatively for definition of named character classes.

* In Appendix K, add (non-normative) reference to CSS Writing Modes Level 3.

* In Appendix K, add (non-normative) reference to original Namespaces in XML
  REC (NSOriginal).

* In Appendix K, add (non-normative) reference to SDP US.

* In Appendix K, add (non-normative) reference to TTML1.

* In Appendix K, update SMIL reference to SMIL3.0.

* In Appendix M, add derivation of tt:animate and tt:animation elements.

* In Appendix M, add derivation of tts:border and tts:textOrientation
  attributes.

* Insert new informative Appendix P on security and privacy considerations.

* Insert new informative Appendix Q with an example of HDR compositing.

* Insert new informative Appendix T with syntax changes since TTML1.

* Migrate to new W3C style sheets and table of content format.

* Change convention for labeling and citing definitions to use "[lower case]"
  in definitions and hyperlinked "lower case" in citations.

* Update SMIL section number references to track SMIL3.