Couleur du Web
Les couleurs du Web désignent les couleurs utilisées dans l'affichage des pages web, ainsi que les méthodes pour définir (par des combinaisons de teintes) et référencer (par un nom de couleur) ces couleurs.
Les auteurs de pages web peuvent spécifier les couleurs des éléments qui composent un document web de plusieurs manières : par un code agglutinant les valeurs hexadécimales RGB ; par un triplet donnant ces valeurs en décimal de 0 à 255 ou par un pourcentage ; par des références Teinte Saturation Luminosité. Des noms de code basés sur une désignation en anglais peuvent rappeler plus de deux cents codes de couleur. Souvent un outil de gestion des couleurs ou un autre logiciel graphique est utilisé pour générer la valeur numérique de la couleur souhaitée.
Les premières versions de Mosaic et du navigateur Netscape utilisaient les noms des couleurs X11 comme base pour leur liste de couleurs, puisque les deux logiciels ont commencé comme applications X Window System.
Les écrans d'ordinateur possèdent une définition colorimétrique non-équivoque, sRGB, qui énumère les chromaticités d'un ensemble particulier de luminophores, une courbe donnée de correction du gamma (ou courbe de transfert), le point blanc, et les conditions de visionnage. Cette définition a été choisie pour être réalisable avec de nombreux moniteurs. Toutefois, elle ne donne les résultats prévus qu'avec des écrans conformes, le réglage adéquat et les conditions de visionnage spécifiées. Les écrans les moins chers ne sont pas souvent conformes, et l'optimisation pour la lecture des pages web les éloigne des réglages optimums, tandis que l'environnement des écrans n'est pas toujours favorable. Si ces conditions ne sont pas remplies, le rendu n'est qu’assez proche du résultat attendu.
Codage informatique des couleurs
Triplet hexadécimal
Un triplet hexadécimal est un nombre hexadécimal à 6 chiffres mémorisé sur trois octets utilisé en HTML et dans les feuilles de style en cascade (CSS), et d'autres applications, pour représenter les couleurs. Les octets représentent les composantes rouge, vert et bleu de la couleur. Un octet représente l'intervalle entre 00
et FF
(en notation hexadécimal), ou 0 à 255 en notation décimale. Le triplet hexadécimal est formé par la concaténation de trois octets en notation hexadécimale, dans l'ordre suivant :
- Octet 1 : valeur du rouge
- Octet 2 : valeur du vert
- Octet 3 : valeur du bleu
Par exemple, en considérant la couleur où les valeurs rouge/vert/bleu sont des nombres décimaux : rouge=36, vert=104, bleu=160 (une couleur bleue grisâtre). Les nombres décimaaux 36, 104 et 160 sont respectivement 24, 68 et A0 en notation hexadécimale. Pour obtenir le triplet hexadécimal, nous écrivons simplement le triplet hexadécimal ensemble sans espace et précédé d'un dièse : #2468A0
. Si un octet est inférieur à 16 (décimal) ou 10 (hexadécimal) il doit être représenté par un zéro non significatif pour garder le nombre de chiffres dans les triplets égale à six. Par exemple, le triplet 0,1,2 devrait être représenté par le code #000102
.
Ce système peut produire 256 × 256 × 256 = 16 777 216 codes différents
Notation courte avec trois chiffres hexadécimaux
Une notation plus courte basée sur un seul chiffre hexadécimal par couleur est permise[1]. Donc trois chiffres hexadécimaux en tout pour représenter une couleur. La correspondance avec le triplet à six chiffres s'effectue en doublant chaque chiffre. Par exemple #09C
devient #0099CC
comme présenté par le code CSS suivant :
.trois-chiffres { color: #09C; }
.six-chiffres { color: #0099CC; } /*correspond à la même couleur*/
Par conséquent, cette réduction du nombre de chiffres diminue également le nombre de couleurs possibles, passant de 16 777 216 à 4 096 couleurs. Mais la plupart des documents n'utilisant que peu de couleurs, cette limitation n'est pas gênante.
Attention, cette notation est définie par le standard CSS, mais pas par le standard HTML. Par conséquent, l'utilisation de cette notation raccourcie autre que dans l'attribut "style
" n'est pas valide pour certains navigateurs[2].
Conversion du RGB (ou RVB) en hexadécimal
Convertir une valeur décimale RGB en une valeur hexadécimale est assez simple. Les valeurs RGB sont dans un intervalle entre 0 et 255; si elles sont comprises entre 0 et 1, multipliez la valeur par 255 avant la conversion. Le nombre de fois que ce nombre est divisible par 16 (sans arrondi) nous donne le premier chiffre (entre 0 et F, voir hexadécimal si vous n'en êtes pas sûr). Le reste nous donne le deuxième chiffre. Par exemple la valeur RGB 201 est divisible 12 fois par 16, donc le premier chiffre est C
. Le reste 9 nous permet d'obtenir C9
. ce procédé est répété pour chacune des valeurs de couleurs.
Noms des couleurs HTML
La spécification[3] du HTML 4.01 définit 16 couleurs nommées appelées par 18 mots-clés en anglais (il y a deux paires de synonymes), et dont l'emploi n'est pas sensible à la casse. (Les traductions[4] en français entre parenthèses sont indicatives et ne sont pas des attributs valides en HTML.) Ces attributs et la valeur hexadécimale de rouge-vert-bleu équivalente sont, par ordre alphabétique :
Valeur | Couleur | Valeur | Couleur | Valeur | Couleur | Valeur | Couleur |
---|---|---|---|---|---|---|---|
#00FFFF | aqua / cyan (bleu-vert eau) |
#008000 | green (vert) |
#000080 | navy (bleu marine) |
#C0C0C0 | silver (argent) |
#000000 | black (noir) |
#808080 | gray (gris) |
#808000 | olive (jaune olive) |
#008080 | teal (sarcelle) |
#0000FF | blue (bleu) |
#00FF00 | lime (vert citron) |
#800080 | purple (violet) |
#FFFFFF | white (blanc) |
#FF00FF | fuchsia / magenta (fuchsia) |
#800000 | maroon (bordeaux) |
#FF0000 | red (rouge) |
#FFFF00 | yellow (jaune) |
Ces couleurs sont incluses dans les spécifications du HTML 3.0 qui fait remarquer que « Ces couleurs sont issues des 16 couleurs standards supportées avec la palette VGA Windows. »[5]
Toutes les couleurs ayant une valeur comprise entre #000000
et #FFFFFF
(16 777 216 couleurs) sont valides.
Noms de couleurs SVG 1.0
Par ailleurs, un certain nombre de couleurs sont définies par les navigateurs web. Un navigateur particulier pourrait ne pas reconnaître toutes ces couleurs, mais depuis 2005 tous les navigateurs modernes d'utilisation courante ont avalisé la liste complète. Beaucoup de ces couleurs sont issues de la liste des noms de couleur X11 fournie par le système de fenêtrage X. Ces couleurs ont été normalisées par SVG 1.0, et sont reconnues par les visiteurs SVG Full. Elles ne font pas partie de SVG Tiny.
Les noms utilisés dans le framework .NET sont quasiment identiques, dans les énumérations Color et KnownColor. La seule couleur différente est DarkSeaGreen qui est définie comme 8F, BC, 8B (à la place de 8F, BC, 8F).
La liste de couleurs réellement définies avec X11 varie selon les réalisations, et entre en conflit avec un certain nombre de noms HTML comme c'est le cas pour le vert (green). Pour cette raison, la liste des couleurs que l'on trouve dans X11 (c'est-à-dire /usr/lib/X11/rgb.txt
) ne devrait pas être directement utilisée pour choisir des couleurs pour le web[6].
La liste des « couleurs X11 » du web de la spécification du CSS3, ainsi que leurs équivalents hexadécimaux et décimaux, est présentée ci-dessous[7],[8].
|
|
|
Couleurs garanties sur le web
Un autre ensemble de 216 valeurs de couleurs est généralement considérée comme la palette de couleurs garanties sur le web (web-safe colors) conçue alors que de nombreux moniteurs n'étaient capables d'afficher que 256 couleurs. Un ensemble de couleurs, qui pouvaient être affichées sans tramage sur les écrans à 256 couleurs, était nécessaire ; le nombre 216 a été choisi en partie parce que les systèmes d'exploitation réservaient fréquemment seize à vingt couleurs pour leur propre usage ; et il fut choisi également car il permettait exactement six niveaux de rouge, de vert et de bleu (6 × 6 × 6 = 216).
La liste des couleurs est souvent présentée comme si elle avait des propriétés spéciales qui les rendraient immunisées au tramage. En fait, sur les moniteurs à 256 couleurs les applications peuvent fixer une palette de n'importe quelle sélection de couleurs de leur choix, tramant le reste. Ces couleurs ont été choisies spécialement parce qu'elles correspondaient aux palettes choisies par les principales applications de navigateur de l'époque. Heureusement, les palettes utilisées par les différents navigateurs populaires n'étaient pas foncièrement différentes.
Les couleurs garanties sur le web avaient un défaut, sur les systèmes tel que X11 où la palette est partagée entre les applications, de plus petits cubes de couleurs RVB (5×5×5 ou 4×4×4) sont souvent alloués par les navigateurs — ainsi, les couleurs garanties sur le web trament sur de tels systèmes. De meilleurs résultats étaient obtenus en fournissant une image avec une plus large gamme de couleurs et permettant au navigateur de quantifier l'espace de couleur si nécessaire, plutôt que de subir la perte de qualité d'une double quantification.
Dans les premières années du XXIe siècle, conduits par les besoins du jeu vidéo et de la photographie numérique, les ordinateurs personnels ont au moins des couleurs en 16 bits et généralement 24 bits (couleurs vraies). Même les appareils mobiles ont au moins les couleurs en 16 bits, du fait des options caméras sur les téléphones mobiles. L'utilisation des couleurs garanties web est tombé en désuétude, mais persiste dans le folklore.
Le système de la palette garantie pour le web persiste comme étant la palette avec le plus grand nombre de couleurs distinctes, où chaque couleur peut être distinguée séparément par l’œil humain.
Les couleurs garanties pour le web n'ont pas de noms, mais chacune peut être spécifiée par un triplet RGB.
Tableau de couleur
Le tableau suivant montre toutes les couleurs « garanties pour le web », mais aussi en souligné les couleurs vraiment garanties. L'absence de correction gamma implique que les six intensités souhaitées 0 %, 20 %, 40 %, 60 %, 80 %, et 100 % sont affichés à 0 %, 2 %, 10 %, 28 %, 57 %, et 100 % dans un standard 2,5 gamma CRT ou LCD, faisant la plupart des couleurs très sombres. Les intensités dans le bas de la gamme, particulièrement entre 0 et 3, sont quasiment indiscernables les unes des autres sur un écran non conforme ou non réglé sRGB.
Les couleurs sont ici représentées avec la notation courte (trois chiffres hexadécimaux).
*000* | 300 | 600 | 900 | C00 | *F00* |
*003* | 303 | 603 | 903 | C03 | *F03* |
006 | 306 | 606 | 906 | C06 | F06 |
009 | 309 | 609 | 909 | C09 | F09 |
00C | 30C | 60C | 90C | C0C | F0C |
*00F* | 30F | 60F | 90F | C0F | *F0F* |
030 | 330 | 630 | 930 | C30 | F30 |
033 | 333 | 633 | 933 | C33 | F33 |
036 | 336 | 636 | 936 | C36 | F36 |
039 | 339 | 639 | 939 | C39 | F39 |
03C | 33C | 63C | 93C | C3C | F3C |
03F | 33F | 63F | 93F | C3F | F3F |
060 | 360 | 660 | 960 | C60 | F60 |
063 | 363 | 663 | 963 | C63 | F63 |
066 | 366 | 666 | 966 | C66 | F66 |
069 | 369 | 669 | 969 | C69 | F69 |
06C | 36C | 66C | 96C | C6C | F6C |
06F | 36F | 66F | 96F | C6F | F6F |
090 | 390 | 690 | 990 | C90 | F90 |
093 | 393 | 693 | 993 | C93 | F93 |
096 | 396 | 696 | 996 | C96 | F96 |
099 | 399 | 699 | 999 | C99 | F99 |
09C | 39C | 69C | 99C | C9C | F9C |
09F | 39F | 69F | 99F | C9F | F9F |
0C0 | 3C0 | 6C0 | 9C0 | CC0 | FC0 |
0C3 | 3C3 | 6C3 | 9C3 | CC3 | FC3 |
0C6 | 3C6 | 6C6 | 9C6 | CC6 | FC6 |
0C9 | 3C9 | 6C9 | 9C9 | CC9 | FC9 |
0CC | 3CC | 6CC | 9CC | CCC | FCC |
0CF | 3CF | 6CF | 9CF | CCF | FCF |
*0F0* | 3F0 | *6F0* | 9F0 | CF0 | *FF0* |
0F3 | *3F3* | *6F3* | 9F3 | CF3 | *FF3* |
*0F6* | *3F6* | 6F6 | 9F6 | *CF6* | *FF6* |
0F9 | 3F9 | 6F9 | 9F9 | CF9 | FF9 |
*0FC* | *3FC* | 6FC | 9FC | CFC | FFC |
*0FF* | *3FF* | *6FF* | 9FF | CFF | *FFF* |
Couleurs vraiment garanties pour le web
Les concepteurs sont souvent encouragés à rester fidèles aux 216 couleurs garanties pour le web dans l'élaboration de leur site web ; les moniteurs de couleur 8 bits étaient plus courants quand la palette de 216 couleurs a été établie qu'ils ne le sont aujourd'hui. David Lehn et Hadley Stern ont découvert que seules 22 des 216 couleurs de la palette sont fidèlement affichées sans remappage incohérent sur des moniteurs 16 bits. Ils appelèrent ces 22 couleurs la palette vraiment garantie ("really safe" palette) ; elle est composée principalement de tons de vert et de jaune, comme on peut le voir dans le tableau ci-dessus, où les couleurs vraiment sécurisées sont soulignées[9].
Couleurs utilisées dans les CSS
Le langage des feuilles de style en cascade (Cascading Style Sheets, CSS) définit le même nombre de couleurs et les mêmes noms des couleurs que dans les spécifications du HTML 4, c'est-à-dire les 16 couleurs énumérées précédemment.
De plus, CSS 2.1 ajoute le nom de couleur 'orange' à la liste :
Color | Hexadecimal |
---|---|
orange | #FFA500 |
CSS 2, SVG et CSS 2.1 permettent aux auteurs de pages web d'utiliser les dites « couleurs système », qui sont le nom des couleurs dont la valeur provient du système d'exploitation[10]. Cela rend possible aux auteurs de documents web de styliser leur contenu en ligne avec les couleurs définies dans l'environnement de travail de l'utilisateur. Depuis début 2004, il se trouve que le module de couleur CSS 3 abandonnera une fois encore ces valeurs, les rendant obsolètes, mais cela pourrait changer[11].
Les spécifications CSS3 ont introduit également les valeurs de l'espace de couleur TSL aux feuilles de styles :
/* modèle RVB */ p { color: #F00 } /* #rgb */ p { color: #FF0000 } /* #rrggbb */ p { color: rgb(255,0,0) } /* intervalle entier 0 - 255 */ p { color: rgb(100%, 0%, 0%) } /* intervalle à virgule flottante 0,0 % - 100,0 % */
/* RVB avec canal alpha, ajouté à partir de CSS3 */ p { color: rgba(255,0,0,0.5) } /* intervalle à virgule flottante 0 - 1, 0,5 étant semi-transparent */
/* modèle TSL, ajouté à partir de CSS3 */ p { color: hsl(0, 100%, 50%) } /* rouge */ p { color: hsl(120, 100%, 50%) } /* vert */ p { color: hsl(120, 100%, 25%) } /* vert clair */ p { color: hsl(120, 100%, 75%) } /* vert foncé */ p { color: hsl(120, 50%, 50%) } /* vert pastel */
/* TSL avec canal alpha */ p { color: hsla(120, 100%, 50%, 1) } /* vert */ p { color: hsla(120, 100%, 50%, 0.5) } /* vert semi-transparent */ p { color: hsla(120, 100%, 50%, 0.1) } /* vert très transparent */
Accessibilité
L'utilisation de la couleur dans les pages Web est soumise à deux règles d'accessibilité selon les normes d'accessibilité WCAG définies par le W3C[12] :
- Aucune information ne doit être véhiculée uniquement par la couleur. En effet, celle-ci ne sera pas perceptible pour certains utilisateurs, comme par exemple les personnes aveugles naviguant à l'aide d'un lecteur d'écran. Elle sera également difficilement compréhensible pour d'autres utilisateurs ayant un handicap visuel, notamment les daltoniens. La couleur doit donc être accompagnée par un autre moyen de véhiculer l'information, qu'il soit graphique, textuel ou structurel. Cette règle relève du niveau de priorité 1 des WCAG, c'est-à-dire du niveau minimal d'accessibilité d'un site.
- Lorsque la couleur est utilisée de cette manière, un niveau de contraste suffisant avec l'arrière-plan doit être assuré. Cette règle s'applique aux images comme aux contenus textuels. Elle relève, selon le cas, du niveau intermédiaire ou optimal d'accessibilité d'un site. La mesure de ce niveau de contraste et les seuils admissibles varient légèrement selon les méthodes d'application des WCAG[13].
Voir aussi
Bibliographie
Articles connexes
Notes et références
- Les couleurs en CSS (en)[1], traduction non officielle : [2]
- IE8 interprète mal le bgcolor avec trois chiffres hexadécimaux
- HTML 4.01 Specification section 6.5 "Colors"
- Le guide du code HTML, « Les couleurs standardisées ou palette de couleurs ».
- HTML 3.2 Specification "The BODY element"
- Public discussion on SVG mailing list Re: color names in SVG-1.0 conflict with /usr/lib/X11/rgb.txt
- W3C TR CSS3 Color Module, SVG color keywords
- W3C TR SVG 1.0, recognized color keyword names
- Death of the Websafe Color Palette?
- Voir system-colors
- css2-system
- (en) Web Content Accessibility Guidelines 1.0, Don't rely on color alone
- (en) Techniques For Accessibility Evaluation And Repair Tools (W3C) et Techniques for WCAG 2.0 (W3C)