docs(spelwork): colour-vision check of severity and stage colours (#173) #228

Merged
peterswimm merged 1 commit from docs/173-colour-vision-check into main 2026-10-24 15:10:22 +00:00
Member

Refs #173. Does not close it.

Scope

Records the colour-vision check of the merged severity colours (#174, #225) and stage ramp (#172, #226) in Brand/specs/spelwork/spelwork-dashboard-design-part1.md. It replaces the open "none of this has been checked yet" item in §1 with a "Colour-vision check (#173)" section, and adds one sentence of evidence to the light-theme lightness open question.

Not in this PR: any token value, any generator, any dist/ file, the three Part 2 figures, the text of the #173 issue, any replacement colour.

Testing

Documentation only, so no behaviour tests apply. The 13 check commands and python3 -m pytest generator/tests/ were run anyway: all pass (400 passed, 20 skipped). No dist/ drift.

How the check itself was run:

  • Simulation: Machado et al. (2009), severity 1.0, applied in linear sRGB, for protanopia, deuteranopia and tritanopia. This is full dichromacy. Anomalous trichromacy was not tested.
  • Distance: CIEDE2000 and the lightness difference ΔL*.
  • Thresholds: ΔE under 5 is "collapse", 5 to 10 "weak". These are analysis thresholds chosen for this review, not an accessibility standard. WCAG defines no colour-vision metric.
  • The simulation was sanity-checked on the grey axis and on known red and green results. The old CIE76 figures in the spec (27.7 and 29.3) were reproduced from the dropped values.

Impact Statement

  • Existing features: none.
  • Public APIs / contracts: none.
  • Schemas: none.
  • Data / artifacts: none.
  • Integrations: none.
  • Mappings: none.
  • Backward compatibility: no impact.

Docs

This PR is the docs update.

Review points

  1. Stage ramp: no colour change needed. It separates by lightness and loses nothing under colour-vision deficiency. Adjacent steps are about ΔE 5 to 8 apart even in normal vision, so the icon and the name are what identify a stage.
  2. Light severity (known accessibility finding): slow and broken collapse under deuteranopia (ΔE 2.0), and fine and slow are weak under protanopia (9.7). Fine, slow and broken share almost the same lightness (L* 49.6, 49.9, 47.9). This is the same cause as the light-theme lightness-order issue from #174. Changing the light values was not approved, so they are unchanged.
  3. Dark severity: broken and old collapse under protanopia (ΔE 4.6). The tritan-only collapse of broken and very serious (ΔE 3.2) is recorded in proportion, since tritanopia is very rare.
  4. Rule restated in the spec: severity and stage identity must not rely on colour alone.
  5. No replacement colours are proposed. Any change to an existing severity token value needs Peter's decision (#174).
  6. The §1 heading still says "colorblind-safe". It was kept as it is. The new section records findings below it.
  7. The #173 issue text is not changed here. A revised text is drafted separately and is not posted.
Refs #173. Does not close it. ## Scope Records the colour-vision check of the merged severity colours (#174, #225) and stage ramp (#172, #226) in `Brand/specs/spelwork/spelwork-dashboard-design-part1.md`. It replaces the open "none of this has been checked yet" item in §1 with a "Colour-vision check (#173)" section, and adds one sentence of evidence to the light-theme lightness open question. Not in this PR: any token value, any generator, any `dist/` file, the three Part 2 figures, the text of the #173 issue, any replacement colour. ## Testing Documentation only, so no behaviour tests apply. The 13 check commands and `python3 -m pytest generator/tests/` were run anyway: all pass (400 passed, 20 skipped). No `dist/` drift. How the check itself was run: - Simulation: Machado et al. (2009), severity 1.0, applied in linear sRGB, for protanopia, deuteranopia and tritanopia. This is full dichromacy. Anomalous trichromacy was not tested. - Distance: CIEDE2000 and the lightness difference ΔL\*. - Thresholds: ΔE under 5 is "collapse", 5 to 10 "weak". These are analysis thresholds chosen for this review, not an accessibility standard. WCAG defines no colour-vision metric. - The simulation was sanity-checked on the grey axis and on known red and green results. The old CIE76 figures in the spec (27.7 and 29.3) were reproduced from the dropped values. ## Impact Statement - Existing features: none. - Public APIs / contracts: none. - Schemas: none. - Data / artifacts: none. - Integrations: none. - Mappings: none. - Backward compatibility: no impact. ## Docs This PR is the docs update. ## Review points 1. **Stage ramp:** no colour change needed. It separates by lightness and loses nothing under colour-vision deficiency. Adjacent steps are about ΔE 5 to 8 apart even in normal vision, so the icon and the name are what identify a stage. 2. **Light severity (known accessibility finding):** slow and broken collapse under deuteranopia (ΔE 2.0), and fine and slow are weak under protanopia (9.7). Fine, slow and broken share almost the same lightness (L\* 49.6, 49.9, 47.9). This is the same cause as the light-theme lightness-order issue from #174. Changing the light values was not approved, so they are unchanged. 3. **Dark severity:** broken and old collapse under protanopia (ΔE 4.6). The tritan-only collapse of broken and very serious (ΔE 3.2) is recorded in proportion, since tritanopia is very rare. 4. **Rule restated in the spec:** severity and stage identity must not rely on colour alone. 5. **No replacement colours are proposed.** Any change to an existing severity token value needs Peter's decision (#174). 6. **The §1 heading still says "colorblind-safe".** It was kept as it is. The new section records findings below it. 7. **The #173 issue text is not changed here.** A revised text is drafted separately and is not posted.
docs(spelwork): colour-vision check of severity and stage colours (#173)
Some checks failed
PR policy check / policy-gate (pull_request) Successful in 1s
Test Generator / lint-workflows (pull_request) Successful in 37s
Security Scans / Gitleaks secret scan (pull_request) Successful in 38s
Security Scans / Trivy filesystem scan (pull_request) Failing after 39s
Test Generator / lint-prose (pull_request) Successful in 43s
UDG dist drift gate / dist/ matches dtcg + udg sources (pull_request) Successful in 17s
Copy coverage / Design copy reaching rendered HTML (pull_request) Successful in 38s
Block Validation / validate (pull_request) Successful in 1m31s
Test Generator / test (pull_request) Successful in 4m2s
067c9b112a
Replace the open "none of this has been checked" item in Part 1 section 1
with the result of the colour-vision check, run against the merged values
of #174/#225 (severity) and #172/#226 (stage ramp).

Method: Machado et al. (2009) severity 1.0 simulation (full dichromacy;
anomalous trichromacy not tested) for protanopia, deuteranopia and
tritanopia, scored with CIEDE2000 and the lightness difference. The 5 and
10 thresholds are analysis thresholds for this review, not a standard.

Findings recorded:
- stage ramp: no colour change needed; no loss specific to colour-vision
  deficiency
- light severity: slow and broken collapse under deuteranopia, fine and
  slow are weak under protanopia (fine, slow and broken share lightness)
- dark severity: broken and old collapse under protanopia; the
  tritan-only collapse of broken and very serious is recorded in proportion
- dark accents named in #173: recomputed for the values #174 kept; the
  27.7 and 29.3 figures belonged to dropped values and are superseded

Severity and stage identity must not rely on colour alone. No replacement
colours are proposed and no token value changes. The light-theme lightness
open question now cites the new evidence.
peterswimm deleted branch docs/173-colour-vision-check 2026-10-24 15:10:22 +00:00
Sign in to join this conversation.
No description provided.