Opublikowano: 12 lutego 2025 r.
Zadanie silnika renderowania stron internetowych jest ogromne, a większość jego pracy, takiej jak stylizacja, multimedia czy układ, opiera się na standardach. Dzięki tym standardom niezależne silniki mogą ze sobą współpracować, co umożliwiło rozwój internetu. Jednak niektóre drobniejsze szczegóły, takie jak sposób renderowania tekstu na poziomie pikseli, są często pozostawiane do interpretacji przez organizacje normalizacyjne i zwykle zależą od systemów operacyjnych, na których działają przeglądarki.
W 2020 r. Microsoft Edge miał rzadką okazję – całkowitą wymianę podstawowego silnika renderowania. Edge przeszedł na Chromium, odchodząc od platformy tylko dla systemu Windows, na której używał bezpośrednio interfejsów API systemu Windows, i stał się prawdziwym mechanizmem renderowania internetowego działającym na wielu platformach. Przed przejściem na Chromium Edge polegał wyłącznie na interfejsie API systemu Windows o nazwie DirectWrite do renderowania tekstu. Chromium korzysta jednak z Skia, potężnego i elastycznego silnika graficznego działającego na wielu platformach, który abstrahuje wiele kodu specyficznego dla systemu operacyjnego od swojego interfejsu API.
Podczas przejścia Edge na Chromium zespół Edge miał okazję zebrać opinie użytkowników na temat silnika renderowania Chromium. Jedna z opinii była znacząca – wielu użytkowników Edge stwierdziło, że tekst wygląda na „wyblakły” i nie jest spójny z tekstem w innych częściach systemu Windows.

Zespół poważnie potraktował tę opinię i przeprowadził analizę. Chociaż Skia używa DirectWrite w systemie Windows do niektórych funkcji, takich jak wyszukiwanie czcionek, ostateczna rasteryzacja tekstu jest obsługiwana bezpośrednio przez Skia. Jednym z głównych czynników wpływających na opinię użytkowników o „wyblakłym” tekście są wewnętrzne ustawienia kontrastu i gamma do renderowania tekstu.
Wykryto 2 główne różnice w kontraście tekstu i wartościach gamma między silnikiem Edge opartym na Chromium a jego poprzednim silnikiem. Po pierwsze, Skia nie pobiera wartości kontrastu tekstu i gamma z narzędzia do dostrajania ClearType w systemie Windows. Po drugie, używa innych wartości domyślnych kontrastu tekstu i gamma niż te używane przez stos tekstu Edge oparty na DirectWrite.
W zeszłym roku zespół Edge dodał obsługę bezpośredniego uwzględniania wartości narzędzia do dostrajania ClearType w Chromium. Dzięki temu użytkownicy przeglądarek opartych na Chromium mogą kontrolować ustawienia kontrastu tekstu i gamma w systemie Windows. Chociaż był to ważny krok w dobrym kierunku, większość użytkowników nie dostosowuje ustawień kontrastu tekstu i gamma w całym systemie. Dlatego kolejnym etapem było poważne rozważenie dostosowania domyślnych ustawień kontrastu tekstu i gamma zarówno w przypadku treści internetowych, jak i tekstu interfejsu przeglądarki.
Zmiana wyglądu tekstu w internecie to duże przedsięwzięcie. Internet zawsze był bogaty w tekst, dlatego potrzebny jest wysokiej jakości silnik tekstowy. Oczywiste było, że wartość kontrastu tekstu należy zwiększyć, ale do określenia, o ile należy ją dostosować, potrzebne były dane.
Zespół Edge zaczął eksperymentować z różnymi wartościami kontrastu tekstu w 2021 r. Po wielu badaniach użytkowników członkowie zespołów Edge i Chromium stwierdzili, że wartość kontrastu 1.0 jest bardzo zbliżona do renderowania tekstu w Edge przed Chromium i wygląda spójnie w porównaniu z innymi natywnymi aplikacjami Windows.
W zespole Edge uznaliśmy, że nasze badania i eksperymenty mogą być korzystne dla całej społeczności Chromium w systemie Windows, dlatego podzieliliśmy się naszymi wynikami z zespołem Chrome w Google, który potwierdził je własnymi eksperymentami. Następnie włączyliśmy nową wartość kontrastu domyślnie w kompilacjach systemu Windows, zaczynając od Chrome 132.
Dziś wszyscy użytkownicy przeglądarek opartych na Chromium w systemie Windows mogą korzystać z efektów wspólnych badań, eksperymentów i wdrożeń z ostatnich lat.

Specjalne podziękowania dla Iana Presta, Daniela Libby’ego i Alison Maher z Microsoft oraz Dominika Röttschesa, Davida Yeunga, Bena Wagnera i Briana Osmana z Google za ich wkład w ten projekt.