http://jendryschik.de

UX, Usability und Webstandards

Suche
SucheMenü

Textauszeichnung: Die erste Komponente des Webs

Hinweis: Diese »Einführung in XHTML, CSS und Webdesign« ent­spricht der zwei­ten Auf­lage des gleich­na­mi­gen Buches, das im Dezem­ber 2008 im Ver­lag Addison-Wesley erschie­nen ist. Die Inhalte sind mittlerweile veraltet, fast alles hat sich weiterentwickelt. Seit einigen Jahren gibt es HTML5, von XHTML redet niemand mehr, und auch die Entwicklung und Unterstützung von CSS ist um Einiges weiter. Auch fast alle Grundlagentexte müsste man schon lange fortschreiben. Falls Sie die Texte dennoch lesen möchten, behalten Sie das bitte im Hinterkopf.

Zurück zur Startseite und zum Inhaltsverzeichnis des Buchs

Viele Webdesigner fühlen sich beim Begriff Textauszeichnung überhaupt nicht angesprochen, dabei wären sie überrascht, erklärte man ihnen, dass damit ein wesentlicher Teil ihrer Arbeit gemeint sei. Keine zugängliche Website kommt ohne sinnvolle Textauszeichnung aus, keine Website kann hohe Suchmaschinenpositionen erreichen, wenn an der Auszeichnung ihrer Inhalte nur nebenbei gearbeitet würde. Warum das so ist, wird klar, wenn man einen Blick auf die Geschichte der elektronischen Textauszeichnung wirft. (vgl. [Behme, Mintert 2000]

Zum Seitenanfang

Dokumente

»Das ist ein wichtiges Dokument«, sagen wir gern zu Verträgen, Geschäftsbriefen, Zeugnissen oder beglaubigten Schriftstücken. Wir alle kennen den Begriff »Word-Dokument«. Webentwickler sprechen von »HTML-Dokumenten«. Aber was sind Dokumente eigentlich?

Ein Dokument ist in der elektronischen Datenverarbeitung eine (nicht ausführbare) Datei mit Inhalt, der in der Regel von Menschen gelesen werden kann. Es besteht aus Inhalt, Struktur, Informationen zur visuellen Darstellung und semantischen Informationen. Der Inhalt eines Dokuments setzt sich vor allem aus Texten zusammen, aber auch – gerade im Web – aus Bildern, Animationen oder Videos.

Da Inhalte für gewöhnlich nicht einfach willkürlich aneinandergereiht, sondern in irgendeiner Form strukturiert sind, kann man auch von strukturierten Inhalten sprechen.

Um Inhalte visuell ansprechend zu gestalten, bieten moderne Textverarbeitungsprogramme wie zum Beispiel Word zwei Vorgehensweisen an, eine »richtige« und eine »falsche«. Gehen wir von folgendem Beispiel aus: Eine Überschrift soll in einer größeren Schrift und fett formatiert werden. Unerfahrene Anwender wählen oftmals den scheinbar einfacheren, aber falschen Weg und formatieren die entsprechenden Textstellen direkt. Damit treffen sie zwar eine Aussage über die visuelle Darstellung des Texts und erreichen so ihr primäres Ziel, allerdings fehlt eine Aussage über die Bedeutung des Texts, die Semantik, an dieser Stelle. Ein Text wird nicht dadurch zur Überschrift, dass er groß und fett ist, sondern dadurch, dass man ihn als Überschrift auszeichnet. Der richtige Weg ist, eine semantische Formatierung zuzuweisen – in diesem Fall Überschrift 1 (siehe Abbildung 2.1) – und visuelle Einstellungen für diese Formatvorlage vorzunehmen. Diese Art des strukturorientierten Schreibens hat viele Vorteile.


Abb. 2.1: Verwendung von Formatvorlagen in Microsoft Word

Zum Seitenanfang

Strukturorientiert schreiben

Der Grundgedanke des strukturorientierten Schreibens liegt in der Trennung des Informationsgehalts eines Dokuments von dessen äußerer Form. Um bei unserem Beispiel zu bleiben: Die semantische Auszeichnung eines Texts als Überschrift und dessen Formatierung (groß und fett) sind zwei unterschiedliche Paar Schuhe. Das Konzept wird als generic coding (allgemeine Kodierung) bezeichnet und stammt bereits aus den 1960er-Jahren. Ebenfalls aus dieser Zeit stammt der Begriff generic markup, der auf den New Yorker Buchdesigner Stanley Rice zurückgeht. »Markup« bedeutet auf Deutsch »Textauszeichnung« und bezeichnete ursprünglich die handschriftlichen Anmerkungen eines Layouters am Rand eines Dokuments, die später im Satz berücksichtigt wurden. Auf diese Weise wurden das Seitenformat bestimmt und Seiteninhalte angeordnet sowie typografische Festlegungen getroffen. Textauszeichnung beschränkte sich damals fast ausschließlich auf visuelle Aspekte eines Texts. Beim generic markup steht die semantische Auszeichnung der Inhalte im Vordergrund. Markierungen machen dabei eine Aussage über die Art der markierten Stelle, zum Beispiel »dies ist eine Überschrift« oder »dies ist ein Zitat«.

Der Vorteil solcher Auszeichnungen liegt auf der Hand: Bei rein visueller Auszeichnung gehen Informationen schnell verloren, weil sie nicht maschinenlesbar sind. Ein Zitat, das so ausgezeichnet wird (beispielsweise kursiv und eingerückt), ist nicht mehr als Zitat erkennbar, wenn der Text vorgelesen wird. Eine semantische Auszeichnung hingegen könnte ein Sprachsynthesizer erkennen und eine entsprechende Anmerkung voranstellen.

Ein anderer Aspekt ist ebenfalls nicht zu vernachlässigen: Eine visuelle Auszeichnung ist unflexibel. Es lassen sich nur schwer Änderungen am Layout durchführen. Wenn beispielsweise Überschriften nicht mehr fett, sondern kursiv dargestellt werden sollen, müssen an allen Überschriften innerhalb eines Dokuments entsprechende Änderungen vorgenommen werden. Werden Überschriften hingegen als solche ausgezeichnet, reicht eine Änderung an der Formatvorlage, um alle Überschriften eines Dokuments anders zu formatieren.

Zum Seitenanfang

Standards: SGML und XML

Basierend auf den Ideen generic coding und generic markup entwickelten Charles Goldfarb, Edward Mosher und Raymond Lorie bei IBM im Jahr 1969 die GML (Generalized Markup Language), eine Metasprache, mit deren Hilfe Sie unterschiedliche Auszeichnungssprachen für Dokumente definieren können. Das Ziel war es, mit auf GML basierenden Sprachen die logische Struktur von Dokumenten zu beschreiben, beispielsweise die Einteilung eines Buchs in Kapitel, Abschnitte, Überschriften und Absätze, ohne das Aussehen des Dokuments zu spezifizieren. Dadurch waren auf GML basierende Dokumente unabhängig von einer bestimmten Plattform oder Anwendung.

Im Laufe der Jahre arbeitete Goldfarb daran, GML zu standardisieren. In Zusammenarbeit mit dem ANSI, einer US-amerikanischen Stelle zur Normung industrieller Verfahrensweisen, und der ISO, einer internationalen Vereinigung von Normungsorganisationen, gelang dies schließlich acht Jahre später im Jahr 1986 als SGML.

SGML (Standard Generalized Markup Language) ist eine Metasprache zur Definition von Auszeichnungssprachen für Dokumente. SGML ist als ISO 8879 [ISO-8879 1986] standardisiert und darüber hinaus in der europäischen Norm EN 28879:1990 und der DIN EN 28879:1991 beschrieben.

Behörden, Firmen, Bildungseinrichtungen und Institutionen begannen schnell damit, ihre Daten in SGML zu speichern. Mit HTML entstand Anfang der 1990er der bis heute bekannteste SGML-Dokumenttyp. Den großen Durchbruch auf breiter Front schaffte SGML aber nicht. Das liegt daran, dass hinter SGML zwar viele gute Ideen stecken und die Sprache sehr flexibel ist, diese Flexibilität aber mit einer erheblichen Komplexität erkauft wird. Das macht es Softwareentwicklern schwerer, Programme zu schreiben, die korrekt mit allen Facetten von SGML umgehen können.

Mitte der 1990er, als das Web zu boomen begann, bemühte sich eine SGML-Arbeitsgruppe beim World Wide Web Consortium (W3C) darum, SGML zu vereinfachen und für SGML so einen Weg ins Web zu finden. Das Ergebnis war XML (Extensible Markup Language) [REC-XML10 2004] [REC-XML11 2004], das 1998 als W3C-Empfehlung veröffentlicht wurde.

XML ist eine Teilmenge von SGML, man könnte auch sagen: eine abgespeckte Variante von SGML. XML soll es ermöglichen, Daten über das Web auszuliefern, zu empfangen, zu verarbeiten und zu verwalten, ähnlich wie es heute problemlos plattformübergreifend mit HTML möglich ist. XML wurde entworfen, um eine einfache Implementierung und Zusammenarbeit sowohl mit SGML als auch mit HTML zu gewährleisten. Dabei ist XML wie SGML eine Metasprache, mit der andere Auszeichnungssprachen definiert werden können.

Heute basieren sehr viele Sprachen auf XML, das SGML in nahezu allen Bereichen abgelöst hat. Auch HTML liegt als XHTML mittlerweile in einer XML-Syntax vor. In anderen Bereichen gibt es ähnliche Entwicklungen, beispielsweise bei DocBook, einem Dokumentformat zur Erstellung von Büchern, Artikeln und Dokumentationen im technischen Umfeld, das mittlerweile sowohl als SGML als auch als XML vorliegt. Vielfacher Grund für den Einsatz von XML ist die einfachere Syntax: die Definition von SGML umfasst 500 Seiten, jene von XML nur 26.

Die Dokumenttyp-Definition (DTD)

Eine Dokumenttyp-Definition (DTD) ist ein Satz an Regeln, der benutzt wird, um SGML- oder XML-Dokumenttypen zu definieren. In einer DTD geben Sie unter anderem an, welche Elementtypen in Dokumenten dieses Typs verwendet werden dürfen, wie Elemente ineinander verschachtelt werden müssen, welche Attribute es für welches Element gibt und welche Attributwerte jeweils zulässig sind.

Um sich ein Bild vom Aufbau einer solchen DTD zu verschaffen, werfen Sie bitte einen Blick auf Listing 2.1. Dieses definiert einen Dokumenttyp zur Auszeichnung eines Literaturverzeichnisses und ist ausführlich kommentiert, sodass Sie das Wesentliche verstehen werden, ohne zu tief in den Aufbau von DTDs einsteigen zu müssen. Wenn Sie gern mehr erfahren möchten, empfehle ich Ihnen die DTD-Einführung in SELFHTML [Münz et al.].

<!-- Das Wurzelelement heißt 'literaturverzeichnis'. Es darf beliebig viele (*) Elemente 'buch' enthalten. -->
<!ELEMENT literaturverzeichnis (buch)*>

<!-- 'buch'-Elemente bestehen aus einem Element 'titel', einem Element 'untertitel' (optional), beliebig vielen Elementen 'autor', einem Element 'link' (optional) und einem Element 'preis'. -->
<!ELEMENT buch (titel, untertitel?, (autor)*, link?, preis)>

<!-- 'buch'-Elemente haben ein Pflichtattribut 'isbn' -->
<!ATTLIST buch
  isbn CDATA #REQUIRED
>

<!-- Die Elemente 'link', 'titel' und 'untertitel' haben weder Attribute noch Kindelemente und dürfen lediglich Text enthalten. -->
<!ELEMENT link (#PCDATA)>
<!ELEMENT titel (#PCDATA)>
<!ELEMENT untertitel (#PCDATA)>

<!-- Das Element 'autor' besteht aus einem Element 'name' und einem Element 'vorname'. Darüber hinaus gibt es ein optionales Attribut 'typ', das den Wert 'herausgeber' annehmen kann. -->
<!ELEMENT autor (name, vorname)>
<!ATTLIST autor
  typ (herausgeber) #IMPLIED
>
<!ELEMENT name (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>

<!-- Das Element 'preis' darf nur Text enthalten und verfügt über ein Pflichtattribut 'waehrung'. -->
<!ELEMENT preis (#PCDATA)>
<!ATTLIST preis
  waehrung CDATA #REQUIRED
>
Listing 2.1: Eine DTD für ein Literaturverzeichnis

Ich möchte Sie an dieser Stelle nicht mit Erklärungen darüber aufhalten, inwieweit sich SGML und XML voneinander unterscheiden. Im weiteren Verlauf dieses Buches, wenn es um den Unterschied zwischen HTML und XHTML geht, werde ich noch einmal darauf zurückkommen.

Folgendes Listing zeigt ein Beispiel für ein Dokument, das auf dieser DTD basiert. Das Dokument ist so geschrieben, dass es sowohl ein SGML- als auch ein XML-Dokument sein könnte. Die erste Zeile stellt einen Verweis auf die DTD dar. Anschließend folgt das Literaturverzeichnis, das aus zwei Büchern besteht. Vergleichen Sie den Aufbau mit den Element- und Attributdefinitionen in der DTD.

<!DOCTYPE literaturverzeichnis SYSTEM literaturverzeichnis.dtd">
<literaturverzeichnis>
<buch isbn="3-8273-1872-6">
  <titel>XHTML, CSS und Co.</titel>
  <untertitel>Die W3C-Spezifikation für das Web-Publishing</untertitel>
  <autor typ="herausgeber">
    <name>Mintert</name>
    <vorname>Stefan</vorname>
  </autor>
  <preis waehrung="EUR">59.95</preis>
</buch>

<buch isbn="3-8273-2477-7">
  <titel>Einführung in XHTML, CSS und Webdesign</titel>
  <untertitel>Standardkonforme, moderne und barrierefreie Websites erstellen</untertitel>
  <autor>
    <name>Jendryschik</name>
    <vorname>Michael</vorname>
  </autor>
  <preis waehrung="EUR">39.95</preis>
</buch>
</literaturverzeichnis>
Listing 2.2: Beispiel eines Literaturverzeichnisses

HTML-Dokumente sehen übrigens ähnlich aus wie dieses Literaturverzeichnis, nur heißen die Elemente und Attribute anders. Das liegt daran, dass HTML ebenfalls ein SGML-Dokumenttyp ist. Auch für HTML gibt es eine DTD, genauer gesagt mehrere, nur dass diese viel umfangreicher sind als die Literaturverzeichnis-DTDs. In Kapitel 4.1 »Syntax und Vokabular« werden wir den Aufbau von (X)HTML-Dokumenten etwas genauer betrachten und uns auch mit den Begriffen Elementtyp, Element und Attribut näher auseinandersetzen.

Die Gültigkeit des Dokuments überprüfen Sie mit sogenannten Parsern; diese lesen zunächst die DTD ein und prüfen dann, ob das eigentliche Dokument konform mit der DTD ist (dazu mehr in Kapitel 3.2 »Validatoren«).

DTDs werden sowohl in der SGML- als auch in der XML-Definition beschrieben. Zur Definition von XML-Dokumenttypen stehen heute mit Schemasprachen wie XML Schema oder RELAX NG mächtigere Werkzeuge bereit, die wesentlich komplexere Zusammenhänge beschreiben können, als dies innerhalb einer DTD möglich ist. Auf diese Schemasprachen wird im Rahmen dieser Einführung jedoch nicht weiter eingegangen.

Zum Seitenanfang

Zusammenfassung

Tabelle 2.1 fasst die Entwicklung der Textauszeichnung noch einmal zusammen. Sie können sich sicher vorstellen, dass eine Zusammenfassung in dieser Kürze unvollständig sein muss. Tatsächlich werden lediglich die Eckdaten genannt, die wichtig für die Entwicklung der Textauszeichnung aus der Sicht des World Wide Webs waren.

Tabelle 2.1: Zusammenfassung der Entwicklung der Textauszeichnung
Zeitraum Entwicklung Beteiligte
1960er generic coding, generic markup William Tunnicliffe, Stanley Rice
1969 GML Charles Goldfarb, Edward Mosher und Raymond Lorie (IBM)
1978–1986 SGML ANSI, ISO und Charles Goldfarb
1989 HTML Tim Berners-Lee (CERN, später W3C)
1998 XML Tim Bray (Textuality, Netscape), Jean Paoli (Microsoft) und C. M. Sperberg-McQueen (University of Illinois at Chicago, Text Encoding Initiative) für das W3C
2000 XHTML Steven Pemberton (CWI), Dave Raggett (W3C, HP) u. a. für das W3C