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 travail d'un moteur de rendu Web est vaste, et une grande partie de ce travail, comme le style, les médias ou la mise en page, est guidée par des normes. Ces normes garantissent que les moteurs indépendants peuvent être interopérables, ce qui a permis au Web de prospérer. Toutefois, certains détails plus précis, tels que la façon dont le texte est affiché au niveau des pixels, sont souvent laissés à l'interprétation des organismes de normalisation et reposent généralement sur les 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 dépendait entièrement d'une API Windows appelée DirectWrite pour l'affichage du texte. Cependant, 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 semblait "délavé" et qu'il ne semblait pas cohérent avec le texte d'autres parties de Windows.

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

L'équipe a pris ces commentaires très au sérieux et a mené une enquête. Bien que Skia utilise DirectWrite sous Windows pour certaines fonctionnalités telles que la recherche de polices, la rastérisation du texte final est gérée directement par Skia. Un facteur majeur de l'avis "délavé" des utilisateurs est le contraste interne et les paramètres de gamma pour le rendu du texte.

Deux principales différences ont été détectées entre le moteur basé sur Chromium d'Edge et son ancien moteur en termes de contraste du texte et de valeurs de gamma. Tout d'abord, Skia ne récupère pas les valeurs de contraste et de gamma du texte 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 que 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 charge du respect des valeurs du tuner 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 de gamma sur Windows. Bien que cela ait été un pas important dans la bonne direction, la plupart des utilisateurs ont tendance à ne pas ajuster leurs 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 de contraste et de gamma par défaut du texte pour le contenu textuel de l'UI Web et du navigateur.

Modifier l'apparence du texte sur le Web est une tâche de grande envergure. Le Web a toujours été très textuel, et un moteur de texte de haute qualité est nécessaire. Il était évident que la valeur de 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 recherches auprès des utilisateurs, les membres d'Edge et de Chromium ont déterminé qu'une valeur de contraste de 1,0 correspondait étroitement au rendu du texte d'Edge avant Chromium et qu'elle était cohérente par rapport aux autres applications Windows natives.

L'équipe Edge pensait que nos recherches et nos tests pouvaient être bénéfiques à l'ensemble de la communauté Chromium sur Windows. Nous avons donc partagé nos résultats avec l'équipe Chrome de Google, qui les a confirmés avec ses propres tests. Nous avons ensuite activé la nouvelle valeur de contraste par défaut pour les builds Windows, à partir de Chrome 132.

Aujourd'hui, tous les utilisateurs de navigateurs basés sur Chromium sous Windows peuvent profiter 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.

Merci tout particulièrement à Ian Prest, Daniel Libby et Alison Maher chez Microsoft, ainsi qu'à Dominik Röttsches, David Yeung, Ben Wagner et Brian Osman chez Google pour leur contribution à ce projet.