HTML5の空要素タグの文法

HTML5の空要素タグについては、/ が入っても入っていなくてもどちらでもよいものと認識していた(参照: WHATWG FAQ - 日本語訳 - HTML5.JP)。しかし具体的に仕様を確認したことがまだなかったので、仕様書の9.1.2.1 Start tagsの項を読んでみた。(以下、自分なりの訳も付記してみました)

Start tags must have the following format:

(訳) 開始タグには、以下の書式がなければなりません:

1. The first character of a start tag must be a U+003C LESS-THAN SIGN character (<).

(訳) 1. 開始タグの先頭文字は U+003C LESS-THAN SIGN (<) でなければなりません。

2. The next few characters of a start tag must be the element's tag name.

(訳) 2. 開始タグの次の数文字が要素のタグ名でなければなりません。

3. If there are to be any attributes in the next step, there must first be one or more space characters.

(訳) 3. 次の段階に何か属性があれば、最初に、1つ以上の空白文字がなければなりません。

4. Then, the start tag may have a number of attributes, the syntax for which is described below. Attributes may be separated from each other by one or more space characters.

(訳) 4. そして、開始タグには、幾つかの属性があるかもしれません(その文法は以下で説明されます)。属性は1つ以上の空白文字によって互いに分けられるかもしれません。

5. After the attributes, there may be one or more space characters. (Some attributes are required to be followed by a space. See the attributes section below.)

(訳) 5. 属性の後に、1つ以上の空白文字があるかもしれません。(いくつかの属性は、空白が後に続くことを必要とします。以下の「属性」の項を見てください)

6. Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single U+002F SOLIDUS character (/). This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.

(訳) 6. そして、要素が空要素の1つであるか、または要素が外部要素であれば、一つの U+002F SOLIDUS (/) があるかもしれません。この文字は空要素においては何の効果もありませんが、外部要素においては、この文字は開始タグが自身を終了するものであることを示します。

7. Finally, start tags must be closed by a U+003E GREATER-THAN SIGN character (>).

(訳) 7. 最後に、U+003E GREATER-THAN SIGN (>) により開始タグを閉じなければなりません。

……という内容を読んで、以下の3点を確認できた。

ただ仕様書の文を読んで気になったのだが、この書き方だと、属性が無い場合に要素名の後に任意の空白が入るのが不可になってしまうのではないか、つまり <br /><br >のような書き方ができないのではないか、ということだった。空白については上記の3番と5番で説明されているが、どちらも属性がある場合に限定されているように見えるので。

自分の英語の解釈の間違いとかであればいいのだが……。

* * *

ところでHTML4では空要素は empty elements だったけれど、HTML5では void elements なのだな。日本語訳は引き続き「空要素」でよかっただろうか。