Björn Höhrmann: http-equiv="Content-Type" - validierer Tidy meckert

Beitrag lesen

Wenn ich die Spracheinstellung so definiere:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8559-1">

Zeichensatz!

Dann meckert mir mein Validierer, http-equiv="Content-Type" sei nicht nötig und löscht es. (HTML 4 standard)

Wer hat nun recht? Ich, oder der Validierer? Wird das http-equiv nicht (mehr) angegeben??

Also, erstmal nehme ich mal an, dass du mit 'Validierer' Dave Raggetts HTML Tidy meinst. HTML Tidy ist ein 'pretty printer' oder auch einfach ein Säuberungsprogramm für HTML Datein. Man kann ihn vielleicht auch noch als HTML Checker bezeichnen, aber ein Validator ist es nicht. Ein Validator prüft mit einem SGML Tool wie SP von James Clark die Validität des HTML Codes gegen die angegebene DTD, Tidy tut das nicht und ist somit kein Validator, aber das nur nebenbei.

Fakt ist, dass HTML4 die Attribute HTTP-EQUIV und NAME als CDATA definiert und man somit dort nach belieben Text plazieren kann, das ist auch bei HTML 4.01 nicht anders. Die HTML 4.01 Specs selber benutzen die Angabe ja auch...

HTTP-EQUIV dient dazu, wie du wohl schon weisst, eine Entsprechung für einen Header einer HTTP Message zu definieren. Du willst jetzt 'Content-Type' spezifizieren, um genau zu sein, willst du das verwendete Charset, den Zeichensatz angeben, was auch völlig legitim ist, aber imho unnötig.

Wesentlich sinnvoller ist es, wenn du in deiner /public_html/.htaccess oder gleich in der httpd.conf folgendes einträgst:

AddType "text/html; charset=iso-8859-1" html

Damit wird die Meta Angabe tatsächlich unnötig, weil bei jedem HTTP Request der Server gleich 'Content-type: text/html; charset=iso-8859-1" bei .html Datein sendet (eleganter, wird eher unterstützt, spart Bandbreite, macht den Code übersichtlicher, etc.)

(IIRC gab es auch mal ein Problem mit dem Netscape Navigator und dieser Angabe. Ich glaub er führte dann immer einen Reload der Seite durch oder so...)

Somit wäre ein solcher Hinweis sicherlich richtig, aber er würde mich überraschen. Ich helfe selber bei der Weiterentwicklung von HTML Tidy mit und mir war ein solches Verhalten unbekannt, daher:

bjoern@intranet $~ tidy

Tidy (vers 26th July 1999) Parsing "stdin"
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html40/loose.dtd">
<HTML lang="de">
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8559-1">
<title></title>
</head>
<body>
<p>meta test</p>
</body>
</html>

^Z

"stdin" appears to be HTML 4.0
no warnings or errors were found

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html40/loose.dtd">
<html lang="de">
<head>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8559-1">
<title></title>
</head>
<body>
<p>meta test</p>
</body>
</html>

also gibt es keine Warnmeldung, noch streicht er es. Ich weiss nicht, ob du nicht vielleicht das HTML Kit von 'chami' meinst, da weiss ich nämlich gerade nicht, ob das so ist, falls ja, solltest du den Autor kontaktieren.

Um es zusammenzufassen:

* <meta http-equiv="Content-Type" content="text/html; charset=iso-8559-1"> zu benutzen ist völlig legal und bei Dokumenten, die man sich downloaden soll zum offline lesen, empfehle ich es einzusetzen.

* Bei den anderen (also den allermeisten) Seiten, sollte man lieber in die .htaccess

AddType "text/html; charset=iso-8859-1" html

schreiben, aus o.g. Gründen.

Quellen:
http://www.w3.org/TR/html40/struct/global.html#adef-http-equiv
http://www.w3.org/People/Raggett/tidy/
http://www.chamisplace.com/
view-source:http://www.w3.org/TR/html40/struct/global.html#adef-http-equiv

Ich hoffe das hilft.

--
Björn Höhrmann - mailto:bjoern@hoehrmann.de - http://bjoern.hoehrmann.de
Benutzt du immer einen ALT Text bzw. ALT="" bei Layoutgrafiken?  NEIN?  Dann wird es Zeit: Warum ALT Attribute Pflicht sind: http://www.bjoernsworld.de/html/alt-text.html