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 medios 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 floreciera. Sin embargo, algunos detalles más precisos, como la forma en que se renderiza el texto a nivel de píxel, a menudo se dejan a la interpretación de los organismos de normalización y, por lo general, terminan dependiendo de los sistemas operativos en los que se ejecutan los navegadores.

En 2020, Microsoft Edge tuvo una oportunidad única: un reemplazo completo de su motor de renderización subyacente. Edge hizo la transición a Chromium, lejos de una plataforma solo para Windows en la que usaba las APIs de Windows directamente, 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 gran parte de l 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. Un comentario fue significativo: muchos usuarios de Edge compartieron que el texto aparecía "descolorido" y que no se veía coherente con el texto en otras partes de Windows.

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

El equipo tomó en serio estos comentarios 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 se controla directamente con Skia. Un factor importante en los comentarios "descoloridos" de los usuarios son los parámetros de configuración internos de contraste y gamma para la renderización de texto.

Se descubrieron dos diferencias principales en los valores de contraste y gamma del texto entre el motor basado en Chromium de Edge y su motor anterior. En primer lugar, Skia no selecciona los valores de contraste y gamma del texto 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 equipo de Edge agregó compatibilidad para respetar los valores de ClearType Tuner en Chromium directamente el año pasado. Esto les dio a los usuarios del navegador basado en Chromium la capacidad de controlar el contraste del texto y la configuración de gamma en Windows. Si bien este fue un paso importante en la dirección correcta, la mayoría de los usuarios no suelen ajustar el contraste del texto y la configuración de gamma en todo el sistema. Por lo tanto, la siguiente fase de este recorrido fue considerar seriamente el ajuste del contraste del texto predeterminado y la configuración de gamma para el contenido de texto de la IU web y del navegador.

Cambiar el aspecto del texto en la Web es una tarea ardua. La Web siempre tuvo mucho texto, y es necesario un motor de texto de alta calidad. Era evidente que el valor de 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 de usuarios, los miembros de Edge y Chromium determinaron que un valor de contraste de 1.0 coincidía 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 nuestra investigación y nuestros experimentos podrían ser beneficiosos para la comunidad general de Chromium en Windows, por lo que compartimos nuestros hallazgos con el equipo de Chrome de Google, que los confirmó con sus propios experimentos. Luego, habilitamos el nuevo valor de contraste de forma predeterminada para las compilaciones de Windows, comenzando con 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.

Agradecemos especialmente 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.