[1] [[HTML]] の [CODE(HTMLe)[[[font]]]] 要素および
[CODE(HTMLe)[[[basefont]]]] 要素の [DFN[[CODE(HTMLa)[face]] 属性]]は、
[[フォント]]名を指定します。

[2] 仕様書:
- [[HTML 4]]
-- [CODE(HTMLa)[face]] <IW:HTML4:"present/graphics.html#adef-face-FONT">

[[#comment]]


** 代替

[3] この属性は'''非推奨'''です。代わりに、[[スタイル・シート]]で指定できます。

[4] [[CSS]] では、 [SAMP(CSS)[[[font-family]]]] 特性が使えます。

[[#comment]]


* 属性値

[5] この属性の値は、フォント名の読点分離の並びです。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。
大文字・小文字は区別されません。 [SRC[HTML 4 15.2.2]]

フォント名並びは、 UA が探すべきフォントを優先順に並べたものです。

[7] 他の読点並びで指定する場所と同様、仕様に明記されていないものの、
読点の両側に[[空白]]が指定できると思われます。

[6] この属性は省略可能です。省略時の既定値はありません。

[9]
[CODE(char)[,]] を含むフォント名を指定する方法はないようです。

[19] 
[[大文字・小文字不区別]]とされますが、実際にも [[Web互換性]]のためどの[[大文字]]と[[小文字]]の組み合わせでも
([[フォント]]側が定義する[[フォント名]]と異なっていても) 対応する必要があるようです。



[10]
普通は [[Windows]] や [[Macintosh]] のフォント名が指定されます。
[[X]] のあの長いフォント名による指定が反映される実装はあるのか、
指定した文書があるのかは不明です。
[[CSS]] の[[一般フォント族]]による指定も稀に見かけますが、
どう解釈されるかは不定です。

[14] [[フォント名]]を「[CODE(char)[[[']]]]」で括ったりもされているみたいです。
@@ 要、実装確認

[13] 
[CITE[HTML TADS deviations from standard HTML specifications]], [TIME[2007-06-23T19:42:00.000Z]], [TIME[2024-08-17T11:45:11.200Z]] <https://www.tads.org/t3doc/doc/htmltads/deviate.htm#TABLEadditions>

* 文脈

[16] [[フォント依存符号化]]

* アクセス可能性・可用性

[11] [CODE(HTMLa)[face]] 属性でフォントを指定しても、
読者の環境でそのフォントが存在しているかどうかは分かりません。
存在していても、設定によって使用しないようになっているかもしれません。
また、一般に[[著者]]が好きなフォントを読者も好きとは限りません。

ですから、強調の意味でフォントを変えるために [CODE(HTMLa)[face]]
を使ったり、[Q[明朝体の部分は[VAR[〜]]]]のように記述したりすると、
意味が通じなくなることがあります。本文全体のフォントを変えると、
読者に負担を強いることにもなりかねません。

[12] [SAMP[[[Symbol]]]] などの本来の[[符号化文字集合]]の[[図形記号]]とは異なる[[グリフ]]を割り当てたようなフォントを
[CODE(HTMLa)[face]] により指定し、特殊な記号などを使う[Q[裏技]]が紹介されることがたまにあります。
(実際に使用されていることも稀にあります。)

>>11 の指摘の通り、指定したフォントが必ずしも使われるとは限りませんから、
意味不明な文字列として表示されることになります。また、
たとえ希望したフォントで表示されたとしても、Web 
ブラウザが本来の文字の意味に従って整形
[WEAK[([[字間]]の調整とか、[[ハイフン付け]]とか)]] 
した結果表示が崩れてしまうこともあります。
フォントを使って本来の[[文字]]とは異なるグリフを指定することは行ってはいけません。

* メモ

[8] 仕様に明記されていませんが、 [CODE(HTMLe)[basefont]]
要素の場合は [CODE(HTMLa)[[[size]]]] 属性同様、
基底のフォントとして機能するはずです。



[15] [CITE[Incorrectly designed, unreadable Russian pages]], [TIME[2025-06-16T14:50:53.000Z]], [TIME[2006-06-28T07:21:30.181Z]] <https://web.archive.org/web/20060628071642/http://ourworld.compuserve.com/homepages/PaulGor/ff.htm>


[17] 
>>15 全世界的に嫌われていた [CODE[<font face>]] だが、[[ロシア語]]圏では別の問題もあった。
[[ロシア語]]フォントが相手方の計算機にも入っているとは限らない。また、
[[ロシア語]]の [[OS]] とそうでない [[OS]] で同名[[フォント]]でも[[キリル文字]]が入っていたりいなかったりする。
後者は特に問題で、当時の[[Webブラウザー]]はグリフがなければそこだけ他のフォントにフォールバック、という今日なら当たり前の機能がないので、[[キリル文字]]が無いフォントが指定されていると読めなくなってしまう。


[18] [CITE[Making Home Pages in Korean - EHC]], [TIME[2021-12-31T02:07:47.000Z]], [TIME[2025-06-17T10:02:38.737Z]] <http://www.kmml.net/ehc/hhpage.html#_face>

>また、<font face="돋움, Arial">のように、フォント名を決め打ちするタグが入っているHTMLも、韓国のページで最近よく見かけます。この場合、돋움というフォントのハングル名は日本語Windowsでは認識できない上、フォント名は先に書かれたものから認識されますので、欧文フォントでなおかつバージョン3.1以降のWindowsなら言語を問わず必ず入っている "Arial" が優先されることになり、日本語Windowsではハングルに見えません。
> このほか、韓国のページでは、中身がハングルの文字列なのに<font face="Times New Roman">のように欧文フォント名が指定されているHTMLもよく見かけます。韓国のハングルページで中身(文字列)がハングルであるにもかかわらず、欧文フォントが指定されているケースが多いのは、ハングルWindowsでは欧文フォント名を指定してもハングルが表示できるのが当然だからです。ArialやTimes New Romanのように、日本語環境では欧文表示になるフォント名をハングルの文字列に対して指定しないでください。日本語Windows上などでも多くの人に見てもらうためには、絶対に真似をしてはいけません。
> 逆に、日本語の文字列に対してこのタグを使う場合にも、日本語Windowsのフォント名「MS 明朝("MS"はいわゆる全角、その後に続く空白はいわゆる半角です)」が、ハングルWindowsなど他の言語環境では「MS Mincho」(こちらの"MS"とそれに続く空白はいわゆる半角です)に見えることへの配慮が必要です。


> ちなみにInternet Explorerではもちろん"charset=ks_c_5601-1987"を認識しますし、<font face=>で前述のようなハングル名のハングルフォント+欧文フォントというタグがあっても、ハングルに見えるようです。こうした事実やIME for IE 4.0などの存在から、日本のWindowsユーザーでかつハングルのページを見る人の間ではInternet Explorerの普及率が圧倒的に高いようですが、ハングルでHTMLを書くなら、Internet Explorerだけでなく必ずNetscape Navigatorでも表示テストを行うことをお勧めします。



