Andreas: XHTML 1.1 validieren

Hallo!
Erstmal vorab, kennt jemand irgendeine Seite, wo XHTML 1.1 grob erklärt bekommt, halt was es zu beachten gibt? Die offizielle ist mir zu kompliziert ;-)

Folgende Fehler kann ich  mir nicht erklären:

Line 20, column 11:
  <form name="form" method="post" action="index.php"><input type="hidden ...
             ^Error: there is no attribute "name" for this element (in this HTML version)

Line 20, column 50:
  ... SESSID" value="cd39a3d52eda9d19c9ee6e3296bb5090" />
                                                        ^Error: element "input" not allowed here; possible cause is an inline element containing a block-level element

Line 21, column 50:
  ... value="neuen Thread eröffnen" name="submit" />
                                                        ^Error: element "input" not allowed here; possible cause is an inline element containing a block-level element

Line 22, column 7:
    <br />
         ^Error: element "br" not allowed here; possible cause is an inline element containing a block-level element

Line 23, column 6:
  </form>
        ^Error: missing a required sub-element of "form"

betroffene Seite: http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)

Die anderen Fehler sind mir klar, nur obige nicht.

Bin für jeden Hinweis dankbar!

Grüße
Andreas

  1. Hi!

    Hallo!
    Erstmal vorab, kennt jemand irgendeine Seite, wo XHTML 1.1 grob erklärt bekommt, halt was es zu beachten gibt? Die offizielle ist mir zu kompliziert ;-)

    Nein. Und was heist kompliziert? Unterschide zw. HTML4 und XHTML1.1 sind erstmal syntaktisch bedingt und sonst guckst du einfach unter http://www.w3.org/TR/xhtml11/doctype.html#s_doctype die verwendeten HTML-Module an und siehst welches Element welches Attribut hat.

    Line 20, column 11:
      <form name="form" method="post" action="index.php"><input type="hidden ...
                 ^Error: there is no attribute "name" for this element (in this HTML version)

    Ganz einfach. Steht in http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_extformsmodule irgend etwas von Attribut name? Nein! Zu nutzen ist hier das Attribut id (zufinden unter http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_core_collection)!

    Line 20, column 50:
      ... SESSID" value="cd39a3d52eda9d19c9ee6e3296bb5090" />
                                                            ^Error: element "input" not allowed here; possible cause is an inline element containing a block-level element

    Gucken wir uns mal das Contentmodell von form an. Da steht nix von Inlineelementen wie input, br, span, img usw. Also packen wir alles in ein Blockelement, zB. div oder 'ne Tabelle. Womit du dann auch

    Line 23, column 6:
      </form>
            ^Error: missing a required sub-element of "form"

    loswerden solltest.

    betroffene Seite: http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)

    Gruß Herbalizer

    1. Hallo!
      OK, verstanden, aber einses noch nicht: Was habe ich von einem Forumlar, wenn ich keine input-Felder verwenden kann???
      Wie soll ich sonst Daten eingeben?
      In welchen Browsern bleibt die Seite überhaupt noch benutzbar, wenn ich mich an xhtml 1.1 halte?

      Und nochwas http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)#line-469

      Warum ist das ein Fehler? Da steht <br /> ganz für sich alleine, nur von <body> und <html> umschlossen, was kann daran falsch sein?

      Grüße
      Andreas

      1. hi

        Warum ist das ein Fehler? Da steht <br /> ganz für sich alleine, nur von <body> und <html> umschlossen, was kann daran falsch sein?

        ist genau der gleiche Fehler, wie mit dem <form>... DIREKT innerhalb von <body> oder <form> dürften keine inline-Elemente stehen (wie z.B. <br/>). Ein <div>, <p> o.ä. dazwischen und es geht.
        ..damit sollte auch deine obere Frage geklärt sein

        Grüße aus Bleckede

        Kai

        1. Hallo!
          Also so ist das ;-)
          Aber verstehen muß ich das nicht, oder?

          Zwei Probleme sind geblieben:

          1. im <a> tag soll kein border="0" erlaubt sein, aber ienmal gehts, und einmal nicht: http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)#line-483
          man beachte Zeile 487! Warum wird da nicht gemeckert? Ich weiß das ich das nicht brauche, aber die alten Browser...

          2. Mal wieder PHPs Trans-SID, leider wird in jedes Forumlar zwangsweise ein hidden field mit der SessionID eingebaut, im Prinzip super, nur leider immer direkt hinter den ersten <form>-Tag, und kümmert sich nicht um <div>... hat da jemand ne Idee?

          Sonst ist alles weg: http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)

          Grüße
          Andreas

            1. im <a> tag soll kein border="0" erlaubt sein, aber ienmal gehts, und einmal nicht: http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)#line-483
              man beachte Zeile 487! Warum wird da nicht gemeckert? Ich weiß das ich das nicht brauche, aber die alten Browser...

            Seltsam seltsam, aber egal. Seit XHTML1.0 Strict sind keine border-Attribute im Image erlaubt. Die CSS-Angabe img {border: none;} ist dafür zuständig.
            Willst du unbedingt border-Attribute haben, mußt du XHTML1.0 Transitional nehmen.

            Sonst ist alles weg: http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)

            Fein!

            Gruß Herbalizer

            1. Hallo!

              Sonst ist alles weg: http://validator.w3.org/check?uri=http%3A%2F%2Fforum.knet-systems.de&charset=(detect+automatically)&doctype=(detect+automatically)

              Fein!

              noch nicht ganz. Das mit der SessionID ist etwas blöd. Weiß jemand, wie ich Trans-SID nur für Links verwenden kann, nicht für Formulare? In den Formularen mache ich es wohl ruhig selbst, aber an alle Links? Och nöööööö...

              Grüße
              Andreas

              1. Hallo!

                So, und es geht doch, ohne in die php.ini direkt einzugreifen. Einziger Wehmutstropfen: In Formularen kann ich nicht mehr automatisch ein hidden field einfügen. Das geht grundsätzlich (noch) nicht mit validem xhtml 1.1 oder 1.0 strict.
                Wobei, es wurde eine Lösung empfeohlen, udn zwar die SessionID automatsich an die Form-action anzuhängen. Funktionieren tut das, ist auch valide, was sagt Ihr dazu? Ist das zu vertreten oder lieber nicht? Sonst muß ich es immer von Hand machen.

                Die Stätte meines Erfolges:
                http://validator.w3.org/check?uri=http://forum.knet-systems.de

                Der Trick:

                ini_set ( "arg_separator.output", ";");
                ini_set ( "url_rewriter.tags", "a=href");

                Viele Grüße
                Andreas

      2. Hallo!
        OK, verstanden, aber einses noch nicht: Was habe ich von einem Forumlar, wenn ich keine input-Felder verwenden kann???

        Doch. Es muß aber so aussehen (Beispiele):

        Blockelement:
        <form action="">
          <div>
            <input type="text" />
            <input type="text" />
          </div>
        </form>

        oder Fieldset
        <form action="">
          <fieldset>
            <input type="text" />
            <input type="text" />
          </field>
        </form>

        oder Liste:
        <form action="">
          <ol>
            <li><input type="text" /></li>
            <li><input type="text" /></li>
          </ol>
        </form>

        In welchen Browsern bleibt die Seite überhaupt noch benutzbar, wenn ich mich an xhtml 1.1 halte?

        In allen!

        Warum ist das ein Fehler? Da steht <br /> ganz für sich alleine, nur von <body> und <html> umschlossen, was kann daran falsch sein?

        Same procedure as for forms ;) Wir gucken uns das Contentmodell von body http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_structuremodule an und sehen das da nur Überschriften, Blockelemente und Listen erlaubt sind und KEINE Inlineelemente wie br oder img oder span oder ... Also ein div oder ein anderes Blockelement um Inlineelemente drumherumbauen.

        Gruß Herbalizer

  2. Hallo.

    Die offizielle ist mir zu kompliziert ;-)

    Zu kompliziert oder zu englisch? Würde Dir die deutsche Übersetzung (http://www.edition-w3c.de/) eher helfen?

    Grüße aus Würzburg
    Julian

    1. Hi!

      Zu kompliziert oder zu englisch? Würde Dir die deutsche Übersetzung (http://www.edition-w3c.de/) eher helfen?

      Ohne Übersetzung von xhtml-modularization ist sie nicht wirklich hilfreich.

      Gruß Herbalizer

      1. Hallo!

        Ohne Übersetzung von xhtml-modularization ist sie nicht wirklich hilfreich.

        Doch! Es ist nicht so das ich kein Englisch kann, nur wenn ich was ganz neues mache, womit ich noch nie zu tun hatte, fällt mir das in deztsch erheblich leichter. Wen ich es einmal kapiert habe wie es im Prinzip geht reicht auch englisch!

        Grüße
        Andreas

        @Julian PS: Danke für den Link!!!

      2. Hi auch,

        Ohne Übersetzung von xhtml-modularization ist sie
        nicht wirklich hilfreich.

        angesichts der vorliegenden Aufgabenstellung, ein
        Dokument XHTML1.1-valide zu bekommen, sehe ich auch
        gar keinen Sinn darin, alleine dafür das Konzept der
        Modularisierung von XHTML verstanden zu haben (was ich
        selbst übrigens auch nicht tue, aber hunderte valider
        XHTML1.1-Dokumente besitze).

        Für die Belange des W3C-Validators ist der Unterschied
        zwischen XHTML 1.0 Strict und XHTML 1.1 derartig gering
        (das einzige, was von den angegebenen Fehlermeldungen
        an XHTML 1.1 lag, war "<a name=>"), daß es m. E.
        reicht, erst mal XHTML 1.0 Strict zu erfüllen und
        danach einmal mit dem Editor nach den über "name="
        definierten IDs zu suchen.
        Denn schon dabei erlebt man, was "Strict" letzten Endes
        ausmacht: Die Abkehr von der Verwendung von Formatie-
        rungen in HTML selbst und die Reduzierung auf eine
        reine Strukturbeschreibung.

        Viele Grüße
              Michael

        1. Hi!

          Ohne Übersetzung von xhtml-modularization ist sie
          nicht wirklich hilfreich.

          angesichts der vorliegenden Aufgabenstellung, ein
          Dokument XHTML1.1-valide zu bekommen, sehe ich auch
          gar keinen Sinn darin, alleine dafür das Konzept der
          Modularisierung von XHTML verstanden zu haben (was ich
          selbst übrigens auch nicht tue, aber hunderte valider
          XHTML1.1-Dokumente besitze).

          Für die Belange des W3C-Validators ist der Unterschied
          zwischen XHTML 1.0 Strict und XHTML 1.1 derartig gering
          (das einzige, was von den angegebenen Fehlermeldungen
          an XHTML 1.1 lag, war "<a name=>"), daß es m. E.
          reicht, erst mal XHTML 1.0 Strict zu erfüllen und
          danach einmal mit dem Editor nach den über "name="
          definierten IDs zu suchen.
          Denn schon dabei erlebt man, was "Strict" letzten Endes
          ausmacht: Die Abkehr von der Verwendung von Formatie-
          rungen in HTML selbst und die Reduzierung auf eine
          reine Strukturbeschreibung.

          Alles Richtig. Aber die Kenntis des Minimalcontetsmodells und der Attribute, ihrer Werte und ihrer Notwendigkeit erschließt sich nicht aus den Spezifikationen von XHTML1.1 oder XHTML-Basic alleine sondern nur aus der Kenntnis der in ihnen verwendeten Module.
          Der Unterschied zw. XHTML1.0 Strict und XHTML1.1 ist tatsächlich nur marginal, aber nicht zw. XHTML1.0 Transitional und XHTML1.1. Hier ist entweder Kenntnis der HTML4-deprecated-Liste oder eben der XHTML-Module von nöten.

          Gruß Herbalizer