Michae1: Tabelle mit thead, tfoot und tbody validiert nicht

Hallo,

wenn ich versuche, den Beipsielcode Tabellen mit Kopf, Körper und Fuß aus dem Wiki zu validieren, erhalte ich eine Fehlermeldung: „Error: Element tbody not allowed as child of element table in this context“. Ist dies ein Fehler im Validator oder ist der u.g. Code tatsächlich fehlerhaft und wie müsste er dann richtigerweise aussehen?

Viele Grüße Micha

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<table>
    <thead>
        <tr>
          <th>Kopf</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
          <td>Fuß</td>
        </tr>
    </tfoot>
    <tbody>
        <tr>
          <td>Inhalt</td>
        </tr>
    </tbody>
</table>
</body>
</html>

akzeptierte Antworten

  1. Hi,

    wenn ich versuche, den Beipsielcode Tabellen mit Kopf, Körper und Fuß aus dem Wiki zu validieren, erhalte ich eine Fehlermeldung: „Error: Element tbody not allowed as child of element table in this context“. Ist dies ein Fehler im Validator oder ist der u.g. Code tatsächlich fehlerhaft und wie müsste er dann richtigerweise aussehen?

    HTML 4 hat die Reihenfolge thead, tfoot, tbody... vorgeschrieben.

    HTML5 verlangt die Reihenfolge thead, tbody..., tfoot.

    cu,
    Andreas a/k/a MudGuard

    1. Hallo Andreas,

      HTML5 verlangt die Reihenfolge thead, tbody..., tfoot.

      Ach, ... in der Tat. Vielen Dank für diese Info.

      Schöne Grüße Micha

    2. Hallo Andreas,

      HTML 4 hat die Reihenfolge thead, tfoot, tbody... vorgeschrieben.

      HTML5 verlangt die Reihenfolge thead, tbody..., tfoot.

      wann haben die denn das geändert? Ich meine, Ende 2015 noch die alte Reihenfolge unter HTML5 validiert zu haben.

      Gruß
      Jürgen

      1. Hallo JürgenB,

        Ich meine, Ende 2015 noch die alte Reihenfolge unter HTML5 validiert zu haben.

        Das habe ich auch so in Erinnerung. Die Begründung, das vor den tbody zu schreiben, weil auch der tfoot Informationen enthält, die für alle Spalten gelten, ist nicht ganz unsinnig.

        Bis demnächst
        Matthias

        --
        Rosen sind rot.
        1. Hallo Matthias,

          ich finde es nur ärgerlich, das der Wikiartikel zum Tabellensortierer die (jetzt) falsche Anordnung verwendet. Ich werde mich die Tage mal drum kümmern.

          Gruß
          Jürgen

          1. Hallo JürgenB,

            ich finde es nur ärgerlich, das der Wikiartikel zum Tabellensortierer die (jetzt) falsche Anordnung verwendet. Ich werde mich die Tage mal drum kümmern.

            An den hatte ich nicht gedacht.

            ☑️ done.

            Bis demnächst
            Matthias

            --
            Rosen sind rot.
            1. Hallo Matthias,

              Danke.

              Gruß
              Jürgen

        2. Hi,

          Ich meine, Ende 2015 noch die alte Reihenfolge unter HTML5 validiert zu haben.

          Das habe ich auch so in Erinnerung.

          Ich hab's auch erst vor ein paar Tagen erfahren, Gunnar hatte es in einem anderen Thread erwähnt.

          Ich find's auch nicht gut, daß das inkompatibel geändert wurde.

          Die Begründung, das vor den tbody zu schreiben, weil auch der tfoot Informationen enthält, die für alle Spalten gelten, ist nicht ganz unsinnig.

          Daß ein footer am Fuß, also Ende, steht, ist als Begründung aber auch nicht ganz unsinnig - man kann Argumente für beides finden.

          Ich fänd's aber auch nicht verkehrt, wenn man erreichen könnte, daß der thead (von mir aus auch der tfoot) nicht nur am Anfang der Tabelle + Anfang jeder Druckseite, auf die die Tabelle sich erstreckt, angezeigt wird, bei langen Tabellen wäre es auch praktisch, den thead alle n Zeilen nochmal einzublenden - im Browser wird ja nicht nach Druckseiten unterschieden …

          cu,
          Andreas a/k/a MudGuard

          1. @@MudGuard

            Ich find's auch nicht gut, daß das inkompatibel geändert wurde.

            „Inkompatibel“ hieße, dass Browser Tabellen mit thead? tfoot tbody+ jetz auf einmal falsch rendern würden. Das ist aber nicht der Fall; tfoot wird am Ende der Tabelle gerendert, auch wenn es vor den tbodys steht.

            Ich hätte gedacht, das irgendo in den Untiefen von Parsing HTML documents zu finden. Falsch gedacht. Die HTML5-Spec ist wohl auch nicht dazu gedacht, verstanden zu werden.

            Die Begründung, das vor den tbody zu schreiben, weil auch der tfoot Informationen enthält, die für alle Spalten gelten, ist nicht ganz unsinnig.

            Daß ein footer am Fuß, also Ende, steht, ist als Begründung aber auch nicht ganz unsinnig - man kann Argumente für beides finden.

            Ich vermute als Begründung: Die Mehrzahl der Entwickler hatte es vorher falsch gemacht und schon immer die Reihenfolge thead? tbody+ tfoot? verwendet. Die HTML5-Spec hat den Anspruch aufgegeben, Vorgaben für Entwickler zu machen, und erhebt stattdessen das, was so in freier Wildbahn verwendet wird, zum Standard.

            LLAP 🖖

            --
            “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
            1. „Inkompatibel“ hieße, dass Browser Tabellen mit thead? tfoot tbody+ jetz auf einmal falsch rendern würden. Das ist aber nicht der Fall; tfoot wird am Ende der Tabelle gerendert, auch wenn es vor den tbodys steht.

              Ich hätte gedacht, das irgendo in den Untiefen von Parsing HTML documents zu finden. Falsch gedacht. Die HTML5-Spec ist wohl auch nicht dazu gedacht, verstanden zu werden.

              Forming a table

              1. @@Linksetzer

                Ich hätte gedacht, das irgendo in den Untiefen von Parsing HTML documents zu finden. Falsch gedacht. Die HTML5-Spec ist wohl auch nicht dazu gedacht, verstanden zu werden.

                Forming a table

                Jo, am Ende steht doch alles irgendwo. Nur nicht da, wo man vermutet …

                LLAP 🖖

                --
                “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
      2. @@JürgenB

        HTML 4 hat die Reihenfolge thead, tfoot, tbody... vorgeschrieben.

        HTML5 verlangt die Reihenfolge thead, tbody..., tfoot.

        wann haben die denn das geändert? Ich meine, Ende 2015 noch die alte Reihenfolge unter HTML5 validiert zu haben.

        Das lässt sich doch nachlesen:

        • HTML 5.0 (W3C Recommendation 28 October 2014) sah übergangsweise beide Möglichkeiten vor

        • ab HTML 5.1 (W3C Recommendation, 1 November 2016) nur noch tfoot nach tbody

        LLAP 🖖

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  2. Hallo Michae1,

    die Seiten sind jetzt korrigiert.

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. Super, Danke.