Jump to content

TimedText/DAPT Implementation Report

From W3C Wiki

CR Exit Criteria

The criteria for DAPT to exit CR arise from the DAPT Status of This Document section and the TTWG Charter Success Criteria.

The DAPT CR exit criteria are:

For this specification to exit the CR stage, at least 2 independent implementations of every feature defined in this specification but not already present in [TTML2] need to be documented in the implementation report. The Working Group does not require that implementations are publicly available but encourages them to be so.

The TTWG Charter §4.1 Requirements for advancing the maturity level of features states:

Within the requirements of the Process each new normative feature will be considered as ready to advance to a higher maturity level if its implementability has been demonstrated.

When considering suitability to advance any feature beyond Candidate Recommendation, at least two independent factors of verification for each normative requirement must be demonstrated, which may come, as relevant for that requirement, from any of:

  • Presentation implementation
  • Content-producing implementation
  • Validating implementation

For example, a feature may be advanced beyond Candidate Recommendation if it has been demonstrated to be implementable on the basis of an open source implementation that successfully processes content from an independent implementation.

Verifying implementations of different types

Each type of implementation can be verified with respect to each feature in different ways.

Presentation implementation
generates presentation of test resources in a way that matches the defined semantic for the feature being tested

Note: No features defined in DAPT have a semantic that affects presentation behaviour.


Content-producing implementation
generates content that contains the syntax of the feature


Validating implementation
correctly identifies whether the syntax and semantics of all the test resources relating to the feature are valid or invalid


Additionally, if a validating implementation that meets all the test criteria also shows that the output of a content-producing implementation is valid, that demonstrates interoperability. Interoperability is a useful and important signal, but goes beyond the minimum requirement of implementability set out in the Charter.

Scope of features

The features of DAPT that are not already part of TTML2 are listed in DAPT §G. Extensions:

#agent
#contentProfiles-root
#daptOriginTimecode
#descType
#onScreen
#profile-root
#represents
#scriptEventMapping
#scriptRepresents-root
#scriptType-root
#serialization
#source-data
#textLanguageSource
#xmlLang-audio-nonMatching
#xmlLang-root

Presentation tests

None of the DAPT features that are not already part of TTML2 are presentation features. The set of presentation tests is therefore empty.

Validation tests

Validation tests are located in the w3c/dapt-tests repository.

Feature Implementation

Content-producing implementations

The following content-producing implementations have been submitted:

Features exercised

Table 1 - Features with content-producing implementations
Organisation Netflix Count(yes)
Section Feature ttal-dapt-conv
G.2 #agent Yes 1
G.3 #contentProfiles-root Yes 1
G.4 #daptOriginTimecode Yes 1
G.5 #descType Yes 1
G.6 #onScreen Yes 1
G.7 #profile-root Yes 1
G.8 #represents Yes 1
G.9 #scriptEventMapping No 0
G.10 #scriptRepresents-root Yes 1
G.11 #scriptType-root Yes 1
G.12 #serialization Yes 1
G.13 #source-data No 0
G.14 #textLanguageSource Yes 1
G.15 #xmlLang-audio-nonMatching No 0
G.16 #xmlLang-root Yes 1

Validating implementations

The following validating implementations have been submitted:

Test results

Tests whose names begin dapt-invld- include resources that a passing validation implementation declares to be invalid.

Tests whose names begin dapt-valid- include resources that a passing validation implementation declares to be valid.

