Mittwoch, 5. September 2012
In der Web-Entwicklung versteht man unter Semantik die semantische Auszeichnung, also die Auszeichnung nach Bedeutung und Zweck.
Wenn die Auszeichnung nach einem Zweck erfolgt, werden beispielsweise Überschriftenelemente von
Diese Art der Auszeichnung wurde notwendig, als das Web nur aus wenigen Websites bestand und Autoren ihre Websites ausschließlich mit Tabellen codierten. Sie verwendeten beispielsweise Tabellenzellen oder Paragraphen für Überschriften und waren allgemein sehr kreativ beim Entwerfen des gewünschten Layouts. Zugegeben standen Autoren zu dieser Zeit wesentlich weniger Werkzeuge zur Verfügung als heute. Es war beispielsweise unmöglich, ein Layout mit drei Spalten zu codieren, ohne dafür eine Tabelle oder Bilder zu verwenden.
Bis heute sind sich Autoren nicht immer sicher, welches HTML-Element sie für welche Funktionseinheit auf ihrer HTML-Seite verwenden sollen. Gerade bei "lebendigen" Spezifikationen wie HTML 5 müssen Autoren genau prüfen, mit welchen Elementen eine Auszeichnung in Fällen erfolgen kann, in denen vorher nur "inhaltsleere" Fallback-Elemente wie
Nur die HTML-Spezifikationen geben Aufschluss darüber, welche Elemente das HTML enthält und welche Bedeutung diese haben. Es gibt zwar Indizes, die alle HTML-Spezifikationen und -Elemente enthalten und es dementsprechend einfach machen, ein Element und dessen Bedeutung nachzuschlagen. In vielen Fällen ist es allerdings notwendig, die HTML-Spezifikationen (auf Englisch) zu lesen.
Ein gutes Beispiel hierfür ist das Element code (auf Englisch):
Das Element
Wenn die Auszeichnung nach einem Zweck erfolgt, werden beispielsweise Überschriftenelemente von
h1
bis
h6
zur Auszeichnung von Überschriften verwendet, Paragraphenelemente
p
für Paragraphen, Listenelemente wie
ul, ol, dl
oder
datalist
und
menu
für Listen, Tabellen für Datentabellen usw.
Diese Art der Auszeichnung wurde notwendig, als das Web nur aus wenigen Websites bestand und Autoren ihre Websites ausschließlich mit Tabellen codierten. Sie verwendeten beispielsweise Tabellenzellen oder Paragraphen für Überschriften und waren allgemein sehr kreativ beim Entwerfen des gewünschten Layouts. Zugegeben standen Autoren zu dieser Zeit wesentlich weniger Werkzeuge zur Verfügung als heute. Es war beispielsweise unmöglich, ein Layout mit drei Spalten zu codieren, ohne dafür eine Tabelle oder Bilder zu verwenden.
Bis heute sind sich Autoren nicht immer sicher, welches HTML-Element sie für welche Funktionseinheit auf ihrer HTML-Seite verwenden sollen. Gerade bei "lebendigen" Spezifikationen wie HTML 5 müssen Autoren genau prüfen, mit welchen Elementen eine Auszeichnung in Fällen erfolgen kann, in denen vorher nur "inhaltsleere" Fallback-Elemente wie
div
oder
span
verwendet wurden.
Nur die HTML-Spezifikationen geben Aufschluss darüber, welche Elemente das HTML enthält und welche Bedeutung diese haben. Es gibt zwar Indizes, die alle HTML-Spezifikationen und -Elemente enthalten und es dementsprechend einfach machen, ein Element und dessen Bedeutung nachzuschlagen. In vielen Fällen ist es allerdings notwendig, die HTML-Spezifikationen (auf Englisch) zu lesen.
Ein gutes Beispiel hierfür ist das Element code (auf Englisch):
Das Element
code
ist ein Computercode-Fragment. Es kann sich dabei um einen XML-Elementnamen, einen Dateinamen, ein Computerprogramm oder einen anderen String handeln, den ein Computer erkennt.
Autorengesteuerte Semantik
Die Bedeutung von HTML-Elementen ist in den HTML-Spezifikationen festgelegt. Aber auch ID- und Klassennamen können eine Bedeutung haben. ID- und Klassennamen sind normalerweise wie Mikrodaten (auf Englisch) autorengesteuert. Die einzige Ausnahme bilden Mikroformate (auf Englisch). Mikrodaten oder -formate bleiben in diesem Artikel außen vor.Dank ID- und Klassennamen sind Autoren im Umgang mit HTML-Elementen fast keine Grenzen gesetzt. Dabei garantieren einige grundsätzliche Regeln, dass keine Probleme entstehen:
- So wenig IDs und Klassen wie möglich verwenden
- Funktionale ID- und Klassennamen (auf Englisch) oder ersatzweise allgemeine ID- und Klassennamen verwenden
- Namen so kurz wie möglich und so lang wie nötig halten (auf Englisch)
Vorteile der semantischen Auszeichnung
Die korrekte semantische Auszeichnung und moderate Verwendung von funktionalen ID- und Klassennamen hat folgende Vorteile:- Es ist eine professionelle Vorgehensweise.
- Die Zugänglichkeit wird erhöht.
- Die Verwaltung ist einfacher.
Sonderfälle
"Neutrale" Elemente, Elemente mit doppelter Bedeutung und Präsentationselemente stellen Sonderfälle dar.
div
und
span
bieten "einen allgemeinen Mechanismus, um Dokumenten eine Struktur zu verleihen". Sie können immer dann verwendet werden, wenn kein anderes Element mit den betreffenden Inhalten übereinstimmt.
In der Vergangenheit haben die Elemente
b, strong, i
und
em
für große Verwirrung gesorgt. Autoren sahen in
b
und
i
lediglich Layoutelemente und wollten diese in den meisten Fällen einfach mit
strong
und
em
ersetzen. Aber lassen wir die Vergangenheit ruhen, denn in den HTML5-Spezifikationen hat jedes dieser Elemente seine Berechtigung:
b
|
"Ein Textbereich, der sich vom restlichen Text abheben soll, ohne dabei eine besondere Bedeutung zu erhalten. Beispiele hierfür sind Schlagworte in einer Zusammenfassung, Produktnamen in einer Bewertung oder andere Textbereiche, die typischerweise in Fettschrift vorkommen." | <p>Die Zutaten <b>A</b> und <b>B</b> werden gebraten. |
---|---|---|
strong
|
"Wichtige Bedeutung der Inhalte" | <p><strong>Achtung.</strong> Dieser Kerker ist gefährlich. |
i
|
"Ein Textbereich, der anders als der restliche Text wiedergegeben werden oder sich von diesem abheben soll. Beispiele hierfür sind taxonomische Bezeichnungen, technische Begriffe, eine Redewendung in einer anderen Sprache, ein Gedanke, der Name eines Schiffs oder andere Textbereiche, die typischerweise in Kursivschrift vorkommen." | <p>Der Begriff <i>Textinhalt</i> ist oben definiert |
em
|
"Betonung der Inhalte" | <p><em>Katzen</em> sind niedlich. |
- center
- font
- s
- u
So überprüft ihr die Semantik eurer Website
Es gibt eine schnelle, aber etwas ungenaue Methode, die Semantik eurer Seite zu überprüfen, um nachzuvollziehen, wie sie von einem Screenreader interpretiert wird: Deaktiviert einfach CSS. Das könnt ihr beispielsweise mit der Erweiterung "Web Developer Toolbar" für Chrome und Firefox tun. Bei dieser Überprüfung werden zwar nur Probleme erkannt, die bei der Bedeutungsübertragung mit CSS entstehen, trotzdem kann sie sehr nützlich sein.Tools wie der W3C Semantic Data Extractor (auf Englisch) helfen euch dabei, die Aussagekraft eures HTML-Codes zu beurteilen.
Außerdem können Kollegen bewerten, ob ihr für eure Codierung Best Practices verwendet habt. Eure Nutzer können hingegen ein Urteil zur Zugänglichkeit eurer Inhalte abgeben.
Empfehlungen
Nicht empfohlen | Empfohlen | Grund |
---|---|---|
|
|
Für Überschriften werden Überschriftenelemente verwendet. |
|
|
Die Verwaltung von Präsentations- auszeichnungen ist teuer. |
|
|
Für Tabellendaten werden Tabellenelemente verwendet. |
|
|
Für Tabellendaten werden Tabellenelemente verwendet. |
|
|
Paragraphen werden mit Paragraphenelementen gekennzeichnet, nicht mit Zeilenumbrüchen. |