Какие HTML-элементы можно отнести к категории «Прозрачного содержимого»?

#html

#HTML

Вопрос:

Элементы с прозрачной моделью содержимого определяются следующим образом:

Если элемент имеет прозрачную модель содержимого, то его содержимое должно быть структурировано таким образом, чтобы оно соответствовало действительному HTML 5, даже если прозрачный элемент был удален и заменен дочерними элементами.

Источник: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#transparent_content_model

Имея это определение и зная разрешенные типы содержимого элементов, определенные спецификацией, можно ли с уверенностью сказать, что эти элементы могут быть классифицированы как «Прозрачный контент»?:

<a> , <article> , <aside> , <audio> , <b> , <blockquote> , <button> , <canvas> , <code> , <del> , <details> , <div> , <em> , <fieldset> , <figure> , <footer> , <form> , <h1> , <h2> , <h3> , <h4> , <h5> , <h6> , <header> , <i> , <ins> , <kbd> , <label> , <main> , <mark> , <meter> , <nav> , <p> , <picture> , <pre> , <progress> , <q> , <s> , <section> , <small> , <span> , <strong> , <sub> , <sup> , <textarea> , <u> , <video>

(Существует ли более авторитетный список? Я не смог найти ни одного, так как результаты поиска прозрачного контента быстро становятся связанными с CSS.)


Спецификация W3: https://www.w3.org/TR/2011/WD-html5-20110525/content-models.html#transparent-content-models

Спецификация WHATWG: https://html.spec.whatwg.org/dev/dom.html#прозрачный-контент-модели

Ответ №1:

Элементы с прозрачной моделью содержимого определяются следующим образом: …

Вы цитируете MDN, который является ссылкой, но не официальной спецификацией. Это вторичный источник, а это значит, что он полезен для понимания технических деталей, но на него нельзя полагаться при предоставлении фактических определений.

W3C передал полномочия над спецификацией HTML5 WHATWG в 2019 году, поэтому html.spec.whatwg.org является канонической спецификацией на момент написания статьи.

Спецификация включает в себя следующее для «моделей прозрачного содержимого»

Некоторые элементы описаны как прозрачные; у них есть «прозрачный» в описании их модели контента. Модель содержимого прозрачного элемента является производной от модели содержимого его родительского элемента: элементы, требуемые в части модели содержимого, которая является «прозрачной», являются теми же элементами, которые требуются в части модели содержимого родительского прозрачного элемента, в котором находится прозрачный элемент.

Итак, в связи с этим ваш вопрос о:

С [неправильным] определением и зная разрешенные типы содержимого элементов, определенные спецификацией, можно ли с уверенностью сказать, что эти элементы могут быть классифицированы как «Прозрачный контент»?

Нет. Спецификация указывает модель содержимого каждого элемента в соответствующем заголовке «Модель содержимого:» в разделе 4 («Элементы HTML»).

Хотя спецификация включает удобные списки различных типов контента в разделе «3.2.5.2 Виды контента», к сожалению, нет списка прозрачного контента.

Таким образом, чтобы определить, какие элементы имеют прозрачные модели содержимого, вам необходимо выполнить поиск по списку всех HTML-элементов.

Для вашего удобства ниже приведены элементы, которые в настоящее время имеют прозрачные модели контента: