Содержание

Категории контента

Каждый элемент HTML принадлежит некоторому количеству категорий контента, которые объединяют элементы с общим набором характеристик. Такая группировка является свободной, то есть не задаёт на самом деле отношение между элементами таких типов, но помогает определить и описать их поведение и правила, которым они должны следовать, особенно когда дело доходит до сложных деталей. Также возможна ситуация, когда элемент не входит ни в одну из этих категорий.

Существует три типа категорий контента:

Примечание: Более подробное обсуждение данных категорий контента и их 
сравнительных особенностей выходит за рамки данной статьи; можно 
обратиться к соответствующим разделам спецификации HTML.

Content_categories_venn.png

Основные категории контента

Метаданные

Элементы, принадлежащие к категории метаданных, изменяют отображение или поведение HTML-документа, связывают его с другими документами и предоставляют другую дополнительную информацию о документе.

Элементами метаданных являются: <base>, <command>, <link>, <meta>, <noscript>, <script>, <style> и <title>.

Flow content

Flow content (Основной поток) — это широкая категория, охватывающая большинство элементов, которые могут находиться внутри элемента <body>, включая элементы заголовков, элементы секционирования, элементы фраз, элементы внедрения, интерактивные элементы и элементы, связанные с формой. Он также включает текстовые узлы (но не те, которые состоят только из пробельных символов).

Элементами потока являются:

<a> : элемент привязки, <abbr>, <address>, <article>, <aside>, <audio>, <b>,<bdo>, <bdi>, <blockquote>, <br>, <button>, <canvas>, <cite>, <code>, <command>, <data>, <datalist>, <del>, <details>, <dfn>, <div>, <dl>, <em>, <embed>, <fieldset>, <figure>, <footer>, <form>, <h1> , <h2> , <h3> , <h4> , <h5> , <h6> , <header>, <hgroup>, <hr>, <i> , <iframe> , <img>, <input>, <ins>, <kbd>, Устарело<keygen>, <label>, <main>, <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> , <template>, <textarea> , <time>, <ul>, <var> , <video>, <wbr> и Текст.

Несколько других элементов, которые тоже принадлежат к этому типу, но требуют определённых условий:

Секционный контент

Подобные элементы создают секции (блоки) в текущей структуре документа, определяющие область действия заголовочного контента и элементов <header> и <footer>

К этой категории принадлежат элементы <article>, <aside>, <nav> и <section>.

Примечание: Не стоит путать данную модель контента с категорией корня задания разделов, которая изолирует своё содержимое от обычной структуры.

Заголовочный контент

Заголовочный контент задаёт заголовок секции, явно отмеченной структурным элементом или неявно – самим заголовочным.

Данной категории принадлежат такие элементы, как <h1> , <h2> , <h3> , <h4> , <h5> , <h6> и <hgroup>.

Примечание: Элемент <header>сам по себе не является заголовочным, хотя с большой вероятностью 
содержит контент такого типа.
Примечание: Стоит заметить, что элемент <hgroup> был удалён из спецификации W3C HTML до приведения 
HTML 5 к окончательному варианту, но до сих пор является частью спецификации WHATWG и по крайней 
мере частично поддерживается большинством браузеров.

Фразовый контент

Фразовый контент определяет текст и его формат. Серии фразового контента образуют параграфы.

К данной категории принадлежат следующие элементы: <abbr>, <audio>, <b>, <bdo>, <br>, <button>, <canvas>, <cite>, <code>, <command>, <data>, <datalist>, <dfn>, <em>, <embed>, <i> , <iframe> , <img>, <input>, <kbd>, Устарело<keygen>, <label>, <mark>, <math>, <meter>, <noscript>, <object> , <output>, <progress>, <q> , <ruby>, <samp> , <script>, <select>, <small> , <span>, <strong>, <sub> , <sup> , <svg>, <textarea> , <time>, <var> , <video>, <wbr> и обычный текст (не только состоящий из символов пробелов).

Ещё несколько элементов входят в данную категорию при соблюдении особых условий:

Embedded content

Embedded content (встроенный контент) импортирует в документ другой ресурс или вставляет содержимое на другом языке разметки или принадлежащее другому пространству имён. Элементами данной категории являются: <audio>, <canvas>, <embed>, <iframe> , <img>, <math>, <object> , <svg>, <video>.

Интерактивный контент

К интерактивному контенту относятся элементы, который специально разработаны для взаимодействия с пользователем. В данную категорию входят <a> : элемент привязки, <button>, <details>, <embed>, <iframe> , Устарело<keygen>, <label>, <select> и <textarea>. Некоторые элементы считаются интерактивным контентом только при соблюдении определённых условий:

Явный контент

Контент считается явным, когда он не скрыт и не является пустым, это контент, который отображён и предметен. У элементов потокового или фразового контента должен быть хотя бы один явный узел.

Контент форм

Контент форм включает в себя элементы, у которых есть владелец формы, обозначенный атрибутом form. Владельцем формы является либо элемент <form>, либо элемент, id которого указан в атрибуте form.

Данная категория включает несколько подкатегорий:

listed Элементы, перечисленные в IDL коллекциях form.elements и fieldset.elements. Включают <button>, <fieldset>, <input>, Устарело<keygen>, <object> , <output>, <select>, и <textarea> .

labelable

Элементы, которые могут ассоциироваться с элементами <label>. Включают <button>, <input>, Устарело<keygen>, <meter>, <output>, <progress>, <select> и <textarea> .

submittable

Элементы, которые могут использоваться для построения набора данных формы при отправке на сервер. Включают <button>, <input>, Устарело<keygen>, <object> , <select> и <textarea> .

resettable

Элементы, которые могут быть затронуты при сбросе данных формы. Включают <input>, Устарело<keygen>, <output>,<select> и <textarea> .

Вторичные категории

Существуют некоторые вторичные классификации элементов, о которых тоже полезно знать.

Элементы поддержки скриптов

Элементы поддержки скриптов – это элементы, которые напрямую не влияют на отрисовку документа. Вместо этого они служат для внедрения скриптов, путём либо содержания кода скрипта напрямую, либо указания данных, которые будут использованы скриптами.

Элементами поддержки скриптов являются:

Прозрачная модель контента

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

Например, элементы <del> и <ins> являются прозрачными:

<p>Мы почитаем следующие истины <del><em>священными &amp; неоспоримыми </em></del> 
<ins> само собой разумеющимися </ins> </p> 

Если удалить эти элементы, данный фрагмент всё равно будет представлять собой валидный HTML.

<p>Мы почитаем следующие истины <em>священными &amp; </em> само собой разумеющимися.</p>

Прочие модели контента

Корень задания разделов.