Contrast audit

Every brand colour the app draws text or a control edge on, measured against WCAG 2.1: 4.5:1 for body text, 3:1 for large text and non-text. Colours are read out of the Swift source at run time, and semi-transparent ones are composited onto the surface behind them first, because a rule at 8.5% opacity is not a 10:1 colour, it is whatever it becomes on the page.

14 pass · 0 fail · 5 exempt as pure decoration · 19 measured
What a person seesForegroundBehind it MeasuredVerdict
Reading window, cream
Body text on the page#1A1714#FCF9F517.00:1PASS needs 4.5:1
Text on a highlighted wordThe highlight sits under the word being spoken.#1A1714#F2D6C212.88:1PASS needs 4.5:1
Text outside the spoken sentence (64% ink)The document, not decoration: people read ahead and back in it.#6B6865#FCF9F55.25:1PASS needs 4.5:1
Ruled line on the pagePure decoration.#E9E6E2#FCF9F51.19:1EXEMPT needs 3.0:1
Margin rulePure decoration.#EFCAB1#FCF9F51.45:1EXEMPT needs 3.0:1
Page edgePure decoration.#E5E2DF#FCF9F51.23:1EXEMPT needs 3.0:1
Reading window, slate
Body text on the page#E8E6E0#191B1A13.87:1PASS needs 4.5:1
Text on a highlighted word#E8E6E0#59351C8.69:1PASS needs 4.5:1
Text outside the spoken sentence (56% ink)#8D8D89#191B1A5.18:1PASS needs 4.5:1
Ruled line on the pagePure decoration.#303130#191B1A1.33:1EXEMPT needs 3.0:1
Margin rulePure decoration.#6F3E1C#191B1A1.95:1EXEMPT needs 3.0:1
Settings sidebar
White glyph on the Dictation tileThe row's text label is what identifies it; the glyph repeats it. Exempt, but a glyph nobody can see is still a poor glyph.#FFFFFF#EB6F3B3.06:1PASS needs 3.0:1
White glyph on the Modes tileThe row's text label is what identifies it; the glyph repeats it. Exempt, but a glyph nobody can see is still a poor glyph.#FFFFFF#D959733.73:1PASS needs 3.0:1
White glyph on the Translation tileThe row's text label is what identifies it; the glyph repeats it. Exempt, but a glyph nobody can see is still a poor glyph.#FFFFFF#339E733.34:1PASS needs 3.0:1
White glyph on the Licence tileThe row's text label is what identifies it; the glyph repeats it. Exempt, but a glyph nobody can see is still a poor glyph.#FFFFFF#BA8D173.03:1PASS needs 3.0:1
White glyph on the Instructions tileThe row's text label is what identifies it; the glyph repeats it. Exempt, but a glyph nobody can see is still a poor glyph.#FFFFFF#6B5CC75.28:1PASS needs 3.0:1
Milestone badge
Ember on a dark card#CC8A5F#0C121C6.58:1PASS needs 4.5:1
Ink on a light card#1B1E24#FCFBF816.11:1PASS needs 4.5:1
Keyboard guide
Translation key tint on a light panePosition and a text label also distinguish it, so 1.4.1 is met regardless.#9333C4#F5F5F75.49:1PASS needs 3.0:1

Regenerate with python3 scripts/contrast-audit.py --html docs/contrast-audit.html