Found reviewing #268.
The nine interaction colors in src/communitymech/templates/community.html were never held to the colorblind-safety bar that PR #198 applied to the UMAP. Measuring CIE ΔE between every pair, under normal vision and under simulated protanopia/deuteranopia/tritanopia (Viénot–Brettel–Mollon), the palette has 13 confusable pairs out of 55.
The worst cases:
| pair |
normal |
protan |
deutan |
tritan |
COMPETITION #ef4444 / PREDATION #dc2626 |
10.7 |
8.2 |
9.1 |
13.3 |
MUTUALISM #3b82f6 / SYNTROPHY #a855f7 |
45.3 |
7.6 |
4.1 |
33.1 |
CROSS_FEEDING #22c55e / COMPETITION #ef4444 |
127.3 |
37.7 |
6.7 |
117.4 |
CROSS_FEEDING / STRAIN_COMPETITION #fb7185 |
118.9 |
39.8 |
7.2 |
115.8 |
CROSS_FEEDING / NICHE_PARTITIONING #14b8a6 |
46.5 |
45.6 |
48.6 |
3.5 |
Two things stand out. COMPETITION and PREDATION are separated by only ΔE 10.7 for a viewer with typical color vision — they are both essentially the same red, so this is not merely an accessibility issue. And MUTUALISM/SYNTROPHY collapse to ΔE 4.1 under deuteranopia, which is the most common form of color blindness; those are the second and third most frequent interaction types in the KB (187 and 130 occurrences), so the pair a deuteranope cannot separate is one of the pairs they will meet most often.
Minimum separation across the whole palette is ΔE 4.1 (normal/protan/deutan). A constrained search over a contrast-filtered color space finds nine-color sets reaching ΔE ~30 on the same measure, so there is a great deal of headroom.
Fix in #268: replace the palette with a set verified to a much higher minimum separation, and add a regression test so it cannot silently degrade. See also the companion issue on redundant (non-color) encoding — a better palette raises the floor but does not remove the need for a second channel.
Found reviewing #268.
The nine interaction colors in
src/communitymech/templates/community.htmlwere never held to the colorblind-safety bar that PR #198 applied to the UMAP. Measuring CIE ΔE between every pair, under normal vision and under simulated protanopia/deuteranopia/tritanopia (Viénot–Brettel–Mollon), the palette has 13 confusable pairs out of 55.The worst cases:
#ef4444/ PREDATION#dc2626#3b82f6/ SYNTROPHY#a855f7#22c55e/ COMPETITION#ef4444#fb7185#14b8a6Two things stand out. COMPETITION and PREDATION are separated by only ΔE 10.7 for a viewer with typical color vision — they are both essentially the same red, so this is not merely an accessibility issue. And MUTUALISM/SYNTROPHY collapse to ΔE 4.1 under deuteranopia, which is the most common form of color blindness; those are the second and third most frequent interaction types in the KB (187 and 130 occurrences), so the pair a deuteranope cannot separate is one of the pairs they will meet most often.
Minimum separation across the whole palette is ΔE 4.1 (normal/protan/deutan). A constrained search over a contrast-filtered color space finds nine-color sets reaching ΔE ~30 on the same measure, so there is a great deal of headroom.
Fix in #268: replace the palette with a set verified to a much higher minimum separation, and add a regression test so it cannot silently degrade. See also the companion issue on redundant (non-color) encoding — a better palette raises the floor but does not remove the need for a second channel.