HTML5: Globale Attribute


Globale Attribute können bei allen HTML-Elementen verwendet werden.

Attribut dir, Schreibrichtung

Bearbeiten

Mit dem Attribut dir wird die Schreibrichtung im Element festgelegt. Es gibt zwei Werte, 'ltr' für von links nach rechts und 'rtl' für von rechts nach links. Die Voreinstellung ist 'ltr'.

Wird das Attribut beim Wurzelelement html gesetzt, so gilt der Wert für das ganze Dokument, sofern in Nachfahren kein anderer Wert gesetzt ist.

Wird das Attribut bei einem Blockelement gesetzt, so gilt der Wert für alle Blockelemente, die Nachfahren dieses Blockelementes sind, sofern in diesen Nachfahren kein anderer Wert gesetzt ist. Für Phrasenelemente gilt diese Vererbung nicht.

Zu beachten ist, daß die Kodierung von Schriftzeichen zum Beispiel nach UTF-8 bereits eine Schreibrichtung impliziert. Von daher wird das Attribut in den allermeisten Fällen nur benötigt, wenn die normale Schreibrichtung für die Schriftzeichen überschrieben werden soll.

Beispiel:

<p dir="rtl">rechts nach links</p>

rechts nach links

Attribut id, Fragmentidentifizierer

Bearbeiten

Das Attribut id dient dazu, ein Element eindeutig zu identifizieren. Dies wird auch als Fragmentidentifizierer beziehungsweise Fragmentidentifizierung bezeichnet.

Der Wert eines Attributes id darf in einem Dokument nur maximal ein einziges Mal vorkommen.

Wie der Wert aussehen darf, ist in XML genau festgelegt. Der Wert entspricht dort der Namensproduktion.

Eine etwas vereinfachte Auswahl, mit welcher ein Autor auf der sicheren Seite ist:
Der Wert beginnt immer mit einem Buchstaben a-z oder A-Z, keine Sonderzeichen wie Umlaute oder Ligaturen. Alternativ kann der Wert auch mit ':' oder '_' beginnen. Optional können dann noch weitere dieser Buchstaben oder Zeichen folgen, zusätzlich auch noch Ziffern 0-9, '-' und '.'.

Beispiel:

<section id="Kapitel01">
<h1>...</h1>
<p> ...</p>
</section>

Attribut class, Klassenzuordnung

Bearbeiten

In HTML kann ein Element ebenfalls selbstdefinierten Klassen zugeordnet werden. Dazu dient das Attribut class. Es kann also pro Klasse mehr als ein Element im Dokument geben, anders als id eignet sich class damit nicht zur Identifizierung genau eines Fragmentes.

Der Wert des Attributes ist eine mit Leerzeichen separierte Liste von Klassennamen.

Ein Klassenname in dem Sinne ist eine Zeichenkombination aus Buchstaben, Zahlen und den Zeichen '.', '-', '_', ':'

Vielfach wird das Attribut dazu verwendet, um eine Klasse von Elementen über einen CSS-Selektor mit Eigenschaften zu versehen. Der Wert des Attributes hat allerdings auch eine semantische Bedeutung, denn der Name der Klasse sollte charakteristisch zur Funktion der Elemente einer Klasse gewählt werden.

Zum Beispiel bedeutet class="Hilfe Menue", daß das Element zu den Klassen 'Hilfe' und 'Menue' gehört. Eine Bezeichnung wie class="klein blau" ist hingegen vermutlich keine semantisch gute Bezeichnung, weil es nichts über die Funktion des Elementes verrät, sondern bestenfalls über die beabsichtigte Präsentation (die bei einer alternativen Stilvorlage anders sein kann).

Beispiel:

<aside class="Reklame">
<h1>...</h1>
<p> ...</p>
</aside>

Attribut title, kommentierender Titel, Nutzerhilfe

Bearbeiten

