molily: xhtml -- header-Angaben

Beitrag lesen

Hallo,

Mein Problem ist nun die Auslieferung der Seiten mittels des meta-Tags im head-Element, welches ich derzeit so stehen habe:

<meta http-equiv="Content-Type" content="application/html;
        charset=UTF-8" />

Da liegt wohl ein kleines Missverständnis vor.

»Auslieferung« bezieht sich darauf, dass der Web-Server dem Browser auf Anfrage das Dokument schickt. In dieser Serveranwort steht am Anfang eine Kopfzeile »Content-Type«. Mit http://web-sniffer.net/ kannst du die Kopfzeilen der Serverantwort lesen.

Die »Content-Type«-Kopfzeile enthält den MIME-Typ der darauffolgenden Daten. Das kann bei XHTML sein:

  • text/html  für abwärtskompatibles XHTML
  • application/xhtml+xml  für »echtes«, nicht HTML-kompatibles XHTML

application/html jedenfalls ist kein sinnvoller MIME-Typ. Weitere mögliche MIME-Typen lasse hier einmal außen vor.

Der Browser verarbeitet das Dokument gemäß dieser Content-Type-Angabe des Web-Servers. Was in einem meta-Element *im* Dokument steht, ist dafür unwichtig. Das heißt: »Auslieferung der Seiten mittels des meta-Tags« ist widersinnig. Du musst dich lediglich darum kümmern, was der Web-Server sendet.

Das Meta-Element ist nur ein einem Fall relevant:
Wenn du das Dokument als text/html auslieferst, kannst du dort die Kodierung des Dokuments angeben. Aber auch in dem Fall ist das meta-Element nur ein Ersatz: Die Kodierung kann auch in der HTTP-Kopfzeile Content-Type angegeben werden (die Syntax ist dieselbe).

Nun möchte ich die Seiten eigentlich als MIME-Type xhtml+xml ausliefern,  weil (so habe ich diverse Argumentationen im Netz verstanden) somit genauer geparst werden kann.

»Genauer geparst«, nunja, in dem Fall verwenden die (hinreichend fähigen) Browser ihren XML-Parser, der z.B. nicht fehlertolerant ist und eben streng nach XML-Regeln arbeitet. Für die Verarbeitung des Dokuments ergeben sich dadurch einige Besonderheiten (in CSS und JavaScript, siehe The perils of using XHTML properly).

Jedoch haben mit diesem MIME-Type verschiedene Browser wohl Schwierigkeiten, so dass die Barrierefreiheit potentiell eingeschränkt ist...

Es gibt einige Möglichkeiten, nur denjenigen Browsern application/xhtml+xml vorzusetzen, die in der Anfrage ausdrücklich darum bitten (über die Kopfzeile »Accept«).

http://schneegans.de/web/xhtml/#mime
http://schneegans.de/web/xhtml/#content-negotiation

Meiner Meinung nach lohnt es sich aber nicht, eine solche Weiche einzurichten.

Mathias