web-dev-qa-db-fra.com

Si <a name="..."> est obsolète, quelle est votre préférence?

Le code HTML <a name="some_bookmark">text</a> est très utile pour créer des liens vers des sections spécifiques d'une page (par exemple, page.html#some_bookmark). Cependant, la spécification W3C marque maintenant l'attribut name de la balise a comme "obsolète".

Si tel est le cas, alors qu'est-ce qui est préféré? Existe-t-il une nouvelle balise <bookmark> ou similaire?

29
wchargin

Vous pouvez placer un attribut id="" sur n'importe quel élément et cela aura le même effet.

Celles-ci sont généralement placées sur des éléments d'en-tête.

25
SLaks

Regardez les spécifications HTML5.

À Fonctions obsolètes vous trouverez:

Les auteurs ne doivent pas spécifier l'attribut name sur les éléments a.

En cliquant sur name , vous trouverez:

[Les attributs suivants sont obsolètes (bien que les éléments fassent toujours partie du langage) et ne doivent pas être utilisés par les auteurs:] 

  • name sur a elements (sauf comme indiqué dans la section précédente) 
  • name sur embed elements 
  • name sur img elements 
  • name sur option elements 

→ Utilisez plutôt l'attribut id.

Cliquez sur id . Vous verrez que id est un attribut global , cela signifie qu’elle peut être utilisée sur l’élément any.

L'attribut id spécifie l'identificateur unique (ID) de son élément.
[…]
Remarque: L'identificateur unique d'un élément peut être utilisé à diverses fins, notamment comme moyen pour créer un lien vers des parties spécifiques d'un document à l'aide d'identificateurs de fragment, comme moyen de cibler un élément lors de la création de scripts , et comme moyen de styler un élément spécifique à partir de CSS.

11
unor

vous devriez utiliser l'attribut id="". :)

2
Jay

(Remarque: migré de https://webmasters.stackexchange.com/a/30031/10884 et modifié pour être bref.)

Si vous devez passer des utilisateurs aux liens de page, également appelés identificateurs de fragment , vous pouvez définir l'attribut id (qui est utilisé pour plus que de simples identifiants fragmentés ) sur any élément. Utilisez ensuite 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 attribuant la même id à un <h1>, etc.

0
chharvey

Utiliser id n'est pas toujours idéal car ils sont uniques, par exemple si vous avez une liste de liens en tant qu'éléments de menu et que vous souhaitez exécuter du javascript sur certains d'entre eux uniquement lorsque l'utilisateur survole, utiliser un identifiant serait un gâchis.

Actuellement, le meilleur moyen, à mon avis, consiste à utiliser un class pour les identifier en tant que groupe.

<a class="mylink">Menu Item one</a>
<a class="mylink">Menu Item two</a>
<a class="mylink">Menu Item three</a>
<a>Menu Item four</a>

Mais je continue d’utiliser le tag de nom, c’est stupide de déprécier quelque chose de si mineur, car il n’a aucun effet sur les performances ou autre chose, pose problème si les navigateurs décident de ne pas accepter le badge à un moment donné. Cela nous éloigne également de l'utilisation des normes.

0
Renet