Renderización de texto mejorada en navegadores basados en Chromium en Windows

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

Fecha de publicación: 12 de febrero de 2025

El trabajo de un motor de renderización web es vasto, y gran parte de este trabajo, como el diseño, los elementos multimedia o el diseño, se basa en estándares. Estos estándares garantizan que los motores independientes puedan ser interoperables, lo que permitió que la Web prosperara. Sin embargo, algunos detalles más finos, como la forma en que se renderiza el texto a nivel de píxeles, a menudo se dejan a la interpretación de los organismos de estándares y, por lo general, terminan dependiendo de los sistemas operativos en los que se ejecutan los navegadores.

En 2020, Microsoft Edge tuvo una oportunidad excepcional: un reemplazo completo de su motor de renderización subyacente. Edge realizó la transición a Chromium, se alejó de una plataforma solo para Windows en la que usaba directamente las APIs de Windows y se convirtió en un verdadero renderizador web multiplataforma. Antes del cambio a Chromium, Edge dependía por completo de una API de Windows llamada DirectWrite para la renderización de texto. Sin embargo, Chromium se basa en Skia, un motor de gráficos multiplataforma potente y flexible que abstrae muchos del código específico del sistema operativo de su API.

Durante la transición de Edge a Chromium, el equipo de Edge tuvo la oportunidad de recopilar comentarios de sus usuarios sobre el motor de renderización de Chromium. Uno de los comentarios fue significativo: muchos usuarios de Edge compartieron que el texto se veía “decolorido” y que no se veía coherente con el texto de otras partes de Windows.

El texto se veía descolorido en Chrome para Windows anteriores a la versión 132.

El equipo se tomó estos comentarios en serio y realizó una investigación. Si bien Skia usa DirectWrite en Windows para ciertas funciones, como la búsqueda de fuentes, la rasterización de texto final la controla directamente Skia. Además, un factor importante en los comentarios de los usuarios sobre el aspecto "descolorido" es la configuración de contraste y gamma interna para la renderización de texto.

Se descubrieron dos diferencias principales en el contraste de texto y los valores de gamma entre el motor basado en Chromium de Edge y su motor anterior. En primer lugar, Skia no detecta los valores de contraste y gamma del Windows ClearType Tuner. En segundo lugar, usa valores predeterminados diferentes para el contraste y la gamma del texto que los que usa la pila de texto basada en DirectWrite de Edge.

El año pasado, el equipo de Edge agregó compatibilidad para respetar los valores de ClearType Tuner directamente en Chromium. Esto les permitió a los usuarios de navegadores basados en Chromium controlar el contraste de texto y la configuración de gamma en Windows. Si bien este fue un paso significativo en la dirección correcta, la mayoría de los usuarios tienden a no ajustar la configuración de gamma y contraste de texto en todo el sistema. Por lo tanto, la siguiente fase de este recorrido fue considerar seriamente ajustar la configuración predeterminada de contraste y gamma del texto para el contenido de texto de la IU web y del navegador.

Cambiar el aspecto del texto en la Web es una tarea importante. La Web siempre ha tenido mucho texto, y es necesario contar con un motor de texto de alta calidad. Era evidente que el valor del contraste del texto debía aumentar, pero se necesitaban datos para determinar cuánto ajustarlo.

El equipo de Edge comenzó a experimentar con varios valores de contraste de texto en 2021. Después de mucha investigación sobre los usuarios, los miembros de Edge y Chromium determinaron que un valor de contraste de 1.0 coincidía en gran medida con la renderización de texto de Edge anterior a Chromium y se veía coherente en comparación con otras aplicaciones nativas de Windows.

En el equipo de Edge, creíamos que nuestras investigaciones y experimentos podrían ser beneficiosos para la comunidad general de Chromium en Windows, por lo que compartimos nuestros hallazgos con el equipo de Chrome en Google, quienes los confirmaron con sus propios experimentos. Luego, habilitamos el nuevo valor de contraste de forma predeterminada para las compilaciones de Windows, a partir de Chrome 132.

Hoy en día, todos los usuarios de navegadores basados en Chromium en Windows pueden beneficiarse de estos años de investigación, experimentación e implementación compartidas.

El texto se ve nítido y claro después del cambio.

Un agradecimiento especial a Ian Prest, Daniel Libby y Alison Maher de Microsoft, así como a Dominik Röttsches, David Yeung, Ben Wagner y Brian Osman de Google por sus contribuciones a este proyecto.