Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

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

Існує три типи категорій вмісту:

  • Основні категорії вмісту, котрі визначають основні правила, котрими користується велика кількість елементів;
  • Категорії вмісту для форм, котрі визначають правила вмісту для елементів в межах форм;
  • Особливі категорії вмісту, котрі описують рідкісні категорії, що використовуються лише кількома елементами, інколи лише у специфічних випадках.

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

Content_categories_venn.png

Основні категорії вмісту

Вміст метаданих

Елементи, що належать до категорії вмісту метаданих, змінюють презентацію або поведінку цілого документу, налаштовують посилання на інші документи, або ж передають несуть, незалежну інформацію.

Елементи, що належать до цієї категорії <base>, <command>, <link>, <meta>, <noscript>, <script>, <style> і <title>.

Потоковий вміст

До елементів, що належать до потокового вмісту, типовим є текстовий або ж вбудований вміст. Такими елементами є: <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> елемент швидше за все матиме "вміст заголовку", сам він не відноситься до елементів вмісту заголовку.

Фразовий вміст

Фразовий вміст визначає текст та розмітку, котру він вміщує. Фразовий вміст формує абзаци.

Елементами, що належать до цієї категорії є <abbr>, <audio>, <b>, <bdo>, <br>, <button>, <canvas>, <cite>, <code>, <command>, <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> також чистий текст (в тому числі котрий складається з пробілів).

Іще кілька елементів, що належать до цієї категорії, та лише за певних умов:

  • <a>, якщо вміщує лише фразовий вміст
  • <area>, якщо є нащадком елемента <map>
  • <del>, якщо вміщує лише фразовий вміст
  • <ins>, якщо вміщує лише фразовий вміст
  • <link>, якщо присутній атрибут itemprop
  • <map>, якщо вміщує лише фразовий вміст
  • <meta>, якщо присутній атрибут itemprop

Вбудований вміст

Вбудований вміст імпортує інші ресурси, або ж вставляє вміст з інших мов розмітки або простору імен у документ. Елементи, що належать до цієї категорії включають: <audio>, <canvas>, <embed>, <iframe>, <img>, <math>, <object>, <svg>, <video>.

Інтерактивний вміст

Інтерактивний вміст включає елементи, котрі спроектовано виключно для взаємодії з користувачем. Елементи, котрі належать до цієї категорії: <a>, <button>, <details>, <embed>, <iframe>, <keygen>, <label>, <select>, and <textarea>.

Декотрі елементи належать до цієї категорії лише за певних обставин:

  • <audio>, якщо присутній атрибут controls
  • <img>, якщо присутній атрибут usemap
  • <input>, якщо атрибут type не у прихованому стані
  • <menu>, якщо атрибут type у стані "панелі інструментів"
  • <object>, якщо присутній атрибут usemap
  • <video>, якщо присутній атрибут controls

Видимий вміст

Вміст є видимим коли він не пустий і не прихований. Елементи чиєю моделлю є потоковий міст або фразовий вміст, повинні мати принаймні один вузол видимого вмісту.

Вміст форм

Вміст форм вміщує елементи, котрі мають власника форми, визначеного атрибутом form. Власником форми є елемент <form>, або ж елемент, чий ідентифікатор (id), вказано у атрибуті form.

  Ця категорія містить кілька підкатегорій:

listed
Елементи, перелічені в form.elements та fieldset.elements IDL колекціях. Містять <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>.

Додаткові категорії

Є деякі вторинні класифікації елементів, які можуть бути корисними та про які вам треба знати.

Елементи підтримки скрипту

Елементи підтримки скрипту є елементами, які безпосередньо не беруть участі у виводі документа. Замість цього вони виконують роль підтримки скриптів, або безпосередньо містять код, або вказувають на нього, або шляхом визначення даних, які будуть використовуватися скриптом.

Елементами підтримки скрипту є:

<script> <template>

Прозора модель вмісту

Якщо елемент має прозору модель вмісту, його вміст має бути структурований таким чином, щоб він був дійсним HTML5 кодом, навіть якщо прозорий елемент було вилучено і замінено дочірними елементами.

Наприклад, <del> і <ins> елементи є прозорими:

<p>We hold these truths to be <del><em>sacred &amp; undeniable</em></del> <ins>self-evident</ins>.</p>

Навіть якщо ці елементи було вилучено, цей фрагмент як і раніше буде дійсним HTML.

<p>We hold these truths to be <em>sacred &amp; undeniable</em> self-evident.</p>

Інші моделі вмісту

Секціонування кореню.

Мітки документа й учасники

 Зробили внесок у цю сторінку: ivaskonyan, asmforce, Kamilius
 Востаннє оновлена: ivaskonyan,