web-dev-qa-db-fra.com

L'attribut de nom est obsolète, quel est le comportement correct lorsqu'il s'agit d'ancres?

Lors du test de mon code à l'aide du validateur w3 html5 , je reçois le message d'avertissement suivant:

Avertissement : l'attribut name est obsolète. Envisagez plutôt de placer un attribut id sur le conteneur le plus proche.

Question (s):

  • Que signifie le conteneur le plus proche?
  • <a> est-il maintenant obsolète?
  • Devrais-je utiliser id au lieu de name??
17
Kzqai

Les balises d'espace réservé vides sont-elles obsolètes et les ancres peuvent-elles simplement pointer sur n'importe quel élément ayant un identifiant?

Je préfère passer les utilisateurs aux balises de titre (suivant le comportement par défaut de MediaWiki) où des liens dans la page sont nécessaires, mais vous pouvez effectivement indiquer l'ID de n'importe quel élément.

9
danlefree

Si vous devez faire passer les utilisateurs aux liens de la page, également appelés identificateurs de fragment , vous pouvez définir l'attribut id (qui est - tilisé pour plus que simplement frag ids ) sur l'élément any. Ensuite, utilisez le # habituel dans l'URL d'un attribut href d'un élément a. Voici un exemple:

<body>
  <p>Despite the many
    <a href="#benefits-of-gum-chewing">benefits</a>
    you may experience while chewing gum, there are also many drawbacks,
    especially with 
    <a href="http://www.example.org/sugar.html#cons">non-sugarless</a>
    gum.</p>
  ...
  <section id="benefits-of-gum-chewing">
    <h1>Benefits of Gum Chewing</h1>
    ...
  </section>
</body>

Lors de la rédaction de mes propres pages, j'aime bien attribuer une id à chaque balise <section> (HTML5), même si je ne prévois pas l'utiliser. La valeur de id est une version conviviale du contenu de son en-tête. Vous pouvez obtenir le même effet en affectant le même id à un <h1>, etc.

Enfin, les balises vides <a> ne sont pas obsolètes, comme indiqué dans spécification HTML5 :

Si l'élément a n'a pas d'attribut href, il représente un espace réservé pour l'emplacement où un lien aurait autrement été placé…

En outre, il en va de même pour area elements :

L'attribut href sur les éléments a et area n'est pas requis; lorsque ces éléments ne possèdent pas d'attributs href, ils ne créent pas de liens hypertexte.

17
chharvey

Pour HTML5, l'attribut name est désormais obsolète. Vous devez donc utiliser id à la place de name. Sinon, tout le reste est la même.

<a> n'est PAS obsolète.

1
Sean Tank Garvey