HTML-Sprachvariante

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Aktuell liegt der XHTML-Standard in der Version 1.1 vor.
In der Praxis werden meist XHTML 1.0 Transitional oder HTML 4.01 verwendet.



HTML-Sprachvariante festlegen

Damit eine in XHTML formulierte Webseite korrekt dargestellt werden kann, muss dem Browser mitgeteilt werden, dass die Seite in XHTML formuliert ist. Und welche Sprachversion genau verwendet wird. Es gibt verschiedene Möglichkeiten, dem Browser das mitzuteilen. Leider müssen Sie alle Möglichkeiten gleichzeitig verwenden und die Information mehrfach redundant übermitteln.

Beispiel Festlegendes Element Erklärung
HTTP/1.1 302 Found
Server: Apache
Content-Type: text/html; charset=utf-8
HTTP-Header Der Webserver sendet dem Browser im HTTP-Header grundlegende Meta-Informationen über die ausgelieferte Seite. Je nach HTML-Sprachvariante muss dabei der Content-Type anders angegeben werden. Siehe Artikel MIME-Type.
Überprüfen: siehe HTTP-Header lesen
Ändern: in der Konfiguration Ihres Webservers
<?xml version="1.1" ?>
XML-Deklaration Eigentlich wird dem XML-Parser des Browsers mit der XML-Deklaration nur mitgeteilt, welche XML-Sprachvariante verwendet wird (und welche Zeichenkodierung). In der Praxis gibt es Abhängigkeiten zum MIME-Typ mit potentiell sehr negativen Folgen, siehe Artikel XML-Deklaration.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Instanz hat Merkmal::Doctype Der Doctype eines Dokumentes hilft dem Empfänger bei der Entschlüsselung seiner Struktur. Der Browser entscheidet anhand dieser Angabe, ob er den Inhalt standardkonform anzeigt oder ob er den Quirks-Modus verwendet.
<html xmlns="http://www.w3.org/1999/xhtml" >
Document-Element Dem obersten Element eines XHTML-Dokumentes (Document-Element: html) muss ein XML-Namespace zugewiesen werden.
<meta http-equiv="content-type" 
      content="text/html; charset=utf-8" />
Meta-Tag content-type Überschreibt die Angaben im HTTP-Header (je nach Browser).

Vollständige Tabelle: siehe Prolog und Head



HTML 4.01 in drei Varianten

Beim Entwurf der Version HTML 4.01 sollte der Tatsache, dass in vielen HTML-Dokumenten noch Elemente und Attribute zur Präsentation eingesetzt werden, Rechnung getragen, aber auch eine stilistisch saubere Dokumenttypdefinition angeboten werden. Das Ergebnis waren schließlich drei Varianten:

  • Transitional: Die Transitional-Variante enthält noch ältere Elemente und Attribute, die auch physische Textauszeichnung ermöglichen. Damit lässt sich das Aussehen direkt in HTML formatieren. Diese Variante soll auch Webautoren, die noch nicht logische Strukturierung und Präsentation voneinander trennen, die Möglichkeit gegeben werden, standardkonformes HTML zu schreiben. Gleichzeitig soll sie sicherstellen, dass bestehende Webseiten weiterhin durch aktuelle Webbrowser angezeigt werden können.
  • Frameset: Diese Variante enthält zusätzlich zu allen Elementen der Transitional-Variante noch die Elemente für die Erzeugung von Framesets.
  • Strict: Diese Variante umfasst den Kernbestand an Elementen und Attributen. Es fehlen die meisten Elemente und Attribute zur Beeinflussung der Präsentation, unter anderem die Elemente font, center und u sowie Attribute wie bgcolor, align und target. Deren Rolle sollen in Strict-Dokumenten Stylesheets übernehmen. Text und nicht-blockbildende Elemente innerhalb der Elemente body, form, blockquote und noscript müssen sich grundsätzlich innerhalb eines Container-Elements befinden, zum Beispiel in einem p-Element.

XHTML 1.0

