5568 sujets

Sémantique web et HTML

Bonjour,

je viens de m'apercevoir que lorsque l'on fait un lien vers une ancre place sur un <div>, le focus s'arrete sur l'element seulement si c'est lui meme un lien. Sinon il contenu vers le prochain lien si présent ?
Exemple:
	<div id="menu_accesso">
	<ul>
		<li><a href="#contenuto">Contenuto</a></li>
	</ul>
</div> <!-- fine #menu_accesso -->

<div id="contenuto">
	<h2>titre</h2>
	<p>début du texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p>texte</p>
	<p><a href="http://forum.alsacreations.com">lien</a></p>
</div> <!-- fine #contenuto -->

C'est un comportement normal ou pas ? Si on met l'ID sur le titre ou le paragraphe, pas de problèmes.

Opéra et IE s'arretent sur le premier élément de <div> qu'il ai ou non une ID.
Modifié par DSC (30 Mar 2005 - 20:10)
Lut DSC Smiley cligne ,


Je crois que si l'id de ton ancre est une id déclarée dans la feuille de style mozilla

prendra le focus sur le premier lien de ta cible apparemment.

Par contre si ton id n'est pas déclarée dans la feuille de style il se rendra à l'endroit de ton ancre sans prendre de focus sur un lien.

En fait en ce qui concerne les focus j'ai l'impression que tous le monde fait sa petite cuisine (navigateurs)comme d'hab.

Je m' étais aussi étonné que mozilla lui, perde le focus en cas de navigation au clavier (page pré page suiv) alors que IE le garde ce que je trouve plus logique dans ce cadre là!
Modifié par knarf (29 Mar 2005 - 16:04)
Je ne sais pas trop Smiley ohwell , à moins que tu ne parle de la feuille de style par défaut du navigateur. En effet, dans ce cas, je n'utilise pas de css interne, externe ou autre.

C'est embétant. Cela peut-etre genant pour l'accessibilité.

On fait la page, tout marche pour le mieux... un collègue rajoute un lien et le menu d'acces fait perdre une partie voir la totalité du contenu Smiley decu

Si c'est anormal, il serait bien de le signaler a Mozilla mais je ne suis pas certain. D'apres le W3C, il me semble que cela soit incorrect.

Merci pour ta réponse
Modifié par DSC (29 Mar 2005 - 16:18)
Donc pour toi l'id contenuto est juste la, pour nommer l'ancre et n'apparait pas dans une feuille de style.

Autant pour moi je viens de le refaire et je n'avais pas testé avec un div, et mozilla prends quand même le focus, mais si tu mets ton id à ton titre ou paragraphe le problème ne doit plus se poser.


Je ne pense pas qu'il y ai de contre-indication à mettre une id à un titre.


Sinon je maitrise pas encore toutes les ficelles mais si tu mets un lien

invisible graphiquement au début de ton div à chaque coup le focus sera pris avant tout ton contenu de même pour IE.

Le problème qui se pose et on en as discuté longuement avec Laurent-denis c'est la manière d'explicité ce lien correctement à une personne non-voyante qui elle en fonction de ce qu'elle utilise (lecteur d'écran) verras eventuellement ce lien.

Donc comme l'avais mentionné Laurent eventuellement destiner ce lien (et l'explicité en conséquence) à un acces direct en bas de page.
Modifié par knarf (29 Mar 2005 - 16:42)
Je suis en 1.0.2

Si tu y passe, tu peux essayer le code tel quel ou avec un doctype...
Si tu mets l'id sur le titre ou l'un des paragraphes tout va bien sinon... aurevoir contenu Smiley ohwell
Lut Dominique,

Sous Mozilla si tu as un lien dans un contenu et que tu fait aller au contenu par exemple avec une ancre sur le div de ton contenu, Mozilla ne prends pas le focus du lien ?

C'est bien ça?
@knarf: oui, c'est exactement cela. Si dans ta structure tu mets l'ancre sur le div (entete, contenu, pied + menu), comme j'ai tendance a faire tu risque d'avoir des surprises. Pour le menu, c'est peu probable, vu que se sont des liens.

@dominique: Si j'ai bien vu, tu utilises:
<a name="contenu" id="contenu"></a>

cela permet au lien "acces au texte" d'etre fonctionnel. S'il était sur le div qui suit cela glisserait vers:
<a href="#Tao Te King" title="Cliquez ici pour acc&egrave;der directement au d&eacute;tail du livre">Tao Te King</a>

qui est le premier lien du div.

