Schema Validator XHTML

Status
Nicht offen für weitere Antworten.

son gohan

Erfahrenes Mitglied
Hallo,

ich habe mal meine Seite durch ein Schema Validator für XHTML gejakt und bekomme einige Medlungen die ich selber nicht korigieren kann:

HTML:
Note

No encoding declaration was found in the 'charset' parameter. The document itself declared the encoding 'iso-8859-1'. 'iso-8859-1' was determined as encoding of this document. 'XHTML 1.0 Strict' is used for validation.Validation results

You should specify the same value for the 'lang' and 'xml:lang' attributes. (12:3) <meta name="keywords" lang="de" content="rad" />  ^You should specify the same value for the 'lang' and 'xml:lang' attributes. (17:4)  <meta name="author" lang="de" content="Feh" />   ^You should specify the same value for the 'lang' and 'xml:lang' attributes. (21:3) <meta name="audience" lang="de" content="Alle" />  ^You should specify the same value for the 'lang' and 'xml:lang' attributes. (22:3) <meta name="copyright" lang="de" content="©" />  ^You should specify the same value for the 'lang' and 'xml:lang' attributes. (24:3) <meta name="distribution" lang="de" content="Global, alle" />

Wie bekomme ich das richtig hin?
 
Der UA benötigt die Angabe der benutzten Zeichenkodierung, um das empfangene korrekt zu verarbeiten und darzustellen.
Desweiteren benötigt XHTML beide Attribute; lang und dessen XML-Pedant xml:lang.
 
Hallo,

in meinen Kopfbereich der Seite habe ich doch denke ich schon alles drin?

das sieht so aus bei mir:
HTML:
 <?xml version="1.0" encoding="iso-8859-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" xml:lang="de" lang="de">

Da stehen doch beide langs drine? Oder meinst du damit die einzelnen weiteren langs in den anderen meta Tags?

Wegen der Zeichnesatzkodierung steht das doch in dem meta Tag drin:
HTML:
 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
da steht es doch schon drine, oder nicht? Und eigentlich müsste ich ja auch noch dort den content-type von text/html auf application/xhtml+xml umändern, damit es den Sinn des XHTML überhaupt erfüllt , oder?

Wenn ja, wird die Seite mit dem anderen content-type oder auch Media Type genannt soweit ich weis, in allen Browsern dargestellt ohne Probleme, soweit die alles andere an der Seite richtig programmiert wurde?
 
Lass das doofe lang doch einfach weg. ;) Wenn du das schon weiter oben definiert hast, dann ist doch eh klar, dass das ganze Dokument deutschsprachig ist, da haben die weiteren lang-Attribute nicht wirklich grossen Sinn mehr.
 
Hallo,

was ist eigentlich ein UA? Die Links zum Testergebniss funken nicht.

Ich habe jetzt bei den meta Tags überall noch ein xml lang hineingemacht wo auch vorher nur ein normales lang war. Ich wollte die nicht ganz wecklassen, bei Keywords z.B. ist es doch wichtig welche Sprache, aber egal, ist ja jetzt.

Zumindest bekomme ich die Meldung valid, aber da sind noch ein paar weitere Kommentare die sich für mich nicht gut anhören:

Note
  • No encoding declaration was found in the 'charset' parameter.
  • The document itself declared the encoding 'iso-8859-1'.
  • 'iso-8859-1' was determined as encoding of this document.
  • 'XHTML 1.0 Strict' is used for validation.
This document is valid.

Was heißt das alles, No encoding sind das vielleicht negative Nebenkommentare?

Kann ich den jetzt davon ausgehen, soweit ja auch der normale Validator ein ok gibt, dass die Seite in allen guten Browsern immer angezeigt werden, auch Browser die kein XHTML unterstützen?
 
Zuletzt bearbeitet:
Mit dem Akronym UA habe ich den Begriff User Agent gemeint.


Zur Übersetzung:
  • Es wurde keine Kodierungsdeklaration im charset-Parameter gefunden.
  • Das Dokument selbst hat die Kodierung iso-8859-1 deklariert.
  • iso-8859-1 wurde als Kodierung diese Dokuments festgelegt.
  • XHTML 1.0 Strict wurde zur Validation benutzt.
