BBC Subtitle Guidelines technical requirements for EBU-TT-D #10
BBC Admin
started this conversation in
Requirements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
The BBC Subtitle Guidelines specify both editorial and technical requirements for hard of hearing subtitles (aka captions) and the files that express them.
Here are the requirements for the validator when validating EBU-TT-D subtitle documents against the (mostly) technical requirements of the guidelines:
Not permitted in XML
ERROR,
remove null bytes and continue
Hard to be certain about, certain strings are likely giveaways.
Not sure if this should be done based on text content only or on the entire document pre-parsing
ERROR,
re-encode, check again and continue
Not permitted
ERROR, remove BOM and continue
If so, can use EBU-TT Live Interop Toolkit to create a domain model for validation. Otherwise, need to use a different approach
ERROR,
continue
xml:idvaluesNot permitted in XML
ERROR, continue
Ignored and not specified in TTML
WARN, continue
ttnamespaceGood value:
http://www.w3.org/ns/ttmlERROR,
continue assuming that whatever namespace is present is used as the basis for the namespaces of all the other TT elements and attributes that have a namespace
ttattributesERROR
ttp:timeBase="media"present: requirementERROR
ittp:activeAreapresent: nice to have, not an error if absentINFO
ttp:cellResolutionpresent: if absent use default"32 15"INFO
tt/headIf absent, this is an Error; skip tests that depend on it.
ERROR, continue to body tests
tt/head/ttm:copyrightNice to have, not an error if absent
WARN
tt/head/stylingIf absent, this is an Error; skip tests that depend on it
ERROR, continue to inline style tests
tt/head/styling/styleelementsIf absent, this is an Error; skip tests that depend on it
ERROR, continue to inline style tests
Shouldn't be any
WARN
styleelements without anxml:idShouldn't be any
ERROR, continue
styleelements without any style attributesShouldn't be any
WARN
styleelementShouldn't be any
ERROR, continue
styleattribute references instyleelementsShouldn't be any
ERROR, continue
spanthat don't apply tospani.e.tts:lineHeight,tts:textAlign,itts:fillLineGap,ebutts:linePadding,tts:extent,tts:origin,tts:displayAlignAuthoring error, rendering will likely be different to expectation
ERROR, continue
not permitted in EBU-TT-D
ERROR, continue
tts:backgroundColorthat is non-transparent on elements other thanspanFails BBC requirement
ERROR, continue
spanelements wheretts:coloris too similar totts:backgroundColorError - but we don't have a test for this, and we would have to check it against the nearest ancestor that set a backgroundColor, not just the current element.
In principle, ERROR, continue,
In practice, don't do this until we have a methodology
tts:fontFamilywith wrong valuesBBC requirement
ReithSans, Arial, Roboto, proportionalSansSerif, defaultERROR, continue
tts:fontSizeonspanBBC requirement around 6.667% of the render area height for landscape video, or 3.75% for vertical.
See also T.30.3
INFO for computed values, ERROR if less than 2% or more than 8% or badly formed (e.g. number omitting unit), continue
tts:lineHeightonpBBC requirement 120-125%
INFO for computed values, ERROR if less than 100% or more than 130%, WARN if
normalrhvalue rather than the %age, different for horizontal and vertical video)tts:textAlignonpNo check, any value is potentially fine
ERROR if invalid value
ebutts:multiRowAlignNot expecting, but not necessarily an error. Warn if different to
tts:textAlignINFO if present, WARN if unexpected value
ebutts:linePaddingIf absent, or out of range, fails requirement. Expect in range 0.3c to 0.8c.
ERROR if absent or out of range
tts:colorCheck it is equivalent fully opaque value from permitted list - requirement (white, yellow, cyan or green). Must be correct format.
ERROR if absent or incorrect value
itts:fillLineGapError if not
trueonpelementERROR if absent or incorrect value
If
tts:fontStyle="italic", on anyspan, warn. BBC requirement.WARN if present
tt/head/layoutIf absent, this is an Error; skip tests that depend on it
ERROR, continue to body tests assuming default region
tt/head/layout/regionelementsIf absent, this is an Error; skip tests that depend on it
ERROR, continue to body tests assuming default region
regionelementsShouldn't be any
WARN
regionelements without anxml:idShouldn't be any
ERROR, continue
regionelement without atts:originattributeIf absent, this is an Error
ERROR, continue
regionelement with a badly formedtts:originattributeFor example using negative values or wrong units
ERROR, continue
regionelement without atts:extentattributeIf absent, this is an Error
ERROR, continue
regionelement with a badly formedtts:extentattributeFor example using negative values or wrong units
ERROR, continue
regionelement without a (valid)tts:displayAlignattributeBBC requirement.
ERROR, continue
regionelement without atts:overflowattribute set tovisibleBBC requirement.
ERROR, continue
regionelement with atts:backgroundColorthat is set and non-transparentBBC requirement
ERROR, continue
regionelement with atts:wrapOptionthat is set towrapBBC requirement
WARN
pelement that is not in any regionError if occurs
ERROR, continue
pelement that is pruned by association with aregiondifferent to an ancestor element'sregionWarning
WARN
regionelement that goes outside the expected "safe" areaError if occurs in a referenced region, Warning otherwise.
BBC requirement - to deal with both horizontal and vertical modes, without knowing which, no region should have a top/left edge at less than 5% or a bottom/right edge at more than 95%.
Ideally, set different parameters for vertical videos compared to others.
See also T.30.3
ERROR/WARN, continue
tt/bodyError if absent
ERROR, skip to T.28
tt/body/divError if absent. BBC requirement.
ERROR, skip to T.28
tt/body/div/divError if present.
ERROR, continue
pchild of everydivError if absent. BBC requirement.
ERROR, continue
begin,endordurattributes onbodyordivError if present
ERROR, continue (include in computation of all descendant element times)
xml:idon everypelementError if absent. BBC requirement.
ERROR, continue
pError if present. BBC requirement.
ERROR, continue
<br>elementsWarn if present - suggests that author erroneously thought that new line characters would be interpreted as new lines rather than white space.
WARN. continue
Warn if present - browser might fall back and present something, but it might look bad e.g. instead of ♫ U+266B we have seen a file that uses U+1F3B5 which is more of an emoji style note, not present in Reith Sans, which renders badly on black backgrounds
WARN. continue
beginorendattributes on both apand a descendantspanError if present.
ERROR, continue
Error if present.
ERROR, continue
pwith nospanchildrenError if present.
ERROR, continue
spanelementsError if present.
ERROR, continue
pelements earlier than 23 minutes.Error. NB for
pelements without times, where their descendantspanelements do have times, float the earliest child begin time and the latest child end time to thepfor checking this constraint.ERROR, continue
Error if there is content that falls outside the segment window - suggests that the content is mis-timed or the segmentation window is wrong.
Note that a flag is needed say if the input file is media-time-relative or segment-time-relative.
ERROR, continue
(pprimarily) that overlap in timeError if present.
ERROR, continue
Error if present.
To compute this, if valid IMSC, can use imscJS to render PNGs and for each ISD check for non-empty pixels at the boundary edges.
Otherwise, analyse regions and number of lines selected into each, and use computed
tts:displayAlignedge to work out vertical alignment edge and direction, and see if it's likely that any content goes into outermost 5% of rendering area.ERROR, continue
Error if gaps shorter than 0.8s present. BBC requirement.
Warning if gaps between 0.8s and 1.5s present.
ERROR or WARNING, continue
bodyError
ERROR, continue
bodyelements, sibling elements in other namespaces are ok and will be ignored.ttError
ERROR, stop
Warning - not yet a formal requirement, but a good sign that there's a problem.
OK to implement this check only if the document passes EBU-TT-D XSD validation.
WARN, continue
Should be present, not required.
WARN, continue
Should be present and claim conformance to EBU-TT-D 1.0.1 and IMSC 1.0.1 Text
WARN, continue
If present, check against expectation (command line argument?) and also use to set tighter limits on fontSize (T.8) and safe areas (T.17.9).
WARN, continue
Beta Was this translation helpful? Give feedback.
All reactions