コンテンツ・モデル

HTML5の要素は、ブロック要素、インライン要素と大きく分類されていた概念は廃止されました。
つまり、a要素やspan要素でp要素やul要素を囲うこともが可能となり、より実践に則したマークアップが可能になりました。

ブロック要素、インライン要素が廃止された代わりに、HTML5ではコンテンツ・モデルと呼ばれるグループに分類されています。
これはHTML5で定義されている要素を、その機能、振る舞いによりグループ化しています。
HTML5をマークアップするには、このコンテンツ・モデルを意識していく必要があります。

これらのコンテンツ・モデルにより、どの要素の中にどの要素を配置できるかというタグの配置ルールが決まります。
とはいえ、HTML4.01でタグの意味を意識してこれまでマークアップしてきていれば、コンテンツ・モデルをすべて正確に理解しなくても、これまでの慣習に沿って作成すれば妥当なHTML文書を作成することは可能です。
※より文法的により正確なHTML文書を作成する場合には、どの要素がどのコンテンツの種類に分類されているかを意識している必要はあります。

メタデータ・コンテンツ - Metadata content

※自身や他の文書との関係を定義

自身以降のドキュメントと他のドキュメントとの関連性付けをしたり、他の帯域外(外部リソース)の情報を伝達するコンテンツ

メタデータ・コンテンツに含まれる要素一覧
base ベースURLとブラウジング・コンテキスト
commamd
link ドキュメントを他のリソースをリンク
meta メタデータ
noscript スクリプト無効時に表示するコンテンツ
script 動的なスクリプトやデータブロック
style ドキュメントにスタイル情報を組込む
title ドキュメントのタイトルや名前

フロー・コンテンツ - Flow content

※子孫にテキストなどを持つもの

ドキュメントやアプリケーションの本体に使われるほとんどの要素 一般的なルールとして、コンテンツ・モデルがフロー・コンテンツを許す要素は、要素間ホワイトスペースではないテキスト・ノード、またはエンベッディッド・コンテンツとなる要素ノードを少なくともひとつ子孫に持つべきです。 この要件においては、del要素とその子孫は、その del要素の祖先に寄与するものとして数えてはいけません。

フロー・コンテンツに含まれる要素一覧
a ハイパーリンク
abbr 略称や頭字語をマークアップします
address 連絡先情報
area (map要素の子孫だった場合)
イメージマップのクリック領域
article ドキュメント、ページ、アプリケーションなどを定義
aside 関連するが本筋とはやや異なる情報
audio 音声のURL
b 太字の範囲
bdi 双方向テキスト書式の範囲
bdo 文字表記の方向を指定する範囲
blockquote 他の情報源から引用されたセクション
br 改行
button ボタン
canvas グラフィックスを提供
cite 作品のタイトルを表します
code コンピューター・コードの断片
command ユーザーが呼び出すことができるコマンドを表します
datalist 入力候補となるデータリスト
del 削除された範囲
details 備考や操作手段などの詳細情報
dfn 用語例
div 汎用的に要素をグループ化
dl 関連リスト(記述リスト)
em コンテンツの強調
embed プラグインの埋め込み
fieldset グループ化されたフォーム・コントロールのセット
figure ドキュメントのメインのフローから単独のユニットとして参照されるコンテンツをマークアップ。
footer フッター
form フォーム関連要素
h1-h6 見出し
header イントロダクションやナビゲーションの支援となるヘッダ
hgroup セクションの見出し
hr 段落レベルのテーマの区切り
i イタリック/斜体文字の範囲
iframe インラインフレーム
img 画像
input フォーム・コントロール
ins ドキュメントへの追記
kbd ユーザー入力
keygen フォーム送信時にキーを発行
label フォーム・コントロールのキャプション(ラベル)
map イメージマップを作成
mark 他のコンテキストとの関連性に起因した、参照用のマーク
math
menu コマンドのリスト
meter 既知の範囲にある数量や、小数値
nav ナビゲーションのリンクを伴うセクション
noscript スクリプト無効時に表示するコンテンツ
object 外部リソースを埋め込む
ol 意図的に順序づけされた項目のリスト
output 計算結果
p 段落
pre 整形済みのテキストの定義
progress タスクが完了するまでの進捗
q 他のソースから引用されたフレージング・コンテンツ(ドキュメントのテキスト)
ruby ルビ注記
s もう正確ではない、もう関連性がないコンテンツ
samp プログラムやコンピューティング・システムからの(サンプル)出力
script 動的なスクリプトやデータブロック
section 一般的なドキュメント・セクションやアプリケーション・セクション
select 選択子のセットから選択
small 細目といった注釈
span 任意の範囲
strong コンテンツの強い重要性
sub 上付き文字
sup 下付き文字
svg
table テーブル(表)
textarea 複数行のテキスト入力ボックス
time 24時間表記の時刻、新暦のグレゴリオ暦における正確な日付
ul 項目のリスト
var 変数
video 動画を再生
wbr 改行可能な箇所

セクショニング・コンテンツ - Sectioning content

※見出しと概要を付けられるもの

見出しやフッターの範囲を定義するコンテンツ

セクショニング・コンテンツに含まれる要素一覧
article ドキュメント、ページ、アプリケーションなどを定義
aside 関連するが本筋とはやや異なる情報
nav ナビゲーションのリンクを伴うセクション
section 一般的なドキュメント・セクションやアプリケーション・セクション

