XHTML 1.1 validieren
Andreas
- html
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
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
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?
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
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
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
- 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
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
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
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
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
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
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!!!
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
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