Author: esj@rezo.net
Date: 2006-12-18 23:53:13 +0100 (lun, 18 déc 2006)
New Revision: 8129
Log:
Dénonciation des ID déclarés plusieurs fois dans une meme page, sur la base du symbole ID indiqué dans la DTD comme type d'un attribut (en l'occurrence, uniquement "id").
Les seules différences avec la validation officielle résident donc dans quelques successions pathologiques non signalées, comme Body avant Head et autre improbabilités. De toutes façons, quand on lit dans les DTD de xhtml (meme la stricte: thttp://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd):
{{{
<!--
Each label must not contain more than ONE field
Label elements shouldn't be nested.
-->
<!ELEMENT label %Inline;>
<!ATTLIST label
%attrs;
for IDREF #IMPLIED
accesskey %Character; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
>
}}}
on se dit que l'officiel n'est pas un gage de sérieux, et leur validateur se garde bien de corriger la paresse de la spécification par une implémentation respectant le commentaire, puisqu'il considère ceci comme valide:
{{{
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd’
<html lang='fr' dir='ltr'>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<p id='x'><label for='x'><label>
<input />
label+label=les moches
<input />
</label></label></p>
</body>
</html>
}}}
''Note: The Validator XML support has some limitations.'': oui, et ses grammaires aussi...
Modified:
spip/ecrire/inc/sax.php
spip/ecrire/inc/validateur.php