ブロック引用とセクショニングルート

HTML文書の文章を構成するものとして、今まで「段落」「リスト」「テーブル」を紹介してきましたが、もっとあります。

次に紹介するのはブロック引用です。

引用といえば、以前紹介したq要素がありました。今回紹介するblockquote要素はその仲間です。

blockquote要素

要素の種類

フロー・コンテンツ

セクショニングルート

フロー・コンテンツ

意味

引用。

属性

cite
引用元のURL。

前に紹介したq要素とどう違うかというと、q要素は自身がフレージング・コンテンツで、当然引用される中身もフレージング・コンテンツです。

つまり、q要素だと複数の段落にまたがる文章などを引用できないということです。p要素はq要素の子として入れられませんし、そもそもq要素などはフレージング・コンテンツなので、p要素などの中に入れるべきです。

それに対しblockquote要素では、子が「フロー・コンテンツ」なので、段落(p要素)をまるまる入れたりできます。それどころか、記事をまるごと引用したい場合など、article要素ごとblockquote要素の中に入れたりできます。

セクショニングルート

ところで、blockquoteの要素の種類にセクショニングルートとありますが、これは何でしょう。

実は、他にbody要素とかtd要素などもこのセクショニングルートに分類されます。しかし、一番分かりやすいのはこのblockquote要素でしょう。

セクショニングルートは、セクショニング・コンテンツと同じくセクションを作ります。

セクショニングルートの特徴として、独自のアウトラインを持つということがあります。アウトラインという言葉は前にも少し出てきましたが、要するにセクションの構造ということでした。

セクションの構造というのは、セクションの入れ子関係(どのセクションにどのセクションが属しているかなど)のことです。セクショニングルートの子であるセクションは全てそのセクショニングルートの配下にあることになり、セクショニングルートの祖先には影響を及ぼしません

どういうことかというと、blockquoteでセクションごと引用した場合、blockquote要素の下にあるセクションがそのHTML文書全体に属していることになります。そうなると問題が起きます。blockquote要素内にあるセクションはあくまで引用したセクションで、その記事に属するものではないはずだからです。

そこで、blockquoteをセクショニングルートとすることで文書全体から独立した部分とすることでこれを防いでいます。