なんだか良く分からない用語を集めてみました。
<H1>タグは<H1>と言うタグで始まって</H1>というタグで終わってその中身が<H1>タグなんだそうです。本気で意味不明です。
以下のような記述があったとしますと、
<H1>大見出し</H1>
これは「大見出し」というテキストが「H1要素」としてマーク付けされています。<H1> は H1要素の開始タグ、</H1> は H1要素の終了タグ、「大見出し」というテキストは H1要素の中身(内容、content)です。先に述べたような説明をする人は、おそらく、ここで言う「タグ」「要素」「中身」を区別せずに「タグ」と呼んでいるのでしょう。
見出しを指定する H1 などの要素、この H を ヘッダの略だと説明している人がいます。H は Heading です。知らないものをわざわざ説明する前に、仕様書の原文を読んでほしいところです。
水平線を引く HR要素を「ヘアライン」と呼んでいる人がいます。hairline のつもりなのでしょうか? それなら HL でなければおかしいと思うのですが。いや、ひょっとしたら HaiRline なのかも……ってかなり強引ですが。
ちなみに、HTML の HR要素の名前は Horizontal Rule から来ています。
エンプティタグとはその名の通り空っぽのタグのことで、 <>
が「エンプティスタートタグ」、</>
が「エンプティエンドタグ」です。HTML の SGML宣言では "SHORTTAG YES" になっていますので、終了タグをエンプティタグで代用したりできるはずなのです(SGMLの短縮タグ機構 - エンプティタグ を参照)。しかし、仕様書は「こういうのを解釈できるユーザーエージェントは滅多にないから使うのはやめとけ」と言っています。もっともです。
それはそれで良いのですが、何を思ったか、<BR>や<IMG>をエンプティタグと説明している人がいるのです! どこが空っぽなのでしょうか? ちゃんと BR と入っているではありませんか。
これはおそらく、終了タグが書けない空要素(エンプティエレメント)のことを言っているのではないかと思うわけですが、中には、空要素ですらない <P> や <LI>、さらには <TD> までエンプティタグだと説明している人がいて、訳が分かりません。
彼らはいったい何を「エンプティタグ」と呼んでいるのでしょう? すごい謎です。ああ、助けて、はじめちゃん!
<OPTION>タグは単独では意味を持ちません。現在は前タグのみのエンプティングとして扱います。
……という解説を見たことがあります。前タグは開始タグのことだろうと思いますが、エンプティングというのが全く意味不明です。「エンプティタグ」のつもりなのでしょうか。それにしても意味不明です。ここまで意味不明だとかえってすがすがしいというか何というか……。
ちなみに、SELECT要素の中で使われる OPTION要素は終了タグ省略可能ですが、空要素ではありません。
HTML において、<!-- と --> で囲まれたものはコメントです。表示はされません。
それはいいのですが、これを「コメントタグ」と説明している人がいます。もっと酷いのになると、<!-- を開始タグ、 --> を終了タグと呼んだりしています。どこがタグなんだか……。
これはタグではありません。SGML において「マーク宣言」と呼ばれるものです。<! で始まるものはたくさんありますが、それらは全てマーク宣言です( <![ ではじまるとマーク区間になりますが)。
IEの独自拡張には <COMMENT> というタグがあるそうですが、これはコメントタグで良いでしょう──「HTML3.2の解説書」がこれを紹介する是非はともかくとして。
< と > で囲まれた <P> のようなものを「タグ」と呼びます。それは良いのですが、時に、タグのことを「命令だ」と説明している人がいます。酷いのになると、そもそもタグと呼ばずにコマンドと言っていたりします。
ありがちなのは、「<B>こんにちは</B>」の <B> が「ここから以降の文字を太字にしろ」という命令だという説明です。一見すると分かるような気がするのですが、この解説、B を SPAN に変えたとたんに訳が分からなくなります。「<SPAN>こんにちは</SPAN>」の <SPAN> は何を命令しているのでしょうか? 何も命令していないので、あってもなくても同じでしょうか? 決してそんなことはありません。
タグは命令ではありません。タグというのは、ここからここまでが要素であるということを明示する印にすぎないのです。ですから、要素の区切りが明らかなときは省略できたりもします。
なお、本当に命令をしたいときは処理命令(Processing Instructions)というものを使うことになっています。処理命令は <? で始まるもので、タグやマーク宣言とはまた違うものです。たとえば <?\newpage>
で改ページさせたりします(けれども処理命令は処理系に強く依存するため、あまり好ましくないとされています。現に二大ブラウザは全く対応していませんし)。XML文書の先頭には <?xml version="1.0" encoding="Shift_JIS" ?>
などという XML宣言を書きますが、これも処理命令の一種です。
結局、タグと命令とは別の物です。タグというのは単なる印で、何かを命令しているわけではありません。
何だか良く分かりませんが、META の説明で「日本語では ISO-2022-JP を使うのが正式」と説明している本がありました。何をもって「正式」としているのかさっぱり分からないのですが……。
Shift_JIS や EUC-JP よりも ISO-2022-JP を使った方が良い、という議論は確かにあります。しかし、ISO-2022-JP が正式だという根拠は何でしょうか? HTML2.0 には ISO-2022-JP が使えるという記述がありますが、正式だとも他のものが使えないとも言っていませんし、そもそも HTML2.0 は日本語を想定していませんからあまり参考にはなりません。
IANA に登録されているものが正式だ、というのなら Shift_JIS や EUC-JP もしっかり登録されています。また、一部で誤解されているようですが ISO-2022-JP は ISO の規格ではありません。ISO規格である ISO2022 の機能を利用しているのでこの名がありますが、ISO-2022-JP 自体が ISO 規格化されているわけではないのです。ISO9000 は ISO 規格でも、ISO9000 を取得した企業は ISO 規格ではない、というのと同じ事です(違うって)。
というわけで、別に日本語は ISO-2022-JP と決まっているわけではありません。時代の流れとしては、XML などの事を考えて UTF-8 にしておくという選択肢が良いのかもしれません。お勧めはしませんが。
URL の書式を解説するときに、頭の "http" などの文字列を「プロトコル」と解説している本があります。が、これはプロトコルではなくて「スキーム」です。たとえば mailto:bakera@star.email.ne.jp という URL の "mailto" はプロトコルの名前ではありません。スキーム名は mailto ですが、使われるプロトコルは SMTP や ESMTP です。同様に file や https などもプロトコルではありません。http や ftp の場合はたまたまスキーム名とプロトコル名が一致しますが、むしろ一致しない場合の方が多いくらいです。
タグとタグで挟まれた中身のことを「エレメントの要素」と呼びます……などとと紹介している本が複数あります。JIS X 4151 における "element" の訳語が「要素」なのですから、「エレメントの要素」は「要素の要素」ということになります。訳が分かりません。
HTML4.01 の 3.2.1 辺りを見れば分かるように……
Some HTML element types have no content. For example, the line break element BR has no content; its only role is to terminate a line of text. Such empty elements never have end tags. The document type definition and the text of the specification indicate whether an element type is empty (has no content) or, if it can have content, what is considered legal content.
要素の中身は "content" と呼ばれています。JIS X 4151 では、これを「内容」と訳しています。私は適当に「中身」と呼んだりしていますが、これを「要素」と呼ぶのはどう考えても無理があります。いったい誰が「エレメントの要素」などと呼んでいるのでしょうか。
……って尋ねるまでもなく「正しいHTML4.0+CSSリファレンス&作法」に決まっていますが、それをそのまま孫引きしていると言うことがまる分かりですね。件の本には「既存の本から丸写しでは駄目だ、ちゃんと仕様書を読め」というようなことが書いてあったはずなのですが、いやはや……。
IFRAME 要素で実現されるモノを「フローティングフレーム」と呼んでいる人がいます。いったい何がフロートしているのでしょうか?
フロートというのは、ある要素が通常のテキスト流し込み規則から外れて、浮いている状態を指します。たとえば、align="left" を指定した IMG や、float: right を指定した要素などは「フロート」しています。
IFRAME にも align 属性や float プロパティを指定すればフロートしますが、それらの指定がなければフロートしないのです。align の指定も float の指定もない IFRAME を「フローティングフレーム」と呼ぶのは無理があります。
ちなみに、私は IFRAME を「インラインフレーム」と呼んでいます。