コンテンツ・モデル
Updated / Published
コンテンツ・モデル(内容モデル)とは、要素ごとにメタデータ・コンテンツ、フロー・コンテンツ、セクショニング・コンテンツ、ヘッディング・コンテンツ、フレージング・コンテンツ、エンベッディッド・コンテンツ、インタラクティブ・コンテンツ、パルパブル・コンテンツのいずれか(複数あり)にグループ分けがなされており、従来のインライン要素にブロックレベル要素を含めることができないといった概念と同様、その要素にはどんな内容(要素およびテキスト)を含めることができるのかを定義したものです。
<!DOCTYPE html>必須。この宣言はブラウザのレンダリングモードを標準準拠モードにする手段として用い、公式のDTDは存在しない。
<html>(省略可)<head>(省略可)メタデータ・コンテンツ
<base />- 空
<link />- 空
<meta />- 空
<noscript>-</noscript>- スクリプトが無効な場合:0個以上の
link要素,meta要素,style要素 - スクリプトが有効な場合:テキスト
- スクリプトが無効な場合:0個以上の
<script>-</script>src属性がある場合:
空、もしくは著作権情報やAPI 情報といったスクリプトの説明文src属性がない場合:
JavaScriptのコード等(text/javascript以外を用いるのであれば、type属性は必須)
<style>-</style>- CSSのコード等(
text/css以外を用いるのであれば、type属性は必須) <title>-</title>- テキストのみ
必須要素であり、必ず1個だけ定義
</head>(省略可)<body>(省略可)フロー・コンテンツ
<a>-</a>- トランスペアレント(ただし、インタラクティブ・コンテンツに該当する要素を除く)
<address>-</address>- フロー・コンテンツ(ただし、ヘッディング・コンテンツとセクショニング・コンテンツにも該当する要素,
address要素,header要素,footer要素を除く) <article>-</article>- フロー・コンテンツ
<aside>-</aside>- フロー・コンテンツ
<audio>-</audio>src属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素<source />- 空
<b>-</b>- フレージング・コンテンツ
<bdi>-</bdi>- フレージング・コンテンツ
<bdo>-</bdo>- フレージング・コンテンツ
<blockquote>-</blockquote>- フロー・コンテンツ
<br />- 空
<button>-</button>- フレージング・コンテンツ(ただし、インタラクティブ・コンテンツにも該当する要素を除く)
<canvas>-</canvas>- トランスペアレント
<cite>-</cite>- フレージング・コンテンツ
<code>-</code>- フレージング・コンテンツ
<data>-</data>- フレージング・コンテンツ
<datalist>-</datalist>- フレージング・コンテンツ
- 0個以上の
option要素
<del>-</del>- トランスペアレント
<details>-</details>- 最初に1つの
summary要素 summary要素の直後(兄弟要素関係)にフロー・コンテンツ
<summary>-</summary>- フレージング・コンテンツ
- 最初に1つの
<dfn>-</dfn>- フレージング・コンテンツ(ただし、
dfn要素を除く) <div>-</div>- フロー・コンテンツ
<dl>-</dl>- 1個以上の
dt要素,dd要素<dt>-</dt>- フロー・コンテンツ(ただし、
header,footer,article,aside,nav,section,h1-h6要素を除く) <dd>-</dd>- フロー・コンテンツ
<em>-</em>- フレージング・コンテンツ
<embed />- 空
<fieldset>-</fieldset>- 最初に1個の
legend要素 legend要素の直後(兄弟要素関係)にフロー・コンテンツ
<legend>-</legend>- フレージング・コンテンツ
- 最初に1個の
<figure>-</figure>- 最初に1個の
figcaption要素、その直後にフロー・コンテンツ - またはフロー・コンテンツの後に1つの
figcaption要素 - またはフロー・コンテンツ
<figcaption>-</figcaption>- フロー・コンテンツ
- 最初に1個の
<footer>-</footer>- フロー・コンテンツ(ただし、
header要素,footer要素を除く) <form>-</form>- フロー・コンテンツ(ただし、
form要素を除く) <h1-h6>-</h1-h6>- フレージング・コンテンツ
<header>-</header>- フロー・コンテンツ(ただし、
header要素,footer要素を除く) <hr />- 空要素
<i>-</i>- フレージング・コンテンツ
<iframe>-</iframe>- テキストのみ
<img />- 空
<input />- 空
<ins>-</ins>- トランスペアレント
<kbd>-</kbd>- フレージング・コンテンツ
<keygen />- 空
<label>-</label>- フレージング・コンテンツ(ただし、
label要素自身と、そのラベル内容と関係のないbutton,keygen,input,meter,output,progress,select,textarea要素を除く) <main>-</main>- フロー・コンテンツ(ただし、
article,aside,footer,header,nav要素の子孫としては使えない) <map>-</map>- トランスペアレント
<area />- 空
<mark>-</mark>- フレージング・コンテンツ
<math>-</math>- インラインMathMLの要素
<meter>-</meter>- フレージング・コンテンツ(ただし、
meter要素を除く) <nav>-</nav>- フロー・コンテンツ
<noscript>-</noscript>- トランスペアレント(ただし、
noscript要素を除く) <object>-</object>- 0個以上の
param要素に続き、トランスペアレント(ただし、フロー・コンテンツが入る場合は、最初にparam要素、その後にフロー・コンテンツが続く)<param />- 空
<ol>-</ol>- 0個以上の
li要素<li>-</li>- フロー・コンテンツ
<output>-</output>- フレージング・コンテンツ
<p>-</p>- フレージング・コンテンツ
<pre>-</pre>- フレージング・コンテンツ
<progress>-</progress>- フレージング・コンテンツ(ただし、
progress要素を除く) <q>-</q>- フレージング・コンテンツ
<ruby>-</ruby>- 次の組み合わせを1組以上
- ルビを振られるテキスト
ruby要素を含まないフレージング・コンテンツ- または
ruby要素を含まない単独のruby要素
- ルビとなるテキスト
- 1個以上の
rt要素 - または
rp要素の後に1個以上のrt要素が続き、そのrt要素の後ろにrp要素が続く
- 1個以上の
<rp>-</rp>- フレージング・コンテンツ
<rt>-</rt>- フレージング・コンテンツ
- ルビを振られるテキスト
<s>-</s>- フレージング・コンテンツ
<samp>-</samp>- フレージング・コンテンツ
<script>-</script>src属性がある場合:
空、もしくは著作権情報やAPI 情報といったスクリプトの説明文src属性がない場合:
JavaScriptのコード等(text/javascript以外を用いるのであれば、type属性は必須)
<section>-</section>- フロー・コンテンツ(章・節・項を表す対のヘッディング・コンテンツを必ず伴うこと)
<select>-</select>- 0個以上の
option要素,optgroup要素<option>-</option>- テキストのみ
<optgroup>-</optgroup>label属性必須、0個以上のoption要素<option>-</option>- テキストのみ
<small>-</small>- フレージング・コンテンツ
<span>-</span>- フレージング・コンテンツ
<strong>-</strong>- フレージング・コンテンツ
<style>-</style>- CSSのコード等(
scoped属性必須、text/css以外を用いるのであればtype属性は必須) <sub>-</sub>- フレージング・コンテンツ
<sup>-</sup>- フレージング・コンテンツ
<svg>-</svg>- インラインSVGの要素
<table>-</table>caption要素が0個、または1個- 0個以上の
col要素、または 0個以上のcolgroup要素 thead要素が0個、または1個tfoot要素が0個、または1個- 1個以上の
tbody要素、または1個以上のtr要素
<caption>-</caption>- フロー・コンテンツ(ただし、
table要素を除く) <col />- 空
<colgroup>-</colgroup>span属性がある場合:空span属性がある場合:0個以上のcol要素<col />- 空
<thead>-</thead>- 0個以上の
tr要素<tr>-</tr>- 0個以上の
th要素<th>-</th>- フレージング・コンテンツ
<tfoot>-</tfoot>- 0個以上の
tr要素<tr>-</tr>- 0個以上の
td要素,th要素<th>-</th>- フレージング・コンテンツ
<td>-</td>- フロー・コンテンツ
<tbody>-</tbody>- 0個以上の
tr要素<tr>-</tr>- 0個以上の
td要素,th要素<th>-</th>- フレージング・コンテンツ
<td>-</td>- フロー・コンテンツ
<tr>-</tr>- 0個以上の
td要素,th要素<th>-</th>- フレージング・コンテンツ
<td>-</td>- フロー・コンテンツ
<textarea>-</textarea>- テキストのみ
<time>-</time>- フレージング・コンテンツ(ただし、
time要素を除く) <ul>-</ul>- 0個以上の
li要素<li>-</li>- フロー・コンテンツ
<u>-</u>- フレージング・コンテンツ
<var>-</var>- フレージング・コンテンツ
<video>-</video>src属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素に続き、トランスペアレント(ただし、video要素,audio要素を除く)<source />- 空
<wbr />- 空
- テキスト
- テキストノードのこと
セクショニング・コンテンツ
<article>-</article>- フロー・コンテンツ
<aside>-</aside>- フロー・コンテンツ
<nav>-</nav>- フロー・コンテンツ
<section>-</section>- フロー・コンテンツ(章・節・項を表す対のヘッディング・コンテンツを必ず伴うこと)
ヘッディング・コンテンツ
<h1-h6>-</h1-h6>- フレージング・コンテンツ
フレージング・コンテンツ
<a>-</a>- 子孫要素にフレージング・コンテンツしか含んでいない場合に限る、コンテンツ・モデルはフレージング・コンテンツ(ただし、インタラクティブ・コンテンツに該当する要素を除く)
<abbr>-</abbr>- フレージング・コンテンツ
<audio>-</audio>src属性がある場合:
フレージング・コンテンツ(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素<source />- 空
<b>-</b>- フレージング・コンテンツ
<bdi>-</bdi>- フレージング・コンテンツ
<bdo>-</bdo>- フレージング・コンテンツ
<br />- 空
<button>-</button>- フレージング・コンテンツ(ただし、インタラクティブ・コンテンツにも該当する要素を除く)
<canvas>-</canvas>- フレージング・コンテンツ
<cite>-</cite>- フレージング・コンテンツ
<code>-</code>- フレージング・コンテンツ
<data>-</data>- フレージング・コンテンツ
<del>-</del>- 子孫要素にフレージング・コンテンツしか含んでいない場合に限る、コンテンツ・モデルはフレージング・コンテンツ
<details>-</details>- 最初に1つの
summary要素 summary要素の直後(兄弟要素関係)にフレージング・コンテンツ
<summary>-</summary>- フレージング・コンテンツ
- 最初に1つの
<dfn>-</dfn>- フレージング・コンテンツ(ただし、
dfn要素を除く) <em>-</em>- フレージング・コンテンツ
<embed />- 空
<i>-</i>- フレージング・コンテンツ
<iframe>-</iframe>- テキストのみ
<img />- 空
<input />- 空
<ins>-</ins>- 子孫要素にフレージング・コンテンツしか含んでいない場合に限る、コンテンツ・モデルはフレージング・コンテンツ
<kbd>-</kbd>- フレージング・コンテンツ
<keygen />- 空
<label>-</label>- フレージング・コンテンツ(ただし、
label要素自身と、そのラベル内容と関係のないbutton,keygen,input,meter,output,progress,select,textarea要素を除く) <map>-</map>- 子孫要素にフレージング・コンテンツしか含んでいない場合に限る、コンテンツ・モデルはフレージング・コンテンツ
<area />- 空
<mark>-</mark>- フレージング・コンテンツ
<math>-</math>- インラインMathMLの要素
<meter>-</meter>- フレージング・コンテンツ(ただし、
meter要素を除く) <noscript>-</noscript>- フレージング・コンテンツ(ただし、
noscript要素を除く) <object>-</object>- 0個以上の
param要素に続き、フレージング・コンテンツ<param />- 空
<output>-</output>- フレージング・コンテンツ
<progress>-</progress>- フレージング・コンテンツ(ただし、
progress要素を除く) <q>-</q>- フレージング・コンテンツ
<ruby>-</ruby>- 次の組み合わせを1組以上
- ルビを振られるテキスト
ruby要素を含まないフレージング・コンテンツ- または
ruby要素を含まない単独のruby要素
- ルビとなるテキスト
- 1個以上の
rt要素 - または
rp要素の後に1個以上のrt要素が続き、そのrt要素の後ろにrp要素が続く
- 1個以上の
<rp>-</rp>- フレージング・コンテンツ
<rt>-</rt>- フレージング・コンテンツ
- ルビを振られるテキスト
<s>-</s>- フレージング・コンテンツ
<samp>-</samp>- フレージング・コンテンツ
<script>-</script>src属性がある場合:
空、もしくは著作権情報やAPI 情報といったスクリプトの説明文src属性がない場合:
JavaScriptのコード等(text/javascript以外を用いるのであれば、type属性は必須)
<select>-</select>- 0個以上の
option要素,optgroup要素<option>-</option>- テキストのみ
<optgroup>-</optgroup>label属性必須、0個以上のoption要素<option>-</option>- テキストのみ
<small>-</small>- フレージング・コンテンツ
<span>-</span>- フレージング・コンテンツ
<strong>-</strong>- フレージング・コンテンツ
<style>-</style>- CSSのコード等(
scoped属性必須、text/css以外を用いるのであればtype属性は必須) <sub>-</sub>- フレージング・コンテンツ
<sup>-</sup>- フレージング・コンテンツ
<svg>-</svg>- インラインSVGの要素
<textarea>-</textarea>- テキストのみ
<time>-</time>- フレージング・コンテンツ(ただし、
time要素を除く) <u>-</u>- フレージング・コンテンツ
<var>-</var>- フレージング・コンテンツ
<video>-</video>src属性がある場合:
フレージング・コンテンツ(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素に続き、フレージング・コンテンツ(ただし、video要素,audio要素を除く)<source />- 空
<wbr />- 空
- テキスト
- テキストノードのこと
エンベッディッド・コンテンツ
<audio>-</audio>src属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素<source />- 空
<canvas>-</canvas>- トランスペアレント
<embed />- 空
<iframe>-</iframe>- テキストのみ
<img />- 空
<math>-</math>- インラインMathMLの要素
<object>-</object>- 0個以上の
param要素に続き、トランスペアレント(ただし、フロー・コンテンツが入る場合は、最初にparam要素、その後にフロー・コンテンツが続く)<param />- 空
<svg>-</svg>- インラインSVGの要素
<video>-</video>src属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素に続き、トランスペアレント(ただし、video要素,audio要素を除く)<source />- 空
インタラクティブ・コンテンツ
<a>-</a>- トランスペアレント(ただし、インタラクティブ・コンテンツに該当する要素を除く)
<audio>-</audio>controls属性が指定された場合に限る、コンテンツ・モデルはsrc属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素<source />- 空
<button>-</button>- フレージング・コンテンツ(ただし、 インタラクティブ・コンテンツにも該当する要素を除く)
<details>-</details>- 最初に1つの
summary要素 summary要素の直後(兄弟要素関係)にフロー・コンテンツ
<summary>-</summary>- フレージング・コンテンツ
- 最初に1つの
<embed />- 空
<iframe>-</iframe>- テキストのみ
<img />usemap属性が指定された場合に限る、コンテンツ・モデルは空<input />type属性が"hidden"でない場合に限る、コンテンツ・モデルは空<keygen />- 空
<label>-</label>- フレージング・コンテンツ(ただし、
label要素自身と、そのラベル内容と関係のないbutton,keygen,input,meter,output,progress,select,textarea要素を除く) <object>-</object>usemap属性が指定された場合に限る、コンテンツ・モデルは
0個以上のparam要素に続き、トランスペアレント(ただし、フロー・コンテンツが入る場合は、最初にparam要素、その後にフロー・コンテンツが続く)<param />- 空
<select>-</select>- 0個以上の
option要素,optgroup要素<option>-</option>- テキストのみ
<optgroup>-</optgroup>label属性必須、0個以上のoption要素<option>-</option>- テキストのみ
<textarea>-</textarea>- テキストのみ
<video>-</video>controls属性が指定された場合に限る、コンテンツ・モデルはsrc属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素に続き、トランスペアレント(ただし、video要素,audio要素を除く)<source />- 空
パルパブル・コンテンツ
<a>-</a>- トランスペアレント(ただし、インタラクティブ・コンテンツに該当する要素を除く)
<abbr>-</abbr>- フレージング・コンテンツ
<address>-</address>- フロー・コンテンツ(ただし、ヘッディング・コンテンツとセクショニング・コンテンツにも該当する要素,
address要素,header要素,footer要素を除く) <article>-</article>- フロー・コンテンツ
<aside>-</aside>- フロー・コンテンツ
<audio>-</audio>controls属性が指定された場合に限る、コンテンツ・モデルはsrc属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素<source />- 空
<b>-</b>- フレージング・コンテンツ
<bdi>-</bdi>- フレージング・コンテンツ
<bdo>-</bdo>- フレージング・コンテンツ
<blockquote>-</blockquote>- フロー・コンテンツ
<button>-</button>- フレージング・コンテンツ(ただし、インタラクティブ・コンテンツにも該当する要素を除く)
<canvas>-</canvas>- トランスペアレント
<cite>-</cite>- フレージング・コンテンツ
<code>-</code>- フレージング・コンテンツ
<data>-</data>- フレージング・コンテンツ
<details>-</details>- 最初に1つの
summary要素 summary要素の直後(兄弟要素関係)にフロー・コンテンツ
<summary>-</summary>- フレージング・コンテンツ
- 最初に1つの
<dfn>-</dfn>- フレージング・コンテンツ(ただし、
dfn要素を除く) <div>-</div>- フロー・コンテンツ
<dl>-</dl>- 子要素に1個以上の
dt要素とその対となるdd要素を内包する場合に限る、コンテンツ・モデルは1個以上のdt要素,dd要素<dt>-</dt>- フロー・コンテンツ(ただし、
header,footer,article,aside,nav,section,h1-h6要素を除く) <dd>-</dd>- フロー・コンテンツ
<em>-</em>- フレージング・コンテンツ
<embed />- 空
<fieldset>-</fieldset>- 最初に1個の
legend要素 legend要素の直後(兄弟要素関係)にフロー・コンテンツ
<legend>-</legend>- フレージング・コンテンツ
- 最初に1個の
<figure>-</figure>- 最初に1個の
figcaption要素、その直後にフロー・コンテンツ - またはフロー・コンテンツの後に1つの
figcaption要素 - またはフロー・コンテンツ
<figcaption>-</figcaption>- フロー・コンテンツ
- 最初に1個の
<footer>-</footer>- フロー・コンテンツ(ただし、
header要素,footer要素を除く) <form>-</form>- フロー・コンテンツ(ただし、
form要素を除く) <h1-h6>-</h1-h6>- フレージング・コンテンツ
<header>-</header>- フロー・コンテンツ(ただし、
header要素,footer要素を除く) <i>-</i>- フレージング・コンテンツ
<iframe>-</iframe>- テキストのみ
<img />- 空
<input />type属性の値がhiddenでない場合に限る、コンテンツモデルは空<ins>-</ins>- トランスペアレント
<kbd>-</kbd>- フレージング・コンテンツ
<keygen />- 空
<label>-</label>- フレージング・コンテンツ(ただし、
label要素自身と、そのラベル内容と関係のないbutton,keygen,input,meter,output,progress,select,textarea要素を除く) <main>-</main>- フロー・コンテンツ(ただし、
article,aside,footer,header,nav要素の子孫としては使えない) <map>-</map>- トランスペアレント
<area />- 空
<mark>-</mark>- フレージング・コンテンツ
<math>-</math>- インラインMathMLの要素
<meter>-</meter>- フレージング・コンテンツ(ただし、
meter要素を除く) <nav>-</nav>- フロー・コンテンツ
<object>-</object>- 0個以上の
param要素に続き、トランスペアレント(ただし、フロー・コンテンツが入る場合は、最初にparam要素、その後にフロー・コンテンツが続く)<param />- 空
<ol>-</ol>- 子要素に1個以上の
li要素を内包する場合に限る、コンテンツモデルは1個以上のli要素<li>-</li>- フロー・コンテンツ
<output>-</output>- フレージング・コンテンツ
<p>-</p>- フレージング・コンテンツ
<pre>-</pre>- フレージング・コンテンツ
<progress>-</progress>- フレージング・コンテンツ(ただし、
progress要素を除く) <q>-</q>- フレージング・コンテンツ
<ruby>-</ruby>- 次の組み合わせを1組以上
- ルビを振られるテキスト
ruby要素を含まないフレージング・コンテンツ- または
ruby要素を含まない単独のruby要素
- ルビとなるテキスト
- 1個以上の
rt要素 - または
rp要素の後に1個以上のrt要素が続き、そのrt要素の後ろにrp要素が続く
- 1個以上の
<rp>-</rp>- フレージング・コンテンツ
<rt>-</rt>- フレージング・コンテンツ
- ルビを振られるテキスト
<s>-</s>- フレージング・コンテンツ
<samp>-</samp>- フレージング・コンテンツ
<section>-</section>- フロー・コンテンツ(章・節・項を表す対のヘッディング・コンテンツを必ず伴うこと)
<select>-</select>- 0個以上の
option要素,optgroup要素<option>-</option>- テキストのみ
<optgroup>-</optgroup>label属性必須、0個以上のoption要素<option>-</option>- テキストのみ
<small>-</small>- フレージング・コンテンツ
<span>-</span>- フレージング・コンテンツ
<strong>-</strong>- フレージング・コンテンツ
<sub>-</sub>- フレージング・コンテンツ
<sup>-</sup>- フレージング・コンテンツ
<svg>-</svg>- インラインSVGの要素
<table>-</table>caption要素が0個、または1個- 0個以上の
col要素、または 0個以上のcolgroup要素 thead要素が0個、または1個tfoot要素が0個、または1個- 1個以上の
tbody要素、または1個以上のtr要素
<caption>-</caption>- フロー・コンテンツ(ただし、
table要素を除く) <col />- 空
<colgroup>-</colgroup>span属性がある場合:空span属性がある場合:0個以上のcol要素<col />- 空
<thead>-</thead>- 0個以上の
tr要素<tr>-</tr>- 0個以上の
th要素<th>-</th>- フレージング・コンテンツ
<tfoot>-</tfoot>- 0個以上の
tr要素<tr>-</tr>- 0個以上の
td要素,th要素<th>-</th>- フレージング・コンテンツ
<td>-</td>- フロー・コンテンツ
<tbody>-</tbody>- 0個以上の
tr要素<tr>-</tr>- 0個以上の
td要素,th要素<th>-</th>- フレージング・コンテンツ
<td>-</td>- フロー・コンテンツ
<tr>-</tr>- 0個以上の
td要素,th要素<th>-</th>- フレージング・コンテンツ
<td>-</td>- フロー・コンテンツ
<textarea>-</textarea>- テキストのみ
<time>-</time>- フレージング・コンテンツ(ただし、
time要素を除く) <ul>-</ul>- 子要素に1個以上の
li要素を内包する場合に限る、コンテンツモデルは1個以上のli要素<li>-</li>- フロー・コンテンツ
<u>-</u>- フレージング・コンテンツ
<var>-</var>- フレージング・コンテンツ
<video>-</video>src属性がある場合:
トランスペアレント(ただし、video要素,audio要素を除く)src属性がない場合:
1個以上のsource要素に続き、トランスペアレント(ただし、video要素,audio要素を除く)<source />- 空
</body>(省略可)</html>(省略可)補足事項
パルパブル・コンテンツについて
2012年3月29日のHTML5ワーキングドラフトより、フロー・コンテンツ、もしくはフレージング・コンテンツを含むことができ得る要素はパルパブル・コンテンツというコンテンツ・モデルにも分類されることになりました。パルパブル・コンテンツに分類される要素は、最低でも1つのhidden属性が指定されていない明確な内容を内容に持つべきとされています(絶対ではない)。これは含まれるべき内容がない(空や存在すべき属性値が存在しない)用いられ方を避けるための制約として新たに分類されたものですが、実際にはスクリプトで後から内容を挿入するなどの作法もあるため、この要件を満たすことの重要度は高くありません。文法チェッカーにおいて、この要件を満たせていない要素を発見した場合に制作者に注意を促してくれることでしょう。
トランスペアレントについて
一部の要素にはトランスペアレントというコンテンツ・モデルが定義されています。トランスペアレントは、コンテンツ・モデルとして透過という意味であり、親要素のコンテンツ・モデルを継承します。親要素がフロー・コンテンツで、フロー・コンテンツを含むことができるコンテンツ・モデルであれば、同じようにフロー・コンテンツを含むことができます。親要素がフレージング・コンテンツしか含めない場合は、同じようにフレージング・コンテンツしか含むことができません。
空要素について
終了タグをもたない空要素については便宜上わかりやすいように 、最後の区切り子の手前に半角スペースを空けてから続けてスラッシュ(/)を付け足していますが、HTML5のHTMLシリアライゼーションにおいてはあってもなくてもどちらでも良いです。XHTMLシリアライゼーションでは必須です。
CSSとの兼ね合いについて
HTML5における要素の関係はブロックレベル要素・インライン要素のどちらかという2値では表すことができなくなったため、ブロックレベル要素・インライン要素という概念はなくなりました。HTML5の各要素には新要素も含めて、デフォルトのCSSで各々のdisplayプロパティの値が定義されています(Rendering)。