5-2-1. CSSのfont-familyに対する各ブラウザの挙動

 CSS2以降の仕様では、"font-family: フォントA, フォントB, フォントC, ...;" のごとく複数のフォント指定が行われた場合、ブラウザは各文字ごとに、その文字を描画するのに適したグリフ(文字図形)を、フォントA→フォントB→フォントC……という順番に探してゆくことが求められています(参考:現行のCSS2の仕様・策定中のCSS3 Fonts Moduleの仕様)。
 従いまして次のようなスタイル指定がされた場合、

body
{
    font-family: "仮名専用ウェブフォント", "メイリオ";
}
	

 一番左のフォントに含まれていない字(英数字や漢字など)は、メイリオがあればメイリオを使って描画されるのが仕様通りの挙動ということになるのですが、現段階では残念ながら仕様通りに行かない場合があるようです。
 2010年10月16日現在、上のようなフォント指定に対する各ブラウザの振る舞いは次の通りでした(OSはすべてWindows XP SP3で、usp10.dllのバージョンは1.420.2600.5969)。

"仮名専用ウェブフォント" がTrueTypeベースの場合

○Firefox 3.6.10
○Chrome 6.0.472.63

仮名文字は "仮名専用ウェブフォント" のグリフが使われ、それ以外の文字は "メイリオ" のものが使われました。期待通りの動作です。

△Opera 10.63

仮名文字は "仮名専用ウェブフォント" のものが使われましたが、それ以外の文字は、1) その種の文字に対してどのフォントを使うかがブラウザの設定で指定されていればそのフォントが使われ、2) 特に指定されていなければ(即ち "Automatic" が選択されていれば)適当なフォントが使われる、という振る舞いをするようです。
いづれにせよfont-familyで次以降に指定されているフォント(上の例の場合 "メイリオ")を使わせることは出来ぬようです。

△Safari 5.0.2

フォールバックの仕方はFirefoxと同じでした。

それとは別に、ウェブフォントかローカルフォントかを問わずBMP以外の文字(即ちSMPやSIPの文字)がなぜか表示されませんでした。設定に問題があったのか仕様なのかバグなのか原因は不明です。

△Internet Explorer 8

TrueTypeフォントをそのままウェブフォントとして使うことは出来ず、一旦EOTという特殊な形式に変換する必要があります。
TrueTypeベースのEOTは、Firefoxと同じ振る舞いをしました。

なおIE9以降は他のブラウザ同様、OTF/TTF形式やWOFF形式のウェブフォントも受け付けてくれるようになるそうです。

▲Internet Explorer 6

IE8と同じく事前にEOT形式へと変換しておく必要があります。仮名文字は "仮名専用ウェブフォント" のものが使われたものの、それ以外の文字は“豆腐”になってしまいました。どのフォントにもフォールバックせぬようです。
IE6でウェブフォントが使いたい場合、ウェブフォントの適用対象を逐一 <span class="usemyfont">~</span> のようにして囲むしかなさそうです。

まとめ

 各ブラウザとも最新ヴァージョンに関しては、既にTrueTypeベースのウェブフォントは使っても大丈夫な段階にまで到達しているようです。
 ただ現段階ではOperaのみ、font-familyへの対応が不完全なようです。少なくとも豆腐になって文字が読めなくなることはないようですので実害はなさそうですが、ウェブフォントに含まれていない文字はどのフォントで描画されるか、ウェブページを作る側には予測できないというのは悩ましいところです。

"仮名専用ウェブフォント" がOpenType/CFFの場合

△Firefox 3.6.10

ウェブフォントに含まれるBMP以外の文字は表示されないという問題が存在します。それ以外はTrueTypeベースの場合と同じです。

なお上記の問題はMinefieldの4.0b8では発生しませんでした。

△Opera 10.63

ウェブフォントに含まれるBMP以外の文字は表示されないという問題が存在します。それ以外はTrueTypeベースの場合と同じです。

▲Safari 5.0.2

仮名文字は "仮名専用ウェブフォント" のものが使われたものの、それ以外の文字はすべて空白になってしまいました。即ちどのフォントにもフォールバックしませんでした。

×Chrome 6.0.472.63

"仮名専用ウェブフォント" は描画に一切使われず、フォントそのものが無視されてしまいました。

×Internet Explorer 8
×Internet Explorer 6

OpenType/CFFベースのEOTは無視されてしまいました。

まとめ

 現段階では、OpenType/CFFフォントをウェブフォントとして使うのは難しいようです。

 なお「OpenType/CFFフォントをウェブフォントとして使うと、BMP以外の文字が空白になってしまう」という問題ですが、FirefoxとOperaという複数のブラウザに現れたところからすると、もしかするとWindows XP側に何か原因があるのかもしれません。

 ちなみにInternet Explorer 7はテスト環境がなく調べられませんでした。6と同じように振る舞うのか、8と同じように振る舞うのか不明です。

Valid XHTML 1.0 Strict