diff --git a/src/communitymech/templates/community.html b/src/communitymech/templates/community.html index 3d64663d..dda44006 100644 --- a/src/communitymech/templates/community.html +++ b/src/communitymech/templates/community.html @@ -513,13 +513,32 @@

Taxonomy

{%- set taxon_stroke = "#4a4a4a" -%} {%- set unmapped_color = "#929caa" -%} {#- `symbol` is the redundant channel (#270). Nine categories is past what - colour alone can carry: measured all-pairs, this palette drops to - ΔE 1.8 under tritanopia and 10.3 under NORMAL vision for - Mutualism-vs-Cross-feeding, so shape is not a courtesy to CVD - readers, it is what makes two of the commonest types separable at - all. Circle is reserved for taxa, so every value below is a - non-circle d3 symbol; the bundled d3 v7 ships 14, which is enough - for a 1:1 mapping without doubling up on fill. -#} + colour alone can carry, so shape is not a courtesy to CVD readers. + Circle is reserved for taxa, so every value below is a non-circle d3 + symbol; the bundled d3 v7 ships 14, enough for a 1:1 mapping without + doubling up on fill. + + Shape does NOT, however, excuse the normal-vision floor, and an + earlier version of this comment got that wrong: it cited + Mutualism-vs-Cross-feeding at ΔE 10.3 under NORMAL vision as an + argument FOR shape. Shape rescues the CVD case; a full-colour reader + who cannot separate the two commonest types is a colour problem, and + the dataviz rubric is explicit that secondary encoding does not + excuse it. So that 10.3 is an open defect, tracked in #532, not a + justification. + + It is not a one-colour fix. Re-stepping Mutualism to #2a7fd4 clears + the rubric's normal-vision check and then fails THIS repo's + all-pairs gate at ΔE 5.5 against #7f30cf under deuteranopia — the + two checks use different metrics (OKLab ΔE×100 adjacent-pairs vs + CIELAB ΔE76 all-pairs) and disagree about which pairs are close. + A search over ~200k saturated warm pairs found none clearing both. + Nine mutually separable hues is at or past what the space allows, + which is what the rubric means by folding a 9th series into "Other". + + Do not retune by eye, and do not retune one colour at a time. + `node scripts/validate_palette.js ""` from the dataviz skill + and `tests/test_network_palette.py` must BOTH pass. -#} {%- set interaction_legend = [ {"key": "CROSS_FEEDING", "label": "Cross-feeding", "color": "#57c7ab", "symbol": "symbolDiamond"}, {"key": "MUTUALISM", "label": "Mutualism", "color": "#56bbe6", "symbol": "symbolSquare"},