[spip-dev] [Bug?] Validation xHTML

Le W3C considère qu'une liste à puce de deuxième niveau sans liste à puce de premier niveau n'est pas valide.
Or, avec le plugin W3C_go_home utilisant la validation interne de SPIP, ceci est considéré comme valide dans un article :

-** directement une liste à puce de 2e niveau.

Donne des références précises stp.

Committo,Ergo:Sum

* Committo,Ergo:sum tapotait, le 08/03/2007 07:16:

Le W3C considère qu'une liste à puce de deuxième niveau sans liste à
puce de premier niveau n'est pas valide.

Donne des références précises stp.

Si tu veux parler d'URL de la norme, j'ai pas.
Par contre, en testant avec le validateur du W3C en ligne : http://validator.w3.org/ ce qui suit, tu obtiendra 2 erreurs :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
<html xmlns="http://www.w3.org/1999/xhtml&quot; xml:lang="fr" lang="fr">
   <head>
     <title>Test listes</title>
   </head>
   <body>
<ul><ul>
   <li>Liste a puce</li>
</ul></ul>
   </body>
</html>

    1. Error Line 8 column 7: document type does not allow element "ul" here; assuming missing "li" start-tag.

       <ul><ul>

       ✉
    2. Error Line 10 column 9: end tag for "li" omitted, but OMITTAG NO was specified.

       </ul></ul>

       You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".

       ✉
    3. Info Line 8 column 4: start tag was here.

       <ul><ul>

Quoique, j'ai peut-être la DTD :
http://www.w3.org/TR/xhtml1/dtds.html#dtdentry_xhtml1-transitional.dtd_ul
<!ELEMENT ul (li)+>

Committo,Ergo:sum wrote:

Le W3C considère qu'une liste à puce de deuxième niveau sans liste à
puce de premier niveau n'est pas valide.

Donne des références précises stp.

Committo,Ergo:Sum

Tiens au passage, un petit rappel au cas où on mette le nez dans ces listes, ça doit être conforme xHTML mais c'est pas bien le résultat escompté:

http://toggg.com/spip/spip.php?article18

Je pensais avoir fait un ticket, mais je ne le retrouve pas, ma recherche est peut être erronée, sinon je m'en occupe (du ticket)
... ou à l'époque, on a dû me convaincre que c'était une feature :slight_smile:

* Committo,Ergo:sum tapotait, le 08/03/2007 07:16:

Le W3C considère qu'une liste à puce de deuxième niveau sans liste à
puce de premier niveau n'est pas valide.

Donne des références précises stp.

Si tu veux parler d'URL de la norme, j'ai pas.
Par contre, en testant avec le validateur du W3C en ligne :

Ah ok, ne dit pas alors "le W3C considère que" parce que ça sonne comme les affirmations "pas de balise A imbriquées" qu'ils n'ont pas été capables de formaliser dans leur DTD. Précise que c'est le validateur dont il s'agit, dont le noyau n'a meme pas été écrit par le W3C (cf mon article sur spipnet).

http://validator.w3.org/ ce qui suit, tu obtiendra 2 erreurs :
    1. Error Line 8 column 7: document type does not allow element
"ul" here; assuming missing "li" start-tag.

       <ul><ul>

Je ne comprends pas: je viens de rédiger une brève réduite à "-** foo" et le validateur de Spip dit bien:

ul n'est pas un fils de ul
mais de blockquote, body, button, dd, del, div, fieldset, form, ins, li, map, noscript, object, td, th

Committo,Ergo:Sum

Ah ok, ne dit pas alors "le W3C considère que" parce que ça
sonne comme les affirmations "pas de balise A imbriquées"
qu'ils n'ont pas été capables de formaliser dans leur DTD.
Précise que c'est le validateur dont il s'agit, dont le noyau
n'a meme pas été écrit par le W3C (cf mon article sur spipnet).

Oui, mais ça revient à dire que <ul> ne peut avoir que des enfants <li>,
comme dans la DTD.

Bah oui, pourquoi écris-tu "mais" ?

By the way, et à propos de ta page Web sur la sortie de 1.9.2, il me semble à présent inexact de dire que le validateur intégré ne gère pas les NameSpace: je n'ai pas testé mais sous réserve d'avoir compris de la manière dont le W3C le souhaite la syntaxe des DTD, je pense que le validateur devrait analyser correctement ce genre de pages.

Committo,Ergo:Sum

