5568 sujets

Sémantique web et HTML

Bonjour,

Je suis en train de valider mes pages.
J'obtiens une erreur sur le tag body que je ne comprends pas.
J'ai aussi une erreur sur le tag de fin </html.

Source html :
<body id="main" onload="javascript:document.id_critary.USER.focus();">


Erreur w3c:
a écrit :
Line 16, column 90: document type does not allow element "body" here

..._critary'].elements['USER'].focus();">

The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).

Line 73, column 6: end tag for "html" which is not finished

</html>

Most likely, You nested tags and closed them in the wrong order. For example <p><em>...</p> is not acceptable, as <em> must be closed before <p>. Acceptable nesting is: <p><em>...</em></p>

Another possibility is that you used an element (e.g. 'ul') which requires a child element (e.g. 'li') that you did not include. Hence the parent element is "not finished", not complete.




Merci pour vos lumières.

Luciole.
Modifié par luciole (29 Jun 2005 - 10:59)
N'aurais-tu pas inversé l'ordre des balises body / html en début ou fin de page ?
Quelques éléments (ton code ou ta page) nous permettraient d'y voir plus précisément...
Modifié par Macpom (28 Jun 2005 - 17:11)
J'ai essayé de valider avec Validome, et voici le résultat:
a écrit :

Erreurs (2)
Ligne:16 Colonne:1 La balise body est interdite ici.
Ligne:72 Colonne:7 Balise fermante pour html trouvée avant la fin


Voici quelques précisions sur mon code html:

Entête :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<!-- /ide/id_critary.php -->
<title>PageTitle</title>
<link rel="stylesheet" href="../xxxxx/default.css" type="text/css"/>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
<meta http-equiv="Content-Style-Type" content="text/css"/>
<meta http-equiv="Content-Script-Type" content="text/javascript"/>
<base target="main"/>	
	<script  src="../cms/common.js" language="javascript" type="text/javascript"></script>
</head>

<body id="main" onload="javascript:document.forms['id_critary'].elements['USER'].focus();">

<form class="request" name="id_critary" id="id_critary" action="../ide/id_check.php" method="get" target="menu">
<input type="hidden" value="xxx" name="sz_CustKey" id="sz_CustKey" />
<input type="hidden" value="xxxxxx" name="sz_LongCust" id="sz_LongCust" />
	
<div id="ide">
....



Fin du code :

</form>
</body>
</html>


Merci.
Lu.
Modifié par luciole (28 Jun 2005 - 17:21)
En regardant vite fait, je me demande si ça lui convient tout ce que tu mets dans la balise <html ... > au départ...
Modifié par Macpom (28 Jun 2005 - 17:24)
J'ai trouvé nananèreuh Smiley lol

(il se fait tard Smiley langue )

C'est un doctype frameset Smiley cligne => pas de body ....
Modifié par TriadPtale (28 Jun 2005 - 23:58)
Bonjour,

Pourquoi il faut pas de body avec frameset ? Si qqn a un lien ou une réponse plus explicite je veux bien !

Merci
Ah vi, j'avais même pas repéré (target="main"...), comme quoi les choses les plus grossières ne sautent même plus forcément aux yeux. Smiley corde
Bruntho > Parce que le body s'élaborait dans une autre page adjacente à la page d'appel de frame, je crois.
Edit > Autant pour moi ; il faut effectivement (voir message suivant) indiquer qu'on est dans une "frame"...
Modifié par Macpom (29 Jun 2005 - 11:13)
Bonjour,

Merci pour vos réponses.

J'ai validé ma page en Transitionnal.

J'ai fait quelques recherches, et en fait on peux mettre une balise <body>, mais après les balise <frameset>, <frame>, <noframe>

Luciole.
Modifié par luciole (29 Jun 2005 - 10:47)
Bruntho a écrit :
Bonjour,

Pourquoi il faut pas de body avec frameset ? Si qqn a un lien ou une réponse plus explicite je veux bien !

Merci
Tout simplement parce que c'est ce qui est indiqué par le W3C dans la spécification HTML : http://www.la-grange.net/w3c/html4.01/present/frames.html

La structure globale est
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Le titre</title>
</head>
<frameset>
	<frameset>
		<frame src="contenu_du_cadre1.html">
		<frame src="contenu_du_cadre2.gif">
	</frameset>
  <frame src="contenu_du_cadre3.html">
  <noframes>
      <p>Contenu alternatif permettant d'accéder aux pages sans les frames (ex : répétition du menu)
  </noframes>
</frameset>
</html>
Smiley cligne
Il me semble qu'au moins dans "noframes" on peut mettre un body...
Modifié par Macpom (30 Jun 2005 - 12:23)
Macpom a écrit :
Il me semble qu'au moins dans "noframes" on peut mettre un body...


C'est ce que je fais dans mes sites avec des cadres...

D'ailleurs pour reprendre une discussion que l'on a eu l'autre jour avec les cadres, je vais laisser mon site sur la moto avec des cadres... Ce qui me fait me poser une question à lancer dans un autre message...