Mit dem Attribut title kann einem Element ein Titel oder Kommentar zugeordnet werden, welcher nicht im normalen Textfluß, sondern nur bei Bedarf für den Leser sichtbar gemacht wird.

Der Wert ist normaler Text.

Es ist nicht festgelegt, wie Darstellungsprogramme im Bedarfsfalle den Wert von title zur Darstellung bringen.

Bei interaktiven, graphischen Programmen hat es sich jedoch etabliert, daß der Inhalt beim Drüberfahren mit einem Zeigergerät wie einer Maus etwas versetzt zum Zeigergerät in einem kleinen Kästchen getrennt vom sonstigen Inhalt dargestellt wird. Als Nutzerhilfe (englisch: tooltip) wird das Attribut häufig verwendet, um einem Leser Zusatzinformation zur Funktion des Elementes anzugeben.

Beispiele:

<abbr title="Lastkraftwagen">LKW</abbr>

LKW

<section title="kann übersprungen werden, wenn unzutreffend">
<h1>Tips für Anfänger</h1>
<p> ...</p>
</section>

Attribut style, Dekoration

Bearbeiten

Mit dem Attribut können Formatierungs- oder Dekorationsanweisungen für ein Element notiert werden. Der Wert ist zunächst einfacher Text. Die verwendete Stilvorlagensprache legt genauer fest, wie der Wert aussehen darf. Eine häufig verwendete Sprache ist zum Beispiel CSS.

Bei HTML sollte Inhalt von Dekoration und Layout strikt getrennt werden, daher sollte dieses Attribut im Allgemeinen vermieden werden. Es ist mehr für die Ausnahmesituation vorgesehen, wo aus bestimmten Gründen Angaben zur Dekoration nicht in einer externen Datei oder im Element style notiert werden können. In der Praxis treten solche Gründe allerdings fast nie auf. Um etwas schnell auszuprobieren, kann das Attribut allerdings sinnvoll sein. Vor einer Veröffentlichung wird das Attribut dann wieder entfernt und die Stilvorlagen-Angabe in die normale Stilvorlage übertragen (dort ist dann die Spezifität der Angabe korrekt vorzunehmen).

HTML5 sieht als Voreinstellung für die Stilvorlagensprache CSS vor.

<div style="outline: thin solid red">
Element provisorisch rot gerahmt hervorgehoben, 
etwa um bei der Behebung eines Stilvorlagenproblems 
die Abmessungen des Elementes genau zu erkennen,
es von anderen Elementen abzugrenzen.
</div>

Element provisorisch rot gerahmt hervorgehoben, etwa um bei der Behebung eines Stilvorlagenproblems die Abmessungen des Elementes genau zu erkennen, es von anderen Elementen abzugrenzen.

Attribut accesskey, Zugangstaste

Bearbeiten

Mit dem Attribut kann eine Navigation mit Hilfe der Tastatur ermöglicht werden. Der Wert des Attributes ist ein einzelnes, darstellbares Zeichen. Nach Antippen der Taste mit diesem Zeichen springt das Darstellungsprogramm zum so gekennzeichneten Element. Entsprechend darf ein Zeichen nur einmal pro Dokument als Wert verwendet werden.

Je nach Darstellungsprogramm kann es notwendig sein, eine zusätzliche Taste zu verwenden, um die Funktion zu aktivieren. Weil Darstellungsprogramme nicht notwendig das Publikum darauf hinweisen müssen, welche Tasten was bewirken, ist der praktische Nutzen meist allerdings begrenzt. Bei Programmen ohne visuelle Darstellung etwa für Blinde und Sehbehinderte kann die Funktion allerdings sehr sinnvoll sein, die Interpretation durch das Darstellungsprogramm also weiter fortgeschritten sein als für Programme mit visueller Präsentation.

Beispiel:

<div accesskey="a">
Nach hier sollte man mit der Taste 'a' springen können.
</div>

Nach hier sollte man mit der Taste 'a' springen können.