XHTML 1.0 stellt die XML-basierte Neuformulierung von HTML 4.01 dar. Es enthält alle Elemente von HTML 4.01, sodass die Umformung bestehender Seiten zu XHTML 1.0 leicht möglich ist. XHTML 1.0 wurde so angelegt, dass eine Rückwärtskompatibilität mit den verbreiteten HTML-Browsern möglich ist. Ein nicht XHTML-fähiger Browser kann XHTML-Dokumente unter bestimmten Bedingungen trotzdem richtig darstellen: er verarbeitet sie als normales HTML. Dabei wird ausgenutzt, dass die HTML-Parser der verbreiteten Browser tolerant gegenüber Syntaxfehlern sind.

Diese Fehlertoleranz entstand als Antwort darauf, dass zahlreiche HTML-Dokumente im World Wide Web nicht dem formalen Standard entsprachen und gleichzeitig Fehlermeldungen von Anwendern nicht akzeptiert werden. Für XHTML hingegen gilt die XML-Grundidee des unkomplizierten Datenaustauschs und der problemlosen automatisierten Verarbeitung. Daher sind Programme, die XHTML verarbeiten, nicht mehr derartig tolerant.

XHTML 1.0 erhält die bekannten drei Dokumenttypen Strict, Transitional und Frameset. XHTML Transitional 1.0 ist aber der letzte Dokumenttyp, der noch grafische Elemente enthält, wie etwa font oder b. Auch in XHTML Strict 1.0 sind noch einige wenige grafische Elemente enthalten, allerdings nur noch aus Gründen der Rückwärtskompatibilität zu den Transitional-Dokumenttypen.

XHTML 1.1

Die aktuelle Version XHTML 1.1 führt die Strict-Variante von HTML als „reine Lehre“ weiter und enthält keine grafischen Auszeichnungen mehr. XHTML 1.1 trennt sich von allen missbilligten Elementen und Attributen der Transitional- und der Frameset-Variante, die direkt die Präsentation des Dokuments beeinflussen. Der Sprachumfang entspricht weitestgehend dem von XHTML 1.0 Strict.

XHTML 1.1 ist nicht mit Blick auf die Kompatibilität zu HTML-Browsern angelegt.

XHTML 2.0

Die momentan in der Entwicklung befindliche Version XHTML 2.0 bricht mit dem Erbe aus HTML 4 und sieht grundlegende Veränderungen vor. Dadurch sind XHTML-2.0-Dokumente nicht kompatibel mit XHTML 1.1.

In XHTML 2 sind grafische Elemente gar nicht mehr enthalten. Für die optische Gestaltung von XHTML-Elementen soll nur noch auf externe Wird ergänzt von::CSS-Regeln verwiesen werden.

Wichtige Neuerungen sind

  • das vereinfachte uneingeschränkte Notieren von Links
  • das vereinfachte Einbinden anderer Medienarten (z. B. Grafiken und Videos)
  • die erweiterten Möglichkeiten für Barrierefreiheit
  • das ausgereiftere Angeben von Metadaten.

Bisherige Kernfunktionen von HTML bzw. XHTML werden in XHTML 2.0 in andere XML-Sprachen ausgelagert, insbesondere

HTML für mobile Endgeräte

Bei Mobiltelefonen und PDAs kommen abgespeckte HTML-Versionen zum Einsatz, die nur die wichtigsten Module von XHTML übernehmen:

  • XHTML Basic besteht nur aus den Grundgestandteilen von XHTML (und enthält keine Sprachelemente für die optische Gestaltung)
  • XHTML Mobile Profile beinhaltet XHTML Basic und gehört zu WAP Wireless Application Protocol
  • WML Wireless Markup Language beinhaltet in der Version 2.0 auch XHTML Basic und gehört ebenfalls zu WAP Wireless Application Protocol, wird aber wohl bald von XHTML Mobile Profile abgelöst werden.

Siehe Hauptartikel WML und XHTML Mobile Profile




Die wichtigsten Unterschiede zwischen HTML und XHTML

HTML XHTML
Groß-/Kleinschreibung der Element- und Attributnamen egal (z. B. <br>, <Br>, <BR>) immer klein (nur <br />)
Elemente ohne Inhalt, z. B. br <br> <img> entweder leeres Element-Tag (z. B. <br />) oder mit End-Tag (z. B. <br></br>)

