OperaでWebフォントを使うと日本語が明朝体になる

タイトルはかなり不正確。Webフォントを使用した場合、そのフォントが持っていないグリフはfont-familyでの指定に従って適切にフォールバックされるべきところだが、Operaでは強制的にserif系のフォントが選択されてしまうというと正確。確認したバージョンは11.60(と11.61)。サブセット化されているためグリフを一部しか持っていない欧文フォントやアイコン・フォントで、持ってないグリフがTimes New Roman等になってしまうということでもあるので、意外に影響範囲は大きそう。

Demo: Opera and Web Fonts

デモではJunctionというフォントをWebフォントとして使った。フォーマットによって違う可能性も指摘されたので、TTFとEOT、WOFF、SVGの4つのフォーマットで試している。

.test {
  font-family: "Junction <format>", "Helvetica Neue", "Arial", sans-serif;
}

という指定なので、対応しているフォーマットだった場合は英数字がJunction、それ以外がブラウザーの設定に従ってsans-serifで表示される……はずだが、Operaでは日本語の部分が明朝体、WindowsだとMS P明朝(多分)になってしまう。

Webフォントの扱いにバグがあり、まったくフォールバックされないということみたい。

.test {
  font-family: "Junction <format>", "Meiryo", "メイリオ", "Helvetica Neue", "Arial", sans-serif;
}

などとして、メイリオを期待しても無駄でMS P明朝御大がファンブル召喚される。


今、このサイトでは本文のフォントにOpen Sansを使っているので、ばっちりこのバグを踏んでる……。どうにかしてあげたいところだけどどうにもならないのでバグレポートだけした。適切にフォールバックされないというのは非常に困るので今すぐたちどころに直ってほしい。