Attribut contenteditable, editierbarer Inhalt

Bearbeiten

Mit dem Attribut kann angegeben werden, ob das Publikum den im Element enthaltenen Text ändern kann oder nicht. Der Wert ist 'true' oder (also leer), falls der Inhalt vom Publikum geändert werden darf, 'false' wenn nicht. Ist das Attribut nicht angegeben, wird das Verhalten vom Elternelement geerbt.

Selbst wenn das Publikum Inhalte ändern kann, bedeutet dies lediglich eine Änderung in der aktuellen Präsentation, hat also keine Auswirkungen auf das Dokument bei einem erneuten Aufruf.

Beispiel:

<div contenteditable="">
Änderbarer Inhalt
</div>

Änderbarer Inhalt

Attribut draggable, verschiebbarer Inhalt

Bearbeiten

Mit dem Attribut kann angegeben werden, ob die Position des Elementes vom Publikum verändert werden darf. Der Wert ist 'true' oder (also leer), falls die Position vom Publikum geändert werden darf, 'false' wenn nicht. Ist das Attribut nicht angegeben, wird das Verhalten vom Darstellungsprogramm bestimmt.

Selbst wenn das Publikum die Position ändern kann, bedeutet dies lediglich eine Änderung in der aktuellen Präsentation, hat also keine Auswirkungen auf das Dokument bei einem erneuten Aufruf.

Mit dem Attribut title sollte immer angegeben werden, was der Zweck der Interaktion ist.

Wie die Verschiebung beim Publikum funktioniert, ist vom Darstellungsprogramm oder gar dem verwendeten Gerät abhängig.

Beispiel:

<div draggable="true" title="Nur ein Test">
Verschiebbarer Inhalt
</div>

Verschiebbarer Inhalt

Attribut hidden, versteckter Inhalt

Bearbeiten

Mit dem Attribut kann die Präsentation von Inhalt unterbunden werden, der demzufolge inhaltlich nicht relevant ist. Der Wert ist entweder 'hidden' oder (also leer), um das Element zu verbergen. Typisch kann der Zustand wieder per CSS oder JavaScript überschrieben werden, was allerdings nur dekorativ ist, also nichts an der inhaltlichen Aussage ändert.

<div hidden="" title="Nur ein Test">
Versteckter Inhalt
</div>

Versteckter Inhalt

Attribute xml:lang, lang, Sprache

Bearbeiten

Mit dem Attribut wird die im Element verwendete Sprache angegeben. Das Attribut xml:lang ist für XML-Formate allgemein definiert, ist also nicht für XHTML spezifisch. Siehe dazu weiter unten.
In der Markierungssuppenvariante hat xml:lang keine Bedeutung, lang schon, im Zweifelsfalle sind also beide Attribute mit demselben Wert zu notieren.

Der Wert ist ein Sprachkürzel gemäß BCP47, also im einfachsten Fall 'de' für deutsch, 'en' für englisch, 'fr' für französisch, 'it' für italienisch, 'es' für spanisch und so weiter, insbesondere noch 'x' für selbst festgelegte, experimentelle Varianten. Typen 'x' sind allerdings in ihrer Bedeutung nur lokal gekennzeichnet. Sofern dies wichtig ist, müßte zusätzlich als Metainformation auf ein Regelwerk der Sprachvariante verwiesen werden.

Sprachvariationen werden optional festgelegt, indem deren Kürzel hinter einem Bindestrich angefügt wird, also etwa de-AT für die Variante aus Österreich, de-CH für die aus der Schweiz, en-US für englisch im amerikanischen Dialekt etc. Ferner gibt es weitere Untertypen: de-DE-1996 für deutsch nach den Rechtschreibregeln von 1996 oder de-DE-1901 für die von 1901. Für die diversen Modifikationen nach 1996 gibt es aber wohl keine eigene Notation, de-DE-1996 ist folglich nicht eindeutig. Zwischen 1901 und 1996 haben sich in der Praxis natürlich auch diverse Änderungen oder Ergänzungen ergeben, die jeweilige Kennzeichnung kann folglich nur als Richtschnur angesehen werden. Bei Texten von vor 1901 kann es ferner stärkere individuelle Ausprägungen, lokale Varianten geben, welche im Bedarfsfalle ebenfalls über die Erweiterung mit 'x' gekennzeichnet werden können.

