* 単純リンク系 [CODE(HTMLa)@en[type]] 属性 (HTML) ,要素 ,仕様書 ,[[a]] ,[HTML4] ,[[area]] ,[HTML4] ,[[link]] ,[HTML4] [10] リンク先の資源の[[媒体型]]を示します。省略可能で、既定値は値なしです。 媒体型にはそのパラメーターも指定できます。 ([HTML4] などでは不明瞭ですが、1992年くらいの古い仕様で既に媒体型パラメーターの使用例があります。) [11] リンク先資源の転送プロトコルが媒体型 (またはそれに相当するもの) の情報を持っている時には、この値は使われません。 そうでない時にはこの値が使えます。 また、 [[UA]] や利用者は、リンク先資源を取り寄せる前に、この属性の値を見て資源を取り寄せるか否かを判断できます。 [12] HTML の仕様書では触れられていませんが、 [[HTTP]] のように[[内容折衝]]可能なプロトコルを使う場合は、 [[Accept:]] 欄 (またはそれに相当するもの) にこの値を使うと、リンク元資源の著者の意図に合った資源を入手できる可能性が高くなります。 逆にリンク元資源の著者は、転送プロトコルで内容折衝が行われると分かっていて、しかも特定の媒体型の版を参照したいわけではない場合は、この属性を明示し''ない''方が良いと思われます。 [13] この属性は 1992年ごろの古い仕様書に登場して使われていましたが、途中で仕様書からは一旦消滅して後に又復活しています。 かつては [[content-type]] という名前で使われていたこともあったようです。 - [26] >>10 XHTML 2.0 WD では値の型が [[HTTP]] の [[Accept:]] 欄のものになったので、この曖昧性はなくなっています。 - [29] [CODE(XPath)[[CODE(HTMLe)[[[param]]]]/@[CODE(HTMLa)[type]]]] の値に [[WinIE]] では [CODE[video/*]] みたいのが使えるらしいです。もちろん [[HTML4]] では不可。 ''TYPE Attribute | type Property (PARAM) (Internet Explorer)'' - [30] ちなみに [CODE(XPath)[[CODE(HTMLe)[param]]/@[CODE(HTMLa)[type]]]] 自体は [[WinIE6]]+ で対応っぽい。 [[#comment]] ** a 要素・link 要素 type 属性 (HTML, XHTML 1) [52] [[HTML]] の [CODE(HTMLe)[[[a]]]] 要素・[CODE(HTMLe)[[[link]]]] 要素の [DFN[[CODE(HTMLa)[type]] 属性]]は、 [CODE(HTMLa)[[[href]]]] 属性で示したリンク先の資源の[[媒体型]]のヒントを指定します。 [110] [[スタイル・シート]]の指定のために用いる [CODE(HTMLe)@en[[[link]]]] [[要素]]の [CODE(HTMLa)@en[[[type]]]] [[属性]]に関しては、 [[スタイル・シートの媒体型]]の項もごらんください。 [79] 仕様書: - [[HTML 4]] -- [CODE(HTMLa)[type]] 属性 -- [CITE[12.3.2 Links and external style sheets]] -- [CITE[HTML 4 Changes]] [[#comment]] *** 属性値 [57] この属性の値は [CODE(SGML)[%[[ContentType]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 HTML 4 仕様書には大文字・小文字を区別しないとなっていますが、 そうすると[[引数]]の扱いに問題があります。 詳しくは [CODE(SGML)[%[[ContentType]]]] の説明を見てください。 [58] この属性は省略可能です。 [[#comment]] *** 応用 [53] [[UA]] が対応していない媒体型のときに内容を取りに行かずに fallback 機構を使うことが想定されています [HTML 4]。 特に[[スタイル・シート]]への [CODE(HTMLe)[link]] では[[スタイル言語]]を表します [HTML 4]。 UA は対応している言語だけ取りに行くようにすることで資源を節約できます。 [54] 資源をとりに行くときの [CODE(HTTP)[[[Accept]]:]] 欄の基にするのは良い考えでしょう。 [[#comment]] *** 他との関係 [59] 媒体型によっては [CODE(MIME)[[[charset]]]] 引数がありますが、 これのヒントも与える場合は [CODE(HTMLa)[type]] 属性ではなく [CODE(HTMLa)[[[charset]]]] 属性を使うべきでしょう。 [60] 親戚筋の属性に自然言語のヒントを指定する [CODE(HTMLa)[[[hreflang]]]] があります。 [[#comment]] ** 歴史 [61] [CODE(HTMLe)[link]] 要素の [CODE(HTMLa)[type]] 属性は ''HTML DTD with support for Style Sheets'' で追加されました。 [[#comment]] *** メモ [55] 著者は実際の資源の媒体型と [CODE(HTMLa)[type]] のヒントが整合した状態であることの責任があります [HTML 4]。 [56] よく、リンク先が [[PDF]] や [[Flash]] や [[Word]] など HTML 以外の形式であるときに閲覧者に注意を促す記述がありますが、 著者の[[スタイル・シート]]と合わせてそのような記述を実現するためにも使えるでしょう。 [[#comment]] ** [CODE(XMLe)@en[atom:link]] 要素 [CODE(XMLa)@en[type]] 属性 [100] [[Atom 0.3]] の [[Link construct]]、[[Atom 1.0]] の [CODE(XMLe)@en[[[atom:link]]]] [[要素]]の [DFN[[CODE(XMLa)@en[[[type]]]] [[属性]]]]は、 [[リンク先]]の[[資源]]の[[表現]]の[[媒体型]]の[[ヒント]]を表します。 [112] :状態:[[IETF]] [[提案標準]] :[[要素]]:[[Atom 0.3]] [[Link construct]] な[[要素]]、[[Atom 1.0]] [CODE(XMLe)@en[[[atom:link]]]] :[[属性名]]:[CODE(XMLa)@en[[[type]]]] :[[データ型]]:[[媒体型]] :[[既定値]]:(なし) *** 仕様書 -[113] [DEL[[CITE[The Atom Syndication Format 0.3 (PRE-DRAFT)]] ([TIME[2006-12-22 17:03:44 +09:00]] 版)]] -[114] [CITE@en[RFC 4287 - The Atom Syndication Format]] ([TIME[2009-05-20 11:24:12 +09:00]] 版) *** 属性値 [101] [[属性値]]は登録されている [[RFC 2045]] [SRC@en[[[Atom 0.3]]]] か [[RFC 4288]] [SRC[[[Atom 1.0]]]] の[[媒体型]]でなければ[['''なりません''']]。 *** 既定値 [102] [[Atom 0.3]] ではこの[[属性]]は[['''必須''']]です [SRC@en[[[Atom 0.3]]]]。 [115] [[Atom 1.0]] ではこの[[属性]]は[[必須]]ではありません。 *** 処理モデル [103] [[リンク]]の [CODE(XMLa)@en[[[href]]]] [[属性値]]の [[URL]] を[[解参照]]した場合に得られると期待される[[表現]]の[[ヒント]]として使って[['''構いません''']]。 しかし、これは実際の[[媒体型]]を上書きはしません。 [SRC@en[[[Atom 0.3]]、[[RFC 4288]] 4.2.7.3.]] ** その他 * 埋め込みオブジェクト系 [CODE(HTMLa)@en[type]] 属性 [91] [CITE[Bug 395110 – server provided content-type takes precedent over type-attribute]] ([CODE[2008-02-22 18:53:43 +09:00]] 版) ** object 要素 type 属性 (HTML, XHTML 1) [62] [[HTML]] の [CODE(HTMLe)[[[object]]]] 要素の [DFN[[CODE(HTMLa)[type]] 属性]]は、 [CODE(HTMLa)[[[data]]]] 属性で指定されたデータの[[媒体型]]を指定します。 [63] 仕様書: - [[HTML 4]] -- [CODE(HTMLe)[object]] 要素 [CODE(HTMLa)[type]] 属性 -- [CITE[HTML 4 Changes]] [[#comment]] *** 属性値 [64] この属性の値は [CODE(SGML)[%[[ContentType]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 HTML 4 仕様書には大文字・小文字を区別しないと書いてありますが、 [[引数]]が使えるなら区別しないといけないはずです。 [65] この属性は省略可能ですが、 [CODE(HTMLa)[data]] を指定するときには [CODE(HTMLa)[type]] も指定することが推奨 (recommend) されています。 [HTML 4] [[#comment]] *** 他との関係 [66] [CODE(HTMLa)[type]] は [CODE(HTMLa)[[[data]]]] に関するものですが、 [CODE(HTMLa)[[[codetype]]]] の既定値でもあるので [CODE(HTMLa)[[[classid]]]] にも影響します。 [CODE(HTMLa)[type]] は UA が対応しているかどうかの判断のヒントとして使うもので、 [[HTTP]] [CODE(HTTP)[[[Content-Type]]]] と一致しないときには、 HTTP の方が優先されます。 [SRC[HTML 4.01 13.3]] [[#comment]] *** メモ [89] [CITE[Bug 395110 – server provided content-type takes precedent over type-attribute]] ([CODE[2008-01-06 10:41:25 +09:00]] 版) ([[名無しさん]]) [90] [CITE[Bug 16690 - type attribute on should not take precedence over the Content-Type of the 's data]] ([CODE[2008-01-06 10:44:50 +09:00]] 版) ([[名無しさん]]) [[#comment]] ** [CODE(XMLe)@en[enclosure]] 要素 [CODE(XMLa)@en[type]] 属性 (RSS) [93] [[RSS]] の [CODE(XMLe)@en[[[enclosure]]]] [[要素]]の [DFN[[CODE(XMLa)@en[type]] [[属性]]]]は、 [[添付]]された[[媒体物体]]の[[媒体型]]を表します。 :[[要素]]:[CODE(XMLe)@en[[[enclosure]]]] :[[属性名]]:[CODE(XMLa)@en[[[type]]]] :[[データ型]]:[[媒体型]] :[[既定値]]:(必須) 仕様書: -[CITE@en[RSS 2.0 Specification (version 2.0.10)]] ([TIME[2008-11-21 18:10:17 +09:00]] 版) -[CITE@en[RSS Best Practices Profile]] ([TIME[2008-11-21 15:11:45 +09:00]] 版) *** 属性値 [95] [[属性値]]は[[媒体型]]です [SRC@en[[[RSS 2.0]], [[RSS Best Practices Profile]]]]。 *** 既定値 [94] この[[属性]]は必須です [SRC@en[[[RSS 2.0]]]]。 ** param 要素 type 属性 (HTML, XHTML 1) [67] [[HTML]] の [CODE(HTMLe)[[[param]]]] 要素の [DFN[[CODE(HTMLa)[type]] 属性]]は、 [CODE(HTMLa)[[[valuetype]]]] が [CODE(HTML)[[[ref]]]] の [CODE(HTMLa)[[[value]]]] 属性値 ([[URI参照]]) によって指された[[資源]]の[[媒体型]]を指定します。 [68] 仕様書: [[HTML 4]] [[#comment]] *** 属性値 [69] この属性の値は [CODE(SGML)[%[[ContentType]]]] です。 大文字・小文字は区別しないと HTML 4 仕様書にはありますが、 媒体型[[引数]]値を考えると区別の必要があるはずです。 [71] この属性は省略可能です。 [[#comment]] *** メモ [70] 他のリンク系要素の [CODE(HTMLa)[type]] 属性と同じく [[UA]] のために指定するらしいですが [SUP[ [HTML 4] ]]、 [CODE(HTMLa)[param]] [CODE(HTML)[ref]] は UA ではなく[[物体]]の実装が解釈するので、 UA 的にはあってもあまり嬉しくないと思われます。 (HTML 仕様的には適用範囲外の方法で) UA と物体の間の界面を通じて引き渡してこそ有意義に使われる (かもしれない) でしょう。 [[#comment]] ** [CODE(XMLe)@en[ref]] 要素 [CODE(HTMLa)@en[type]] 属性 (SMIL) [104] 仕様書: -[CITE[SMIL 3.0 Media Object]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) *** 処理モデル **** RTSP の場合 [105] [[内容折衝]]のため、あるいは[[媒体型]]情報が欠けたる場合に用いられます。 [[RTSP]] [CODE@en[[[DESCRIBE]]]] [[応答]]や [[RTP]] [[静的積荷番号]]によって上書きされることもあります。 [SRC@en[[[SMIL3]]]] **** HTTP の場合 [106] [[内容折衝]]のため、あるいは[[媒体型]]情報が欠けたる場合に用いられます。 [CODE(HTTP)@en[[[Content-Type]]:]] 欄の情報が最優先で、 [[利用者]]が認めた場合のみ [CODE(HTTP)@en[[[Content-Type]]:]] 欄の情報を上書きすることができます。 [CODE(HTTP)@en[[[Content-Type]]:]] も [CODE(XMLa)@en[[[type]]]] もない場合にはその他の情報 ([[探知]]や[[拡張子]]) を使って構いません。 [SRC@en[[[SMIL3]]]] **** FTP、局所ファイル [107] [[拡張子]]等より [CODE(XMLa)@en[[[type]]]] が優先されます。 **** その他の場合 [108] [[媒体]]が[[ファイル]]に封入され、その[[ファイル]]が完全な[[ファイル]]として転送される場合、 その[[プロトコル]]の提供する型情報を優先するべきです。 [SRC@en[[[SMIL3]]]] [109] [[媒体]]を知っている[[プロトコル]] (特定の[[媒体]]の型を使っている、 あるいは特定の[[媒体]]の型に依存しているような[[プロトコル]]など) では、 [CODE(XMLa)@en[[[type]]]] [[属性]]の応用は未定義です。 [SRC@en[[[SMIL3]]]] * 要素内容系 [CODE(XMLa)@en[type]] 属性 ** [CODE(XMLa)@en[type]] 属性 (Atom 1.0) [111] [[Atom 1.0 [CODE(XMLa)@en[type]]]] の項を参照。 ** [CODE(XMLa)@en[type]] 属性 (Atom 0.3) [96] [[Atom 0.3]] の [[Content construct]] の [DFN[[CODE(XMLa)@en[type]] [[属性]]]]は、 [[内容]]の[[媒体型]]を表します [SRC@en[[[Atom 0.3]]]]。 :状態:[[廃止]] → [[Atom 1.0]] [[Text construct]]/[CODE(XMLe)@en[atom:[[content]]]] [CODE(XMLa)@en[[[type]]]] :[[要素]]:[[Text construct]] の[[要素]] :[[局所名]]:[CODE(XMLa)@en[[[type]]]] :[[データ型]]:[[媒体型]] :[[既定値]]:[CODE(MIME)@en[[[text/plain]]]] 仕様書: [CITE[The Atom Syndication Format 0.3 (PRE-DRAFT)]] ([TIME[2006-12-22 17:03:44 +09:00]] 版) *** 属性値 [97] [[属性値]]は[[登録]]された [[RFC 2045]] [[媒体型]]でなければ[['''なりません''']] [SRC@en[[[Atom 0.3]]]]。 *** 既定値 [98] [[既定値]]は [CODE(MIME)@en[[[text/plain]]]] です [SRC@en[[[Atom 0.3]]]]。 *** 関連 [99] [[Atom 1.0]] では [[Text construct]] や [CODE(XMLe)@en[atom:[[content]]]] [[要素]]の [CODE(XMLa)@en[[[type]]]] [[属性]]に相当しますが、 [CODE(XMLa)@en[[[mode]]]] [[属性]]と統合されているので完全に同じではありません。 * スタイル・シート系 [CODE(HTMLa)@en[type]] 属性 [2] [[スタイル・シートの媒体型]]の項を参照してください。 [7] これに該当する[[属性]]には、次のものがあります。 - [CODE(HTMLe)@en[[[style]]]] [[要素]] [CODE(HTMLa)@en[[[type]]]] [[属性]] ([[HTML]]、[[SVG]] など) - [CODE(XMLe)@en[[[layout]]]] [[要素]] [CODE(XMLa)@en[[[type]]]] [[属性]] ([[SMIL]]) - [CODE(HTMLe)@en[[[link]]]] [[要素]] [CODE(HTMLa)@en[[[type]]]] [[属性]] ([[HTML]]、 [CODE(HTMLa)@en[[[rel]]]] [[属性]]に [CODE(HTML)@en[[[stylesheet]]]] が含まれる場合) - [CODE(XML)@en[[[xml-stylesheet]]]] [[処理指令]] [CODE(XMLa)@en[[[type]]]] [[擬似属性]] - [CODE(XMLe)@en[[[stylesheet]]]] [[要素]] [CODE(XMLa)@en[[[type]]]] [[属性]] ([[XBL1]]) - [[大域属性]] (?) [CODE(HTMLa)@en[[[type]]]] ([[HTML]]) * スクリプト系要素 type 属性 (HTML, XHTML 1, SVG, XBL, VoiceXML, その他) [25] [[HTML]] の [CODE(HTMLe)[[[script]]]] 要素型をはじめとする、 各種マーク言語のスクリプト系要素型の [DFN[[CODE(HTMLa)[type]] 属性]]については、 [[スクリプトの媒体型]]の説明をご覧ください。