* [CODE(HTMLe)[meta]] 要素型 (HTML, XHTML 1)
[40] [[HTML]] で[[メタ情報]]を扱う方法は2通りあります。
情報が文書内にあれば [CODE(HTMLe)[meta]] 要素型を、
文書内外の参照であれば [CODE(HTMLe)[[[link]]]]
要素型を使うことができます [SRC[HTML 4]]。
[43] 仕様書:
- [[HTML 2.0]]: [[RFC 1866]] 5.2.5. Associated Meta-information: META
- [[HTML 4]]
--
--
[39]
:状態:[[W3C]] [[勧告]]
:[[局所名]]:[CODE(HTMLe)@en[[[meta]]]]
([Q@en[meta]] ([Q@en[meta information]] ([Q[[[メタ情報]]]])) より)
:[[名前空間URI]]:[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]]
:[[開始タグ]]:必須
:[[終了タグ]]:禁止 ([[HTML]]), 必須 ([[XHTML]])
:[[内容]]:[[空]] ([[強制空要素]])
:出現できる文脈:[CODE(HTMLe)@en[[[head]]]] の[[子供]]として
:[[属性]]:
,属性名 ,属性値 ,既定値 ,説明 ,出典
,[CODE(HTMLa)@en[[[charset]]]],[[MIME]] [[charset]],,[[charset]],"[[WHATWG]] [[WD]]",[[HTML 5]]
,[CODE(HTMLa)[[[content]]]] ,[CODE(SGML)[[[CDATA]]]] ,(必須) ,メタ情報 ,"[HTML 2.0], [HTML4], [XHTML1]"
,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,"[HTML4], [XHTML1]"
,[CODE(HTMLa)[[[http-equiv]]]] ,[CODE(ABNF)[[[field-name]]]] ([CODE(SGML)[[[NAME]]]]) ,(選択必須) ,[[HTTP]] [[応答]]の[[頭欄名]] ,"[HTML 2.0], [HTML4], [XHTML1]"
,[CODE(HTMLa)[[[lang]]]] ,[[言語札]] ,(継承) ,[[自然言語]] ,"[HTML4], [XHTML1]"
,[CODE(HTMLa)[[[xml]]:lang]] ,言語札 ,(継承) ,自然言語 ,[XHTML1]
,[CODE(HTMLa)[[[name]]]] ,[CODE(SGML)[NAME]] ,(選択必須) ,メタ情報名 ,"[HTML 2.0], [HTML4], [XHTML1]"
,[CODE(HTMLa)[[[scheme]]]] ,[CODE(SGML)[CDATA]] ,(なし) ,内容の書式 ,"[HTML4], [XHTML1]"
,[CODE(HTMLa)@en[[[type]]]],,,,非標準
,[CODE(HTMLa)@en[[[value]]]],,(なし),,非標準
[44]
[CODE(HTMLa)[dir]] 属性も [CODE(HTMLa)[lang]] 属性も、
[CODE(HTMLa)[content]] に適用されます [SRC[HTML 4]]。
[[#comment]]
** 複数の meta 要素
[45] 以前は、同じ名前 ([CODE(HTMLa)[name]]) のメタ情報が複数ある時は内容
([CODE(HTMLa)[content]]) は読点分離で連結できるとされていました
[SRC[RFC 1866 5.2.5]]。 ([CODE(HTMLa)[name]] を省略した場合のメタ情報の名前は
[CODE(HTMLa)[http-equiv]] 値です。この時、 [[HTTP]]
の頭欄の連結に関する規定と同じ結果になります。)
この規定が後になくなってしまったのは、
実際にはこの機能が使われなかったからと思われます。
[[#comment]]
** [CODE(HTMLa)[name]] 属性と [CODE(HTMLa)[content]] 属性
[48] [CODE(HTMLe)[meta]] 要素では、 [CODE(HTMLa)[[[content]]]]
属性がメタ情報の[Q[値]]を指定し、 [CODE(HTMLa)[[[name]]]]
属性または [CODE(HTMLa)[[[http-equiv]]]] 属性が[Q[名前]]
を指定します。 HTML 4 の仕様書上は明確にはなっていませんが、
慣習的解釈および要素の意味に基づく常識的判断によれば
[CODE(HTMLa)[name]] 属性と
[CODE(HTMLa)[http-equiv]] 属性は排他的であり (同時には指定できず)、
しかもどちらか一方は必ず指定しなければなりません。
[49] [CODE(HTMLa)[name]] 属性を使用すると、
その [CODE(HTMLe)[meta]] 要素は一般のメタ情報
[WEAK[(というのもおかしな言い方ですが。)]] を定義することになります。
[CODE(HTMLa)[http-equiv]] 属性を使用すると、
特に [[HTTP]] の[[頭欄]]として表現されるべき情報を定義することになります。
どちらを使うかにより、指定できる内容はまったく違ってきます。
[42] [CODE(HTMLa)[name]] 属性と [CODE(HTMLa)[http-equiv]] 属性のいずれかが必ず存在しないといけません。 HTML 4 仕様書にはそう明記してないのですが、説明を読んでいくと当然そうだとしないと話になりません。 [CODE(HTMLa)[http-equiv]] は
[Q[in place of [CODE(HTMLa)[name]]]] で使えると書かれているので、これら両方を指定できないことは明記されているといえるでしょう。やや曖昧かもしれなくはありませんが。
この [Q[in place of]] を誤読して [CODE(HTMLa)[name]] 属性と
[CODE(HTMLa)[http-equiv]] 属性は同じ意味だと解釈した人がいるようですが、
それではわざわざ2種類存在している意味がありません。
[[#comment]]
*** 実装
[27] ''Dithered / April 2002''
の19日の記事で、その著者は、 [[WinIE]] では少なくても [[M$]]
独自拡張のものについては [CODE(HTMLa)[name]] 属性と
[CODE(HTMLa)[http-equiv]] 属性の等価性が認められるという説を、
[CODE(HTTP)[[[ImageToolbar]]]] 欄という反例を挙げて否定しています。
この結論について異論はありませんが、 WinIE 6.0 で
[CODE(HTTP)[ImageToolbar]] と同時に導入された
[CODE(HTTP)[[[MSThemeCompatible]]]] 欄は全然実装が異なる
[WEAK[(詳しくは両欄の説明を参照してください。)]]
という実験事実から考察すると、
M$IE のその辺の実装は行き当たりばったりで法則性は無いと考えられます。
[[#comment]]
** 他との関係
[46] [CODE(HTMLe)[[[title]]]] のように専用の要素型がある時には、
そちらを使うべきです [SRC[RFC 1866 5.2.5 NOTE]]。
また、値が [[URI参照]]の時は [CODE(HTMLe)[[[link]]]]
の方が適当です [SRC[RFC 1866 5.2.5 NOTE, HTML 4]]。
[[#comment]]
*** [CODE(HTMLe)[meta]] 要素と HTTP 頭欄
[47] [CODE(HTMLe)[meta]] 要素は [CODE(HTMLa)[http-equiv]]
属性を用いて、 HTTP 頭欄の表現に使うことができます。
詳しくは [CODE(HTMLa)[[[http-equiv]]]] 属性の項をご覧下さい。
[[#comment]]
** 歴史
- [6] かつては [CODE[meta]] 要素そのものが [[HTTP]] 頭の代替のように考えられていたようです。例えば [[HTTP+]] の [[DTD]] の注釈にははっきり、 HTTP サーバーは [CODE[meta]] 要素を読んで[[頭欄]]に出来るとしています。 ([CODE[http-equiv]] 属性はまだありません!)
- [7] >>6 また、 [CODE[meta]] 要素は HTTP 頭で代替すべきであって廃止しようという考えもあったらしいです。
[[#comment]]
** 実装
- [8] ''Google ページの削除''
- [9] [[http-equiv]] 属性を使っても実際に [[HTTP]] [[頭欄]]として反映させてくれるサーバーは少ないですが、例えば [[Apache]] と ''Embperl'' を使うとそうしてくれるらしいです。
[[#comment]]
** 不思議解釈
[51]
[CITE[メタ文字]] (2003年6月付け)
この [[HTML]] の解説は、何をとち狂ったか [CODE(HTMLe)@en[[[meta]]]]
要素 (?) のことを[Q[メタ文字]]と呼んでいます。
どこかで[[メタ文字]]という言葉を聞きかじって、
つい使ってみたくなったんでしょうかね?
[[#comment]]
** メモ
[41] メタ情報の特性の名前と値として妥当なものの集合を、
HTML 4 仕様書はまったく規定していません。
そのようなものは[[プロファイル]]によって定義されます。
ですから [CODE(HTMLe)[meta]] 要素を使うときには、
([CODE(HTMLa)[http-equiv]] 属性を使ったものだけである場合を除いて)
必ず [CODE(HTMLe)[[[head]]]] 要素の
[CODE(HTMLa)[[[profile]]]] 属性が要ることになります。
とは言っても実際にはプロファイルなしで種々の値が実際にほとんど標準化せずに使われてきました。
プロファイルの使用はこのまま標準化せずにいくのは流石にまずいだろうということから設けられた努力目標のようなものでしょう。
- [1] ''META 要素あれこれ''
[2] [CODE(HTMLa)[[[http-equiv]]]] 属性はあまり使わないほうがいいと思うんです。。。
- [3] [[ISO 15924]] は ''[[name]]''属性の値として [CODE[Content-Script]] を提案しています。 [[content]]属性の値は[[読点]] (及び *[[WSP]]) で区切った1つ以上の[[用字系]]符号です。
- [4] ''HTML META Tags''
- [5] ''META Tag Dictionary - Admiral Online'' >>4 と同じものっぽい
- [32] ''DAISY 2.0 Specification'' : [CODE(HTML)[DC.[VAR[foo]]]] のようなのより [[XML名前空間]]的な [CODE(HTML)[DC:[VAR[foo]]]] がいい☆と言っている。
- [33] >>32 はほかに [CODE(HTML)[NCC:[VAR[foo]]]] を一杯定義しています。
[[#comment]]
** meta 要素の name 属性の値をとにかく例示するスレ
- [1] [[abstract]]
- [2] [[author]]
- [3] [[classification]]
- [4] [[copyright]]
- [5] [[description]] ([HTML4])
- [6] [[distribution]]
- [7] [[doc-class]]
- [8] [[doc-rights]]
- [9] [[doc-type]]
- [10] [[expires]]
- [11] [[generator]]
- [12] [[googlebot]] ([[Google]] 向け [CODE(HTML)[ROBOTS]])
- [13] [[keywords]] ([HTML4])
- [14] [[MSSmartTagsPreventParsing]] ([CODE(HTML)[true]] / [CODE(HTML)[false]])
- [15] [[owner]]
- [16] [[progid]]
- [17] [[rating]]
- [18] [[refresh]] ([[Refresh:]] 欄か?)
- [19] [[reply-to]] ([[http-equiv]] 使うべし)
- [20] [[resource-type]]
- [21] [[revisit-after]]
- [22] [[robots]] ([HTML4])
- [23] [[rating]]
- [24] [[language]]
- [25] [[subject]]
- [26] [[copyright]]
- [28] [[translator]] (W3C Validator にあった。)
- [29] [[Microsoft Theme]] ([SAMP(HTML)[blends 011, default]] M$ [[FrontPage]])
- [30] [[Microsoft Border]] ([SAMP(HTML)[tb, default]] 同上)
- [31] [[ixihook]] ([CODE(HTML)[xizhere]])
- [34] [[MS-IT-LOC]] ([SAMP(HTML)[Windows Help]] [[HTMLHelp]])
- [35] [[MS.LOCALE]] ([SAMP(HTML)[JA]])
- [36] [[MS-HAID]] ([SAMP(HTML)[a_CF_extract]] (HTMLHelp))
- [37] [[IBM:HPB-Input-Mode]] (mode/flm; pagewidth=750; pageheight=900)
- [38] [[Excel Workbook Frameset]] (少なくても [[Excel]] 10 が使用。 [CODE(HTML)[[[content]]]] 属性''存在すらなし''。)
[[#form:'%text(label=>"値",description=>"特に推奨が無ければ小文字にすべし。",size=>10,id=>value); %text(label=>参考,size=>20,id=>comment);':'-[%index;] [[%text(source=>value);]]%text(prefix=>" (",suffix=>")",source=>comment);']]
[50]
[CITE[DTV A S E L 1 (DASE-1) P 2: D A E ATSC Standard]] は、 [CODE(HTMLa)[name]] 属性で幾つかのこの規格で規定した名前以外には [CODE(HTML)[x-]] を接頭辞として付けることを要求しています。[SRC[5.1.1.6.7 [CODE(HTMLe)[link]] element]]
([[名無しさん]] [sage])
[[#comment]]
* メモ