O <a>
elemento nchor é simplesmente uma âncora para ou de algum conteúdo. Originalmente, a especificação HTML permitia âncoras nomeadas ( <a name="foo">
) e âncoras vinculadas ( <a href="#foo">
).
O formato âncora nomeado é menos usado, pois o identificador de fragmento agora é usado para especificar um [id]
atributo (embora para compatibilidade com versões anteriores você ainda possa especificar [name]
atributos). Um <a>
elemento sem um [href]
atributo ainda é válido .
No que diz respeito à semântica e estilo, o <a>
elemento não é um link ( :link
), a menos que tenha um [href]
atributo. Um efeito colateral disso é que um <a>
elemento sem [href]
não estará na ordem de tabulação por padrão.
A verdadeira questão é se o <a>
elemento sozinho é uma representação apropriada de a <button>
. Em um nível semântico, há uma diferença distinta entre a link
e a button
.
Um botão é algo que quando clicado faz com que uma ação ocorra.
Um link é um botão que causa uma alteração na navegação no documento atual. A navegação que ocorre pode ser movida dentro do documento no caso de identificadores de fragmento ( #foo
) ou movida para um novo documento no caso de URLs ( /bar
).
Como os links são um tipo especial de botão, eles geralmente tiveram suas ações substituídas para executar funções alternativas. Continuar usando uma âncora como botão é aceitável do ponto de vista da consistência, embora não seja muito preciso semanticamente.
Se você estiver preocupado com a semântica e acessibilidade do uso de um <a>
elemento (ou <span>
, ou <div>
) como um botão, adicione os seguintes atributos:
<a role="button" tabindex="0" ...>...</a>
A função do botão informa ao usuário que o elemento específico está sendo tratado como um botão como uma substituição para qualquer semântica que o elemento subjacente possa ter.
Para <span>
e <div>
elementos, convém adicionar ouvintes de chave JavaScript Spaceou Enteracionar o click
evento. <a href>
e <button>
elementos fazem isso por padrão, mas elementos que não são botões não. Às vezes, faz mais sentido vincular o click
gatilho a uma chave diferente. Por exemplo, um botão "ajuda" em um aplicativo Web pode estar vinculado F1.