Table 2 - Features with validating implementations
Organisation - BBC Tests passed
Section Feature Tests - ttml-validator
G.2 #agent Pass 1
dapt-invld-agent-actor-id-invalid Pass 1
dapt-invld-agent-actor-id-not-agent Pass 1
dapt-invld-agent-actor-id-undeclared Pass 1
dapt-invld-agent-actor-is-parent Pass 1
dapt-invld-agent-invalid-xmlId Pass 1
dapt-invld-agent-no-name Pass 1
dapt-invld-agent-no-xmlId Pass 1
dapt-valid-agent Pass 1
G.3 #contentProfiles-root Pass 1
dapt-invld-contentProfiles-im3t-no-dapt Pass 1
dapt-invld-contentProfiles-omitted Pass 1
dapt-valid-contentProfiles Pass 1
dapt-valid-contentProfiles-im3t Pass 1
G.4 #daptOriginTimecode Pass 1
dapt-invld-originTimecode-bad-format Pass 1
dapt-invld-originTimecode-frames-too-many Pass 1
dapt-invld-originTimecode-no-framerate Pass 1
dapt-invld-originTimecode-too-many Pass 1
dapt-valid-originTimecode Pass 1
G.5 #descType Pass 1
dapt-invld-descType-extension-value Pass 1
dapt-valid-descType-extension-value Pass 1
dapt-valid-descType-no-descType Pass 1
dapt-valid-descType-registry-value Pass 1
G.6 #onScreen Pass 1
dapt-invld-onScreen Pass 1
dapt-valid-onScreen Pass 1
G.7 #profile-root Pass 1
dapt-invld-profile Pass 1
dapt-valid-profile Pass 1
G.8 #represents Pass 1
dapt-invld-represents-invalid Pass 1
dapt-invld-represents-omitted Pass 1
dapt-valid-represents-direct-on-div Pass 1
dapt-valid-represents-inherit-from-body Pass 1
dapt-valid-represents-inherit-from-root-and-override Pass 1
dapt-valid-represents-inherit-from-root Pass 1
G.9 #scriptEventMapping Pass 1
dapt-valid-scriptEventMapping Pass 1
G.10 #scriptRepresents-root Pass 1
dapt-invld-represents-scriptRepresents-mismatch Pass 1
dapt-invld-scriptRepresents-invalid-content-descriptor Pass 1
dapt-invld-scriptRepresents-invalid-list Pass 1
dapt-invld-scriptRepresents-omitted Pass 1
dapt-valid-scriptRepresents-single-value Pass 1
dapt-valid-scriptRepresents-two-values Pass 1
G.11 #scriptType-root Pass 1
dapt-invld-scriptType-root-invalid-value Pass 1
dapt-invld-scriptType-root-omitted Pass 1
dapt-valid-scriptType-root Pass 1
G.12 #serialization Pass 1
dapt-invld-serialization-bom Pass 1
dapt-invld-serialization-external-dtd Pass 1
dapt-invld-serialization-internal-dtd Pass 1
dapt-invld-serialization-encoding-iso8859-1 Pass 1
dapt-invld-serialization-entity-declaration-and-ref Pass 1
dapt-invld-serialization-not-xml Pass 1
dapt-valid-serialization Pass 1
G.13 #source-data Pass 1
dapt-invld-source-data-source-child Pass 1
dapt-valid-source-data Pass 1
G.14 #textLanguageSource Pass 1
dapt-invld-langSrc-on-root-invalid-value Pass 1
dapt-valid-langSrc-omitted Pass 1
dapt-valid-langSrc-on-content-with-inheritance Pass 1
dapt-valid-langSrc-on-root Pass 1
dapt-valid-langSrc-on-root-empty Pass 1
dapt-valid-langSrc-on-root-zxx Pass 1
G.15 #xmlLang-audio-nonMatching Pass 1
dapt-invld-xmlLang-on-audio-non-matching Pass 1
dapt-valid-xmlLang-on-audio-matching Pass 1
G.16 #xmlLang-root Pass 1
dapt-invld-xmlLang-root-empty Pass 1
dapt-invld-xmlLang-root-invalid Pass 1
dapt-invld-xmlLang-root-missing Pass 1
dapt-valid-xmlLang-root Pass 1

CR Exit criteria summary

Table 3 - Features and summary of implementations
Section Feature Content-producing implementations Validating implementations Meets CR Exit Criteria?
G.2 #agent 1 1 Yes
G.3 #contentProfiles-root 1 1 Yes
G.4 #daptOriginTimecode 1 1 Yes
G.5 #descType 1 1 Yes
G.6 #onScreen 1 1 Yes
G.7 #profile-root 1 1 Yes
G.8 #represents 1 1 Yes
G.9 #scriptEventMapping 0 1 No
G.10 #scriptRepresents-root 1 1 Yes
G.11 #scriptType-root 1 1 Yes
G.12 #serialization 1 1 Yes
G.13 #source-data 0 1 No
G.14 #textLanguageSource 1 1 Yes
G.15 #xmlLang-audio-nonMatching 0 1 No
G.16 #xmlLang-root 1 1 Yes

Interoperability testing

BBC and Netflix confirmed that all the documents produced by the documents generated the dapt-ttal-dapt-conv tool's tests are shown to be valid by ttml-validator.

DAPT At-risk features

Some TTML2 features are included in DAPT but marked as "at risk", meaning that any that do not meet the TTWG's inclusion criteria, most likely that they are supported in at least two implementations, will be removed from the specification before it advances to Recommendation. Therefore, we are interested to log any implementations that do support them.

Table 5 - At risk features
Organisation Netflix BBC Totals CR Exit Criteria Passed?
Section Feature ??? adhere #V #X #P #T
4.9.1 Audio Recording src attribute in <audio> for external resource 0 0 0 0 No
4.9.1 Audio Recording <source> element child of <audio> for external resource 0 0 0 0 No
4.9.1 Audio Recording src attribute of `<audio>` element pointing to embedded resource 0 0 0 0 No
4.9.1 Audio Recording <source> child of <audio> element pointing to embedded resource 0 0 0 0 No
4.9.1 Audio Recording inline audio resources 0 0 0 0 No
4.9.1 Audio Recording each of the potential values of encoding in 0 0 0 0 No
4.9.1 Audio Recording the length attribute on 0 0 0 0 No
G.9 #scriptEventGrouping and G.10 #scriptEventMapping Script Event Grouping and Script Event Mapping 0 0 0 0 No