Het palet begint met de eerste vijf kleuren van tab10 uit matplotlib, het standaardpalet achter een groot deel van de grafieken op internet, en bij drie van de vier simulaties vallen daar twee kleuren in samen. Je krijgt cijfers terug in plaats van een indruk: welke paren niet meer uit elkaar te houden zijn, hoeveel perceptueel verschil elk paar verloor, en hoeveel luminantiecontrast er daarna nog over is.
Ongeveer 1 op de 12 mannen ziet geen verschil tussen een rode en een groene reeks
Ruwweg 8% van de mannen en 0,5% van de vrouwen van Noord-Europese afkomst heeft een vorm van kleurenblindheid. In een overwegend mannelijk publiek is dat ongeveer één op de twaalf, en juist rood tegenover groen gaat bij hen mis. Dat is ook het paar waar alles standaard naar grijpt: badges voor geslaagd en mislukt, pijlen omhoog en omlaag, en de eerste twee reeksen die een grafiekbibliotheek uitdeelt.
Dat mannen en vrouwen hier zo ver uit elkaar liggen, komt door waar de genen zitten. De kegelpigmenten voor lange en middellange golflengte liggen allebei op het X-chromosoom. Mannen hebben één X, dus één defecte kopie is het hele verhaal; vrouwen hebben er twee, en een werkende kopie op een van beide is meestal genoeg, waardoor het percentage bij vrouwen ongeveer het kwadraat is van dat bij mannen. Het pigment voor korte golflengte ligt op chromosoom 7, is niet geslachtsgebonden en gaat veel minder vaak mis: tritanopie ligt in de orde van 1 op de 10.000 en komt bij mannen en vrouwen even vaak voor. Daarom gaat kleurenblindheid in de praktijk bijna altijd over rood en groen.
De transformatie is Brettel 1997, geen kanaalwissel
Kleurenzien draait op drie soorten kegeltjes: L piekt rond 560 nm, M rond 530 nm, S rond 420 nm. Een los kegeltje meldt geen kleur. Kleur zit in de verhouding tussen de drie reacties, en daarom kost het wegvallen van één soort een dimensie en niet een kleur.
Deze pagina gebruikt de transformatie uit Brettel, Viénot en Mollon (1997), "Computerized simulation of color appearance for dichromats", JOSA A 14(10):2647. Elke kleur wordt gelineariseerd, omgezet naar de LMS-kegelruimte, geprojecteerd op het oppervlak dat het gamut van een dichromaat beslaat, en weer terug omgezet. Dat oppervlak bestaat uit twee halve vlakken die aan de neutrale as scharnieren en niet uit één, en het verschil is zichtbaar: de vereenvoudiging met één vlak is afgestemd op de gele kant van de verwarringsas en geeft verzadigd blauw en violet weer als kleuren die geen enkele dichromaat zegt te zien. De kanaalwissels die op blogs rondgaan modelleren de kegelruimte helemaal niet. De uitvoer is naast libDaltonLens gelegd, met een verschil van hooguit 2 op 255 op één kanaal over een raster van 421.000 kleuren.
Achromatopsie staat apart: een luminantieprojectie met de eigen wegingen van sRGB op lineair licht, en niet het gemiddelde van de drie kanalen. Het oog is ruwweg tien keer gevoeliger voor groen dan voor blauw, dus een gemiddelde maakt van een leesbare grafiek met groen op blauw één vlakke rechthoek.
De paarcontrole is een tweede stap. Elk paar wordt voor en na gemeten als Euclidische afstand in OKLab, en een paar dat eerst duidelijk uit elkaar lag en daarna onder 0,05 uitkomt geldt als samengevallen. Ter vergelijking: 0,05 is ongeveer het gat tussen #808080 en #8f8f8f. Paren die vooraf al zo dicht bij elkaar lagen vallen af: kleurenblindheid de schuld geven van twee bijna identieke stalen stuurt je het verkeerde probleem in.
Dichromasie, anomale trichromasie en wat Ernst doet
De meeste mensen met kleurenblindheid missen geen heel type kegeltje. Bij anomale trichromasie, waar protanomalie en deuteranomalie onder vallen, is het derde kegeltje er wel, maar ligt de piek ervan richting die van de buur, waardoor het onderscheid langs die as wordt samengedrukt in plaats van dat het wegvalt. Deuteranomalie alleen al is ongeveer 5% van de mannen, meer dan alle vormen van dichromasie bij elkaar. Een simulator die vast op 100% staat overdrijft wat het grootste deel van zijn publiek ervaart, en daarom zit er een schuif op de ernst.
Let op wat die schuif precies doet: hij mengt in lineair licht naar het resultaat van een dichromaat toe. De piek van een kegeltje verschuiven is iets anders dan mengen, dus 60% betekent hier milder dan een dichromaat, niet deuteranomalie. Alleen de stand op 100% wordt door het gepubliceerde model gedekt.
Wat je verandert als een paar wordt gemarkeerd
Tint is het kanaal dat wegvalt, dus elke oplossing verhuist de betekenis naar iets anders.
- Laat tint nooit het enige verschil zijn. Voeg een streepjespatroon toe, een vorm voor de markering, een vultextuur, een positie, of een label op de lijn zelf in plaats van een legenda op kleur.
- Controleer het luminantiecontrast tussen naast elkaar liggende categorieën. Lichtheid overleeft elke simulatie op deze pagina, achromatopsie inbegrepen, dus categorieën die in lichtheid verschillen blijven uit elkaar te houden, wat de kegeltjes van de lezer ook doen. De contrastchecker geeft dat getal voor elk paar.
- Orden een categorische schaal op lichtheid in plaats van op tint. Een schaal die zo is opgebouwd leest ook goed in grijstinten, op een slechte beamer en in een fotokopie.
- Begin bij een set die het al haalt. Het colour universal design palet van Okabe en Ito, achter de knop links, komt hier door alle drie de vormen van dichromasie heen. Bouw daarop verder, of neem het mee naar de paletgenerator.
Wat deze simulatie niet is
Het is een simulatie van een model, geen kijkje in iemands ogen. De transformatie van Brettel voorspelt waar een kleur op terugvalt onder een geïdealiseerde dichromasie op een sRGB-scherm. Echte waarneming varieert met de ernst, met de adaptatie van het oog, met het scherm waar iemand voor zit, en met de kleuren naast de kleur die beoordeeld wordt, en geen twee mensen met dezelfde diagnose beschrijven hetzelfde. Behandel de uitvoer als een ontwerpcontrole op je palet. Het is geen medische test, het stelt geen diagnose, en een uitkomst hier zegt niets over je eigen zicht. Daar zijn Ishihara-platen en een anomaloscoop voor, afgelezen door iemand die daarvoor is opgeleid.
Veelvoorkomende problemen
- De tabel markeert een paar dat ik nog wel uit elkaar houd. De drempel is een OKLab-afstand van 0,05, afgestemd op het oordeel dat telt: twee vlakjes aan weerskanten van een grafiek, niet twee vlakjes die elkaar raken. Kleuren die zo dicht bij elkaar liggen zijn rand aan rand nog te scheiden, maar over een legenda heen niet.
- Er verandert niets als ik van afwijking wissel. Je palet varieert vooral in lichtheid en niet in tint. Dat is het goede geval, en de eigenschap om vast te houden terwijl je kleuren toevoegt.
- Het voorbeeld van de afbeelding is kleiner dan mijn bestand. Het wordt verkleind naar 1200 pixels op de langste zijde. De transformatie werkt per pixel en kijkt niet naar de buren, dus het voorbeeld laat precies hetzelfde zien als het origineel, en het verkleinen voorkomt dat een foto van 24 megapixel het tabblad bij elke schuif vastzet.
- Een kleur die ik typte verdween uit de tabel. Alleen waarden die te lezen zijn worden gesimuleerd, dus een half getypte waarde valt weg in plaats van als zwart mee te tellen. De statusbalk houdt bij hoeveel.
Veelgestelde vragen
Tegen welke simulatie moet ik ontwerpen?
Deuteranopie eerst: de deuteraanvormen komen met afstand het vaakst voor, en daarom staat die hier standaard aan. Daarna protanopie, dat ongeveer dezelfde paren door elkaar haalt en rood bovendien donkerder maakt. Tritanopie is zeldzaam genoeg om een controle te zijn en geen randvoorwaarde, en achromatopsie is meteen je test voor grijstinten en drukwerk.
Is dit een kleurenblindheidstest?
Nee, en dat kan het ook niet zijn. Het transformeert kleuren die jij aanlevert en meet niets over de persoon achter het scherm. Ga voor je eigen zicht naar een optometrist.
Verlaat mijn afbeelding mijn apparaat?
Nee. Het bestand wordt door je browser gedecodeerd, op een canvas getekend en in dit tabblad pixel voor pixel getransformeerd. Er is geen upload, geen server om heen te uploaden en geen limiet op de bestandsgrootte behalve je eigen geheugen. Open het netwerktabblad en zet een bestand neer: het aantal verzoeken beweegt niet. Het palet en de twee instellingen reizen mee in de URL; de afbeelding met opzet niet.
Is een palet dat kleurenblindheid doorstaat op zichzelf genoeg?
Nee. Een veilig palet betekent dat geen twee categorieën in elkaar vallen, en dat is nodig maar niet genoeg. Kleur faalt nog steeds op een slechte beamer, in een gedrukte hand-out, op een telefoon in de zon, en in een schermafbeelding die in een ticket geplakt wordt. Kleurenblindheid is alleen het geval dat voorspelbaar genoeg is om te simuleren.
Waarom stopt het palet bij 16 kleuren?
De paarcontrole is kwadratisch en een deelbare link moet een link blijven. Een grote beperking is dat niet: twaalf reeksen is al lastig voor lezers met gewoon kleurenzicht, en de oplossing is minder reeksen of directe labels, niet meer kleuren.