L' <a>elemento nchor è semplicemente un'ancora verso o da alcuni contenuti. Originariamente la specifica HTML consentiva per anchors con nome ( <a name="foo">) e anchor collegati ( <a href="#foo">).
Il formato di ancoraggio denominato viene utilizzato meno comunemente, poiché l'identificatore di frammento viene ora utilizzato per specificare un [id]attributo (anche se per la compatibilità con le versioni precedenti è ancora possibile specificare gli [name]attributi). Un <a>elemento senza [href]attributo è ancora valido .
Per quanto riguarda la semantica e lo stile, l' <a>elemento non è un link ( :link) a meno che non abbia un [href]attributo. Un effetto collaterale di ciò è che un <a>elemento senza [href]non sarà nell'ordine di tabulazione di default.
La vera domanda è se l' <a>elemento da solo è una rappresentazione appropriata di a <button>. A livello semantico, esiste una netta differenza tra a linke a button.
Un pulsante è qualcosa che quando si fa clic provoca un'azione.
Un collegamento è un pulsante che provoca una modifica nella navigazione nel documento corrente. La navigazione che si verifica potrebbe spostarsi all'interno del documento nel caso di identificatori di frammenti ( #foo) o passare a un nuovo documento nel caso di urls ( /bar).
Poiché i collegamenti sono un tipo speciale di pulsante, spesso hanno avuto la precedenza sulle loro azioni per eseguire funzioni alternative. Continuare a usare un'ancora come pulsante è ok dal punto di vista della coerenza, sebbene non sia abbastanza accurato semanticamente.
Se sei preoccupato per la semantica e l'accessibilità dell'uso di un <a>elemento (o <span>, o <div>) come pulsante, devi aggiungere i seguenti attributi:
<a role="button" tabindex="0" ...>...</a>
Il ruolo del pulsante indica all'utente che l'elemento particolare viene trattato come un pulsante come una sostituzione per qualsiasi semantica che l'elemento sottostante potrebbe aver avuto.
Per <span>e gli <div>elementi, potresti voler aggiungere listener di chiavi JavaScript Spaceo Enterattivare l' clickevento. <a href>e gli <button>elementi lo fanno per impostazione predefinita, ma gli elementi senza pulsante no. A volte ha più senso associare il clickgrilletto a una chiave diversa. Ad esempio, potrebbe essere associato un pulsante "guida" in un'app Web F1.