[3] HTML の
head
要素は、
文書の内容とはみなされない文書に関する情報
(メタ情報) を記述するのに使います。
[11] 仕様書:
(title
& base
?) +(%head.misc)
html
第1子要素属性名 | 属性値型 | 既定値 | 意味 | 出典 |
lang | 言語札 | (継承) | 自然言語 | [HTML 4], [XHTML 1] |
xml:lang | 言語札 | (継承) | 自然言語 | [XHTML 1] |
profile | URI参照 *(空白 URI参照) | (なし) | メタ情報の辞書 | [HTML 4], [XHTML 1] |
[6] HTML 4 などでは、
内容模型の表現に添加要素指定が使われていて少々分かりにくくなっていますが、
その主張は簡単なことで、
すべての要素の出現順序は無制限。
です。title
は丁度1つ必要。 base
は高々1つ必要。他は任意個 OK。
ただし、 DTD に現れない仕様書本文での制限で、
http-equiv
属性が Content-Type
である meta
を使う時は可能な限りはじめの方にいれることになっています
HTML 4。
[7] 古い時代の DTD 案では、 title
が必須でなかったこともありました。
実際の文書では今でも title
が欠けていることがしばしばあります。
また、 base
が
(href
と target
などで)
複数あることもたまにあります。
[4] UA は通常この要素の内容をレンダリングしませんが、 何らかの手段で利用者にその情報を提示しても構いません HTML 4。
メタ情報の重要性が説かれる現在では、 汎用 UA はむしろその手段を積極的に用意するべきでしょう。
title
要素、 style
要素のように、
内容を持ち得る要素が含まれ得ますから、
それらを通常の表示モードでレンダリングすることが無いように注意が必要です。
head
要素内では object
要素も使えますが、その物体または代替内容も表示しないように注意する必要があります。
[8] 一番初めの SGML
もどきな頃の HTML に
head
要素型はありませんでした。
その後 SGML
的形式を整えるに当たって、
本文そのものではない title
要素を収納する要素が考えられました。
Dan Connolly は、 新しい要素型の導入にあたって、 次のようなことを言っています。
document
は文書の本体のほとんどを含みます。これで混合内容の問題を解決できます。 この要素をbody
という名前にして、title
やnextid
やisindex
を囲む省略可能なheader
を導入することもできます。 (1992年11月19日 http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/315.html)
混合内容の問題と言うのは、後に fieldset
などでもかかわることになる、ある意味で因縁の問題です。
当時の HTML
の書式を素直に記述すると、
((TITLE? & ISINDEX?), (H1|H2|DL|OL|XMP|#PCDATA)+)
になります。ところが、これは混合内容になってしまいます。
SGML の仕様上、
title
要素や
isindex
要素の前に s
を入れることができなくなってしまうのです。
これへの対策はタグが省略可能なダミーの要素を
PCDATA
が含まれる部分に入れるのが定石で、
それを Dan は document
or
body
にしようと言っています。
これに対して、 TimBL が、
後者がいいですね。 Header と Body というのはメイルの名付け方にも似ていますし。 (1992年11月19日 http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/319.html)
と答えております。その後 TimBL が
header
とbody
も (DTD に) 入れて欲しいです。 (1992年12月1日 http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/380.html)
と言いますと、 Dan は、 ずっと取り組んでいるけどうまくいかないと答えています。 (1992年12月1日 http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/383.html)
この時 Dan が考えていた文書の構造は
<!ELEMENT HTML O O ((TITLE? & NEXTID? & ISINDEX?), BODY)>
でした。
この内容模型の前半部分を header
要素にした時に、
既存データとの互換性のために、
という要件を満たす DTD を書くのに苦心していた模様です。
同じ日の http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/390.html
では、諦めて title
を文書中どこでも良いことにしちゃえ! とか、
上位プロトコルの Subject
とか使えばいいじゃん!
なんて言ってます。
更に同じ日の
http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/393.html
では、 Tim は header
や body
を使ってるけど、
その方法だと既存の文書と互換な DTD
が書けないよと嘆いてます。
しばらくして、 12月4日の
http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/402.html
では、構造が壊れてしまうものの、
head
と body
を既存の文書と互換に追加する方法を思いついたと書いています。
(ここでなぜか header
が
head
に変わっています。)
その方法はメイルには書かれていないのですが、
12月3日の Dan の html.dtd
には次のようにあります。
<!ENTITY % anyelement "HEAD | %headelement; | BODY | %bodyelement;"> <!ELEMENT HTML O O ((%anyelement|#PCDATA)*, PLAINTEXT?)> <!ELEMENT HEAD - - (TITLE? & ISINDEX? & NEXTID?)> <!ELEMENT BODY - - (%bodyelement|#PCDATA)*>
[9]
1993年1月11日の Dan の http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q1.messages/39.html では header
を出力するプログラムを head
に修正するように言っています。すぐ後に Tim
が何も言わずに修正しています。
[10]
1993年4月9日の Dan の html.dtd
から、
<![ %HTML.PLAINTEXT [ <!ENTITY % html-content "(HEAD, BODY), PLAINTEXT?"> ]]> <!ENTITY % html-content "HEAD, BODY"> <!ELEMENT HTML O O (%html-content)>で
head
も body
もタグ省略可能な現在と同じ形の宣言になりました。(初めからこうしておけばよかったと思うのですが、 Dan が最初に試した当時の sgmls ではうまく通らなかったのでしょうか?)
head
要素、document.head
[22] head
要素の第1子要素たる head
要素を文書 head
要素といいます。
[23] Document
オブジェクトの head
属性は、取得時に文書head
要素を返します。
[20] Web Applications 1.0 r4082 Add document.head. ( 版) http://html5.org/tools/web-apps-tracker?from=4081&to=4082
head
要素 (SMIL)[12] SMIL の head
要素は、時間的な動作に関係のない情報を含める要素です
SMIL 1.0。
head
Element
http://www.w3.org/TR/1998/REC-smil-19980615/#headhead
要素 (OPML)[13] OPML の head
要素は、文書全体に関係する情報を含める要素です。
[15] 仕様書:
[2] HTML 由来で DTBook や NCX や資源DTDにもありました。 >>26
head
要素 (XFrames)[21] XFrames ( 版) http://www.w3.org/TR/2010/NOTE-xframes-20101216/#s_head-element
HEAD
要素 (DjVu XML)[19] ちょっとしたメモ - いろいろなAtom (Masahide Kanzaki 著, 版) http://www.kanzaki.com/memo/2004/10/22-1
[24] [whatwg] Fwd: Allow Select SVG Elements In <head> ( ( 版)) http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-December/034255.html
[25] ncsa-mosaic/CHANGES at master · alandipert/ncsa-mosaic ( ( 版)) https://github.com/alandipert/ncsa-mosaic/blob/master/CHANGES#L63