Content-Kategorien

Die meisten HTML-Elemente sind Mitglied einer oder mehrerer Content-Kategorien — diese Kategorien gruppieren Elemente, die gemeinsame Merkmale aufweisen. Dies ist eine lose Gruppierung (sie schafft tatsächlich keine Beziehung zwischen Elementen dieser Kategorien), aber sie hilft, das gemeinsame Verhalten der Kategorien und ihre zugehörigen Regeln zu definieren und zu beschreiben, insbesondere wenn man auf deren komplexe Details stößt. Es ist auch möglich, dass Elemente nicht Mitglied einer dieser Kategorien sind.

Es gibt drei Arten von Content-Kategorien:

  • Haupt-Content-Kategorien, die gemeinsame Regeln beschreiben, die von vielen Elementen geteilt werden.
  • Formularbezogene Content-Kategorien, die Regeln beschreiben, die für formularbezogene Elemente typisch sind.
  • Spezifische Content-Kategorien, die seltene Kategorien beschreiben, die nur von wenigen Elementen, manchmal nur in einem bestimmten Kontext, geteilt werden.

Hinweis: Eine ausführlichere Diskussion dieser Content-Kategorien und ihrer vergleichenden Funktionen ist nicht Gegenstand dieses Artikels; für weitere Informationen lesen Sie bitte die relevanten Abschnitte der HTML-Spezifikation.

Ein Venn-Diagramm zeigt, wie die verschiedenen Content-Kategorien miteinander in Beziehung stehen. Die folgenden Abschnitte erklären diese Beziehungen im Text.

Haupt-Content-Kategorien

Metadaten-Content

Elemente, die zur Kategorie Metadaten-Content gehören, ändern die Darstellung oder das Verhalten des restlichen Dokuments, stellen Verknüpfungen zu anderen Dokumenten her oder vermitteln andere Out-of-Band-Informationen. Alles im <head>, einschließlich des <title>, <link>, <script>, <style> und des weniger genutzten <base>, ist Metadaten-Content. Es gibt ein <meta>-Element für Metadaten, die nicht durch diese anderen Elemente dargestellt werden können.

Die Metadaten-Elemente sind:

Einige dieser Elemente gehören zu mehr als einer Content-Kategorie. Zum Beispiel ist <script> ein Mitglied der Metadaten-, Fluss-, und Phrasen-Content-Kategorien und ist ein scriptsunterstützendes Element; <script> kann verwendet werden, wo Metadaten-Content, Phrasen-Content oder scriptsunterstützende Elemente erwartet werden.

Fluss-Content

Fluss-Content ist eine breite Kategorie, die die meisten Elemente umfasst, die innerhalb des <body>-Elements erlaubt sind, einschließlich Überschriftselemente, Abschnittselemente, Phraseelemente, Einbettungselemente, interaktive Elemente und formularbezogene Elemente. Es umfasst auch Textknoten (aber nicht die, die nur aus Leerzeichen bestehen).

Die Flusselemente sind:

Einige andere Elemente gehören zu dieser Kategorie, aber nur, wenn eine bestimmte Bedingung erfüllt ist:

Abschnitts-Content

Abschnitts-Content, eine Untergruppe des Fluss-Contents, erstellt einen Abschnitt im aktuellen Umriss, der den Umfang von <header>- und <footer>-Elementen definiert.

Die Abschnittselemente sind:

Überschrifts-Content

Überschrifts-Content, eine Untergruppe des Fluss-Contents, definiert den Titel eines Abschnitts. Diese Definition gilt sowohl für Abschnitte, die durch explizite Abschnitts-Content-Elemente markiert sind, als auch für diejenigen, die implizit durch den Überschrifts-Content selbst definiert werden.

Die Überschriftselemente sind:

Hinweis: Obwohl <header> wahrscheinlich Überschrifts-Content enthält, ist es selbst kein Überschrifts-Content.

Phrase-Content

Phrase-Content, eine Untergruppe des Fluss-Contents, bezieht sich auf den Text und das Markup in einem Dokument. Sequenzen von Phrase-Content bilden Absätze.

Die Phrase-Elemente sind:

Einige andere Elemente gehören zu dieser Kategorie, aber nur, wenn eine bestimmte Bedingung erfüllt ist:

  • <a>, wenn es nur Phrase-Content enthält
  • <area>, wenn es ein Nachkomme eines <map>-Elements ist
  • <del>, wenn es nur Phrase-Content enthält
  • <ins>, wenn es nur Phrase-Content enthält
  • <link>, wenn das itemprop-Attribut vorhanden ist
  • <map>, wenn es nur Phrase-Content enthält
  • <meta>, wenn das itemprop-Attribut vorhanden ist

