* 単純リンク系 [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]]]] の[[媒体型]]でなければ[['''なりません''']]。
[116] [[RELAX NG]] [[スキーマ]]上の[[データ型]]は [CODE(XML)@en[[[atomMediaType]]]] です
[SRC[[[RFC 4287]] 4.2.7.]]。
**** 既定値
[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