Je tombe toujours sur cette question (assez simple) lorsque je fais par exemple Wordpress blogs. Dois-je envelopper le titre, qui devrait également être un lien, dans une ancre <a>
élément, ou devrait-il être l'inverse. Et pourquoi?
(1):
<a href="foo">
<h1>bar</h1>
</a>
(2):
<h1>
<a href="foo">bar</a>
</h1>
Je finis toujours par faire (1), comme cela me semble plus logique, que le titre est enveloppé dans un lien.
Cela fait-il une différence, par exemple dans le référencement? Reflètera-t-il le classement SEO?
Avant HTML5:
L'ancre doit être à l'intérieur de l'en-tête, vous ne pouvez pas mettre un élément de niveau bloc à l'intérieur d'une ancre, et la plupart des navigateurs ne la rendront pas à 100% de manière fiable si vous le faites.
En HTML5:
Peu importe, utilisez celui qui a le plus de sens sémantique . Probablement le premier.
N'oubliez pas que si votre document utilise des DTD HTML4, il ne sera pas validé et peut ne pas s'afficher correctement car il utilise les anciennes règles où une ancre ne peut pas contenir d'élément de niveau bloc. Utilisez uniquement la première option en HTML5. XHTML est équivalent à HTML4, je ne suis cependant pas sûr à 100% de XHTML1.1 (essayez-le et voyez s'il valide).
Si vous utilisez une DTD HTML 4.01 (vous n'êtes pas sûr de la transition, mais certainement de la stricte), l'élément d'ancrage doit apparaître à l'intérieur de l'élément d'en-tête. Vérifiez votre doctype si vous ne savez pas quelle DTD vous utilisez (en supposant que vous en ayez une, dont vous avez besoin pour que votre code soit considéré comme valide). Le doctype HTML5 ressemble à ceci:
<!DOCTYPE HTML>
Le doctype 4.01 est:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Je suggérerais également de vous familiariser avec la DTD elle-même si vous travaillez avec 4.01, elle répondra à tous ces types de questions.