Das <a>
nchor-Element ist einfach ein Anker für oder von einem Inhalt. Ursprünglich erlaubte die HTML-Spezifikation benannte Anker ( <a name="foo">
) und verknüpfte Anker ( <a href="#foo">
).
Das benannte Ankerformat wird seltener verwendet, da die Fragmentkennung jetzt zum Angeben eines [id]
Attributs verwendet wird (obwohl Sie aus Gründen der Abwärtskompatibilität weiterhin [name]
Attribute angeben können ). Ein <a>
Element ohne [href]
Attribut ist weiterhin gültig .
In Bezug auf Semantik und Stil ist das <a>
Element kein link ( :link
), es sei denn, es verfügt über ein [href]
Attribut. Ein Nebeneffekt davon ist, dass ein <a>
Element ohne [href]
standardmäßig nicht in der Tabulatorreihenfolge angezeigt wird.
Die eigentliche Frage ist, ob das <a>
Element allein eine angemessene Darstellung von a ist <button>
. Auf semantischer Ebene gibt es einen deutlichen Unterschied zwischen a link
und a button
.
Eine Schaltfläche bewirkt beim Klicken eine Aktion.
Ein Link ist eine Schaltfläche, die eine Änderung der Navigation im aktuellen Dokument bewirkt. Die auftretende Navigation kann sich bei Fragmentkennungen ( #foo
) innerhalb des Dokuments oder bei URLs ( /bar
) in ein neues Dokument bewegen .
Da Links eine spezielle Art von Schaltfläche sind, wurden ihre Aktionen häufig überschrieben, um alternative Funktionen auszuführen. Die weitere Verwendung eines Ankers als Schaltfläche ist vom Standpunkt der Konsistenz aus in Ordnung, obwohl sie semantisch nicht ganz genau ist.
Wenn Sie sich Gedanken über die Semantik und Zugänglichkeit der Verwendung eines <a>
Elements (oder <span>
oder oder <div>
) als Schaltfläche machen, sollten Sie die folgenden Attribute hinzufügen:
<a role="button" tabindex="0" ...>...</a>
Die Schaltflächenrolle teilt dem Benutzer mit, dass das bestimmte Element als Überschreibung für die Semantik des zugrunde liegenden Elements als Schaltfläche behandelt wird.
Für <span>
und <div>
Elemente möchten Sie möglicherweise JavaScript-Schlüssel-Listener für das Ereignis hinzufügen Spaceoder Enteres auslösen click
. <a href>
und <button>
Elemente tun dies standardmäßig, Elemente ohne Schaltflächen jedoch nicht. Manchmal ist es sinnvoller, den click
Auslöser an eine andere Taste zu binden . Beispielsweise kann eine "Hilfe" -Schaltfläche in einer Web-App gebunden sein F1.