[ttml1] Clarify temporal activity and timing semantics

palemieux has just created a new issue for https://github.com/w3c/ttml1:

== Clarify temporal activity and timing semantics ==
In light of #310, #193, #308 and #309, I suggest that the temporal activity and timing semantics of TTML1 be clarified through the explicit algorithm below.

The proposed algorithm is intended to be consistent with SMIL and TTML prose, and added to an informative annex.

It is implemented at https://github.com/sandflow/imscJS/pull/73 . 

# Determining temporal activity

An element is temporally active during the left-wise closed interval:
- starting with its desired begin; and
- ending with:
    - its desired end if the element is a `region` element or the `body` element
    - the smallest of (a) the desired end of its parent and (b) its desired end
    
An element is never temporally active if either:
- its desired begin and desired end are equal; or
- its desired begin is larger than or equal to the desired end of its parent, if the element is neither a `region` element nor a `body` element

To determine the desired begin and end of each element, the _[compute desired begin and end of an element]_ algorithm below is applied separately to all `region` elements, and the `body` element.

# [compute desired begin and end of an element]

```
- let E be the element
- let S be the previous sibling of E, unless E is the first child of P
- let P be the parent of E, unless E is a <region> element or the <body> element

/* compute implicit begin of E */

- if E has no parent, then the implicit begin of E is 0
- if E has a parent, then the implicit begin of E is equal to:
    - the desired end of S, if S exists and P has _seq_ semantics
    - the desired begin of P, otherwise.
    
/* compute desired begin of E */

- the desired begin of E is equal to:
    - the implicit begin of E plus the specified begin of E, if a specified begin of E exists;
    - the implicit begin of E, otherwise.
    
/* compute implicit end of E */

- if E is a <region>, <br>, <set> or anonymous span, the implicit end of E is equal to:
    - the desired begin of E, if P exists and has _seq_ semantics
    - indefinite, otherwise
    
- otherwise, the [compute desired begin and end of an element] is applied to the children of E that are Content or Animation elements, and the implicit end of E is equal to:
    - its desired begin, if E has no children; or
    - the largest desired end of any of its children, if E has _par_ semantics
    - the desired end of its last child, if E has _seq_ semantics
        
/* compute desired end of E */

- if both a specified duration and a specified end of E exist, the desired end of E is equal to the smallest of: (a) the desired begin of E plus the specified duration of E, and (b) the implicit begin of E plus the specified end of E; or

- if the specified duration of E exists but a specified end of E does not exist, the desired end of E is equal to the desired begin of E plus the specified duration of E; or

- if the specified end of E exists but a specified duration of E does not exist, the desired end of E is equal to the implicit begin of E plus the specified end of E; or

- otherwise, the desired end of E is equal to the implicit end of E.
```

Please view or discuss this issue at https://github.com/w3c/ttml1/issues/311 using your GitHub account

Received on Thursday, 28 December 2017 18:16:05 UTC