Comme le décrit @j08691, les a
sont interdits dans la syntaxe HTML. Les spécifications HTML ne disent pas pourquoi ; elles soulignent simplement la règle.
D'un point de vue pratique, les navigateurs appliquent effectivement cette restriction dans leurs règles d'analyse, de sorte que, contrairement à de nombreux autres problèmes, la violation des spécifications ne fonctionnera tout simplement pas. Les analyseurs traitent effectivement un <a>
à l'intérieur d'une balise ouverte a
comme mettant implicitement fin à l'élément ouvert avant d'en commencer un nouveau.
Ainsi, si vous écrivez <a href=foo>foo <a href=bar>bar</a> zap</a>
vous n'obtiendrez pas d'éléments imbriqués. Les navigateurs l'interpréteront comme <a href=foo>foo</a> <a href=bar>bar</a> zap
c'est-à-dire deux liens consécutifs suivis d'un texte en clair.
Il n'y a rien d'intrinsèquement illogique à imbriquer des a
ils pourraient être implémentés de manière à ce qu'un clic sur "foo" ou "zap" active le lien extérieur, et qu'un clic sur "bar" active le lien intérieur. Mais je ne vois pas de raison d'utiliser une telle structure, et les concepteurs de HTML n'en voyaient probablement pas non plus, si bien qu'ils ont décidé de l'interdire et de simplifier ainsi les choses.
(Si vous vouliez vraiment simuler des liens imbriqués, vous pourriez utiliser un lien normal comme lien extérieur et un lien span
avec un gestionnaire d'événement approprié comme "lien" interne. Vous pouvez également dupliquer les liens : <a href=foo>foo</a> <a href=bar>bar</a> <a href=foo>zap</a>
.)