Das Attribut name ist veraltet. Wie verhält es sich beim Umgang mit Ankern?


18

Wenn ich meinen Code mit dem Validator w3 html5 teste , erhalte ich folgende Warnmeldung:

Warnung : Das nameAttribut ist veraltet. Stellen Sie idstattdessen ein Attribut in den nächsten Container.

Fragen):

  • Was bedeutet der nächste Container?
  • Ist <a>jetzt leer veraltet?
  • Soll ich idstatt verwenden name?

Antworten:


9

[A] Sind leere Platzhalter-Tags als Ganzes veraltet und können Anker stattdessen einfach auf jedes Element mit einer ID verweisen?

Ich ziehe es vor, Benutzer zu Überschriften-Tags zu springen (gemäß dem Standardverhalten von MediaWiki), wenn In-Page-Links erforderlich sind, aber ja, Sie können die ID eines beliebigen Elements adressieren.


17

Wenn Sie Benutzer zu In-Page-Links, auch als Fragment- IDs bezeichnet , springen müssen , können Sie das idAttribut (das für mehr als nur Fragment- IDs verwendet wird ) für jedes Element festlegen . Verwenden Sie dann das Übliche #in der URL eines hrefAttributs eines aElements. Hier ist ein Beispiel:

<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>

Wenn ich meine eigenen Seiten schreibe, gebe ich gerne idjedem <section>Tag ein (HTML5), auch wenn ich nicht vorhabe, es zu verwenden. Der Wert von idist eine URL-freundliche Version des Inhalts der Überschrift. Sie können denselben Effekt erzielen, indem Sie ihn ideinem <h1>usw. zuweisen .

Schließlich werden leere <a>Tags nicht als veraltet eingestuft, wie in der HTML5-Spezifikation angegeben :

Wenn das aElement kein hrefAttribut hat, stellt das Element einen Platzhalter für die Stelle dar, an der ansonsten möglicherweise ein Link platziert worden wäre.

Gleiches gilt auch für areaElemente :

Das hrefAttribut on aund areaelements ist nicht erforderlich. Wenn diese Elemente keine hrefAttribute haben, werden keine Hyperlinks erstellt.


2

Für HTML5 ist das nameAttribut jetzt veraltet, was bedeutet, dass es idanstelle von verwendet wird name. Ansonsten ist alles gleich.

<a> ist NICHT veraltet.


Während diese Antwort gut ist, würde ein Link zur Dokumentation oder ein Artikel, in dem die Ablehnung erklärt wird, sie noch besser machen.
Stephen Ostermiller

1
Insbesondere ist es das nameAttribut auf der Ankerelement , das veraltet ist. Das nameAttribut ist für andere Elemente weiterhin gültig (und erforderlich).
MrWhite
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.