Auch hier kann das 'x' also wieder dafür herhalten, eine eigene Sprachvariante anzugeben, zum Beispiel en-x-Hixie oder als weitere Untervariante auch en-US-x-Hixie (ist tatsächlich beim Arbeitsentwurf vom 2011-05-25 für HTML5 zu finden ;o).

Betrachtet man also speziell die Sprachvarianten für deutsch, so ist mit der Angabe 'de' nicht festgelegt, um welche Variante es sich handelt. Erst durch Ergänzung eines Subtyps wird etwas feiner festgelegt, um welche Variante es geht. Da etwa die Schweizer etwas andere Rechtschreibregeln haben, ist es für diese sinnvoll, 'de-CH' anzugeben, was auch nützlich sein kann, wenn verschiedene Autoren einen Text bearbeiten. So bleibt immer klar, welche Variante verwendet wird.

Bedingt durch die Rechtschreibreform der deutschen Sprache lassen sich entsprechende Diskussionen auch weitgehend vermeiden, indem entweder der Typ mit Subtyp 'de-DE-1901' oder 'de-DE-1996' angegeben wird, wobei letztere Angabe durch Korrekturen der Reform in mehreren Jahren nach 1996 nicht ganz eindeutig ist. Da müßte es eigentlich ein paar weitere Subtypen geben. Diese oder persönliche Varianten wären folglich mit der Option 'x' zu ergänzen.

Jedenfalls deckt wiederum die Angabe von 'de' alle diese Varianten ab, sogar einschließlich individueller Varianten wie 'de-x-Dieter', im Grunde ist es bei der Angabe 'de' also sinnlos, Rechtschreibfehler zu diskutieren.

Eine korrekte Angabe für das gesamte Dokument ist zu empfehlen. Fehlt diese, wird die verwendete Sprache als unbekannt angenommen. Werden im Dokument für Passagen oder einzelne Wörter andere Sprachen verwendet, so sollte dies ebenfalls angegeben werden, indem das Attribut im umschließenden Element mit dem zutreffenden Sprachkürzel notiert wird. Zum Beispiel erleichtert dies Programmen, die Dokumente vorlesen, die Wörter besser verständlich auszusprechen.

Beispiele:

<p xml:lang="de-DE-1901" lang="de-DE-1901">
Daß das 'daß' so korrekt geschrieben ist, weiß ich schon.
</p>
<p xml:lang="de-DE-1996" lang="de-DE-1996">
Dass das 'dass' so korrekt geschrieben ist, weiss ich schon.
</p>
<p xml:lang="de-DE-1996" lang="de-DE-1996">
Dass die Konjunktion 
'<span xml:lang="de-DE-1901" lang="de-DE-1901">daß</span>' 
nach den Regeln von 1901 korrekt mit ß geschrieben wird, 
weiss ich schon.<br />
Dein Kumpel Dieter weiss das hingegen nicht, 
der schreibt auch für die Konjunktion immer 
'<span xml:lang="de-x-Dieter" lang="de-x-Dieter">das</span>'.
</p>

Probleme ergeben sich, wenn im Elementinhalt eine andere Sprache verwendet wird als in einem Attributwert. Gegebenenfalls ist hier auf zwei geschachtelte Elemente auszuweichen:

<span title="Der Würfel ist geworfen."><span xml:lang="la">alea iacta est.</span></span>

Attribut spellcheck, Prüfung

Bearbeiten