Die Variante <br /> wird aus Gründen der Kompatibilität empfohlen

Start- oder End-Tag weglassen teilweise erlaubt beide immer angegeben
Attributwert in Anführungszeichen angeben optional, solange der Attributwert bestimmte Zeichen nicht enthält. immer
Boolesche Attribute, z. B. checked <input type="radio" checked> Attributname als Attributwert angeben, z. B. <input type="radio" checked="checked" />

Außerdem:

  • Das Start-Tag des Wurzel-Elements html muss immer die XML-Namensraum-Angabe für XHTML enthalten:
    <html xmlns="http://www.w3.org/1999/xhtml">
  • In XHTML 1.1 wurde das lang-Attribut durch das xml:lang-Attribut von XML ersetzt. In XHTML 1.0 wird die Angabe beider Attribute empfohlen, z. B.
    <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">.
  • Die Rolle des name-Attributs bei den Elementen a, frame und map übernimmt ab XHTML 1.0 das id-Attribut. Wenn Abwärtskompatibilität erwünscht ist, sollten sowohl das name- als auch das id-Attribut mit gleichem Attributwert notiert und XHTML 1.0 Transitional deklariert werden. In XHTML 1.1 bzw. XHTML-Modularisierung existiert kein name-Attribut mehr für diese Elemente.
  • Das Attribut name bei den Elementen form und img ist nur noch in XHTML 1.0 Transitional vorhanden, nicht in XHTML 1.0 Strict und XHTML 1.1. Diese Einschränkung ist vor allem beim DOM-Zugriff auf die Elemente relevant.

Beispiel

Ein Webbrowser akzeptiert folgendes standardkonformes HTML-Dokument:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<head>
  <title>Beispiel</title>
 
<h1>Beispielseite</h1>
<p>Ein Absatz
<P>Noch ein<br>
Absatz
<ol>
  <li>Listelement
  <li>Listelement
</ol>
<p><img src=bild.gif alt="Bildmotiv">

Das html- und das body-Tag wurden komplett weggelassen. Das head-Tag wurde nicht geschlossen, genauso wie viele andere (p, li). Bei dem Bild ist das src-Attribut ohne Anführungszeichen angegeben.

Das gleiche Dokument als gültiges XHTML 1.0 könnte folgendermaßen aussehen:

<?xml version="1.1" ?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
 <head>
   <title>Beispiel</title>
 </head>
 <body>
    <h1>Beispielseite</h1>
    <p>Ein Absatz</p>
    <p>Noch ein<br />
    Absatz
    </p>
    <ol>
      <li>Listelement</li>
      <li>Listelement</li>
    </ol>
    <p>
    <img src="bild.gif" alt="Bildmotiv" />
    </p>
 </body>
</html>

Jetzt ist das Dokument ein wohlgeformtes XML-Dokument. Die gößten Änderungen betreffen den Prolog und den Head:

  • Die XML-Deklaration <?xml version="1.1" ?> in der ersten Zeile ist optional, wird aber vom W3C empfohlen, da sie XML-Parsern die Zeichenkodierung des Dokuments mitteilt. Wenn die Kodierungsangabe fehlt und keine Kodierung im HTTP-Header gesendet wurde, kann der Browser gemäß dem XML-Standard die Kodierung UTF-8 oder UTF-16 verwenden.
  • Der Doctype spezifiziert das Dokument als XHTML 1.0 Strict und benennt das Document-Element (es ist html)
  • Der MIME-Type stellt bei XHTML 1.0 noch kein Problem dar. Für XHTML 1.1 müsste er allerdings geändert werden! Er steht gar nicht im Dokument selbst, sondern wird im Rahmen des HTTP-Protokolls übermittelt.


Mehr Details zu den Angaben im Prolog und Head unter Prolog_und_Head.

Siehe auch

Weblinks

wird ergänzt von::Javascript




Dieser Artikel basiert auf dem Artikel Hypertext_Markup_Language aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.




Dieser Artikel basiert auf dem Artikel Extensible_Hypertext_Markup_Language aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.