By the way, et à propos de ta page Web sur la sortie de
1.9.2, il me semble à présent inexact de dire que le
validateur intégré ne gère pas les NameSpace : je n'ai pas
testé mais sous réserve d'avoir compris de la manière dont le
W3C le souhaite la syntaxe des DTD, je pense que le
validateur devrait analyser correctement ce genre de pages.

Committo,Ergo:Sum

Si tu peux tester n'importe quelle page, un fil RSS 1.0 est justement le
genre de cérature dont je parlais. Celui de dotclear 1 (par exemple
Site en construction) intégre 6 namespaces
différents.

9a serait en tout cas très intéressant, ça permettrait de faire par exemple
des squelettes de données RDF et de les valider dans la foulée...

Le problème pour commencer est que cette adresse ne renvoie pas de Doctype, du coup le validateur prend celle par défaut, savoir xhtml transitionnal.

Committo,Ergo:Sum

Ah ben oui, je vais sans doute dire une bétise, mais les 'doctypes' sont les
six adresses dans l'entête rdf:RDF :
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/"

La balise rdf:about est définie dans
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#", alors que
dc:language est définie dans xmlns:dc="http://purl.org/dc/elements/1.1/", et
sy:updatePeriod dans
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"...

Bref, ça reste pas simple comme problème... Si je ne m'abuse, ton validateur
cherche une chaîne <!DOCTYPE pour commencer, est-ce qu'on ne peut pas lui
demander de chercher <rdf:RDF ?

Ah ben oui, je vais sans doute dire une bétise,

euh, bah je préférerais pas :wink:

mais les 'doctypes' sont les
six adresses dans l'entête rdf:RDF :
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;
  xmlns:dc="DCMI: DCMI Metadata Terms;
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/&quot;
  xmlns:admin="http://webns.net/mvcb/&quot;
  xmlns:content="http://purl.org/rss/1.0/modules/content/&quot;
  xmlns="http://purl.org/rss/1.0/&quot;

La balise rdf:about est définie dans
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;, alors que
dc:language est définie dans xmlns:dc="DCMI: DCMI Metadata Terms, et
sy:updatePeriod dans
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/&quot;\.\.\.

Bref, ça reste pas simple comme problème... Si je ne m'abuse, ton validateur
cherche une chaîne <!DOCTYPE pour commencer, est-ce qu'on ne peut pas lui
demander de chercher <rdf:RDF ?

pourquoi pas, mais j'aimerais savoir qu'est-ce qui est demandé: lorsque je donne l'url de ton fil RSS au validateur standard il repond que le document n'est pas analysable. Ne manquerait-il pas un Doctype ou un équivalent dans ton fil, ou bien est-ce que le W3C ne fournit pas à l'heure actuelle un outil complet de validation de ses propres constructions (plus rien ne m'étonne à présent) ?

Committo,Ergo:Sum

> Ah ben oui, je vais sans doute dire une bétise,

euh, bah je préférerais pas :wink:

+1 !

> mais les 'doctypes' sont les
> six adresses dans l'entête rdf:RDF :
> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;
> xmlns:dc="DCMI: DCMI Metadata Terms;
> xmlns:sy="http://purl.org/rss/1.0/modules/syndication/&quot;
> xmlns:admin="http://webns.net/mvcb/&quot;
> xmlns:content="http://purl.org/rss/1.0/modules/content/&quot;
> xmlns="http://purl.org/rss/1.0/&quot;
>
> La balise rdf:about est définie dans
> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;, alors que
> dc:language est définie dans xmlns:dc="http://purl.org/dc/elements/
> 1.1/", et
> sy:updatePeriod dans
> xmlns:sy="http://purl.org/rss/1.0/modules/syndication/&quot;\.\.\.
>
> Bref, ça reste pas simple comme problème... Si je ne m'abuse, ton
> validateur cherche une chaîne <!DOCTYPE pour commencer,
est-ce qu'on
> ne peut pas lui demander de chercher <rdf:RDF ?

pourquoi pas, mais j'aimerais savoir qu'est-ce qui est demandé:
lorsque je donne l'url de ton fil RSS au validateur standard
il repond que le document n'est pas analysable.

Je vais demander aux gourous de websemantique...

