Semantisches Markup
Wozu semantisches Markup ?
Ziel ist die Implementierung einer vom Verfasser gewollten Präsentation des Textes für:
- Menschen
- Inhaltsanalyse durch Suchmaschinen
- JavaScript im Browser zur Implementierung von Interaktion
Die Präsentation kann visuell auf Bildschirmen und Druckern, oder hörbar durch Reader erfolgen. Durch die Präsentation werden die textuelle Information mit zusätzlichen visuellen oder akkustischen Reizen angereichert. Z.B. wirkt ein im Schriftfont Arial präsentierter Text mit schwarzer Schrift auf weißem Hintergrund eher förmilich, während ein Schriftfont, der Schreibschrift immitiert, eher privat, vertraulich wirkt.
Phasen der Implementierung einer Präsentation
Die Textauszeichnung mit Markup ist der erste Schritt bei der Implementierung der Repräsentation. Durch das Auszeichnen von Text mit Tags wird dieser in Teilmengen von Texten aufgeteilt:
Im zweiten Schritt können jeder Teilmenge z.B. durch CSS Layoutregeln zugeordnet werden. Diese definieren das Erscheinungsbild im Detail.
Begriffsbildung semantisches Markup
Da eine Layoutregel immer auf eine durch Markup definierte Teilmenge von Text wirkt, erscheint dieser in einer einheitlichen Präsentation und wird als Block vom Betrachter wahrgenommen. Visuelle Blöcke suggerieren einen Zusammenhang der gebotenen Informationen. Die Textauszeichnung sollte also so erfolgen, das die visuellen Blöcke auch tatsächlich zusammenhängende Informationen darstellen. Semantisches Markup von HTML 5 folgt dieser Idee, indem für grundlegende Strukturen eines Textes wie Artikel, Überschriften und Absätze spezielle Tags bereitgestellt werden.
Beschränkungen in HTML 4
HTML 4 war vom Markup unzureichend, um allegemeine Textstrukturen wie Kopf, Fußzeile, Artikel auszuzeichnen. Man behalf
sich mit allgemeinen <div>
Blöcken, deren CSS- class
Attribut auf allgemein bekannte
CSS Klassen verwies wie header
, article
, footer
.
Zudem band HTML 4 Tags an fixe Layouts. Dies schränkte die Präsentationsmöglichkeiten unnötig ein.
Erweiterung in HTML 5
HTML5 führt neue Tags zur Textgliederung wie <header>
, <footer>
,
<article>
etc. ein. Das Markup wird durch den Wegfall der Attribute schlanker, allgemeiner und besser lesbar.
Zudem wird das das Prinzip der Trennung zwischen Textauszeichnung und auf diesen aufbauenden Layoutregeln vertieft. Dazu werden bereits bekannte Tags, die ursprünglich die Anwendung fixer Lauoutregeln auf Text definierten, neu als rein semantische Tags interpretiert. Ihre Bindung an fixe Layoutregeln entfällt.
Einschränkungen von HTML 5, und der Sinn von Komponeten, ARIA und Microdata
Die Textauszeichung von HTML 5 beschränkt sich auf:
- Die Gliederung von Texten (Artikel, Kopf- und Fußzeilen, Listen etc.)
- Berschreibung von Formularen
- Die Markierung von Eigennamen, Fachbegriffen, betonten Textstellen
- Die Dokumentation des Entwicklungsprozesses eines Textes (markieren irrelevat gewordener Tesxtstellen)
- die Defiinition elementarer Datentypen editierbarer Eigenschaften von präsentierten Geschäftsobjekten (Formularelemente)
Dies ist jedoch für die Programmierung von Webanwendungen, über die Geschäftsprozesse gesteuert werden, unzureichend. Denn für die explizite Darstellung von Geschäftsobjekten definiert HTML keine Regeln. Es ist der Phantasie und dem Geschmack des Programmierers überlassen, wie er z.B. Benutzerkonten einer Anwendung darstellt, die folgende Struktur haben:
Geschäftsobjekte durch Komponenten präsentieren
Die Präsentation eines Geschäftsobjektes mittesl Markup und CSS wird Komponente genannt. Eine mögliche Komponente für einen User wäre:
<article> <dl> <dt>UserName</dt> <dd>Martin</dd> <dt>Email</dt> <dd>Martin.Korneffel@mk-prg-net.de</dd> <dt>Roles</dt> <dd> <ol> <li>Admin</li> <li>Author</li> </ol> </dd> </dl> </article>Problematisch an dieser Präsentation ist die Auszeichnung der Eigenschaften und ihrer Werte durch allgemeines Markup. Dies würde auch die Anwendung allgemeiner Layout- Regeln für z.B. Definitionslisten (
<dl>
)
bedeuten. Die spezifische Präsentation von Eigenschaften eines User- Objketes ist so werder visuell noch
akkustisch möglich. Hier stoßen wir an die Grenzen eines auf Textstrukturen reduzierten Markups
Textauszeichnung mittels Attribute erweitern
Der Trick aus HTML 4, die Grenzen des eingeschränkten Markups durch Attribute zu überwinden, ist in HTML 5 expliziter Bestandteil. Dabei werden zwei Ansätze unterstützt:
- WAI ARIA: Erweiterte semantische Auszeichung durch Attributen mit der Zielstellung barrierefreier Webseiten
- MICRODATA Semantische Auszeichnung durch Attributen zwecks besserer Analyse durch Suchmaschinen (Semantisches WEB)
WAI Aria
Quellen:
Mit dem Attribut role
kann jedem HTML- oder SVG- Element eine Bedeutung zugewiesen werden.
Da das semantische Markup von HTML bereits feste Bedeutungen hat, sind die Werte der Aria- role- Attribute
bereits festgelegt (ARIA Defaultrollen).
Sinn macht die Zuweisung von Rollen bei Komponenten oder z.B. SVG Elementen, mit denen anspruchsvolle
Textgrafiken erzeugt werden, wobei die semantische Gliederung mittels role
Attributen erfolgt.
role=none
oder role=presentation
nimmt einem Element seine ursprüngliche semantische
Bedeutung.
Alte Tags mit neuer Bedeutung
<b>
und <i>
heben hervor, ohne die Betonung/Bedeutung zu steigern
In HTML 4.01 markierten <b>
fett gesetzten, und <i>
kursiven Text, und verstießen damit gegen den Vorsatz,
Markup ausschließlich zu Strukturierung einzusetzen.
In HTML5 werden mittels <b>
z.B. Produkt- oder Typnamen hervorgehoben. Auch Artikel- Previews bez. Teaser können mittels
<b>
vom restlichen Text abgesetzt werden.
<i>
dient in HTML5 zur Hervorhebung von Fachbegriffen/Fremdwörtern. Mittels des Attributs lang
kann bei Fremdwörtern
auf die Sprache verwiesen werden, aus der sie stammen.
Ein Beispiel ist der Begriff <i lang="en">Parser<i>
, der als aus der englischen Sprache stammender Fachbegriff markiert wurde.
In seiner Grundeinstellung stellt der Browser nach wie vor <b>
und <i>
als fett und kursiv dar. Der Webentwickler kann aber mittels
CSS3 Layoutregeln die Darstellung im Sinne der neuen Bedeutungen optimieren.
<code>
und <var>
zum Hervorheben von Quelltext (Programmiersprache) in Fachartikeln
Variablen in Computerprogrammen oder Platzhalter in Kommandos können mittels <var>
markiert werden:
dir Verzeichnispfad.
Hier wurde Verzeichnispfad als Platzhalter im DOS- Kommando dir markiert
Quelltextschnipsel werden mittels <code>
markiert:
dir Verzeichnispfad
Hier wurde das komplette DOS- Kommando mittels code markiert.
<s>
zur Markierung irrelevant gewordener Textstellen
<s>
diente in HTML 4.01 zur Darstellung von durchgestrichenem Text, und hatte damit eine reine Layoutfunktion.
HTML5 macht nun die mit durchgestrichenem Text naheliegende Assoziation von bedeutungslos/irrelevant gewordnenem Text zum primären Inhalt von <s>. Mittels CSS3 kann der Webentwickler diese Bedeutungslosigkeit nun nach seinem belieben visualisieren.
<hr>
markiert inhaltliche Brüche in einem Artikel
In HTML 4.01 wurde mit <hr>
eine horizontale Linie gezogen, und hatte damit eine reine Layoutfunktion. Die mit der optischen Trennung verbundene
Assoziation starker inhaltlicher Trennung zwischen vorausgegangenem und nachfolgendem Text wird in HTML5 jetzt die semantische Funktion von <hr>
.
In seiner Grundeinstellung stellt der Browser <hr> nach wie vor als graue, horizontale Linie dar.
<small>
zur Markierung von Kleingedrucktem
Auch <small>
hatte in HTML 4.01 eine reine Layoutfunktion: der gesamte Text innerhalb von <small> wurde im Vergleich zum Standardschriftgrad
etwas kleiner dargestellt.
HTML5 definiert für <small>
die Bedeutung, Zusatz/Detailinformationen vom restlichen Text abzugrenzen.
Während eine Layoutfunktion die Darstellung von Informationen festlegt, wird durch eine Semantikfunktion eine inhaltliche Abgrenzung
und Klassifizierung von Informationen realisiert
Neue semantische Elemente zur Textauszeichnung
Zeitangaben mit <time>
markieren
Heute ist der .
Publikationsdatum eines Artikels mit <time pubdate datetime=...>
dokumentieren
figure: Grafiken und alternative Darstellungen von Artikelinhalten
Bilder Tabellen und Grafiken, die mit einem Textinhalt in zusammenhang stehen, werden in HTML5 in <figure> Elementen gekapselt.
Ergebnisse von Benutzerinteraktionen markieren
Werden auf einer Webseite z.B. Begriffe durch einen Benutzer gesucht, dann können die Suchergebnisse mittels dem neuen <mark>
Element
markiert werden.
Neue semantische Elemente für die Gliederung
In HTML 4.01 erfolgte die semantische Gliederung ausschließlich durch eine feste Hierarchie von Überschriften <h1>
bis <h6>
. Ein
semantischer Abschnitt spannt sich dabei zwichen einer Überschrift der Ebene i und einer nachfolgenden der Ebene i oder j < i auf.
Beispiel
In HTML5 neue Abschnittselemente ein, welche die Möglichkeiten der semantischen Gliederung erweitern und verfeinern.
Beispiel
Detailierte Informationen zum HTML5 Outline- Algorithmus gibt es hier