x-font/*

font/* (MIME型)

[1] font/* は、フォントのデータに使われることのある媒体型です。

仕様書

意味

[12]最上位型MIME型で識別される内容が、 これをフォントデータとして処理するためにはフォントレンダリングエンジンなど (場合によってはテキストレイアウトエンジンshaping engine も。) の特定の図形 (graphic) 部分システムが必要であり、 それには更に一定水準の CPU 性能やメモリー容量のようなハードウェア能力が必要である、 ということを示しています。 >>7

[13] データ形式フォント情報の解釈方法などは特に定めません >>7

[14] MIME型部分型が、フォント形式の名前を表します >>7

処理

[15] 未知の font/* MIME型は、 application/octet-stream として扱うべき (should) です >>7

[16] 共通のフォント処理システムのようなものがあれば、 未知の MIME型であってもそちらに渡しても構いません >>7

素片識別子

[38] 新しい MIME型を登録する場合、複数のフォントを含めることができるなら、 素片識別子も定義するべき (should) です >>7

[39] 単一のフォントしか含まれない場合にどうするべきかには何の言及もありません。

[40] 複数のフォントが含まれるべき場合に採用しなければならないとは書かれていませんが、 次のような素片識別子が規定されており、採用されることが期待されているものと推測されます。


[17] font collection素片識別子は、 ISO/IEC 14496-22:2015 PostScript name (name ID = 6) によって特定のフォントを識別します >>7

[23] すなわち、 [ U+0031, U+007E ] の文字のうち、 [ , ] , (, ), {, }, <, >, /, %除いたもので構成される63文字以下文字列です。 >>7

[24] 空文字列は認められるのでしょうか?

[25] このうち、 ", #, \, ^, `, |RFC 3986 素片識別子では使うことができず、パーセント符号化しなければなりません >>7

[27] URL URLfont collection コレクションから選ばれるべきフォントは、 次のように決定します >>7

  1. [26] URL素片識別子null でない場合、
    1. [28] 名前を、URL素片識別子パーセント復号を適用した結果に設定します。
    2. [29] フォントを、コレクション内の PostScript name名前フォントに設定します。
    3. [30] フォントnull でない場合、
      1. [31] フォントを返し、ここで停止します。
    4. [32] それ以外の場合、
      1. [33] コレクション内の最初のフォントを返します。
  2. [34] それ以外の場合、
    1. [35] コレクション内の最初のフォントを返します。

[36] なお、コレクション内のフォントの順序はフォントの改訂により変化する可能性がありますから、 最初のフォントが選ばれることに依存するのは懸命ではありません >>7

[46]素片識別子形式は、次の MIME型で採用されています。

[277] css-fonts は、 (特に font/* に限らず) フォント素片識別子が定義されていない場合に、 整数 (1起源) の素片識別子で識別するべきだと規定していました >>41 が、 後に削除されました >>47


[42] 個別のフォント形式の素片識別子は、各 MIME型の項を参照。

一覧

[2] font/* MIME型の一覧
font/x-bdf
font/collection
font/x-dos
font/eot
x-font/eot
font/x-figlet
font/x-framemaker
font/x-libgrx
font/vnd.ms-fontobject
font/opentype
font/otf
font/x-sunos-news
font/x-pcf
font/x-linux-psf
font/sfnt
font/x-snf
font/x-speedo
font/x-tex
font/x-tex-tfm
font/truetype
font/ttf
x-font/ttf
font/type1
font/x-vfont
font/x-hp-windows
font/woff
font/x-woff
x-font/woff

引数

[43] 共通の引数はありません。

[44] 複数の MIME型で同じように定義されている引数はいくつかあります。

[45] 新規MIME型の登録に関する規定の中に、 コンマ区切りで未知の値があれば無視するべきという謎の規定 >>7 がありますが、 文脈的にはこれらの引数 (やそれと同様の引数?) を使う場合の処理に言及したかったようにみえます。

関連

[3] ちなみに、他に application/x-font というのも使われていることがわかっています。

歴史

[8] font/* は古くから提案され、非標準ながら長年あちこちで使われてきました。 しかし IETF最上位型の新規追加に極めて慎重で、 現実に歩み寄ることを頑なに拒み続けてきました。

[18] Web Printing (1998-05-13 20:45:28 +09:00 版) <http://www.w3.org/Printing/chase.html> (名無しさん)

[19] draft-singer-font-mime-00 - The Font Primary Content Type for Multipurpose Internet Mail Extensions ( 版) <http://tools.ietf.org/html/draft-singer-font-mime-00>

承認

[10] 2010年代に入り、 Web Fonts の普及によりフォントMIME型に再び注目が集まりました。 W3CフォントCSS に関する作業を担当する Chris Lilley が中心となり、正式に font/*標準化する動きが起きました。 になって、ようやく RFC 8081 が出版されるに至りました。

[20] IRC logs: freenode / #whatwg / 20100628 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100628#l-498>

[21] IRC logs: freenode / #whatwg / 20121031 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20121031#l-895>

[22] IRC logs: freenode / #whatwg / 20121117 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20121117>

[4] draft-singer-font-mime-00 - The Font Primary Content Type for Multipurpose Internet Mail Extensions ( 版) <https://tools.ietf.org/html/draft-singer-font-mime-00>

[5] Re: Font MIME types (Chris Lilley 著, 版) <https://lists.w3.org/Archives/Public/www-style/2015Apr/0334.html>

[6] draft-ietf-justfont-toplevel-06 - The font Top Level Type () <https://tools.ietf.org/html/draft-ietf-justfont-toplevel-06>

[9] RFC 8081 - The "font" Top-Level Media Type () <https://tools.ietf.org/html/rfc8081>

[11] それにしても IETF が関わるとあらゆる出来事の進みが遅くなるんですね!

[49] Update font types list and sniffing (domenic著, ) <https://github.com/whatwg/mimesniff/commit/e29b9f4a22843bf6c7f0177223b0147bc03e37f7>

[50] Reflect RFC 8081 about font MIME type · Issue #23 · whatwg/mimesniff () <https://github.com/whatwg/mimesniff/issues/23>

[51] Support for WOFF File Format 2.0 · Issue #28 · whatwg/mimesniff () <https://github.com/whatwg/mimesniff/issues/28>

[52] Update font types list and sniffing by domenic · Pull Request #57 · whatwg/mimesniff () <https://github.com/whatwg/mimesniff/pull/57>