HTML5: Metadaten
Metadaten werden bei HTML im Kopf des Dokumentes notiert. Daneben kann es etwa mit der Erweiterung RDFa weitere Möglichkeiten über globale Attribute geben, Metainformationen über bestimmte Inhalte im Dokument zu notieren, was in diesem Kapitel nicht behandelt wird. Die Verwendung von RDFa ist in einem Kapitel des Buches über XHTML RDFa ausführlich erläutert.
Metainformationen, welche sich auf das gesamte Dokument beziehen, werden im ersten Kindelement von Wurzelelement html untergebracht, dies ist das Element head.
Element head
Bearbeitenhead ist das erste Kindelement vom Wurzelelement html. Es enthält Metainformationen über das gesamte Dokument.
Spezifische Attribute hat das Element nicht. Die globalen sind notierbar. Gegenüber vorherigen (X)HTML-Versionen ist insbesondere das Attribut profil gestrichen, mit welchem es möglich war, Quellen zu referenzieren, welche den Metadaten eine spezifische Bedeutung geben, die über die wenigen Angaben hinausgehen, die mit Strukturen von (X)HTML selbst definiert sind.
Inhaltsmodell: Es sollte genau ein Element title in head notiert sein. Ferner kann genau ein Element base in head notiert werden.
Ansonsten können Elemente notiert werden, welche zur Kategorie Metadaten-Inhalt gehören, also: link , meta , noscript , script , style , template
In der Markierungssuppen-Variante ist es sinnvoll, als erstes Kindelement ein Element meta mit der verwendeten Zeichenkodierung zu notieren. Sofern die Kodierung nicht zuvor anderweitig offenbart wird, wird diese Metainformation an der Stelle noch berücksichtigt.
Beispiel:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xml:lang="de" lang="de"
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<title>Dokument-Titel</title>
<link href="hellaufdunkel.css" type="text/css"
title="hell auf dunkel" rel="Stylesheet" />
<link href="dunkelaufhell.css" type="text/css"
title="dunkel auf hell" rel="Alternate Stylesheet" />
<link href="kein.css" type="text/css"
title="kein CSS" rel="Alternate Stylesheet" />
<meta name="author" content="Wicki van Book" />
</head>
<body>
<h1>Überschrift</h1>
<p>Ein Absatz repräsentiert einen abgeschlossenen Gedankengang.</p>
<p>Ein Dokument kann natürlich viele Absätze enthalten</p>
</body>
</html>
Dabei ist bei der Markierungssuppen-Variante die erste Zeile mit der XML-Deklaration zu streichen.
Diese ist bei der XML-Variante optional, enthält jedoch hier die Kodierungsinformation, welche im head mittels meta notiert ist, für die XML-Variante so allerdings nie relevant ist, weil UTF-8 als Kodierung gilt, wenn keine Kodierungsangabe in der XML-Deklaration steht oder die XML-Deklaration fehlt.
Bei der Markierungssuppen-Variante hingegen gilt eine andere Kodierung (ASCII, also die üblichen lateinischen Buchstaben und indisch-arabischen Ziffern, keine Umlaute, keine ß-Ligatur), wenn keine andere Kodierung zum Dokument festgelegt wird.
Bei der XML-Variante ist also dieses Element meta mit der Kodierungsangabe reine Dekoration, ebenso wie die Dokumenttypdeklaration in der Form in der zweiten Zeile.
Element title
BearbeitenDas Element title beinhaltet die (aussagekräftige) Dokumentüberschrift. Ein Dokument hat genau ein Element title. Dieses ist Kindelement des Elementes head.
Globale Attribute können notiert werden.
Inhalt ist interpretierter Text, der nicht nur aus Leerzeichen besteht.
Das Element wird nicht direkt im normalen Fließtext dargestellt, zu dem Zwecke wird der gleiche oder ein ähnlicher Text in einem Element h1 zu Beginn des sonstigen Inhaltes notiert.
Wie der Inhalt von title präsentiert wird, ist nicht genau festgelegt. In den üblichen Programmen mit graphischer Ausgabe in einem separaten Fenster auf einem Monitor wird der Inhalt zumeist in der Kopfzeile des Fensters als einfacher Text dargestellt. Bei reiner Textrepräsentation kann der Titel räumlich vom folgenden Text abgeteilt sein. Wird das Dokument in ein anderes eingebettet (Elemente object, iframe etc), so kann es sein, daß der Titel vom Nutzer gar nicht direkt wahrgenommen werden kann, nur der Titel des einbettenden Dokumentes.
Wegen der Verwendung in Fenster-Kopfzeilen sollte der Titel nicht zu lang sein. Auch Roboter von Suchmaschinen versuchen bei langen Titeln mitunter eine Kürzung, ohne den Sinnzusammenhang zu verstehen. Daher empfiehlt sich, die wichtige Information zum Dokument selbst vorne zu notieren und hinten die für den Leser vermutlich eher sekundäre wie etwa der Name des Autors oder Herausgebers oder Angaben zum Gesamtprojekt, von dem das Dokument ein Teil ist.
Im historischen Sinne eines Dokumenttitels oder einer Überschrift ist der Inhalt von title eine Kurzzusammenfassung des Dokumentinhaltes in wenigen Worten. Je nach Art des Inhaltes sind mittlerweile aber auch andere Varianten von Titeln im Gebrauch. Jedenfalls repräsentiert der Titel in irgendeiner Weise das Dokument oder Werk selbst, wenn dieses anderweitig benannt oder darauf verwiesen wird. Insofern ist es wichtig, daß der Titel das Dokument selbst gut repräsentiert, nicht unbedingt ein Gesamtwerk aus mehreren, zusammengehörigen Dokumenten oder auch den Autor oder Herausgeber.
Titel wie 'Index', 'Einführung', 'Start', '1', 'Seite 1', 'Unbekanntes Dokument', 'Ohne Titel', 'Hier Titel einfügen' sind als Dokumenttitel in der Regel wenig geeignet, wenn oder weil sie den Inhalt des Dokumentes nicht charakteristisch repräsentieren, wenn das Dokument etwa in anderem Zusammenhang genannt oder referenziert wird. Für den speziellen Fall, daß wirklich aus künstlerischen Gründen kein narrativer Titel verwendet werden soll, hat es sich in der Kunst oft als brauchbar erwiesen, einen repräsentierenden Identifizierer zu verwenden wie 'Stahl 5/81', bei Texten vielleicht entsprechend 'Geschichte 2011-06-23T11:03Z' - das sagt dann, wie für den speziellen künstlerischen Zweck beabsichtigt, nichts über den Inhalt aus, reicht aber aus, um das Dokument zu repräsentieren. Sofern vorhanden, kann dafür auch eine DOI verwendet werden. Die Strategie vermeidet bei solch eigentlich titellos geplanten Dokumenten, daß sich Zitierende oder Referenzierende dann doch einen eigenen, vom Autor unerwünschten Titel einfallen lassen, um über das Dokument etwas aussagen zu können.
Bei Sachtexten ohne besonderen künstlerischen Anspruch an die Titelfrage empfiehlt sich jedoch immer der klassische Ansatz der Kurzzusammenfassung, nicht zu verwechseln mit dem 'abstract', welches eine etwas längere Zusammenfassung ist. Der klassische Ansatz sollte als Normalfall angesehen werden, auch für eine 'homepage' oder Präsentationen von Produkten, Firmen oder Werken, wo das Werk oder Produkt zwar selbst künstlerisch oder designtechnisch eine gesonderte Stellung einnehmen mag, das beschreibende Dokument als solches aber repräsentierbar und referenzierbar sein muß.
Beispiel
schlecht: 'HTML5' oder 'Sachtexte'
besser: 'Semantische Verwendung von HTML5 zur Auszeichnung von Sachtexten' oder in kürzerer Form vielleicht auch mit Autorennennung 'Sachtexte schreiben mit HTML5, von Wiki van Book'.
schlecht: 'Grünzeug-Karl'
besser: 'Bestellformularliste Gemüse-Sortiment von Grünzeug-Karl, Hannover Linden'
Element base
BearbeitenMaximal ein Element base kann im Element head notiert werden. Erforderliches Attribut ist href, dessen Wert eine absolute URI/IRI ist, also eine absolute Netz-Adresse. Diese dient dann im gesamten Dokument zur Auflösung relativer URIs/IRIs. Das Element selbst ist immer leer. Anders als das XML-Attribut xml:base gilt das Element base immer für das ganze Dokument.
Weil es verschiedene Meinungen darüber gibt, wie Verweise auf Fragmentidentifizierer aufgelöst werden sollen, ist die Kombination von base mit solchen im sonstigen Inhalt besser zu vermeiden. Das typische Verhalten von Darstellungsprogrammen in der Kombination weicht von einigen Empfehlungen ab, von anderen nicht. Folglich empfiehlt es sich nicht, base mit Verweisen zu kombinieren, welche nur auf Fragmente im selben Dokument verweisen, also gar keinen URI/IRI-Bestandteil enthalten.
Beispiel:
<base href="http://example.org/sample/" />
Ist im gleichen Dokument etwa notiert:
<a href="document#ex">ex</a>
oder
<link href="document#ex" title="ex" />
so ist die absolute URI/IRI jeweils immer "http://example.org/sample/document#ex".
Es kann zudem auch noch das Attribut target notiert werden, um anzugeben, in welchem Rahmen Verweisziele angezeigt werden sollen. Der Wert ist der Fragmentidentifizierer oder Name des jeweiligen Rahmenelementes, siehe auch das Kapitel über Verweise und das Element a. Alternativ kann ein spezielles Schlüsselwort notiert werden, welches als Autoren-Empfehlung anzusehen ist, wo das Verweisziel präsentiert werden soll. Insgesamt:
- leer oder Attribut nicht angegeben: Aktueller Anzeigebereich
- '_self': Aktueller Anzeigebereich
- '_blank': Neuer Anzeigebereich, also neues Fenster oder neuer Reiter
- '_parent': Im Elternanzeigebereich, sofern es den nicht gibt, im aktuellen
- '_top': Im obersten Anzeigebereich, gegebenenfalls im aktuellen, wenn es der oberste ist
- Name eines nicht existierenden Anzeigebereiches: wie '_blank'
- Namen einem Anzeigebereich zuzuordnen: dieser selbst
Beispiel:
<base href="http://example.org/sample/" target="_blank"/>
Das schlägt vor, daß jedes Verweisziel in einem neuen Anzeigebereich (Fenster oder Reiter) angezeigt werden soll. Sofern das Darstellungsprogramm eine entsprechende Funktionalität hat und der Nutzer diese nicht deaktiviert hat, wird solchen Vorschlägen gefolgt. Bei einfacheren Programmen oder solchen ohne visuelle Präsentation ist das Attribut belanglos.
Element link
BearbeitenMit dem Element link, welches immer innerhalb des Elementes head notiert wird, können andere Dokumente referenziert werden. link selbst ist ohne eigenen Inhalt.
Von gängigen Darstellungsprogrammen durchgehend interpetiert werden Verweise auf CSS-Dateien. Probleme gibt es allerdings bereits bei einigen, wenn mehrere CSS-Dateien alternativ zueinander angeboten werden.
Problematischer ist die Lage noch, wenn mit dem Element sogar auf andere Dokumente mit (X)HTML-Inhalt verwiesen wird. Einige Darstellungsprogramme stellen diese Verweise dem Betrachter der Seite gar nicht zur Auswahl zur Verfügung (was als eine Lücke oder einen Fehler in der Interpretation von HTML interpretiert werden kann; dies trifft etwa auf den Microsoft Internet Explorer zu oder auch auf Programme, welche webKit oder Blink verwenden), andere brauchen dazu eine spezielle Erweiterung (etwa bei Mozilla Firefox), die wenigsten bieten eine gleich eingebaute Darstellung (zum Beispiel Opera Presto, Mozilla Seamonkey).
Aufgrund der historisch und teilweise immer noch mangelhaften Interpretation dieses Elementes bei gängigen Darstellungsprogrammen konnte sich eine Projektnavigation durch Nutzung des Elementes link leider nie durchsetzen, stattdessen wird alternativ dazu oder ausschließlich eine Navigation im Dokumentinhalt genutzt, wo der Autor des Dokumentes hinsichtlich der Anordnung und Struktur immer wieder selbst eine sinnvolle Lösung finden muß.
Elementspezifische Attribute sind href, hreflang, type, rel, rev, media, crossorigin, nonce, referrerpolicy, sizes (nur in Zusammenhang mit rel='icon'). Eine von anderen Elementen abweichende Bedeutung hat das Attribut title bei link. Es gibt den Titel des Verweisziels an, insbesondere dient es bei referenzierten Stilvorlagen als Merkmal zur Auswahl einer alternativen Stilvorlage.
Die Verwendung aller Attribute ist optional, ohne href und rel ergibt sich allerdings keine Funktion.
href
BearbeitenDer Wert von href ist eine URI/IRI eines anderen Dokumentes oder ein Fragmentidentifizierer.
Beispiel relative URI: href="anderesDokument.xhtml"
Beispiel absolute URI: href="https://de.wikibooks.org"
Beispiel (falls im Dokument ein Fragmentidentifizierer mit dem Wert 'Navigation' vorhanden ist): href="#Navigation"
Zu beachten: Das Darstellungsprogramm wird das referenzierte Dokument je nach dessen Funktion ohne vorherige Nachfrage beim Nutzer von der angegebenen Quelle zu laden versuchen. Ob dies passiert, hängt vom Typ des Verweises ab. Beim automatischen Aufruf einer externen Quelle mittels absoluter IRI/URI gelangt so Information ohne Wissen des Nutzers auf den externen Dienstrechner. Hinsichtlich des Datenschutzes und der Privatsphäre des Nutzers ist dies bedenklich, folglich also besser zu vermeiden. Ist trotzdem eine externe Referenzierung erwünscht, ist im Sinne des Datenschutzes zuvor besser ein von dem Sachverhalt nicht betroffenes Dokument vorzuschalten, in welchem der Nutzer über das potentielle Datenleck informiert wird, sich damit also einverstanden erklärt, wenn das betreffende Dokument mit der externen Referenz aufgerufen wird. Beliebt sind mittlerweile wohl Aufrufe externer Stilvorlagen oder sonstiger Dienste. Sofern das überhaupt getan wird, sollte den Nutzern eine lokale Alternative bereitgestellt werden oder jedenfalls eine Variante des Projektes, welche auf derartige externen Quellen verzichtet.
hreflang
BearbeitenDer Wert von hreflang ist eine Sprachkennung für das referenzierte Dokument.
Siehe dazu auch die Erläuterungen zum globalen Attribut lang und xml:lang.
Beispiel (deutsch): hreflang="de"
Beispiel (englisch): hreflang="en"
Beispiel (französisch): hreflang="fr"
type
BearbeitenDer Wert von type gibt den Inhaltstyp (ehemals MIME-Typ) des referenzierten Dokumentes an, was aber vorrangig relevant ist, wenn sonst keine andere Quelle zur Ermittlung des Inhaltstyps verfügbar ist.
Kann das Darstellungsprogramm den Typ allerdings nicht darstellen, kann die Information auch dazu dienen, das referenzierte Dokument gar nicht erst zu laden, sondern etwa den Nutzer zu fragen, was passieren soll.
Beispiel (SVG-Dokument): type="image/svg+xml"
Beispiel (CSS-Dokument): type="text/css"
Beispiel (XHTML-Dokument): type="application/xhtml+xml"
Beispiel (HTML-Dokument): type="text/html"
rel und rev
BearbeitenMit den Attributen rel und rev wird ein Bezug zwischen dem referenzierenden und dem referenzierten Dokument hergestellt. link muß ein Attribut rel haben, um eine Funktion zu haben.
Mittels rel wird angegeben, welche Beziehung das referenzierte Dokument zum aktuellen hat. Bei rev ist es umgedreht.
Bei einigen Werten können Aussagen über das andere Dokument eine Abwertung implizieren, etwa wenn damit angedeutet wird, daß das referenzierte Dokument veraltet oder ungültig ist. Damit solche Aussagen nachprüfbar und verläßlich sind, sollte das referenzierte Dokument dann jeweils eine inverse Information über das referenzierende anbieten, daß das andere also etwa die neue oder korrigierte Version ist, sonst werden solche Information zumeist nicht als relevant eingestuft, weil nicht automatisch vom Darstellungsprogramm beurteilt werden kann, ob ein Autor eines Dokumentes dazu qualifiziert ist, relevante Aussagen zu einem anderen Dokument zu machen. Teilweise ist die Verwendung von rev bei einigen Werten nicht sinnvoll, das ergibt sich dann automatisch aus dem Definition des Wertes.
Der Wert von rel und rev ist eine Liste von Einzelwerten, die mit Leerzeichen voneinander separiert werden. Explizit definiert sind folgende Werte:
- alternate
- Eine Alternativversion des Dokumentes, dabei kann etwa mittels hreflang angegeben werden, in welcher anderen Sprache eine Alternative vorliegt. Entsprechend kann es auch zusammen mit media verwendet werden, um Alternativen für unterschiedliche Ausgabemedien anzubieten.
- stylesheet
- Angabe einer Stilvorlagendatei, meist eine CSS-Datei. In Kombination mit 'alternate' und title kann so eine Auswahl von Stilvorlagen bereitgestellt werden.
- author
- Name des Autors, Artikel über den Autor
- help
- Hilfeseite, weitergehende Informationen.
- icon
- Piktogramm für das Dokument oder das Projekt
- license
- Lizenzinformationen über das Dokument
- next
- Nächstes Dokument einer Gruppe von zusammengehörigen Dokumenten.
- prev
- Vorheriges Dokument einer Gruppe von zusammengehörigen Dokumenten.
- search
- Suchfunktion für das aktuelle Dokument und korrelierte Dokumente
Beispiel:
Im Dokument A ist bei einem Verweis auf Dokument B notiert: rel="search".
Dies bedeutet dann, daß in B die Suchfunktion zu A zu finden ist.
Umgedreht kann dann im Dokument B bei Verweisen auf A und gegebenenfalls andere Dokumente rev="search" notiert werden, um anzugeben, dass B eine Suchfunktion zu A (und den anderen Dokumenten) ist.
Autoren können auch andere Werte verwenden. Eine Bedeutung ist allerdings nicht eindeutig definiert.
Eine definierte Bedeutung kann eventuell mit der Erweiterung RDFa erreicht werden. Mit RDFa wird genau definiert, wie der Attributwert auszusehen hat, um definiert andere Werte zu verwenden als die zuvor gelisteten. Zu RDFa siehe auch das entsprechende Kapitel im Buch über XHTML: RDFa
media
BearbeitenMittels media kann angegeben werden, für welches Ausgabemedium das referenzierte Dokument gedacht ist. Der Wert ist eine Liste von Einzelwerten, die mit einem Komma voneinander separiert werden. Definierte Werte sind (Groß- und Kleinschreibung ist nicht signifikant):
- screen
- Computer-Bildschirme (Voreinstellung)
- tty
- Teleprinter, Terminals, Geräte mit grober Auflösung mit äquidistantem Zeichenraster
- tv
- Fernseher und ähnliche, niedrige Auflösung, Farbe, eingeschränkte Möglichkeiten zu rollen
- projection
- Projektoren
- handheld
- Tragbare Geräte mit geringer Auflösung, geringe Bandbreite, keine Farbe
- Druckausgabe auf einzelnen Papierseiten und Vorschau auf dem Monitor dafür
- braille
- Braille-Lesegeräte
- embossed
- Braille-Seitendrucker
- aural
- Sprachausgabe (CSS 2.0)
- speech
- Sprachausgabe (CSS 2.1)
- all
- Alle Geräte
In CSS3 werden auch Medienabfragen (englisch: media queries) definiert, mit denen eine noch genauere Berücksichtigung der Ausgabegerät möglich ist: Medienanfragen im hiesigen CSS-Buch.
crossorigin
BearbeitenMit dem Attribut kann angegeben werden, ob eine referenzierte Quelle als (technisch) vertrauenswürdig angesehen wird. Das kann sinnvoll sein, um Sicherheitsmaßnahmen zu ergreifen, wenn über das Element Daten in das aktuelle Dokument aus einer externen Quelle (andere Domäne) eingebettet werden. Ist das Attribut nicht gesetzt, kann das Darstellungsprogramm darüber keine Annahmen machen. 'anonymous' als Wert oder ein leerer Wert entspricht dem Verhalten, wenn das Attribut nicht gesetzt ist. Vertrauenswürdig sind dabei nur Quellen in derselben Domäne. Ist der Wert 'use-credentials', so wird die referenzierte Quelle als vertrauenswürdig eingestuft.
So kann etwa der Austausch von Keksen (englisch: cookies) und anderen Merkmalen zur Identifizierungen von Sitzungen oder Nutzern kontrolliert werden.
nonce
BearbeitenMit dem Attribut wird zu kryptographischen Zwecken eine Zeichenfolge etwa als Schlüssel angegeben.
Der Wert ist also einfacher Text.
Bei einer Referenzierung kann so ein Programm abgleichen, ob die Antwort paßt oder nicht.
Zum Beispiel könnte die MD5-Summe einer externen Ressource notiert werden, woraufhin mit einem Skript prüfbar wird, ob sich die referenzierte Quelle verändert hat.
referrerpolicy
BearbeitenDas Attribut gibt an, welche Strategie bei der Angabe eines Bezuges verwendet werden soll. Ein Bezug (englisch: to refer - auf etwas Bezug nehmen), hier also eine Spur hinterlassen, woher das Publikum auf eine Adresse gekommen ist. Das zusätzliche 'r' hat historische Gründe. Konkret geht es darum, daß ein Darstellungsprogramm bei einem Abruf eines Dokumentes von einem Dienstprogramm angeben kann, von welchem Dokument der Aufruf stattfand, wo also die Ressource für den Zugriff referenziert wurde.
Der Wert ist ein Schlüsselwort:
- "no-referrer"
- keine Angabe
- "" oder "no-referrer-when-downgrade"
- Keine Angabe für als nicht vertrauenswürdig angesehene Quellen, komplette URI/IRI für die vertrauenswürdigen Quellen; Voreinstellung, wenn das Attribut nicht angegeben ist. Vertrauenswürdig sind Adressen derselben Domäne und bei HTTPS auch Sub-Domänen
- "same-origin"
- Angabe nur bei selber Domäne
- "origin"
- Angabe beinhaltet lediglich die Domäne, nicht die komplette URI/IRI des Dokumentes
- "strict-origin"
- Angabe beinhaltet lediglich die Domäne, nicht die komplette URI/IRI des Dokumentes, allerdings gibt es nur eine Angabe bei derselben Domäne oder einer zugehörigen Sub-Domäne, sofern HTTPs verwendet wird, sonst keine Angabe
- "origin-when-cross-origin"
- Bei derselben Domäne wird die komplette URI/IRI angegeben, bei Sub-Domänen nur die Domäne, sonst nichts
- "strict-origin-when-cross-origin"
- Entsprechend, aber nur Angaben für HTTPs, nicht für HTTP
- "unsafe-url"
- Die komplette URI/IRI wird immer angegeben
sizes
BearbeitenDas Attribut gibt die Größe eines referenzierten Piktogramms bei rel='icon' als Hinweis an. Sofern mehrere Piktogramme referenziert werden, können Programme mit der Angabe entscheiden, welches davon am besten geeignet ist und verwendet wird.
Der Wert ist 'any' für alle Größen oder eine Zeichenfolge: "B'x'H" oder "B'X'H" Dabei sind B und H ganze, positive Zahlen (ohne führende 0), B repräsentiert die Breite, H die Höhe des Piktogramms in Pixeln.
Anmerkung: Die Zuordnung zu Breite und Höhe ist in der Empfehlung nicht eindeutig angegeben, typisch verwendete Piktogramme sind allerdings ohnehin quadratisch.
Beispiele: sizes="50x50" oder sizes="100X100"
title
BearbeitenDas Attribut title hat bei der Verwendung in link eine Sonderrolle, weil es dazu dient, einen Titel anzugeben, durch welchen das Element und der damit verbundene Verweis dargestellt wird. Ohne title kann also in einem Auswahlmenü keine Darstellung stattfinden. Bei Alternativen sollte natürlich auch der Inhalt von title jeweils unterschiedlich sein, damit eine gezielte Auswahl möglich ist. Handelt es sich um alternative Stilvorlagen, dient der Wert von title auch dazu, zwischen verschiedenen Stilvorlagen zu unterscheiden, die ja aus mehreren CSS-Dateien bestehen können, auf welche verwiesen wird. Weil Stilvorlagen ja auch selbst wiederum auf andere Dateien verweisen können, läßt sich die Komplikation allerdings recht einfach umgehen. Stilvorlagen ohne eigenen title werden immer angewendet, können also auch als gemeinsame Grundlage aller Alternativen dienen.
Beispiele
BearbeitenTypisch wird auf Stilvorlagen im Format CSS verwiesen. Hier ein Beispiel mit alternativen Stilvorlagen, der erste Stil wird also verwendet, wenn nichts ausgewählt wird, für die anderen sollte das Darstellungsprogramm eine Funktionalität bereitstellen, um die Alternativen auszuwählen. Hinsichtlich der Zugänglichkeit für alle kann es immer hilfreich sein, einen Stil mit heller Schrift auf dunklem Untergrund und umgekehrt verfügbar zu machen und natürlich auch eine minimalistische Möglichkeit mit einer leeren CSS-Datei für den Fall, daß der Nutzer beim Darstellungsprogramm den Knopf zum Deaktivieren der CSS-Interpretation nicht findet, für den Fall, daß das Darstellungsprogramm eine zu fehlerhafte Interpretation liefert.
<link href="voreinstellung.css" type="text/css"
title="Stil: Voreinstellung" rel="Stylesheet" />
<link href="hellaufdunkel.css" type="text/css"
title="Stil: Hell auf Dunkel" rel="Alternate Stylesheet" />
<link href="dunkelaufhell.css" type="text/css"
title="Stil: Dunkel auf Hell" rel="Alternate Stylesheet" />
<link href="exp.css" type="text/css"
title="Stil: Experimentell" rel="Alternate Stylesheet" />
<link href="nix.css" type="text/css"
title="Stil: Kein CSS" rel="Alternate Stylesheet" />
Beispiel zu mehrsprachigen Projekten, hier kommt automatisch die deutsche Version, als Alternativen sollten im Darstellungsprogramm englisch und französisch auswählbar sein:
<link href="index.de.xhtml" hreflang="de"
rel="Index" title="Index (de)" />
<link href="index.en.xhtml" hreflang="en"
rel="Alternate Index" title="Index (en)" />
<link href="index.fr.xhtml" hreflang="fr"
rel="Alternate Index" title="Index (fr)" />
Beispiel alternative Variante des Dokumentes im Format SVG anbieten, dazu eine akustische Alternative:
<link href="KarteSkulpturenInHannover.svg" type="image/svg+xml"
title="Interaktive Karte mit Standorten der Skulpturen" rel="Alternate" />
<link href="SkulpturenInHannover.oga" type="audio/ogg"
title="Vortrag über Skulpturen in Hannover" media="aural" rel="Alternate" />
Element meta
BearbeitenMit dem Element können Metainformationen zum Dokument angegeben werden. Das Element hat keinen Inhalt.
Attribute: name, content, charset, http-equiv
Es muß exakt eines der drei Attribute name, charset, http-equiv angegeben sein. Ist name oder http-equiv angegeben, so ist auch content zu notieren.
Bei XML-Notation hat das Element mit dem Attribut charset keine Funktion. In dem Fall muß der Wert 'utf-8' sein, Groß- und Kleinschreibung ist dabei egal.
Bei der Markierungssuppen-Notation sollte das Element mit dem Attribut charset als erstes Kindelement von head notiert sein, um die Kodierung anzugeben, Beispiel:
<meta charset="UTF-8" />
Mittels http-equiv wird eine HTTP-Direktive angegeben, welche vom Programm so interpretiert werden soll, als wäre die Information des Elementes vom Dienstrechner als Kopfinformation vor der Sendung des Dokumentes übermittelt worden.
name ist lediglich ein interner Name für eine Metainformation.
content ist der Inhalt der Information, einfacher Text, dessen Syntax vom Wert von http-equiv oder name abhängt.
Die Attribute name und http-equiv sind vom Typ 'name' wie auch das Attribut id. Werte müssen mit einem Buchstaben beginnen und können dann weitere Buchstaben a-z, A-Z enthalten, auch Ziffern 0-9, den Bindestrich '-', Unterstrich '_', Doppelpunkt ':' und Punkt '.' Groß- und Kleinschreibung ist nicht signifikant.
name oder http-equiv weisen der Meta-Angabe einen Namen zu. http-equiv ist als Alternative zu name gedacht, falls die Angaben eigentlich zu den HTTP-Kopfinformationen gehören, die so informationshalber in der Datei gesammelt werden können, womit jedoch nicht gesagt ist, daß sie vom Dienstprogramm als Kopfinformation gesendet werden oder vom Darstellungsprogramm äquivalent als gesendet interpretiert werden. Im Zweifelsfalle können solche Kopfdaten immer mit einem Dienstprogramm-seitigen Skript gesendet werden, sofern verfügbar.
Um den Metainformationen eine definierte Bedeutung zuzuweisen, ist es notwendig, zum Beispiel die Erweiterung RDFa zu verwenden.
Daneben gibt es einige tradierte Bedeutungen, die häufig interpretiert werden.
Roboter von Suchmaschinen etwa könnten die mit name versehenen Meta-Angaben nutzen, um Suchergebnisse zu optimieren. Da Autoren allerdings in der Vergangenheit viel Unfug mit solchen Angaben angestellt haben, um eigentlich für einen Suchbegriff irrelevante Seiten gut in den Suchergebnissen zu einem bestimmten Stichwort zu positionieren (etwa zu Werbezwecken), sind die Roboter hinsichtlich solcher Angaben kritischer geworden und sofern sie überhaupt verwendet werden, wird ein Plausibilitätstest mit dem restlichen Inhalt desselben Dokumentes durchgeführt.
Angaben mit http-equiv waren eigentlich einmal als Sammlung für das Dienstprogramm gedacht, welches die Datei ausliefert. Typische Dienstprogramme wie der Apache bringen es aber auch heute noch nicht fertig, auch nur die Kodierungsangaben aus einer XML-Datei auszulesen und korrekt im Dateikopf zu übertragen. Derartige Meta-Information werden von solchen Dienstprogrammen also erst recht ignoriert. Darstellungsprogramme können diese Angaben jedoch analysieren und sich so verhalten, als habe das Dienstprogramm solche Informationen gesendet. In einigen Fällen, wie etwa der automatischen verzögerten Weiterleitung, funktioniert das in der Praxis sogar recht gut, obgleich eine solche Kopfinformation so nicht einmal im HTTP definiert ist.
Prinzipiell legt bei der Verwendung von http-equiv das HTTP fest, wie der Wert von content auszusehen hat, weil dieser Wert eben als Bestandteil der HTTP-Kopfinformation der Datei interpretierbar sein muß. Insofern ist in der Variante eine Angabe eines Profiles oder Schemas nicht notwendig.
In den Empfehlungen erwähnte oder tradierte Verwendungen
BearbeitenIn der Empfehlung als Beispiel erwähnt ist die Angabe des Autors mittels
<meta name="author" content="Wilhelm Busch" />
Eine andere Möglichkeit ist die Angabe von Stichworten, die im Seiteninhalt vorkommen und besonders relevant für die Seite sind:
<meta name="keywords" content="Max, Moritz, Bubengeschichte, Streiche" />
Die Stichworte werden dabei traditionell durch exakt ein Komma und einfache Leerzeichen getrennt, wobei Zeilenumbrüche und ausgefallenere Varianten von Leerzeichen vermieden werden, um die einfache Auswertung durch Programme zu erleichtern.
Auch eine Datierungsvariante wird erwähnt:
<meta name="date" content="2011-06-21T12:00Z" />
Als Wert empfiehlt sich hier dringend das internationale Datumsformat, denn Angaben in sprachspezifischen Varianten, Dialekten oder privaten Notationen sind nicht eindeutig und enthalten damit keine relevante Information.
Welche Bedeutung das Datum für das Dokument hat, ist allerdings nicht festgelegt.
Auch Lizenzangaben (Urheberrecht) werden erwähnt:
<meta name="copyright"
content="Der Autor Wilhelm Busch ist 1908 verstorben,
urheberrechtlich ist das Werk daher frei verfügbar." />
Tradiert ist auch die Angabe einer Kurzbeschreibung:
<meta name="description"
content="Max und Moritz –
Eine gereimte Bubengeschichte in sieben Streichen" />
Dies kann anderen helfen, neben dem Titel auch eine kurze Beschreibung zu verwenden, wenn etwa von anderen Seiten oder aus Ergebnissen von Suchmaschinen auf dieses Dokument verwiesen wird.
Der Leser der anderen Seite kann dann bereits anhand von Titel und Kurzbeschreibung grob einschätzen, ob das Verweisziel relevant ist.
Aufgrund von Mißbrauch werden solche Hilfen allerdings von den Suchmaschinenbetreibern nicht durchgängig (eigentlich eher selten) angenommen, was andererseits auch zum Ergebnis hat, daß die von der Suchmaschine selbst erzeugten Kurzzusammenfassungen meist komplett unbrauchbar bis unsinnig sind.
Wenn andere Menschen allerdings einen Verweis setzen wollen, kann es natürlich sehr hilfreich sein, wenn der Autor selbst bereits für eine gute Zusammenfassung gesorgt hat, die zu dem Zwecke so übernommen werden kann.
Dies impliziert natürlich auch mehr oder weniger, daß der Autor diese Kurzbeschreibung zum Zwecke der Referenzierung lizenztechnisch freigibt, sonst ergäbe die Angabe keinen Sinn.
Andersherum können die Zitate von Suchmaschinen direkt aus dem Volltext einer Seite durchaus als Urheberrechtsverletzungen gewertet werden, da der Autor mit der Veröffentlichung des Volltextes nicht impliziert, daß Teile daraus einfach so verwendet werden dürfen.
Daher ist es wichtig, daß von der Annahme ausgegangen werden kann, daß der Autor implizit damit einverstanden ist, daß wenigstens die so notierte Zusammenfassung unbedenklich zur Verweissetzung verwendet werden kann.
Der Name 'generator' verweist auf den Namen eines Programms, mit welchem das Dokument erstellt wurde.
Der Name 'referrer' weist darauf hin, wie mit Informationen über die Historie von Aufrufen umgegangen wird. Der Wert von content dazu entspricht dann dem von referrerpolicy des Elementes link, bezieht sich hier allerdings auf alle Verweise im Dokument.
Auch die Gültigkeit, das Haltbarkeitsdatum kann angegeben werden, danach könnte ein Programm zum Beispiel vorsichtshalber eine neue Variante vom Dienstprogramm anfordern, wenn diese auf einem lokalen Zwischenspeicher abgelegt wurde:
<meta http-equiv="Expires" content="Tue, 21 Jun 2011 12:00:00 GMT" />
Leider wird hier für den Wert von content statt des internationalen Datumsformates ein veralteter amerikanischer Dialekt verwendet, was die Verwendung und Lesbarkeit international etwas erschwert. Spezialisierte Skriptsprachen wie etwa PHP haben spezielle Funktionen, mit denen derart verschlüsselte Angaben zum Haltbarkeitsdatum erzeugt werden können.
Besonders bei Plauderecken (englisch: chat) und Konstruktionen mit ähnlicher Funktionalität wird gern die verzögerte Weiterleitung verwendet. Diese Angabe entspricht zwar nicht dem HTTP, wird aber von gängigen Darstellungsprogrammen interpretiert, wenn sie als HTTP-Kopfinformation gesendet wird, zumeist aber auch, wenn es nur als Meta-Information notiert ist:
<meta http-equiv="refresh" content="600; URL=kapitel2.xhtml" />
Der Wert besteht aus einer Zahl als Angabe der Verzögerungszeit in Sekunden, gefolgt von einem Semikolon, gefolgt von der Zeichenfolge ' URL=' gefolgt von der URI/IRI, zu der weitergeleitet werden soll.
Diese Meta-Information ist mit Vorsicht anzuwenden, nicht nur weil sie nicht dem HTTP entspricht, sondern weil sie auch Zugänglichkeitsprobleme bereiten kann, gerade wenn sie funktioniert. Es ist daher zu empfehlen, einer Konstruktion, die dies verwendet, eine Seite vorzuschalten, wo der Nutzer diese Funktion explizit einschaltet oder alternativ eine Variante wählen kann, wo der Inhalt manuell gewechselt werden kann. Bei Plauderecken, die über ein Dienstprogramm laufen, wird der Nutzer hingegen mit der Funktionalität rechnen, da wird es meistens reichen, eine Funktion bereitzustellen, mit der das automatische und verzögerte Weiterleiten abgeschaltet werden kann, etwa mit einem Verweis auf eine Seite, die die Funktionalität nicht enthält, sondern einen normalen Verweis zum nächsten Inhalt enthält.
Letzteres ist auch für den Fall vorzusehen, daß ein Darstellungsprogramm diese Konstruktion ignoriert, weil sie nicht zum HTTP gehört.
Anwendungsmöglichkeiten für eigene Meta-Angaben
BearbeitenStellt ein Projekt selbst eine Suchmöglichkeit bereit, ist es ideal, eigene Meta-Angaben einzusetzen und dann nur diese zu durchsuchen, um effektiv die passenden eigenen Inhalte als Ergebnisse listen zu können. Weil sich die üblichen Angaben allerdings immer auf das ganze Dokument beziehen, ist es ohne eine Erweiterung so nicht möglich, Dokumentfragmente zu bezeichnen und als Ziel zu referenzieren. Dazu bietet aber auch die Erweiterung RDFa eine Möglichkeit in Form von weiteren Attributen, um gezielt anzugeben, worauf sich die Meta-Informationen beziehen, wenn sie sich nicht auf das ganze Dokument beziehen sollen.
Bei Verwendung der XML-Noation ist es ferner möglich, auch Elemente aus anderen Namensräumen zu verwenden, um im head Meta-Informationen definiert zu notieren. Etabliert sind dafür etwa RDF und die Elemente oder Terme von Dublin Core.
Element style
BearbeitenAnweisungen einer Sprache für Stilvorlagen können nicht nur in einer externen Datei untergebracht sein, auf die verwiesen wird, in dem Element style können diese im Bedarfsfalle auch im selben Dokument notiert werden. Dies kann etwa sinnvoll sein, wenn es darauf ankommt, alle Informationen in einem Dokument unterzubringen, etwa wenn man eine Bewerbung oder allgemein einen elektronischen Brief versenden möchte und man vermeiden möchte, ein Archiv zu senden, welches erst entpackt werden müßte, bevor der Inhalt gelesen werden kann.
style kann somit in head notiert werden, die dort notierten Stilvorlagen gelten für das ganze Dokument. In Version HTML5.2 kann style auch als Nachfahre von body notiert werden, wo fließender Inhalt auftreten darf. Gleichzeitig rät HTML5.2 allerdings davon ab, style nicht in head zu notieren und definiert auch kein abweichendes Verhalten für ein style in body, außer daß dieses dazu führen wird, daß die gesamte Präsentation noch einmal von vorne aufgebaut wird, wenn dieses Element dann interpretiert wird.
Aus Sicht von XML ist der Inhalt von style interpretierter Text (PCDATA). Zeichen wie insbesondere > und < sind darin also zu maskieren, wenn sie nicht zu Markierungen von XML-Elementen gehören. Alternativ kann natürlich auch in style ein CDATA-Bereich verwendet werden. Aus Sicht der Stilvorlagensprache, meist CSS oder manchmal vielleicht auch XSL(T), ist der Inhalt von style eine Struktur, die dieser Sprache entspricht, also in diesem Sinne interpretiert werden können muß.
Bei der Markierungssuppen-Variante ist der Inhalt des Elementes kein interpretierter Text, besondere Zeichen sind also nicht zu maskieren.
Ist unklar, ob das Dokument als 'text/html' oder 'application/xhtml+xml' ausgeliefert wird, sind folglich solche besonderen Zeichen in dem Element zu vermeiden, es ist besser eine externe Datei mit Stilvorlagen zu verwenden.
HTML selbst legt keine Sprache fest, die interpretiert werden können muß. Mit dem Attribut type kann der Inhaltstyp der Stilvorlagensprache angegeben werden, für CSS etwa 'text/css' oder für XSL(T) 'application/xslt+xml'. 'text/css' wird angenommen, falls das Attribut nicht angegeben ist.
Mit dem optionalen Attribut media wird das Zielmedium für die Stilvorlageninformation angegeben. Welche Medientypen verfügbar sind, hängt von der verwendete Stilvorlagensprache ab. Siehe auch dazu die Beschreibungen der gleichnamigen Attribute für das Element link.
Das Attribut title hat entsprechend wie bei link beschrieben eine Sonderfunktion, um alternative Stilvorlagen angeben und auswählen zu können.
Das Attribut nonce entspricht ebenfalls dem gleichnamigen für das Element link
Beispiel:
<style type="text/css" title="hell auf dunkel" media="all">
html {
color: #ddd;
background-color: #111;
font-family: sans-serif
}
</style>
<style type="text/css" title="dunkel auf hell" media="all">
html {
color: #222;
background-color: #eee;
font-family: sans-serif
}
</style>
Elemente aus anderen Namensräumen für Metainformationen
BearbeitenBei XML-Notation ist es auch möglich, innerhalb von head Elemente aus anderen Namensräumen anzugeben, um Metainformationen über das Dokument definiert zu notieren. Naheliegend sind die Sprachen RDF und Dublin Core (Elemente und Terme).
Beispiel (die Einträge sind weitgehend selbsterklärend, die Erläuterung von RDF und Dublin Core geht allerdings über dieses Buch hinaus):
<head>
<title>Charybdis7</title>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dct="http://purl.org/dc/terms/" >
<rdf:Description rdf:about="">
<dc:title>Charybdis7</dc:title>
<dc:creator>Claire Grube, Hannover (Hainholz), Deutschland</dc:creator>
<dc:created>2019-03-01/25</dc:created>
<dc:format>application/xhtml+xml</dc:format>
<dc:language>de</dc:language>
<dc:relation>https://de.wikibooks.org/wiki/HTML5:_Metadaten</dc:relation>
<dc:description>Die Dystopie spielt auf der Raumstation Charybdis7 in einem fernen Sonnensystem.
Nach dem Einschlag eines Gesteinsbrockens nimmt die Apokalypse für diesen Versuch der Menschheit,
sich außerhalb des Sonnensystems anzusiedeln, seinen Lauf.</dc:description>
<dc:rights>Die Urheber- und Veröffentlichungsrechte liegen bei der Autorin
Claire Grube aus Hannover.
Zum persönlichen Gebrauch und zur Verwendung für pädagogische Zwecke,
etwa in Schulen und Universitäten,
darf das Dokument ohne Nachfrage vervielfältigt werden.
</dc:rights>
<!-- der folgende Eintrag gibt an, daß es sich bei dem Dokument um HTML5.0 handelt: -->
<dct:conformsTo>https://www.w3.org/TR/2014/REC-html5-20141028</dct:conformsTo>
</rdf:Description>
</rdf:RDF>
</head>