Amélioration du rendu du texte dans les navigateurs basés sur Chromium sous Windows

Kurt Catti-Schmidt
Kurt Catti-Schmidt
Patrick Brosset
Patrick Brosset

Publié le : 12 février 2025

Le moteur de rendu Web a une tâche vaste, et une grande partie de ce travail, comme le style, les médias ou la mise en page, est régie par des normes. Ces normes garantissent l'interopérabilité des moteurs indépendants, ce qui a permis au Web de prospérer. Toutefois, certains détails plus précis, comme la façon dont le texte est rendu au niveau des pixels, sont souvent laissés à l'interprétation des organismes de normalisation et finissent généralement par dépendre des systèmes d'exploitation sur lesquels les navigateurs s'exécutent.

En 2020, Microsoft Edge a eu une opportunité rare : remplacer complètement son moteur de rendu sous-jacent. Edge est passé à Chromium, abandonnant une plate-forme réservée à Windows où il utilisait directement les API Windows, et est devenu un véritable moteur de rendu Web multiplate-forme. Avant le passage à Chromium, Edge s'appuyait entièrement sur une API Windows appelée DirectWrite pour le rendu du texte. Toutefois, Chromium s'appuie sur Skia, un moteur graphique multiplate-forme puissant et flexible, qui abstrait une grande partie du code spécifique au système d'exploitation de son API.

Lors de la transition d'Edge vers Chromium, l'équipe Edge a eu l'occasion de recueillir les commentaires de ses utilisateurs sur le moteur de rendu Chromium. Un commentaire était particulièrement important : de nombreux utilisateurs d'Edge ont indiqué que le texte apparaissait "délavé" et qu'il ne semblait pas cohérent avec le texte dans d'autres parties de Windows.

Le texte apparaissait délavé dans Chrome sur Windows avant la version 132.

L'équipe a pris ces commentaires au sérieux et a mené une enquête. Bien que Skia utilise DirectWrite sur Windows pour certaines fonctionnalités telles que la recherche de polices, la rastérisation finale du texte est en fait gérée directement par Skia. L'un des principaux facteurs de ce feedback "délavé" des utilisateurs est lié aux paramètres internes de contraste et de gamma pour le rendu du texte.

Deux différences principales ont été découvertes au niveau du contraste du texte et des valeurs gamma entre le moteur basé sur Chromium d'Edge et son moteur précédent. Tout d'abord, Skia ne récupère pas les valeurs de contraste et de gamma du texte à partir de l'Optimiseur d'affichage du texte ClearType de Windows. Deuxièmement, il utilise des valeurs par défaut différentes pour le contraste et le gamma du texte par rapport à celles utilisées par la pile de texte basée sur DirectWrite d'Edge.

L'année dernière, l'équipe Edge a ajouté la prise en compte des valeurs de l'outil de réglage ClearType directement dans Chromium. Cela a permis aux utilisateurs de navigateurs basés sur Chromium de contrôler le contraste du texte et les paramètres gamma sur Windows. Bien qu'il s'agisse d'un grand pas dans la bonne direction, la plupart des utilisateurs ont tendance à ne pas ajuster les paramètres de contraste et de gamma du texte à l'échelle du système. La phase suivante de ce parcours consistait à envisager sérieusement d'ajuster les paramètres par défaut de contraste et de gamma du texte pour le contenu textuel de l'interface utilisateur du Web et du navigateur.

Modifier l'apparence du texte sur le Web est une tâche considérable. Le Web a toujours été très axé sur le texte, et un moteur de texte de haute qualité est nécessaire. Il était évident que la valeur du contraste du texte devait augmenter, mais des données étaient nécessaires pour déterminer dans quelle mesure l'ajuster.

L'équipe Edge a commencé à tester différentes valeurs de contraste du texte en 2021. Après de nombreuses études auprès des utilisateurs, les membres des équipes Edge et Chromium ont déterminé qu'une valeur de contraste de 1.0 correspondait étroitement au rendu du texte de la version Edge antérieure à Chromium et semblait cohérente par rapport aux autres applications Windows natives.

Dans l'équipe Edge, nous avons pensé que nos recherches et nos expériences pourraient être utiles à l'ensemble de la communauté Chromium sur Windows. Nous avons donc partagé nos conclusions avec l'équipe Chrome de Google, qui les a confirmées avec ses propres expériences. Nous avons ensuite activé la nouvelle valeur de contraste par défaut pour les versions Windows, à partir de Chrome 132.

Aujourd'hui, tous les utilisateurs de navigateurs basés sur Chromium sous Windows peuvent bénéficier de ces années de recherche, d'expérimentation et d'implémentation partagées.

Le texte est net et clair après le changement.

Nous remercions tout particulièrement Ian Prest, Daniel Libby et Alison Maher de Microsoft, ainsi que Dominik Röttsches, David Yeung, Ben Wagner et Brian Osman de Google pour leurs contributions à ce projet.