Data di pubblicazione: 12 febbraio 2025
Il compito di un motore di rendering web è vasto e gran parte di questo lavoro, come stile, media o layout, è basato su standard. Questi standard garantiscono che i motori indipendenti possano essere interoperabili, il che ha permesso al web di prosperare. Tuttavia, alcuni dettagli più fini, come la modalità di rendering del testo a livello di pixel, sono spesso lasciati all'interpretazione degli enti di standardizzazione e in genere si basano sui sistemi operativi su cui vengono eseguiti i browser.
Nel 2020, Microsoft Edge ha avuto una rara opportunità: la sostituzione completa del suo motore di rendering di base. Edge è passato a Chromium, abbandonando una piattaforma solo Windows in cui utilizzava direttamente le API di Windows, e diventando un vero e proprio visualizzatore web multipiattaforma. Prima del passaggio a Chromium, Edge faceva affidamento interamente su un'API Windows chiamata DirectWrite per il rendering del testo. Tuttavia, Chromium si basa su Skia, un motore grafico cross-platform potente e flessibile, che esegue l'astrazione di gran parte del codice specifico del sistema operativo dalla sua API.
Durante la transizione di Edge a Chromium, il team di Edge ha avuto l'opportunità di raccogliere feedback degli utenti sul motore di rendering di Chromium. Un feedback è stato significativo: molti utenti di Edge hanno segnalato che il testo sembrava "sbiadito" e non era coerente con il testo in altre parti di Windows.
Il team ha preso sul serio questo feedback e ha effettuato alcuni accertamenti. Sebbene Skia utilizzi DirectWrite su Windows per alcune funzionalità come la ricerca dei caratteri, la rasterizzazione del testo finale è gestita direttamente da Skia. Un fattore importante che influisce sul feedback "sbiadito" degli utenti è il contrasto interno e le impostazioni gamma per il rendering del testo.
Sono state rilevate due differenze principali nei valori di contrasto e gamma del testo tra il motore basato su Chromium di Edge e il motore precedente. Innanzitutto, Skia non rileva i valori di contrasto e gamma del testo dall'Windows ClearType Tuner. In secondo luogo, utilizza valori predefiniti diversi per il contrasto e la gamma del testo rispetto a quelli utilizzati dalla pila di testo basata su DirectWrite di Edge.
L'anno scorso il team di Edge ha aggiunto il supporto per il rispetto dei valori di ClearType Tuner direttamente in Chromium. In questo modo, gli utenti dei browser basati su Chromium hanno potuto controllare le impostazioni del contrasto e della gamma del testo su Windows. Sebbene si tratti di un passo significativo nella giusta direzione, la maggior parte degli utenti tende a non modificare le impostazioni di gamma e contrasto del testo a livello di sistema. Di conseguenza, la fase successiva di questo percorso è stata valutare seriamente la possibilità di modificare le impostazioni di gamma e contrasto del testo predefinite sia per i contenuti di testo dell'interfaccia utente del browser sia per quelli web.
Modificare l'aspetto del testo sul web è un'impresa ardua. Il web è sempre stato caratterizzato da un'elevata quantità di testo ed è necessario un motore di testo di alta qualità. Era evidente che il valore del contrasto del testo doveva aumentare, ma erano necessari dati per determinare quanto regolarlo.
Il team di Edge ha iniziato a sperimentare diversi valori di contrasto del testo nel 2021. Dopo molte ricerche sugli utenti, i membri di Edge e Chromium hanno stabilito che un valore di contrasto di 1,0 corrispondeva quasi esattamente al rendering del testo di Edge pre-Chromium e sembrava coerente rispetto ad altre applicazioni native di Windows.
Il team di Edge riteneva che la nostra ricerca e i nostri esperimenti potessero essere utili alla community Chromium complessiva su Windows, pertanto abbiamo condiviso i risultati con il team di Chrome di Google, che li ha confermati con i propri esperimenti. Abbiamo quindi attivato il nuovo valore di contrasto per impostazione predefinita per le build di Windows, a partire da Chrome 132.
Oggi, tutti gli utenti dei browser basati su Chromium su Windows possono trarre vantaggio da questi anni di ricerca, sperimentazione e implementazione condivise.
Un ringraziamento speciale a Ian Prest, Daniel Libby e Alison Maher di Microsoft, nonché a Dominik Röttsches, David Yeung, Ben Wagner e Brian Osman di Google per il loro contributo a questo progetto.