pierredureau Posté 29 Octobre 2004 Posté 29 Octobre 2004 Comme je suis un gentil garçon accessible, j'ai fait un lien pour sauter le menu. <body id="lebund"><a href="#contenu" id="acces">Accéder directement au contenu</a><ul id="menu"> <li><a href="#menu1">Intro</a>....etc... Mais le validateur me dit : Line 16, column 29: document type does not allow element "a" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag<a href="#contenu" id="acces">Accéder directement au contenu</a> The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element. Ben alors ! Je comprend pas. Dois-je me résoudre à encadrer mon lien d'un div (ça marche ainsi...)?
Monique Posté 29 Octobre 2004 Posté 29 Octobre 2004 Comme je suis un gentil garçon accessible, j'ai fait un lien pour sauter le menu. <{POST_SNAPBACK}> L'élément a est un élément en ligne. Avec un doctype XHTML, il doit être contenu dans un élément de type bloc p, ul, hn... Mais je ne parviens pas à trouver où cela est spécifié Dans ton cas, un paragraphe conviendrait bien en n'oubliant pas (si tu as plusieurs liens de les séparer par un caractère imprimable tel que | )
LaurentDenis Posté 29 Octobre 2004 Posté 29 Octobre 2004 Pas seulement en XHTML, Monique : <!ENTITY % block "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT | BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS"> <!ENTITY % flow "%block; | %inline;"> <!--==== Document Body ========--> <!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body --> (DTD HTML4.01 http://www.w3.org/TR/html401/sgml/dtd.html#block ) La ligne <!ELEMENT BODY... nous indique quel peut être le contenu de l'élément body... et l'élément A ne figure pas dans la liste (voir la ligne <!ENTITY % block...)
Monique Posté 29 Octobre 2004 Posté 29 Octobre 2004 Pas seulement en XHTML, Monique : <{POST_SNAPBACK}> Juste... en fait le validateur (du W3C ) l'accepte en HTML 4.01 Transitional mais pas en strict.
LaurentDenis Posté 29 Octobre 2004 Posté 29 Octobre 2004 Une remarque sur le choix du balisage pour contenir ce lien : un paragraphe s'il n'y a qu'un seul lien ? J'avoue que je ne vois pas bien en quoi "Accéder directement au contenu" aurait la nature sémantique d'un paragraphe de texte... Vous allez me dire que je coupe les cheveux en 4 pour le plaisir de parler de sémantique et de vous trouver une balise originale ? En fait, non, c'est beaucoup plus prosaïque que ça : comme il n'y a aucune information spécifique à ajouter à ce lien, l'élément "neutre" <div> me semble tout indiqué. A force de dire qu'il ne faut pas mettre trop de <div> pour avoir un balisage signifiant, on finit par ne plus l'employer là où il le faudrait
Igor Posté 30 Octobre 2004 Posté 30 Octobre 2004 à Laurent Dans un cas classique de lien d'échappement, souvent celui-ci est accompagné d'un autre lien comme allez à la recherche ou autre du meme genre et dans ce cas une liste est utilisée. Ma question est de savoir si une liste à item unique à t-elle un sens ? Ce qui me paraît de prime abord un non sens puisqu'une liste est une énumération.
LaurentDenis Posté 30 Octobre 2004 Posté 30 Octobre 2004 Dans un cas classique de lien d'échappement, souvent celui-ci est accompagné d'un autre lien comme allez à la recherche ou autre du meme genre et dans ce cas une liste est utilisée. Tout à fait. Ma remarque ne concernait que le cas d'un lien unique. Ma question est de savoir si une liste à item unique à t-elle un sens ?Ce qui me paraît de prime abord un non sens puisqu'une liste est une énumération. La vieille question philosophique de savoir à partir de combien d'item commence une liste, à partir de combien de grains de blé a-t-on un "tas" de grains de blé... est certes passionnante, mais n'a guère de rapport avec la structuration HTML. Il s'agit plutôt de se demander, AMHA: - Quel bénéfice actuel et/ou futur puis-je tirer de mon choix de balisage ? - Quel bénéfice actuel et/ou futur pour les utilisateurs ? Concrètement, si je n'ai qu'un seul lien aujourd'hui, mais que je suis susceptible d'en ajouter par la suite, une liste d'un élément unique est un choix tout à logique, puisque je réduirai ainsi les manipulations à effectuer lors de la mise à jour de mon code. De même, dans un contexte de listes successives (une page référençant une série de liens classés thématiquement), une de ces listes peut très bien n'avoir qu'un seul item... parce que son contenu se réduit à cela. Le bénéfice pour l'auteur est de ne pas avoir à gérer par exemple une double présentation de <ul> et de <p> (ou de <div). Et le bénéfice pour l'utilisation est une présentation uniforme du contenu, ainsi qu'une restitution plus compréhensible dans un lecteur d'écran. Le traitement par une "machine" en sera également facilité... Les choix sémantiques sont en fait des choix utilitaristes et pragmatiques
pierredureau Posté 30 Octobre 2004 Auteur Posté 30 Octobre 2004 Comme Laurent Denis, j'aurai tendance à mettre div dans ce cas. Par contre, je suis très étonné qu'on ne puisse pas mettre d'éléments inline directement enfants de body. Sans m'être renseigné, je croyais que body était de type block (donc pouvant contenir à la fois des blocks et des inlines) mais en fait il est hors type. Et beh ! A quand un cours pour apprendre à lire une DTD ?
LaurentDenis Posté 30 Octobre 2004 Posté 30 Octobre 2004 (modifié) Par contre, je suis très étonné qu'on ne puisse pas mettre d'éléments inline directement enfants de body. Sans m'être renseigné, je croyais que body était de type block (donc pouvant contenir à la fois des blocks et des inlines) mais en fait il est hors type. Et beh ! La distinction est un peu plus complexe : il y a trois types de contenus "génériques" dans les DTD HTML: - %block - %inline - %flow qui mêle les deux précédents. Plus les exceptions définies élément par élément sur ce qu'ils peuvent contenir. Modifié 30 Octobre 2004 par LaurentDenis
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant