Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 16.11.2007, 20:34
gato gato ist offline
Standardkatze
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 06.02.2007
Beiträge: 1.820
gato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nett
Ausrufezeichen [XHTML] HTML Kompatibilitätsrichtlinen 2.0a1

Ich wurde ja vor einiger Zeit mal danach gefragt.
Dieser Artikel, oder wie man es bezeihnen will ist ein erster Entwurf, das bedeutet er ist vollständig, Inhalte können sich aber wie immer ändern. Daher bitte ich um Kritik und Anregungen. Danke.
Hinweis: Auf Grund der Zeichenbeschränkung sind vier Beiträge nötig, um diesen Beitrag vollständig wiederzugeben (Ich hoffe die Forensoftware macht da keine Probleme..).

HTML Kompatibilitätsrichtlinien 2.0a1
Arbeitsentwurf vom 16. November 2007

Übersicht
  1. Hintergrund
  2. Ist es ein (X)HTML-Dokument?
  3. Richtlinien zur HTML-Kompatibilität
    1. Angabe der verwendeten Zeichenkodierung
    2. Verarbeitungsanweisungen
    3. Angabe der Elementsprache
    4. Auslagerung von Stil- und Skriptdaten
    5. Elemente mit leerem Inhaltsmodell
    6. Inhaltslose Elemente ohne leerem Inhaltsmodell
    7. Maskierung von (Markup-)Sonderzeichen
    8. Fehlende Attribute in XHTML
    9. Zeilenumbrüche in Attributen
    10. Nur in XML erlaubte Zeichen verwenden
    11. Das tbody-Element
    12. Die Interpretation von Stilangaben
      1. Hintergrundfarbe und -Bild des Anzeigebereichs
      2. Die overflow-Eigenschaft des Anzeigebereichs
      3. Groß- und Kleinschreibung
    13. Die Verarbeitung von Skripten
      1. document.write()
      2. Verwendung von DOM-Level-2-Methoden
  4. Weitere Informationen
    1. Das isindex-Element
    2. Boolische Attribute
    3. Definition und Ansteuerung von Sprungzielen
    4. Inkompatibilität zu XHTML 1.1
    5. Zukunftsfähigkeit von XHTML
    6. Ausblick auf XHTML5

Hintergrund

Als Anfang 2000 die erste XHTML-Spezifikation veröffentlich wurde, gab es kaum Browser die XHTML tatsächlich als solches verarbeiten konnten. Genauer gesagt war den Browsern der XHTML-Medientyp „application/xhtml+xml“ unbekannt. Webautoren waren jedoch neugierig und wollten das „neue“ HTML ausprobieren.
Aus diesem Grund enthält die Spezifikation der XHTML-Version 1.0 einen informativen Anhang. Dieser gibt Hinweise, wie XHTML-Quelltext beschaffen sein muss, damit dieser auch von HTML-Browsern verarbeitet werden kann. Damit dies möglich wird, wurde es Dokumenten der XHTML-Version 1.0 (und nur dieser) erlaubt, mit dem HTML-Medientyp „text/html“ versendet zu werden.
Dieser Anhang war nötig, da XHTML auch ein bisschen „Ballast“ von XML mitgenommen hat. Darüberhinaus kann Quelltext in HTML eine andere Bedeutung haben als in XHTML.
Wie bereits angesprochen wurden diese Regeln im Jahr 2000 verfasst. Ende 2002 wurde die XHTML-1.0-Spezifikation, und damit diese Richtlinien, leicht überarbeitet. Dennoch sind diese Hinweise aus heutiger Sicht veraltet, teilweise falsch und vor allem lückenhaft, denn viele problematischen Punkte werden gar nicht erwähnt.

Ist es ein (X)HTML-Dokument?

Damit man mit den Kompatibilitätsrichtlinien vernünftig arbeiten kann, ist es notwendig zu verstehen, ob es sich bei einem Dokument um ein HTML- oder ein XHTML-Dokument handelt. Dies wird durch den Medientyp des Dokuments bestimmt, denn daran erkennt der Browser, wie er das Dokument verarbeiten muss.
HTML-Dokumente sind untrennbar mit dem Medientyp „text/html“ verbunden. Ein XHTML-Dokument dagegen sollte als Medientyp „application/xhtml+xml“ besitzen, kann aber auch als „application/xml“ versendet werden. Früher war auch „text/xml“ möglich, gilt heute aber als veraltet.
Trotz dieser Definition kommt es oft zu Verständnisproblemen. Vielen Autoren ist nicht klar, dass XHTML-Quelltext, der als „text/html“ versendet wird, als HTML verarbeitet wird und daher ein HTML-Dokument ist.
Wir merken uns folgendes:
  • Ein Dokument ist ein HTML-Dokument, wenn es mit dem Medientyp „text/html“ versendet wird.
  • Ein Dokument ist ein XHTML-Dokument, wenn es mit einem XML-Medientyp wie „application/xhtml+xml“ oder „application/xml“ versendet wird.

Richtlinien zur HTML-Kompatibilität

Dieser Abschnitt führt die Richlinen auf, die beachtet werden müssen, wenn XHTML-Quelltext als HTML verarbeitet werden soll. Zudem wird gezeigt, woher diese Verarbeitungsunterschiede kommen, damit diese besser verstanden werden können.
Achtung: Einige dieser Unterschiede, vor allem im Bereich der Verarbeitung von Stilangaben und Skripten, werden browserweit sehr unterschiedlich interpretiert. Oftmals werden Regeln nicht ausgeführt oder gar gebrochen. Nur die in Diesem Dokument enthaltene Definition ist in diesen Fällen gültig.

1. Angabe der verwendeten Zeichenkodierung
Diese Richtlinie muss befolgt werden.

Die Zeichenkodierung, die das Dokument verwendet, muss so angegeben sein, dass diese sowohl von HTML- als auch von XML-Parsern erkannt werden kann.

Begründung

Dokumente, die keine Informationen über den Zeichensatz enthalten, mit dem sie kodiert wurden, müssen mit der Standardzeichenkodierung verarbeitet werden.
Zitat:
Zitat von http://www.w3.org/TR/html401/charset.html#h-5.2.2
[...] user agents must not assume any default value for the "charset" parameter.
HTML-Dokumente besitzen keine Standardzeichenkodierung. Die Spezifikation von HTML 4.01 geht jedoch nicht weiter auf diese Problematik ein. Die Browserhersteller haben daher verschiedene Ansätze entwickelt, um die Kodierung eines Dokuments festzustellen.
Zitat:
Zitat von http://www.w3.org/TR/xhtml1/#strict
[...] (An XML) declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16 and no encoding was determined by a higher-level protocol.
Für XHTML-Dokumente gilt als Standardzeichenkodierung entweder UTF-8 oder UTF-16.

Vorgehensweise

Die verwendete Zeichenkoderung kann innerhalb eines HTML-Dokuments sehr einfach festgelegt werden. Dazu ist es notwendig ein meta-Element mit diesen Informationen als erstes Kind des head-Elements zu erzeugen.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <!-- weiterer Quelltext -->
Die Metaangabe muss an erster Stelle stehen, weil der Titel eines Dokuments bereits Sonderzeichen enthalten kann, die in den zahlreichen Zeichensätzen eine unterschiedliche Bedeutung haben. Daher dürfen vor dieser Angabe auch keine Kommentare stehen, die Sonderzeichen enthalten.
In der Angabe muss der Medientyp „text/html“ angegeben werden. Einerseits, weil das der Wahrheit entspricht, andererseits weil nicht jedes Benutzerprogramm aus einer Metaangabe mit „application/xhtml+xml“ die Zeichenkodierung herauslesen kann.
Wird als Zeichenkodierung UTF-8 oder UTF-16 verwendet ist diese Angabe die einzig notwendige. Wird eine andere Zeichenkodierung verwendet, muss diese für XML-Parser angegeben werden.
Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <!-- weiterer Quelltext -->
Dies geschieht durch die XML-Deklaration, welche vor der Dokumenttypangabe angegeben wird. XML-Parser erkennen die Zeichenkodierung aus der Deklaration, HTML-Parser aus der Metaangabe.
Hinweis: XML-Parser können zusätzlich auch eine Byte-Order-Mark verarbeiten. Da diese aber vor allem bei der Arbeit mit serverseitigen Werkzeugen Probleme verursachen kann, sollte keine Byte-Order-Mark gesetzt werden.

Problemfall: Internet Explorer 6

Aus dieser Richtlinie ergibt sich ein Problem im Zusammenspiel mit dem Internet Explorer. Da der Version 6 die XML-Deklaration unbekannt ist, wird der IE 6 in den Quirksmodus versetzt. Das bedeutet die Darstellung entspricht dem IE 5.5 und all dessen Fehlern wie beispielsweise das falsch berechnete Boxenmodell.
Wird also eine andere Zeichenkodierung als UTF-8 oder UTF-16 verwendet, kann keine browserweit ähnliche Darstellung erreicht werden. Da der Internet Explorer 6 noch über ein Drittel des Marktes beherrscht ist eine abweichende Zeichenkodierung (oder alternativ: XHTML selbst) keine Option.
Mit Zitat antworten
Sponsored Links