Mit dem Attribut wird angegeben, ob auf den Textinhalt des Elementes eine Rechtschreibprüfung und Grammatikprüfung anzuwenden ist. Beim Attributwert 'true' oder (also leer) soll die Prüfung stattfinden, bei 'false' nicht. Ist das Attribut nicht angegeben, wird das Verhalten vom Elternelement geerbt.

Ob ein Darstellungsprogramm zu einer Prüfung in der Lage ist, hängt sicherlich davon ab, ob die angegebene Sprache bekannt ist und ob dafür ein Wörterbuch und eine Definition der Grammatik vorhanden ist.

Anwendung findet die Prüfung ferner nur bei Elementinhalten, die auch vom Publikum veränderbar sind, also weil es Formularelemente mit Texteingabe sind oder weil das Element mittels contenteditable gekennzeichnet ist.

Beispiel:

<div contenteditable="" spellcheck="">
Änderbarer Inhalt, koregiren? koregirbahr?
</div>

Änderbarer Inhalt, koregiren? koregirbahr?

Attribut tabindex, Tabulatorindex

Bearbeiten

Mit dem Attribut kann angegeben werden, ob ein Element fokussierbar ist. Der Wert des Attributes ist eine ganze Zahl. Bei Darstellungsprogrammen wird typisch mit der Tabulatortaste der Fokus auf das nächste fokussierbare Element gewechselt. Die Zahlen geben die Reihenfolge an, in welcher dies geschieht, also begonnen mit der kleinsten Zahl, endend mit der größten, wobei Folgendes zu beachten ist:

Ist das Attribut nicht angegeben, ist die Reihenfolge die, in welcher die fokussierbaren Elemente im Quelltext angeordnet sind. Der Wert '0' ordnet ein Element in diese Reihenfolge ein. Bei einem negativen Wert ist ein Element noch fokussierbar, ist allerdings nicht in die normale Reihenfolge einsortiert. Bei gleichen Werten richtet sich die Reihenfolge nach der Reihenfolge im Quelltext.

Beispiel

<section id="Kapitel01" tabindex="1">
<h1>Am Anfang war das Ich</h1>
<p> ...</p>
</section>
<section id="Kapitel02" tabindex="2">
<h1>Eroberung der Welt</h1>
<p> ...</p>
</section>
<section id="Kapitel03" tabindex="3">
<h1>Vom Scheitern</h1>
<p> ...</p>
</section>
<section id="Kapitel04" tabindex="4">
<h1>Am Abgrund</h1>
<p> ...</p>
</section>
<section id="Kapitel05" tabindex="5">
<h1>Finale</h1>
<p> ...</p>
</section>

Attribut translate, Übersetzung

Bearbeiten

Mit dem Attribut kann angeben werden, ob ein Textinhalt eines Elementes gegebenenfalls übersetzt werden soll. Der Wert ist 'yes' oder (also leer) für ja, 'no' für nein. Ist das Attribut nicht angegeben, wird das Verhalten vom Elternelement geerbt.

Gelegentlich nutzt das Publikum Hilfen, um Texte in unbekannter Sprache zu übersetzen. Bei speziellen Konstruktionen, Fachwörtern, Inhalten zum Erlernen einer Sprache kann das zu unerwünschten oder gar falschen Ergebnissen führen. Verwirrung würde auch aufkommen, wenn etwa versucht würde, Textausgaben von Programmen in einer Anleitung zu übersetzen. Das Publikum hat ja nur die originalen Ausgaben, hat also nichts von einer Übersetzung. In solchen Fälle ist es sinnvoll, den Wert auf 'no' zu setzen.

Beispiele:

<p>
   Was haben sich deine Eltern dabei gedacht, 
   als sie dir zum Nachnamen <span translate="no">Grube</span> 
   den Vornamen <span translate="no">Claire</span> gegeben haben?
</p>
<p>
   Der Name des Ortes <span translate="no">Fucking</span> 
   hat bei englischsprachigen Besuchern schon öfter 
   ein Schmunzeln ausgelöst.