Je suis en train de penser que ce post aurait plus de sens en accessibilité, non?
Modifié par DSC (29 Mar 2005 - 17:12)
Heuuuu ! non, je ne pense pas... On verra ce qu'en pense les autres modos qui passeront par ici Smiley cligne

La syntaxe que j'utilise est-elle bonne ? du coup !!

Si oui, tu as peut être la solution à ton soucis Smiley smile
Donc comme j'ai pu comprendre tu arrive bien sur un lien vide en début de div et pas directement sur un div ayant une id.

<a name="contenu" id="contenu"></a>


et seulement aprés ton div de contenu.

<div class="contenu">



Je me trompe peut être mais je croyais qu'un lien vide n'était pas conseillé et je crois même que le validateur ne le prends pas.

Ou cela sera mis par la suite puisque ce n'est pas terminé ou alors tu as pris ton partis de faire comme cela même si ce n'est pas il me semble valide.

C'est pour cela que j'avais mis [L.E] (lien dévitement) pour intitulé ce lien sur l'exemple dont je parle avec Laurent-Denis.


EDIT:
Tu utilise la même méthode sur ta page d'accueil mais le lien est renseigné vous êtes ici "Accueil"
Modifié par knarf (29 Mar 2005 - 17:30)
Suite à ta dernière remarque, j'ai trouvé ça :
a écrit :

L'attribut name en HTML n'existe plus en XHTML (mais est cependant valide pour assurer une compatibilité avec les anciens navigateurs) et cède sa place à l'attribut id. Cet identifiant doit être unique, il ne peut être utilisé par deux éléments, même différents. Les attributs id et name doivent avoir les mêmes valeurs.

Exemple :

<div id="titre" name="titre" />

L' attribut "name" des éléments a, applet, form, map, frame, iframe et img n'est cependant plus valide en XHTML.


... sur cette page : http://www.vulgarisation-informatique.com/passer-xhtml.php

... Mais je ne sais pas ce que ça vaut.... Un expert svp Smiley langue pour trancher la question... Ou plutôt les réponses Smiley smile
La méthode à Dominique ne me parait pas tres correcte (efficace mais pas correcte Smiley cligne ) d'autant qu'il y a un titre disponible, tout comme dans mon cas d'ailleurs. Le problème est que j'ai vu et je vois bon nombre de personne utiliser un div pour rassembler les éléments en 4 ou plus parties, entete contenu, pied et menu avec les ancres dessus (ce qui est pratique et dans un certain sens logique)...

Peut-on avertir Geckozone pour FF ou Opéra et IE se trompent de comportement?
Bonjour,
Je n'ai peut-être pas tout saisi à la question mais il est tout à fait possible de mettre un attribut id sur n'importe quel élément et de l'appeler:
<p id="monid">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus nunc.</p>

<a href="#monid">texte du lien interne</a>

Les id ne servent pas qu'à css, elles servent à identifier, ce dont se sert css entre autres. On peut très bien attribuer une id à un élément sans avoir sa correspondance dans une feuille de style ou un script... mais juste pour faire une ancre interne.
w3c, html 4.01, La structure globale du document html a écrit :

(...)
L'attribut id a plusieurs rôles dans HTML :

* comme sélecteur dans une feuille de style ;
* comme ancre cible de liens hypertextes ;
* comme moyen d'appeler un élément particulier à partir d'un script ;
* comme nom d'un élément OBJECT déclaré ;
* pour un traitement universel par les agents utilisateurs (par exemple, pour identifier les champs lors de l'extraction des données des pages HTML pour peupler une base de données, pour traduire des documents HTML dans d'autres formats, etc.).
(...)
http://www.la-grange.net/w3c/html4.01/struct/global.html#idx-id_attribute

J'ai a priori utiliser des id comme ancre interne sur des div sans problème.
Bonjour,

donc les ids peuvent etre mis sur un div.
Si j'ai bien compris, en se servant de cette id comme ancre, le focus devrait se porter sur l'élément en question?

Je demande cela parceque sur Opéra et IE, le focus se porte effectivement sur le div (ou du moins le premier élément du div).

Par contre sous FF, il ne le fait que s'il n'y a pas de lien dans le div. Le lien prend, lui, le focus.

La demande est si effectivement FF est dans l'erreur, afin de faire un rapport a la fondation Mozilla.
En effet, c'est un bug de Mozilla (donc présent aussi sur firefox) et il est corrigé dans la version de développement donc ce sera bon dans Firefox 1.1 Smiley cligne

edit: c'est cette entrée je crois.
Modifié par Bobe (30 Mar 2005 - 19:05)