Eingebetteter Content

Eingebetteter Content, eine Untergruppe des Fluss-Contents, importiert eine andere Ressource oder fügt Content aus einer anderen Markup-Sprache oder einem anderen Namensraum in das Dokument ein.

Die eingebetteten Inhaltselemente sind:

Interaktiver Content

Interaktiver Content, eine Untergruppe des Fluss-Contents, umfasst Elemente, die speziell für die Interaktion mit dem Benutzer entworfen wurden.

Die interaktiven Inhaltselemente sind:

Einige Elemente gehören nur unter bestimmten Bedingungen zu dieser Kategorie:

Greifbarer Content

Content ist greifbar, wenn er weder leer noch versteckt ist; er ist ein Content, der dargestellt wird und substanziell ist. Elemente, deren Modell Fluss-Content ist, sollten mindestens einen Knoten haben, der greifbar ist.

Die greifbaren Elemente sind:

Einige Elemente gehören nur unter bestimmten Bedingungen zu dieser Kategorie:

  • <audio>, wenn das controls-Attribut vorhanden ist
  • <dl>, wenn die Kinder des Elements mindestens eine Namens-Werte-Gruppe enthalten
  • <input>, wenn das type-Attribut nicht im Zustand "hidden" ist
  • <ol>, wenn seine Kinder mindestens ein <li>-Element enthalten
  • <ul>, wenn seine Kinder mindestens ein <li>-Element enthalten

Formularassoziierter Content

Formularassoziierter Content ist eine Untergruppe des Fluss-Contents und umfasst Elemente, die einen Formularbesitzer haben, der durch ein form-Attribut angegeben wird und die überall dort verwendet werden können, wo Fluss-Content erwartet wird. Ein Formularbesitzer ist entweder das enthaltene <form>-Element oder das Element, dessen ID im form-Attribut angegeben ist.

Die formularassoziierten Elemente sind:

Diese Kategorie enthält mehrere Unterkategorien:

gelistet

Elemente, die in den Sammlungen form.elements und fieldset.elements aufgelistet sind. Beinhaltet <button>, <fieldset>, <input>, <object>, <output>, <select> und <textarea>.

beschriftbar

Elemente, die mit <label>-Elementen assoziiert werden können. Beinhaltet <button>, <input>, <meter>, <output>, <progress>, <select> und <textarea>.

übermittelbar

Elemente, die zum Erstellen des Formulardatensatzes verwendet werden können, wenn das Formular übermittelt wird. Beinhaltet <button>, <input>, <object>, <select> und <textarea>.

rücksetzbar

Elemente, die betroffen sein können, wenn ein Formular zurückgesetzt wird. Beinhaltet <input>, <output>, <select> und <textarea>.

Sekundäre Content-Kategorien

Es gibt einige sekundäre Klassifizierungen von Elementen, die ebenfalls nützlich sein können.

Scriptsunterstützende Elemente

Scriptsunterstützende Elemente sind Elemente, die nicht direkt zum gerenderten Output eines Dokuments beitragen. Sie dienen stattdessen dazu, Skripte zu unterstützen, entweder indem sie Skriptcode direkt enthalten oder spezifizieren oder indem sie Daten bereitstellen, die von Skripten verwendet werden.

Die scriptsunterstützenden Elemente sind:

Transparentes Content-Modell

Wenn ein Element über ein transparentes Content-Modell verfügt, dann müssen seine Inhalte so strukturiert sein, dass sie auch dann gültiges HTML wären, wenn das transparente Element entfernt und durch die Kindelemente ersetzt würde.

Zum Beispiel sind die <del>- und <ins>-Elemente transparent:

html
<p><del>Shopping</del> <ins>Returns</ins> list</p>
<ul>
  <del>
    <li>Oranges</li>
    <li>Toilet paper</li>
  </del>
  <li>Toothpaste</li>
</ul>

Wenn diese Elemente entfernt würden, wäre dieses Fragment immer noch gültiges HTML (wenn auch nicht korrektes Englisch).

html
<p>Shopping Returns list</p>
<ul>
  <li>Oranges</li>
  <li>Toilet paper</li>
  <li>Toothpaste</li>
</ul>