Thomas Adams: Validierung mit W3C-HTML-Online-Validator und tidy

Hallo zusammen,

ich habe bisher meine HTML-Seiten erfolgreich mit tidy validiert, entweder auf XHTML 1.0 Transitional oder auf HTML 4.01 Transitional
(einzig der entsprechende Doctype wurde abgeändert, der HTML-Code jedoch nicht). Bei der Validierung mit dem W3C-Online-Validator
passiert es nun, daß isch zwar auf XHTML 1.0 Transitional erfolgreich
validiere, aber nicht auf HTML 4.01. Hier kommt dann durchweg
(insgesamt 9 mal) folgende Fehlermeldung

Line 20, column 36:

character data is not allowed here
<col width="2%"/>
               ^

Ich bin der Meinung gewesen, daß dies doch ebenfalls
die Syntax von HTML 4.01 für Breitenangaben innerhalb einer
colgroup ist, (zumal solche Tags wie <input>,<img> und <br> auf meiner Seite entsprechend der XHTML-Konvention mit einem Slash abgeschlossen sind und auch nicht vom W3C-Validator als falsch angesehen werden). Liege ich da nun völlig falsch, oder ist das etwa ein Bug im W3C-Validator?

für eure Ideen wäre ich echt dankbar

Gruß Thomas

  1. Hallo Thomas!
    Vielleicht fehlt der Whitespace, z.B. <col width="2%" />
    (vgl.: http://selfhtml.teamone.de/html/xhtml/unterschiede.htm#leere_elemente

    Viel Spass,
    Richard

  2. Hi,

    Line 20, column 36:

    character data is not allowed here
    <col width="2%"/>
                   ^
    Ich bin der Meinung gewesen, daß dies doch ebenfalls
    die Syntax von HTML 4.01 für Breitenangaben innerhalb einer
    colgroup ist,

    Das Problem ist nicht die Breitenangabe, sondern der in HTML 4.01 nicht sinnvolle /
    (genaugenommen ist es der Text >, der nach dem / kommt, aber der / ist Ursache).

    HTML 4.01 hat SHORTTAG auf YES gesetzt, so daß der / das Element beendet.
    Bei XHTML ist SHORTTAG dagegen auf NO gesetzt.

    (zumal solche Tags wie <input>,<img> und <br> auf meiner Seite entsprechend der XHTML-Konvention mit einem Slash abgeschlossen sind und auch nicht vom W3C-Validator als falsch angesehen werden).

    Das liegt daran, daß an den Stellen, an denen input erlaubt ist, auch Text erlaubt ist, so daß den Validator der Text (nämlich das >) nicht stört.
    An der Stelle, an der col erlaubt ist, ist aber kein Text erlaubt.

    Ein korrekter Browser müßte das > bei Verwendung von HTML 4.01 eigentlich darstellen!

    Liege ich da nun völlig falsch,

    ja.

    oder ist das etwa ein Bug im W3C-Validator?

    nein.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Hallo,

      HTML 4.01 hat SHORTTAG auf YES gesetzt, so daß der / das Element beendet.
      Bei XHTML ist SHORTTAG dagegen auf NO gesetzt.

      Der »fussy mode« der Betaversion des Validators (http://validator.w3.org:8001/) nimmt bei HTML 4.01 übrigens shorttag no an. Da es sowieso nicht kompatibel ist, shorttag zu benutzen, ist es ratsam, so zu validieren, als ob es shorttag no nicht gäbe. Das hat dann natürlich nichts mehr mit wirklicher Validität zu tun, siehe </archiv/2003/9/57091/#m319778>.

      Mathias

      --
      [x] Die Entity lästerte Ihro Majestät auf unglaublich infame Art und Weise.