What it checks
SDH subtitles use colors to carry meaning: who speaks, whether the speaker is on screen, whether the text describes a sound or music. Each subtitle whose text uses a color that is not part of the destination's color code produces one issue listing the colors found.
CueNorm checks the colors themselves. Whether each color is used for the right purpose (a speaker really off screen, a real sound indication) remains an editorial judgement that no tool can verify.
How it is measured
The color code maps six roles to colors. By default it is the one of the French charter on the quality of subtitling for the deaf and hard of hearing (CSA, now Arcom, December 2011, criterion 9), the consensus among broadcasters:
| Role | Default color | Used for |
|---|---|---|
onScreen |
white | a speaker visible on screen |
offScreen |
yellow | a speaker off screen |
sound |
red | sound indications |
music |
magenta | music indications and song lyrics |
thoughts |
cyan | thoughts, narrator, off-screen commentary |
foreignLanguage |
green | use of a foreign language |
Text without an explicit color counts as white. A destination with a different code redeclares only the roles that differ, under sdh.colors in its profile:
sdh:
colors:
offScreen: cyan
thoughts: yellow
Each color may be used by one role only: two roles sharing a color would make the code ambiguous, and the profile is refused when loaded.
Parameters
This rule takes no parameter: the color code comes from the profile's sdh.colors section, or the charter defaults.
Example
With the default code, a subtitle written in orange is reported as Color(s) #ff8800 are not part of the SDH color convention.
Shipped SDH profiles declare this rule as an error, since the charter requires the color code to be respected. A profile may declare it again with severity: warning.
How to fix
- Recolor the text with the color of the right role.
- If the file follows another destination's color code, the
REMAP_SDH_COLORStransformation (when the profile allows it) translates each color through its role: for example, a file made for a destination where off-screen speakers are cyan is converted to yellow. The source code is the charter by default; on the command line,--source-profile=<id>takes it from another profile. - A color with no role in the source code is kept as is and reported (
SDH_COLOR_UNMAPPED): it is never guessed.