[2] void 要素は、構文としての HTML において、 終了タグが存在せず (存在できず) 常に開始タグのみで記述される要素のことです。
[7] HTML の構文定義上void要素とされているのは次の要素です >>6。
[8] これらは現在の HTML に含まれる要素ですが、実際には、不適合であって著者は使ってはいけないとされながらも後方互換性のために HTML構文解析器や直列化器は実装しなければならないとされているvoid要素 (serializes as void) があります。 これには次の要素が含まれます >>9。
[10] これに加えて、形式的にはvoid要素であるものの、構文解析器で展開される「マクロ」 的なタグであり、直列化器もvoid要素のようには扱わないものが2種類あります。 仕様書の直列化器の定義では参考までに注釈として言及がありました >>9, >>27。
[11] 歴史的にはこれら以外にも一時void要素として実装されていたものの現在に残っていないもの、 一部の実装にのみ残っているもの、定義が改められて現在ではvoid要素でないもの、 提案されたものの実装されなかったものなどがあります。
[14] 例えば spacer
要素はかつて Netscape Navigator
が実装しており、最近まで Gecko の構文解析器も void要素として扱っていましたが、
現在の HTML 仕様上は void要素ではありません。
[17] Opera は HTML5 の event-source
要素を実装していましたが、
現在では仕様からも実装からも削除されています。
[18] HTML5 は command
要素を void要素として定義しており、
一時構文解析器で実装もされていましたが、要素としては実装されておらず、
その後仕様からも削除されました。実装からも現在は削除されています。
[12] HTML文書には SVG や MathML の要素を含めることもできますが、 その場合、HTML の void要素と同じタグ名であったとしても、void要素とはならず、 通常の要素として構文解析・直列化されます。
<foo />
のように空要素構文を使って簡略化して表記することができます。
これは void要素でも認められていますが、この構文を使っているからといって
void要素であるとは限りません。[3] 歴史的には void要素は空要素や強制空要素とも呼ばれてきましたが、 内容モデルにおける空要素と区別するため、Web Applications 1.0 で新たに「void要素」という呼称が導入されました。
[21] void要素の内容モデルは空となっています。しかし、 内容モデルが空の要素がすべてvoid要素であるわけではありません。
[22] また、 void要素は HTML構文における概念で、 XML (XHTML) や DOM には存在しません。 void要素であっても、 XML や DOM では子供を持つことができます。
[1] HTML mode では、 Gecko は <br></br>
を <br><br>
と解釈するようです。それでいて <input ...></input>
は <input/>
と意図したように解釈してくれます。
[4] XSLT 2.0 and XQuery 1.0 Serialization (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xslt-xquery-serialization-20101214/#XHTMLEMPTY
[5] XSLT 2.0 and XQuery 1.0 Serialization (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xslt-xquery-serialization-20101214/#XML-ISLAND
[16] XSLT and XQuery Serialization 3.0 ( ( 版)) http://www.w3.org/TR/xslt-xquery-serialization-3/#XHTMLVOID
[23] Fix #234: Change <menuitem> from void to like-<option> · whatwg/html@5e49a20 ( 版) https://github.com/whatwg/html/commit/5e49a20874fabef620bf7ea0be7534c73fbd58c4
[25] Remove <keygen> (domenic著, ) https://github.com/whatwg/html/commit/5baa38720f6e83c94a50018c4565808ad548d69c
[26] XSLT and XQuery Serialization 3.1 () https://www.w3.org/TR/2017/REC-xslt-xquery-serialization-31-20170321/#XHTMLVOID
[27] Serialize the children of void elements as the empty string (Zirro著, ) https://github.com/whatwg/html/commit/d36d3eb0e2164d3bdec168f047f15b7925bd5f83
[28] Should the innerHTML of void elements include child nodes? · Issue #4220 · whatwg/html () https://github.com/whatwg/html/issues/4220
[29] Serialize the children of void elements as the empty string by Zirro · Pull Request #4238 · whatwg/html () https://github.com/whatwg/html/pull/4238