Une figure scientifique a deux contraintes d’accessibilité bien identifiées qui sont de rester lisible pour les lecteurs daltoniens et de tenir une fois imprimée en niveaux de gris, chacune disposant de ses propres outils avec d’un côté les matrices de Machado et al. (2009) qui simulent la protanopie, la deutéranopie et la tritanopie, associées à des palettes comme viridis ou cividis construites pour rester distinguables sous ces simulations, et de l’autre la conversion en gris qui repose sur la luminance des couleurs.
Le problème vient du fait que ces solutions ne se recouvrent pas. Une palette pensée pour le daltonisme joue sur la teinte plus que sur la luminance et s’écrase une fois passée en gris, alors qu’une palette bien étalée en luminance peut très bien devenir illisible sous protanopie. Obtenir une palette qui tient dans les deux cas revient donc à enchaîner un générateur, un simulateur de daltonisme, un convertisseur en gris, puis à valider à l’œil.
Colorally couvre les trois étapes en une.
Méthode
L’algorithme tire des couleurs au hasard et les retient une à une, en vérifiant à chaque ajout qu’elles restent suffisamment éloignées des couleurs déjà présentes dans la palette. La vérification se fait dans cinq modes à la fois, à savoir la vision normale, la protanopie, la deutéranopie, la tritanopie et le niveau de gris.
La distance entre deux couleurs est mesurée avec la formule CIEDE2000 qui retourne la distance perçue par l’œil humain, ce qui compte davantage qu’une simple différence dans les valeurs RGB puisque deux couleurs numériquement éloignées peuvent paraître presque identiques à la vision. Les seuils par défaut sont ΔE ≥ 10 pour la vision normale et ΔE ≥ 15 pour les quatre autres modes, des valeurs calées à la main à force de tests pour trouver un compromis entre diversité et lisibilité.
Conversion en gris
La méthode rigoureuse linéarise les valeurs sRGB avant d’appliquer les coefficients de luminance puis reconvertit en sRGB. Cet aller-retour tasse cependant les tons moyens et rapproche visuellement les couleurs sur le papier. Colorally applique donc les coefficients directement sur les valeurs sRGB, ce qui est moins pur sur le plan colorimétrique mais donne des gris mieux espacés à l’impression. Un usage qui demande une rigueur colorimétrique stricte devra en tenir compte.
Borne sur la taille de palette
Un second algorithme glouton parcourt l’espace des couleurs pour voir quelle taille de palette les contraintes autorisent. Il s’arrête à 5, bloqué par la distance minimale imposée en niveau de gris. Ce résultat ne prouve pas que 5 est le maximum théorique mais donne une borne fiable pour les paramètres par défaut.
Usage
La démo en ligne couvre le cas le plus courant, à savoir générer une palette de 2 à 5 couleurs prête à l’emploi avec les seuils par défaut. Les codes hexadécimaux sont copiables directement et le rendu dans chaque mode de vision est affiché pour validation visuelle.
Le code source est disponible sur GitHub sous licence GPL-3.0. Il permet d’ajuster les seuils ΔE, de modifier les modes de vision pris en compte ou de relancer des générations avec des contraintes personnalisées.
github.com pieetie/colorally Code source sur GitHub