Colour-blind safe palette and a no-colour-alone rule #56

Closed
opened 2026-08-31 17:30:07 +02:00 by robert · 1 comment
robert commented 2026-08-31 17:30:07 +02:00 (Migrated from git.butzei.de)

Goal

The Time 2 has 64 colours after years of black and white, which makes it easy to start encoding meaning in colour alone. Roughly 8% of men have a colour vision deficiency, and this is far cheaper as a rule from day one than as a retrofit across three views.

Acceptance criteria

  • Palette chosen and documented in docs/DESIGN.md, checked against deuteranopia, protanopia and tritanopia simulation
  • No state is signalled by colour alone - every colour cue paired with shape, position or text
  • Red/green never used as the sole distinction between two states
  • Verified specifically for: GPS quality, speed source, off-route state, HR zones, sensor alerts
  • Contrast checked on e-paper in direct sunlight, not only on the emulator
  • Palette defined as named constants in one header, not scattered literals

Files

  • watchapp/src/c/palette.h
  • docs/DESIGN.md

Notes

HR zones are the obvious trap: they are conventionally five colours and nothing else.

## Goal The Time 2 has 64 colours after years of black and white, which makes it easy to start encoding meaning in colour alone. Roughly 8% of men have a colour vision deficiency, and this is far cheaper as a rule from day one than as a retrofit across three views. ## Acceptance criteria - [ ] Palette chosen and documented in `docs/DESIGN.md`, checked against deuteranopia, protanopia and tritanopia simulation - [ ] **No state is signalled by colour alone** - every colour cue paired with shape, position or text - [ ] Red/green never used as the sole distinction between two states - [ ] Verified specifically for: GPS quality, speed source, off-route state, HR zones, sensor alerts - [ ] Contrast checked on e-paper in direct sunlight, not only on the emulator - [ ] Palette defined as named constants in one header, not scattered literals ## Files - `watchapp/src/c/palette.h` - `docs/DESIGN.md` ## Notes HR zones are the obvious trap: they are conventionally five colours and nothing else.
Owner

Closed by PR #86 (merged): watchapp/src/c/palette.h (named GColor constants, verified byte-for-byte against the installed SDK's gcolor_definitions.h, not invented), DESIGN.md section 7 (the full writeup: palette source, the no-colour-alone rule with a per-future-feature table, CVD reasoning, WCAG contrast computation). Pure infrastructure today \u2014 grepped, nothing in watchapp/src/c/ sets a GColor yet, so this changes nothing on screen until #59 consumes it.\n\nBonus correction, properly appended not edited: found gabbro's screen was recorded as just "colour" rather than "64 colours" in DESIGN.md's platform table and D24 \u2014 checked against the installed SDK (identical to emery's) and confirmed basalt is also 64-colour per current developer.rebble.io docs. Filed as a new dated correction subsection under D24, old text untouched, per D48/this repo's own decision-log convention.\n\nHonest limits, both flagged for Robert's physical devices: colour-vision-deficiency analysis is textbook-reasoned, not simulator-verified (no CVD tool in this sandbox); contrast ratios are WCAG-computed against sRGB assumptions, not measured on the actual reflective e-paper in direct sunlight \u2014 no official Pebble/Rebble sunlight-contrast figure exists to check against either. Both need a look on the real emery/gabbro units before these colours ship in a real view.

Closed by PR #86 (merged): watchapp/src/c/palette.h (named GColor constants, verified byte-for-byte against the installed SDK's gcolor_definitions.h, not invented), DESIGN.md section 7 (the full writeup: palette source, the no-colour-alone rule with a per-future-feature table, CVD reasoning, WCAG contrast computation). Pure infrastructure today \u2014 grepped, nothing in watchapp/src/c/ sets a GColor yet, so this changes nothing on screen until #59 consumes it.\n\n**Bonus correction, properly appended not edited**: found gabbro's screen was recorded as just \"colour\" rather than \"64 colours\" in DESIGN.md's platform table and D24 \u2014 checked against the installed SDK (identical to emery's) and confirmed basalt is also 64-colour per current developer.rebble.io docs. Filed as a new dated correction subsection under D24, old text untouched, per D48/this repo's own decision-log convention.\n\n**Honest limits, both flagged for Robert's physical devices**: colour-vision-deficiency analysis is textbook-reasoned, not simulator-verified (no CVD tool in this sandbox); contrast ratios are WCAG-computed against sRGB assumptions, not measured on the actual reflective e-paper in direct sunlight \u2014 no official Pebble/Rebble sunlight-contrast figure exists to check against either. Both need a look on the real emery/gabbro units before these colours ship in a real view.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
robert/PedalPebble#56
No description provided.