Лучший текстовый рендеринг в браузерах на основе хрома в Windows

Курт Катти-Шмидт
Kurt Catti-Schmidt
Патрик Броссе
Patrick Brosset

Опубликовано: 12 февраля 2025 г.

Задача веб-движка по отрисовке обширна, и большая часть этой работы, например, стилизация, работа с медиафайлами или компоновка, определяется стандартами. Эти стандарты обеспечивают совместимость независимых движков, что и позволило веб-технологиям процветать. Однако некоторые более тонкие детали, такие как способ отрисовки текста на пиксельном уровне, часто остаются на усмотрение организаций, занимающихся стандартизацией, и, как правило, зависят от операционных систем, на которых работают браузеры.

В 2020 году у Microsoft Edge появилась редкая возможность — полная замена базового механизма рендеринга. Edge перешёл на Chromium , отказавшись от платформы, работающей только под Windows и использующей API Windows напрямую, и стал настоящим кроссплатформенным веб-рендером. До перехода на Chromium Edge полностью полагался на API Windows под названием DirectWrite для рендеринга текста. Однако Chromium использует Skia , мощный и гибкий кроссплатформенный графический движок, который абстрагирует большую часть кода, специфичного для операционной системы, от своего API.

В процессе перехода Edge на Chromium команда Edge получила возможность собрать отзывы пользователей о механизме рендеринга Chromium. Один из отзывов оказался весьма важным — многие пользователи Edge отметили, что текст выглядит «блеклым» и не соответствует тексту в других частях Windows.

Текст выглядел блеклым в Chrome на Windows до версии 132.

Команда отнеслась к этим отзывам серьезно и провела расследование. Хотя Skia использует DirectWrite в Windows для некоторых функций, таких как поиск шрифтов, окончательная растеризация текста фактически выполняется непосредственно Skia. И одним из основных факторов, вызвавших негативные отзывы пользователей о «блеклом» изображении текста, являются внутренние настройки контраста и гаммы для рендеринга текста.

Были обнаружены два основных различия в значениях контрастности текста и гаммы между основанным на Chromium движком Edge и его предыдущей версией. Во-первых, Skia не использует значения контрастности текста и гаммы из Windows ClearType Tuner . Во-вторых, он использует другие значения по умолчанию для контрастности текста и гаммы, чем те, которые используются в текстовом стеке Edge на основе DirectWrite.

В прошлом году команда Edge добавила поддержку прямого учета значений ClearType Tuner в Chromium. Это позволило пользователям браузеров на основе Chromium управлять настройками контрастности и гаммы текста в Windows. Хотя это был значительный шаг в правильном направлении, большинство пользователей, как правило, не регулируют общесистемные настройки контрастности и гаммы текста. Поэтому следующим этапом стало серьезное рассмотрение вопроса о настройке параметров контрастности и гаммы текста по умолчанию как для веб-контента, так и для текстового контента в пользовательском интерфейсе браузера.

Изменение внешнего вида текста в интернете — масштабная задача. Интернет всегда был насыщен текстом, поэтому необходим высококачественный текстовый движок. Было очевидно, что необходимо увеличить контрастность текста, но для определения необходимой величины корректировки требовались данные.

Команда Edge начала экспериментировать с различными значениями контрастности текста еще в 2021 году. После многочисленных исследований пользователей, участники разработки Edge и Chromium пришли к выводу, что значение контрастности 1,0 максимально соответствует отображению текста в Edge до Chromium и выглядит более стабильно по сравнению с другими нативными приложениями Windows.

В команде Edge мы посчитали, что наши исследования и эксперименты могут принести пользу всему сообществу Chromium в Windows, поэтому мы поделились своими выводами с командой Chrome в Google, которая подтвердила их собственными экспериментами. Затем мы включили новое значение контрастности по умолчанию для сборок Windows, начиная с Chrome 132.

Сегодня все пользователи браузеров на базе Chromium под управлением Windows могут извлечь выгоду из многолетних совместных исследований, экспериментов и внедрения.

После переключения текст выглядит четким и ясным.

Особая благодарность Иану Престу, Даниэлю Либби и Элисон Махер из Microsoft, а также Доминику Рёттшесу, Дэвиду Йенгу, Бену Вагнеру и Брайану Осману из Google за их вклад в этот проект!