EOT
Embedded OpenType — il formato di font web proprietario di Microsoft, rilevante solo per il supporto legacy di Internet Explorer.
Che cos'è EOT?
EOT è stato creato da Microsoft nel 1997 come il primo formato di font web della storia. Fu sottoposto al W3C per la standardizzazione, ma non venne mai accettato — principalmente a causa del suo algoritmo di compressione proprietario (MTX) e delle funzionalità DRM integrate che gli altri produttori di browser rifiutarono.
Il formato include il binding URL, un meccanismo che limita il funzionamento dei font a determinati domini specifici, e supporta il subsetting dei font per ridurre le dimensioni del file eliminando i glifi non utilizzati. Queste erano funzionalità innovative per la fine degli anni '90, ma la natura proprietaria del formato ha fatto sì che fosse implementato solo in Internet Explorer.
Per quasi un decennio — da IE 4 fino alla metà degli anni 2000 — EOT era l'unico modo per utilizzare font personalizzati sul web. Solo con l'arrivo di WOFF nel 2010 è esistita un'alternativa cross-browser. Oggi, EOT è un reperto: utile solo per i rari progetti che devono ancora supportare IE 8 o versioni precedenti.
Come Funziona
I file EOT racchiudono i dati del font TrueType con la compressione MTX di Microsoft e un'intestazione proprietaria. L'intestazione contiene informazioni di binding URL (un elenco di domini in cui il font è autorizzato a caricarsi), flag di licenza e metadati del font come il nome della famiglia e lo stile.
Quando Internet Explorer incontra un font EOT in un foglio di stile, legge l'intestazione, verifica che l'URL di origine della pagina corrente corrisponda a uno dei domini consentiti e solo allora decomprime e renderizza il font. Se il controllo URL fallisce, il font viene silenziosamente rifiutato — una forma elementare di protezione contro l'hotlinking.
La classica sintassi "bulletproof" di @font-face che include EOT è la seguente:
@font-face {
font-family: 'MyIcons';
src: url('icons.eot'); /* IE9 compat */
src: url('icons.eot?#iefix') format('embedded-opentype'),
url('icons.woff2') format('woff2'),
url('icons.woff') format('woff'),
url('icons.ttf') format('truetype');
}
La query string ?#iefix è un workaround per aggirare un bug del parser di IE 9. IE 9 non riusciva a gestire correttamente più voci src in una singola dichiarazione — avrebbe tentato di caricare l'intera stringa (inclusi i suggerimenti format()) come un singolo URL, il che avrebbe causato un errore. Aggiungere ?#iefix all'URL EOT inganna IE 9 facendogli trattare l'URL come valido e autonomo, terminando il percorso prima che il parser si blocchi sul resto della dichiarazione. I browser moderni ignorano completamente la query string.
Vantaggi e Svantaggi
- Unico formato di font supportato da IE 6-8
- File di dimensioni ridotte grazie alla compressione MTX
- Il binding URL fornisce una protezione di base contro l'hotlinking
- Formato proprietario Microsoft (mai standardizzato dal W3C)
- Funziona solo in Internet Explorer
- DRM e binding URL complessi possono causare problemi di distribuzione
- Nessun browser moderno lo supporta
- Tecnologia deprecata senza sviluppi futuri
Quando Usare EOT
Solo quando è indispensabile supportare IE 8 o versioni precedenti. Questi browser obsoleti non comprendono WOFF, WOFF2, o anche TTF grezzo tramite @font-face — EOT è la loro unica opzione.
Per IE 9-11, WOFF è la scelta migliore: è uno standard aperto, ha un supporto più ampio degli strumenti e non porta con sé il peso del DRM e del binding URL. Se i tuoi dati analitici mostrano zero traffico IE 8 — il che è estremamente probabile nel 2024 e oltre — salta completamente EOT.
Prima di includere EOT nella tua build, controlla i dati analitici reali del tuo browser. La quota di utilizzo globale di IE 8 e versioni precedenti è effettivamente dello 0%. A meno che tu non stia prendendo di mira una specifica intranet aziendale o un sistema governativo vincolato a una versione obsoleta di IE, EOT aggiunge complessità alla build senza alcun beneficio pratico.
ttf2eot per eseguire la conversione da TTF, quindi non è necessario alcun passaggio di conversione manuale — è sufficiente attivare l'opzione nella finestra di dialogo di esportazione e il file .eot verrà generato insieme agli altri formati di font.