</p>

Attribute zu semantischen Notationen, RDFa

Bearbeiten

Als Erweiterung gibt es einige allgemein verwendbare Attribute, die dazu dienen, die vom Autor beabsichtigte Bedeutung, die Funktion und den Zweck von Elementen genauer festzulegen. Der Hintergrund dafür ist, daß HTML selbst nur einige Element hat, um Inhalte präzise semantisch zu kennzeichnen, was primär auf allgemeine Strukturen von Prosa-Text ausgerichtet ist. Für speziellere Ausdrücke bietet HTML selbst meist gar keine eigene Notation. Es ist jedoch oft erwünscht, diese Ausdrücke passend und spezifisch auszuzeichnen. Neben dem Wunsch, eindeutig aufschreiben zu können, was man eigentlich inhaltlich meint, gibt es so auch die ganz praktische Möglichkeit, daß Programme so präzise ausgezeichnete Information besser 'verstehen' und auslesen können, also dem Leser mit Hilfen besser zugänglich machen können, für den sich durch die präzise Notation auch Mehrdeutigkeiten der Aussagen gezielt vermeiden lassen.

Da die Markierungssuppen-Variante von HTML5 nicht erweiterbar ist, sind diese allgemein verwendbaren Attribute die einzige Möglichkeit, um die inhaltliche Bedeutung von Elementen präziser zu kennzeichnen.

Bei der XML-Variante können prinzipiell auch Elemente aus anderen Namensräumen für solch eine Erweiterung verwendet werden. Das bedeutet natürlich nicht, daß Darstellungsprogramme die Bedeutung kennen. Für eine angemessene Präsentation ist also immer eine Stilvorlage vorzuhalten.

Die Funktion wird umgesetzt mit Attributen, die mit XHTML+RDFa neu eingeführt wurden und allgemein verwendbar sind, dies sind in der Version XHTML+RDFa 1.0: about, content, datatype, typeof, property und resource. Zusätzlich sind die Attribute rel und rev nicht mehr nur bei ganz bestimmten Elementen verwendbar, sondern werden auch zu allgemein verwendbaren Attributen. In der Version XHTML+RDFa 1.1 kommen noch die Attribute vocab, prefix und inlist hinzu.

Die Verwendung ist in einem Kapitel des Buches über XHTML RDFa ausführlich erläutert.

Attribute role und ARIA-Attribute

Bearbeiten

Mit dem Attribut role kann die Funktion eines Elementes im Dokument genauer angegeben werden. Während die Attribute gemäß RDFa die semantische Bedeutung genauer festlegen, ist die Verwendung von role eher darauf beschränkt, von der Funktion her vermurkste Projekte irgendwie zu retten, wenn sie bereits zuvor durch Mischung der Inhaltsschicht ((X)HTML) mit der Dekorationsschicht (CSS oder JavaScript) für Teile des Publikums unzugänglich oder unverständlich gemacht wurden. Zur semantischen Auszeichnung ist eindeutig RDFa vorzuziehen, dabei ähnelt das Attribut property dem Attribut role. Bei RDFa property kann zudem frei gewählt werden, in welchen Spezifikationen, welchen Namensräumen die semantische Bedeutung festgelegt ist, wohingegen die definierten Attributwerte von role nur einen sehr beschränkten Umfang haben.

Das Attribut rolesorgt nun auch nicht etwa für die Wiederherstellung der vermurksten Funktion, sorgt nicht für die Beseitigung von Barrieren, schafft keinen Zugang zur eigentlichen Information. Die Attribute nähren eher die Sehnsucht jener Teile des Publikums, denen die Funktion verwehrt wird, dadurch, daß formal darüber informiert werden kann, welche Funktion der Inhalt hätte, wenn er funktionieren würde. Programme, die als 'Hilfe' dem Publikum den Wert des Attributes role zugänglich machen, machen damit also lediglich die Information zugänglich, was genau nicht funktioniert, sofern die Autoren es mit dem Attribut genau angegeben haben. Das betroffene Publikum kann sich also ungefähr vorstellen, was hätte passieren sollen.

