ISSUE-338: inconsistent implicit duration of singleton span in sequential container [TTML 1.0]

ISSUE-338: inconsistent implicit duration of singleton span in sequential container [TTML 1.0]

http://www.w3.org/AudioVideo/TT/tracker/issues/338

Raised by: Glenn Adams
On product: TTML 1.0

The implicit duration of an anonymous span child of a sequential container is explicitly defined to be zero (section 10.4); however, the implicit duration of an explicit singleton (i.e., non-nested) span in the same context 

Here is an example, where I ignore whitespace to aid in viewing. Given a fragment:

<p timeContainer="seq">
  Foo
  <span>Bar</span>
  Baz
</p>

Generating anonymous spans to wrap text nodes:

<p timeContainer="seq">
  <span xml:id="anon1">Foo</span>
  <span>
    <span xml:id="anon2">Bar</span>
  </span>
  <span xml:id="anon3">Baz</span>
</p>

Applying timing semantics as presently defined to resolve implicit duration:

<p timeContainer="seq" durImplicit="indefinite">
  <span xml:id="anon1" durImplicit="0">Foo</span>
  <span durImplicit="indefinite">
    <span xml:id="anon2" durImplicit="indefinite">Bar</span>
  </span>
  <span xml:id="anon3" durImplicit="0">Baz</span>
</p>

Here, anon2 is assigned an indefinite implicit duration because its parent is an explicit span which defaults to 'par' time containment semantics. Since SMIL requires a seq container that contains an indefinite duration child to also be indefinite, then that indefinite propagates up the node tree.

This seems counterintuitive. I propose to resolve by a slight change in 10.4 from the current text:

"if the anonymous span's parent time container is a parallel time container, then the implicit duration is equivalent to the indefinite duration value as defined by [SMIL 2.1]; if the anonymous span's parent time container is a sequential time container, then the implicit duration is equivalent to zero"

to read:

"if the anonymous span's nearest explicit time container ancestor is a sequential time container, then the implicit duration is equivalent to zero; otherwise, it is equivalent to the indefinite duration value as defined by [SMIL 2.1]"

and add the following Note

"Note: An element is an explicit time container if it specifies a timeContainer attribute."

Reworking the above example with the new text, we get:

<p timeContainer="seq" durImplicit="0">
  <span xml:id="anon1" durImplicit="0">Foo</span>
  <span durImplicit="0">
    <span xml:id="anon2" durImplicit="0">Bar</span>
  </span>
  <span xml:id="anon3" durImplicit="0">Baz</span>
</p>

The resolution of this issue also needs applied to TTML2.

Received on Tuesday, 26 August 2014 17:12:04 UTC