EOT
Embedded OpenType — Internet Explorer のレガシーサポートにのみ関連する、Microsoft 独自のウェブフォント形式です。
EOT とは?
EOT は 1997 年に Microsoft が作成した、史上初のウェブフォント形式です。W3C への標準化申請が行われましたが、独自の圧縮アルゴリズム(MTX)と内蔵 DRM 機能が他のブラウザベンダーに拒否されたため、最終的には採択されませんでした。
この形式には URL バインディングという機能が含まれており、フォントを特定のドメインでのみ使用できるよう制限します。また、未使用のグリフを削除してファイルサイズを縮小するサブセット化もサポートしています。これらは 1990 年代後半においては先進的な機能でしたが、独自形式であるため Internet Explorer でしか実装されませんでした。
約 10 年間——IE 4 から 2000 年代半ばまで——EOT はウェブ上でカスタムフォントを使う唯一の方法でした。2010 年に WOFF が登場して初めて、クロスブラウザの代替手段が生まれました。今日、EOT は遺物です。IE 8 以前をサポートしなければならないごく一部のプロジェクトにしか意味がありません。
仕組み
EOT ファイルは TrueType フォントデータを Microsoft の MTX 圧縮と独自ヘッダーで包んでいます。ヘッダーには URL バインディング情報(フォントの読み込みを許可するドメインのリスト)、ライセンスフラグ、およびファミリー名やスタイルなどのフォントメタデータが含まれています。
Internet Explorer がスタイルシートで EOT フォントに遭遇すると、ヘッダーを読み取り、現在のページのオリジン URL が許可されたドメインのいずれかと一致するかを確認し、確認が取れた場合にのみフォントを展開してレンダリングします。URL チェックが失敗した場合、フォントは静かに拒否されます——これはリンク先保護の基本的な仕組みです。
EOT を含むクラシックな「防弾」@font-face 構文は次のようになります:
@font-face {
font-family: 'MyIcons';
src: url('icons.eot'); /* IE9 互換 */
src: url('icons.eot?#iefix') format('embedded-opentype'),
url('icons.woff2') format('woff2'),
url('icons.woff') format('woff'),
url('icons.ttf') format('truetype');
}
?#iefix クエリ文字列は、IE 9 のパーサーバグを回避するためのハックです。IE 9 は単一の宣言内の複数の src エントリを正しく処理できず、format() ヒントを含む文字列全体を単一の URL として読み込もうとして失敗していました。EOT の URL に ?#iefix を追加することで、IE 9 にそれを有効なスタンドアロン URL として認識させ、パーサーが残りの宣言で詰まる前にパスを終了させます。現代のブラウザはこのクエリ文字列を完全に無視します。
メリットとデメリット
- IE 6〜8 が対応する唯一のフォント形式
- MTX 圧縮による小さなファイルサイズ
- URL バインディングによる基本的なリンク先保護
- Microsoft 独自形式(W3C で標準化されていない)
- Internet Explorer でしか機能しない
- 複雑な DRM/URL バインディングがデプロイの問題を引き起こす可能性がある
- 現代のブラウザは一切サポートしていない
- 将来の開発がない廃止済みの技術
EOT を使う場面
IE 8 以前をサポートしなければならない場合のみです。これらの古いブラウザは WOFF、WOFF2、さらには @font-face 経由の生の TTF すら理解できず、EOT が唯一の選択肢となります。
IE 9〜11 については、WOFF の方が優れた選択肢です。オープンスタンダードで、ツールサポートが広く、DRM や URL バインディングの負の遺産もありません。アナリティクスで IE 8 のトラフィックがゼロであれば(2024 年以降はほぼ確実にそうです)、EOT は完全にスキップしてください。
EOT をビルドに含める前に、実際のブラウザアナリティクスを確認してください。IE 8 以下のグローバルシェアは実質 0% です。特定の古い IE バージョンに固定された企業イントラネットや政府システムを対象としていない限り、EOT はビルドの複雑さを増すだけで実質的なメリットはありません。
ttf2eot ライブラリを使用するため、手動での変換作業は不要です。エクスポートダイアログでオプションを切り替えるだけで、.eot ファイルが他のフォント形式と一緒に生成されます。