Gunnar Bittersmann: Sinn und Unsinn von Validatoren

Beitrag lesen

Hello out there!

| 89    Fehler: Ungültiger Wert "189px" im Attribut "height".
| Es sind nur ganze Zahlen oder prozentuale Angaben (z.B. 10%) erlaubt.
|       Fehlerstelle:
|
| ...er_oben.jpg" width="400px" height="189px" alt="Lenkeransicht von vorne ob

Ein gegen die DTD [XHTML1-DTD] validierendes Programm kann hier keinen Fehler melden, weil hier kein Fehler vorliegt:

<!ATTLIST img  
  %attrs;  
  src         %URI;          #REQUIRED  
  alt         %Text;         #REQUIRED  
  longdesc    %URI;          #IMPLIED  
  height      %Length;       #IMPLIED  
  width       %Length;       #IMPLIED  
  usemap      %URI;          #IMPLIED  
  ismap       (ismap)        #IMPLIED  
  >

Nachgeschaut, was sich hinter der Parameter-Entity 'Length' verbirgt:

<!ENTITY % Length "CDATA">  
    <!-- nn for pixels or nn% for percentage length -->

Beachte, dass die erklärende Zeile ein Kommentar ist, der für eine Maschine keinerlei Relevanz hat.

Mehr als den Datentypen 'CDATA' gibt eine DTD nicht her; es gibt keinen Datentypen 'Number'.

Anders in XML Schema, dort ist eine solche Einschränkung von Zeicheninhalt nur auf Zahlenwerte möglich.

Ich nehme an, dass Validome nicht gegen die DTD, sondern gegen das strengere XML Schema [XHTML1-SCHEMA] validiert.

Allerdings: “XHTML 1.0 in XML Schema
This document describes non-normative XML Schemas for XHTML 1.0.
These Schemas are still work in progress, and this document does not
change the normative definition of XHTML 1.0.” [HTML-HOME]

Offensichtlich dürfen die Attribute "height" und "width" in einem img-Tag nur Zahlen oder Prozentwerte enthalten. Wobei reine Zahlen als Angaben in Pixeln verstanden werden. Die Angabe der Maßeinheit "px" ist aber offensichtlich nicht erlaubt.

Sie kann per DTD nicht verboten werden. Allerdings ist sie ungültig.

Ich habe das mal in den Specs vom W3 nachgeschlagen. Diese bestätigen Validome.

Nein; s.o.

(Hier die Specs für HTML4.01, die für XHTML sind so unübersichtlich, entsprechen der Sache aber)

?? Ich finde XML wesentlich übersichtlicher als SGML.

http://www.w3.org/TR/html401/struct/objects.html#edef-IMG
http://www.w3.org/TR/html401/sgml/dtd.html#Length

Verweise einbinden.

Ich finde es ziemlich merkwürdig in einer technischen Spezifikation die Angabe von Maßeinheiten zu verbieten. Das sollte viel mehr vorgeschrieben sein.

In CSS ist sie das auch (außer beim Wert 0). Dass in HTML Pixelangaben ohne Einheit erfolgen, hat sicher historische Gründe.

Ich will die W3-Götter nicht verunglimpfen.

Bessr is’; Ketzer kommen auf den Scheiterhaufen.

See ya up the road,
Gunnar

--
„Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)