Ne
manquerait-il pas un Doctype ou un équivalent dans ton fil,
ou bien est-ce que le W3C ne fournit pas à l'heure actuelle
un outil complet de validation de ses propres constructions
(plus rien ne m'étonne à présent) ?

Sisi, j'ai ça dans ma besace : W3C RDF Validation Service

Ah je vois, en fait là il y a 2 choses de mélangées: les names-spaces et le fait d'utiliser des XML-schemas plutot que des Doctype.
Sur le 2e point il faut écrire l'analyseur de XML-schema compilant la meme chose que pour les DTD: c'est du XML, donc ça doit etre plus facile que les DTD mais c'est pas dans mes priorités. Si ça te dit d'essayer, go. Le premier point n'implique pas le second et la question reste donc posée: n'y a-t-il personne qui mélange dans une meme page du HTML et du SVG ou du MATHML ?

Committo,Ergo:Sum

Ah je vois, en fait là il y a 2 choses de mélangées: les names-spaces
et le fait d'utiliser des XML-schemas plutot que des Doctype.
Sur le 2e point il faut écrire l'analyseur de XML-schema compilant
la meme chose que pour les DTD: c'est du XML, donc ça doit etre plus
facile que les DTD mais c'est pas dans mes priorités. Si ça te dit
d'essayer, go. Le premier point n'implique pas le second et la
question reste donc posée: n'y a-t-il personne qui mélange dans une
meme page du HTML et du SVG ou du MATHML ?

Committo,Ergo:Sum

Ben si : typiquement j'ai eu des profs de maths en stage qui m'ont demandé si ils
pouvaient mélanger du texte, des équations (MATHML donc) et des graphiques (SVG à
priori) dans une même page web...

Sans aucune prétention je fais ci-dessous un petit c/p d'un exemple de ce que ça peut
donner. Ceci dit autant SVG est (partiellement) supporté par Firefox donc le dessin est
immédiatement visible, autant MATHML ne semble pas l'être ce qui nécessite une xsl
adaptée si on veut afficher qq chose de ressemblant à ce que ça devrait donner (cf
code d'origine de la partie MATHML ici: Content MathML)

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml&quot;&gt;
<head>
   <title>Un exemple de contenu mixte : pourquoi utiliser des xmlns ?</title>
</head>
<body>
<page_composite>

<h1>Une liste de nombre en XML simple</h1>
  <liste_nombres>
    <nombre valeur="10">dix</nombre>
    <nombre valeur="0">zéro</nombre>
    <nombre valeur="33">trente trois</nombre>
    <nombre valeur="6">le premier nombre parfait</nombre>
  </liste_nombres>

<h1>Un peu de MATHML</h1>
<matrice xmlns:math="http://www.w3.org/1998/Math/MathML&quot;&gt;
  <math:math>
    <math:apply>
    <math:eq/>
    <math:apply><math:abs/><math:ci> x </math:ci></math:apply>
    <math:piecewise>
      <math:piece>
          <math:apply><math:minus/><math:ci> x </math:ci></math:apply>
          <math:apply><math:lt/><math:ci> x </math:ci> <math:cn> 0
</math:cn></math:apply>
      </math:piece>
      <math:piece>
          <math:cn> 0 </math:cn>
          <math:apply><math:eq/><math:ci> x </math:ci> <math:cn> 0
</math:cn></math:apply>
      </math:piece>
      <math:piece>
          <math:ci> x </math:ci>
          <math:apply><math:gt/><math:ci> x </math:ci> <math:cn> 0
</math:cn></math:apply>
      </math:piece>
    </math:piecewise>
    </math:apply>
  </math:math>
</matrice>

<h1>Un dessin SVG</h1>
<dessin xmlns:svg="http://www.w3.org/2000/svg&quot;&gt;
  <svg:svg width="12cm" height="10cm">
      <svg:ellipse rx="110" ry="130"/>
      <svg:rect x="4cm" y="1cm" width="3cm" height="4cm" />
  </svg:svg>
</dessin>
  
</page_composite>
</body>
</html>

n'y a-t-il personne qui mélange dans une
meme page du HTML et du SVG ou du MATHML ?

Ben si :

Ah enfin!

typiquement j'ai eu des profs de maths en stage qui m'ont demandé si ils
pouvaient mélanger du texte, des équations (MATHML donc) et des graphiques (SVG à
priori) dans une même page web...

Sans aucune prétention je fais ci-dessous un petit c/p d'un exemple de ce que ça peut
donner. Ceci dit autant SVG est (partiellement) supporté par Firefox donc le dessin est
immédiatement visible, autant MATHML ne semble pas l'être ce qui nécessite une xsl
adaptée si on veut afficher qq chose de ressemblant à ce que ça devrait donner (cf
code d'origine de la partie MATHML ici: Content MathML)

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml&quot;&gt;

quel est le Doctype utilisé ? et as-tu sousmis ce texte au validateur officiel ?

Committo,Ergo:Sum