Wenn Projekte gleich von Anfang an zugänglich erstellt wurden, wenn also die Schicht des Inhaltes mit einem Format wie SVG oder (X)HTML komplett verfügbar ist, strikt von der der Dekoration (CSS) getrennt ist, diese beiden von der massiv interaktiven Schicht (JavaScript), wird es in der Praxis nicht notwendig sein, das Attribut überhaupt zu verwenden. Wenn dringender Bedarf an einer Verwendung aufkommt oder gefordert wird, ist dies vermutlich ein Anzeichen dafür, daß das Projekt mangelhaft realisiert wurde und von Grund auf überarbeitet werden sollte statt durchgehend mit dem Attribut verziert.

Die möglichen Werte von role sind in einer gesonderten Spezifkation festgelegt: WAI ARIA

Generell haben HTML5-Elemente bereits eine definierte Rolle oder Funktion, die mit dem Attribut nicht überschrieben werden kann oder darf. Einerseits ist eine Verfeinerung möglich, andererseits bei generischen Elementen ohne festgelegte Rolle oder Funktion wie div und span auch die Festlegung einer Rolle oder Funktion.

Eine weitere Variante sind ARIA-Attribute aus der gleichen Spezifikation, insbesondere für interaktive Funktionen. Der Name beginnt jeweils mit 'aria-'. Danach folgt eine Zeichenfolge für den Status des Elementes, wie in der Spezifikation festgelegt. Die Werte der jeweiligen Attribute sind ebenfalls dort festgelegt. Bei den dafür gedachten Elementen von HTML5 ist der interaktive Status allerdings bereits impliziert oder ist dem Darstellungsprogramm ohnehin bekannt, daher ist es in solchen Fällen gar nicht notwendig oder sogar kontraproduktiv, einen Kommentar über den Status zusätzlich mit solchen Attributen anzugeben. Bleibt also die Verwendung bei solchen Elementen, die eigentlich für den Status gar nicht vorgesehen sind, was wiederum auf eine mangelhafte Umsetzung des Projektes hinweist, die eher zu beheben wäre, als die so falsch verwendeten Elemente mit zusätzlichen Attibuten zu verzieren. Eine Verfeinerung durch die Kennzeichnung ist allerdings auf dem Wege möglich, wenn daran Bedarf besteht.

Attribute nur für die XML-Variante von HTML

Bearbeiten

Attribut xml:space, Behandlung von Leerzeichen

Bearbeiten

Mit dem Attribut wird festgelegt, ob mehrere aufeinanderfolgende Leerzeichen in der Darstellung zu einem reduziert werden sollen oder nicht. Es gibt zwei Werte, 'default' und 'preserve'. Voreinstellung ist 'default'.

Bei 'default' werden zunächst alle Zeichen entfernt, die eine neue Zeile bewirken. Dann werden alle Tabulatorzeichen zu normalen Leerzeichen konvertiert. Danach werden alle führenden und endenden Leerzeichen eines Elementinhaltes entfernt. Als letztes werden alle aufeinanderfolgenden Leerzeichen auf ein Leerzeichen reduziert. Der verbleibende Text wird dann zur Darstellung gebracht. Dies hat dann auch zur Folge, daß Einrückungen und Zeilenumbrüche im Quelltext nahezu folgenlos bleiben. Nahezu, weil immerhin ein Leerzeichen verbleibt, wenn mindestens eines dieser Zeichen verwendet wurde. Kann man auch dieses nicht gebrauchen, darf man an der betroffenen Stelle weder Leerzeichen noch Zeilenumbrüche einfügen.

