質問: HTML5からコンテンツ・カテゴリー、コンテンツ・モデルなどが導入されましたが、その中でも「透過的コンテンツモデル」という概念(仕組み?)がよく理解できず困っています。 例えば下記MozillaのMDN Web Docsの中では、 > > 要素が透過的コンテンツモデル (transparent content model) を持っている場合、透過的な要素が削除されたり、子要素で置き換えられたりしても、それ自身のコンテンツが必ず妥当な HTML 5 として構造化されているものです。 > > > > > とあります。 1. 上記の『要素が透過的コンテンツモデル (transparent content model) を持っている場合』というのは、「要素が透過的コンテンツモデルである子要素を持っている(HTMLの記述としてソースに存在している)場合」という意味なのか、「その要素が子要素に持てるものとして透過的コンテンツモデルが許可されている場合」という意味なのか、はたまた別な解釈が必要なのか、どちらでしょうか? 2. また、透過的コンテンツモデルとしてあてはまるHTMLタグは何になるのでしょうか? などのページでは ``` , , , , , , , , ``` の9個のタグが列挙されていますが、 前述の MDN Web Docs および などのページでは(一部、タグの例示はされているものの)詳しいHTMLタグの一覧はありません。 3. 前者で列挙された9個のタグは正しい説明なのか、その根拠となる一次情報はどこにあるのか、どなたかご存知でしょうか?(タグの一覧ではなく、108個ほどあるHTMLタグのドキュメントを全部見て判断するということでしょうか) MDN Web Docsに戻りますが、 > > 透過的な要素が削除されたり、子要素で置き換えられたりしても、それ自身のコンテンツが必ず妥当な HTML 5 として構造化されている > > > > > という記述についてもよく理解できておりません。ドキュメントの例文では ``` 私たちはこれらの真実を不可侵なものでありかつ否定できない自明のものであるとし続けた。 ``` というHTMLの記述が ``` 私たちはこれらの真実を不可侵なものでありかつ否定できない自明のものであるとし続けた。 ``` に書き換えられていますが、書き換え後に言われている「妥当なHTMLです」はどういう意味でしょうか。 4. 妥当なHTML(および妥当ではないHTML)とはなんでしょうか? そもそもドキュメントで、 > > 透過的コンテンツモデル > > 要素が透過的コンテンツモデル (transparent content model) を持っている場合、透過的な要素が削除されたり、子要素で置き換えられたりしても、それ自身のコンテンツが必ず妥当な HTML 5 として構造化されているものです。 > > > のように、「透過的コンテンツモデル」の説明をしているその中で「透過的コンテンツモデルを持っている場合、〜構造化されているものです。」と説明されるのは妥当なのでしょうか。。。 5. 透過的コンテンツモデルを持っている場合にxxxである、とあるが、しかしその透過的コンテンツモデルとは何であるのかをまず知りたい。 長くなりすみません。自身の前提知識が何かしら欠落しているために読解できていないのかと思っていますが、どなたかのお知恵を拝借できましたら幸いです。 2021/5/13 11:55 追記 上記のほか、区分化ルート、パルパブル・コンテンツ、基本的なコンテンツ・カテゴリーやコンテンツ・モデルについて詳しく書かれた書籍などご存知の方がいれば、そちらもご教授いただけると大変助かります。まだまだよく分からない部分がたくさんあるので。。。 例えば、MDN Web Docsでは主要なものとして7個のコンテンツ・カテゴリーを記載した図を載せているのに、文章中では知覚可能コンテンツとフォーム関連コンテンツを加えた9個のコンテンツ・カテゴリーの記述があるのもよく理解できませんでした。。。
回答: > > 上記の『要素が透過的コンテンツモデル (transparent content model) を持っている場合』というのは、...(中略)...どちらでしょうか? > > > MDN の当該記事にある以下のコードを例にとれば、「透過的コンテンツモデルを持っている要素」は `del`, `ins` 要素です。これらの要素は透過的で、要素が削除されたり、その子要素で置き換えられても HTML 文法上の問題が生じません。 ``` 私たちはこれらの真実を不可侵なものでありかつ否定できない自明のものであるとし続けた。 ``` > > また、透過的コンテンツモデルとしてあてはまるHTMLタグは何になるのでしょうか? > > 前者で列挙された9個のタグは正しい説明なのか、その根拠となる一次情報はどこにあるのか、どなたかご存知でしょうか? > > > HTML Standard 上で確かめることが出来ます。残念ながら透過的コンテンツモデルを持つ要素は当該仕様内では列挙されていないため、ページ内検索などを行い自身で確認する必要があると思います。私が調べた結果は次のようになりました: * `a` 要素 * `ins` 要素 * `del` 要素 * `object` 要素 * `video` 要素 * `audio` 要素 * `map` 要素 * `noscript` 要素 * `slot` 要素 * `canvas` 要素 * 自律的カスタム要素 > > 妥当なHTML(および妥当ではないHTML)とはなんでしょうか? > > > 妥当な HTML とは、その HTML 文書が HTML 標準 (HTML Standard) に準拠していることを指します。 > > 透過的コンテンツモデルを持っている場合にxxxである、とあるが、しかしその透過的コンテンツモデルとは何であるのかをまず知りたい。 > > > 「透過的な要素が削除されたり、その子要素で置き換えられたりしても、それ自身のコンテンツが必ず妥当な HTML 5 として構造化されているもの」が透過的コンテンツモデルを持ちます。