ヘッディング・コンテンツ - Heading content

※見出しとなるもの

セクションのヘッダーを定義します

ヘッディング・コンテンツ に含まれる要素一覧
h1-h6 見出し
hgroup セクションの見出し

フレージング・コンテンツ - Phrasing content

※段落、文節、語句など

ドキュメントのテキスト。段落内のレベルでテキストをマークアップする要素も同様です。段落からフレージング・コンテンツが続きます。 一般的なルールとして、要素間ホワイトスペースではないテキスト、またはエンベッディッド・コンテンツとなる要素ノードを子孫に少なくともひとつ持つべきです。 この要件においては、del要素とその子孫は、その del要素の祖先に寄与するものとして数えてはいけません。 ※フレージング・コンテンツとして分類される要素のほとんどは、フレージング・コンテンツとして分類される要素のみを入れることができます。フロー・コンテンツを入れることができません。

フレージング・コンテンツに含まれる要素一覧
a (フレージング・コンテンツのみを含んでいる場合)
ハイパーリンク
abbr 略称や頭字語をマークアップします
area (map要素の子孫の場合)
イメージマップのクリック領域
audio 音声のURL
b 太字の範囲
bdi 双方向テキスト書式の範囲
bdo 文字表記の方向を指定する範囲
br 改行
button ボタン
canvas グラフィックスを提供
cite 作品のタイトルを表します
code コンピューター・コードの断片
command ユーザーが呼び出すことができるコマンドを表します
datalist 入力候補となるデータリスト
del (フレージング・コンテンツのみを含んでいる場合)
削除された範囲
dfn 用語例
em コンテンツの強調
embed プラグインの埋め込み
i イタリック/斜体文字の範囲
iframe インラインフレーム
img 画像
input フォーム・コントロール
ins (フレージング・コンテンツのみを含んでいる場合)
ドキュメントへの追記
kbd ユーザー入力
keygen フォーム送信時にキーを発行
label フォーム・コントロールのキャプション(ラベル)
map (フレージング・コンテンツのみを含んでいる場合)
イメージマップを作成
mark 他のコンテキストとの関連性に起因した、参照用のマーク
math
meter 既知の範囲にある数量や、小数値
noscript スクリプト無効時に表示するコンテンツ
object 外部リソースを埋め込む
output 計算結果
progress タスクが完了するまでの進捗
q 他のソースから引用されたフレージング・コンテンツ(ドキュメントのテキスト)
ruby ルビ注記
s もう正確ではない、もう関連性がないコンテンツ
samp プログラムやコンピューティング・システムからの(サンプル)出力
script 動的なスクリプトやデータブロック
select 選択子のセットから選択
small 細目といった注釈
span 任意の範囲
strong コンテンツの強い重要性
sub 上付き文字
sup 下付き文字
svg
textarea 複数行のテキスト入力ボックス
time 24時間表記の時刻、新暦のグレゴリオ暦における正確な日付
var 変数
video 動画を再生
wbr 改行可能な箇所

エンベッディッド・コンテンツ - Embedded content

※外部リソースの埋め込みをするもの

ドキュメントに他のリソースを組み込むコンテンツ、もしくは、ドキュメントに挿入される他の語彙のコンテンツ いくつかのエンベッディッド・コンテンツ要素は、フォールバック・コンテンツを持つことができます。 これは、外部リソースの埋め込みができない場合(未サポート場合など)に利用するための代替えコンテンツのことです。

エンベッディッド・コンテンツに含まれる要素一覧
audio 音声のURL
canvas グラフィックスを提供
embed プラグインの埋め込み
iframe インラインフレーム
img 画像
math
object 外部リソースを埋め込む
svg
video 動画を再生

インタラクティブ・コンテンツ - Interactive content

※ユーザー操作に対応するもの

ユーザーのインタラクションに特化したコンテンツ HTMLのある特定の要素はアクティベーション・ビヘイビア(ユーザーがそれらをアクティブにすることができる)を持ちます。 そして、それに依存する一連のイベントを引き起こします。(リンク遷移やフォーム操作、動画の再生・停止などのクリックイベント)

インタラクティブ・コンテンツに含まれる要素一覧
a ハイパーリンク
audio (controls 属性が存在している場合)
音声のURL
button ボタン
details 備考や操作手段などの詳細情報
embed プラグインの埋め込み
iframe インラインフレーム
img (usemap属性が存在している場合)
画像
input (type属性が Hidden 状態でない場合)
フォーム・コントロール
keygen フォーム送信時にキーを発行
label フォーム・コントロールのキャプション(ラベル)
menu (type属性が toolbar状態の場合)
コマンドのリスト
object (usemap属性が存在している場合)
外部リソースを埋め込む
select 選択子のセットから選択
textarea 複数行のテキスト入力ボックス
video (controls属性が存在している場合)
動画を再生

上表を見ると、1つの要素が複数のグループにあることが見て取れると思います。
HTML5の各要素は、コンテンツ・モデルの種類のいずれか一つのみに分類されるのではなく、複数のコンテンツの種類が定義されることもあります。
例:section要素はフロー・コンテンツであり、同時にセクショニング・コンテンツでもある。

更に、特定の属性や属性値を持った場合にだけインタラクティブ・コンテンツになるなど、条件付きで要素の種類が変化することもあります。