Bei 'preserve' werden zunächst alle Tabulatoren und Zeichen, die eine neue Zeile bewirken, zu Leerzeichen konvertiert. Dieser Text wird dann zur Darstellung gebracht. Führende und endende Leerzeichen und mehrere aufeinanderfolgende bleiben in der Darstellung also erhalten. In diesem Falle werden Einrückungen im Quelltext also sichtbar, dort untergebrachte Zeilenumbrüche jedoch nur als weitere Leerzeichen.

Attribut xml:lang, verwendete Sprache

Bearbeiten

Das Attribut hat dieselbe Bedeutung wie das Attribut lang. In XHTML 1.1 gab nur das Attribut xml:lang, daher ist zu empfehlen, dieses bei XML-Notation zu verwenden, optional zusätzlich lang.

Attribut xml:base, verwendete Basisadresse

Bearbeiten

Mit dem Attribut kann eine Basisadresse angegeben werden, nach welcher relative Adressen (IRI/URI) innerhalb des Elementes aufgelöst werden. Der Wert ist eine Zeichenkette, dabei ist es einerseits möglich, eine komplette IRI/URI als Basis anzugeben, andererseits auch einen Bestandteil einer relativen Adresse, also lediglich ein lokales Verzeichnis abweichend vom aktuellen. Bei Bestandteilen einer relativen Adresse wird der absolute Anteil aus vorherigen Informationen übernommen, etwa einem weiteren Attribut xml:base, welches höher in der Elementhierarchie steht oder aber aus der absoluten Adresse des aktuellen Elementes.

Attribute zur Ereignisbehandlung

Bearbeiten

HTML5 hat als Erbe der alten Versionen auch zahlreiche Attribute zur Ereignisbehandlung verfügbar. Diese Attribute haben allerdings nur eine Funktion in Verbindung mit damit aufzurufenden Skripten (Java-Script). Weil es allerdings im Sinne der strikten Trennung von Inhalt (HTML) und Dekoration (CSS, Java-Script) sinnvoll ist, diese Schichten strikt zu trennen, ist es nicht sinnvoll, diese Attribute heute noch einzusetzen. Im Bedarfsfalle kann die Ereignisbehandlung komplett im Skript über das DOM (Dokument-Objekt-Modell) erfolgen, was die Attribute obsolet macht.

Sie werden daher hier nicht näher beschrieben.

Persönliche (Pseudo-)Attribute

Bearbeiten

HTML5 erlaubt als globale Attribute auch persönliche (Pseudo-)Attribute ohne inhaltliche Relevanz und Bedeutung. Teile des Namens dürfen Autoren selbst festlegen. Darstellungsprogramme ignorieren sie und das Publikum sollte aus ihrer Anwesenheit und ihrem Wert keine Bedeutung ableiten.

Die Nützlichkeit für Autoren beschränkt sich auf interne Kennzeichnungen, etwa wenn bei einem dynamischen Projekt vorbereitete Fragmente in verschiedene Dokumente kopiert werden. Ist solch ein persönliches Attribut notiert, wird entsprechend eine Verarbeitung oder Anpassung an die jeweilige Ausgabe eventuell erleichtert.

Der Name der (Pseudo-)Attribute beginnt immer mit der Zeichenfolge 'data-'. Danach folgt mindestens noch ein weiterer kleiner Buchstabe (a-z im Umfang von ASCII, also etwa keine Umlaute oder dergleichen Sonderzeichen), bei Bedarf mehrere dieser kleinen Buchstaben.

Beispiel:

<div data-aaaf="42">Was ist die Antwort auf die Frage aller Fragen? …</div>
<div data-schluessel="azqw5$">Ohne Schlüssel kein Schlüsselerlebnis? …</div>

Ebenfalls möglich: Per CSS könnte der Attributwert nach einer Nutzerinteraktion angehängt werden. Entsprechend wäre eine Interpretation per JavaScript möglich. Beides ist allerdings immer als rein dekorative Anwendung zu sehen. Die Methode soll nicht verwendet werden, um dem Publikum den Zugang zu relevanter Information zu erschweren.