Diese Dokument ist valide.​
Ein Markup-Validator kann einem nur mitteilen, ob ein Dokument bestimmten syntaktischen Vorgaben entspricht, eine Garantie für eine plattformübergreifend gleiche Darstellung ist es nicht. Jedoch erhöhen sich die Chancen dafür, dass es auf allen Plattformen gleich dargestellt wird. Denn leider braut sich noch jeder Browser-Entwickler selbst sein Süppchen und nur langsam bewegen sich alle auf einen gemeinsamen Standard zu. Bis dieser jedoch flächendeckend von allen eingehalten wird, wird es wohl noch dauern.


Mir scheint, dass dir der Unterschied zwischen HTML und XHTML noch nicht ganz klar ist:

Der wesentliche Unterschied zwischen HTML und XHTML ist neben dem syntaktischen Unterschied, dass HTML und XHTML vom UA ganz unterschiedlich bearbeitet. Während beim HTML kaum syntaktische Überprüfung vorgenommen werden und lediglich die vom Browser bekannte Elemente und Attribute interpretiert werden, wird XHTML durch einen XML-Parser geschickt, der keine Abweichungen von den Vorgaben toleriert.

Doch damit der UA überhaupt weiß, um welche Sprache es sich handelt und wie er den Inhalt dementsprechend behandeln soll, benötigt er die Angabe des Media-Typs über das HTTP-Header-Feld Content-Type (das (X)HTML-Äquivalent im meta-Element ist auch möglich). Und lautet dieser Media-Typ text/html muss der UA den Inhalt als HTML interpretieren. Lautet der Media-Typ hingegen application/xhtml+xml muss der UA den Inhalt als XHTML interpretieren – und nur dann, auch wenn der Inhalt syntaktisch XHTML entspricht.

Hier kommt es jedoch wieder zu dem Kernproblem, dass der mit laut Statistik 89% am Browsermarktes vertretenen Internet Explorer kein XHTML interpretiert.


Achja, und bitte mach dir die Mühe und besuche die von mir Verwiesenen Webseiten. Ich hab die Verweise nicht rausgesucht, um dich bei der Stange zu halten oder dich abzuschrecken, sondern um dir weitere Informationen zu einem spezifischen Thema zu bieten.
 
Zuletzt bearbeitet:
Hallo,

ich habe ja schon einige der Seiten besucht und habe deswegen jetzt auch ein besseres Verständnis dafür. Du scheinst ja aber dich ganz gut damit auszukennen.

Da der IE ja Probleme hat XHTML anzuzeigen was wird dann sonst angezeigt bei einer XHTML Seite?
 
Da XHTML in seiner derzeitigen Version noch abwärtskompatibel ist, brauchst du dir um die korrekte Anzeige keine Sorgen machen, solange du das Dokument mit dem richtigen MIME-Typ an den Browser sendest.

Am besten verwendest du dazu ein kleines PHP-Script am Anfang deiner Datei:
PHP:
if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml')) {
	header("Content-type: application/xhtml+xml");
} else {
	header("Content-type: text/html");
}
Das Script überprüft, ob der Browser XHTML unterstützt und sendet, wenn dies der Fall ist, das Dokument als "application/xhtml+xml", andernfalls als reines "text/html". Damit ist garantiert, dass nur Browser, die damit umgehen können, die Seite als XHTML-Datei empfangen.
 
Hallo,

die technik habe ich schon etwas von gelesen, aber muss ich dafür nicht jeweils zwei verschiedene Dateien von meiner Seite machen?

Welchen Mime Typen geben ich standarmässig bei Benutzung des PHP Codes ein, doch den application/xhtml+xml oder?

Wenn ja kommt der PHP Code noch vor der XML-Deklaration im Quelltext rein?

Ich bin in PHP absolut ein Nichts, ich weis nicht mal wie man die Klammern richtig setzt, wäre das so richtig in meinem Quelltext eingbaut:

HTML:
<?php if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml')) { 
	header("Content-type: application/xhtml+xml"); 
} else { 
	header("Content-type: text/html"); 
} ?>

Ich habe da die Anfangs und Endklammer vom php versucht mit einzubauen so wie ich es kenne. Muss ich meine Seite dann nicht auch von html auf php ändern?
 
Status
Nicht offen für weitere Antworten.
Zurück