É correto usar a tag alt para um link de âncora?

124

É correto usar a tag alt para um link de âncora, algo como

<a href="#" class="test" alt="Something" src="sfasfs" ></a>
user2067736
fonte

Respostas:

130

É melhor responder a essas coisas olhando a especificação oficial:

  1. vá para a especificação: https://www.w3.org/TR/html5/

  2. procure por " aelemento": https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element

  3. marque "Atributos de conteúdo", que lista todos os atributos permitidos para o aelemento:

    • Atributos globais
    • href
    • target
    • download
    • rel
    • hreflang
    • type
  4. verifique os "Atributos globais" vinculados: https://www.w3.org/TR/html5/dom.html#global-attributes

Como você verá, o altatributo não é permitido no aelemento.
Você também notaria que o srcatributo também não é permitido.

Ao validar seu HTML , erros como esses são relatados a você.


Observe que o acima é para HTML5 , que é o padrão HTML do W3C de 2014 . Em 2016, o HTML 5.1 se tornou o próximo padrão HTML . Encontrar os atributos permitidos funciona da mesma maneira. Você verá que o aelemento pode ter outro atributo em HTML 5.1: rev.

Você pode encontrar todas as especificações HTML (incluindo o padrão mais recente) no Status Atual HTML do W3C .

unor
fonte
2
Não vejo o titleatributo nos atributos aGlobais, é correto usar esse titleatributo no aou não?
Yousef Altaf
1
@YousefAltaf: Em qual página você está? O vinculado, Atributos globais , lista title.
unor 28/07
Entendi, portanto, ele está listado nos atributos Globais, mas afeta a qualidade da página se eu a uso ou não?
Yousef Altaf
@YousefAltaf: Essa é uma pergunta diferente, que não deveria ser discutida aqui. Consulte a sua definição . Se você ainda tiver dúvidas sobre isso, sinta-se à vontade para criar uma pergunta separada (mas pesquise melhor antes, se ainda não tiver sido feita).
unor 28/07
4
Resposta marcada como "Como procurar atributos HTML". Obrigado.
Codebling
59

Para âncoras, você deve usar o título. alt não é um atributo válido de a. Consulte http://w3schools.com/tags/tag_a.asp

tom é
fonte
@FabioPoloni Obrigado, eu esperava que todos possam encontrar link abaixo na página :-)
Tomis
Pensei que, se alguém não sabe muito sobre este assunto, ele não iria encontrá-lo ;-)
Fabio Poloni
8
Este pedaço de informação passa a ser corretas no w3schools, mas w3schools não é oficial e não é confiável, ver w3fools.com
Jukka K. Korpela
thx Pessoal ... além disso, minha necessidade era puramente baseada em padrões de acessibilidade, além de negar a sobrecarga de desempenho. Eu usei uma imagem em espiral, ao mesmo tempo queria dar o atributo alt, o que não poderia ser feito usando imagens de fundo. Em vez disso, eu tenho uma solução alternativa que ajudou ..
user2067736 13/02/2013
1
"title" não está mais no w3schools. Mas você pode usar o título, pois é um atributo global: w3.org/TR/html5/dom.html#global-attributes
rosell.dk
28

"title" é amplamente implementado em navegadores. Experimentar:

<a href="#" title="hello">asf</a>
Pablo Pazos
fonte
3
É assim que uma resposta deve ser, em vez da resposta de 10 minutos acima. Mas esta resposta também deve ter o link: w3schools.com/tags/att_global_title.asp
mikael1000
Concordo que o item acima não responde à pergunta, no entanto, de acordo com ela, titleestá incorreto de acordo com a especificação HTML5 (mesmo que a maioria dos navegadores a implemente).
felwithe
6

Não, um altatributo (seria um atributo, não uma tag) não é permitido para um aelemento em nenhuma especificação ou rascunho HTML. E não parece ser reconhecido por nenhum navegador como tendo algum significado.

É um pouco misterioso o motivo pelo qual as pessoas tentam usá-lo, mas a provável explicação é que estão fazendo isso de maneira análoga ao altatributo de imgelementos, esperando ver uma "dica de ferramenta" na passagem do mouse. Há duas coisas erradas nisso. Primeiro, cada elemento possui atributos próprios, definidos nas especificações de cada elemento. Segundo, a renderização de "dica de ferramenta" de altatributos em alguns navegadores antigos é / era uma peculiaridade ou até mesmo um bug, ao invés de algo a ser esperado; o altatributo deve ser apresentado ao usuário se, e somente se, a imagem em si não for apresentada, por qualquer motivo.

Para criar uma "dica de ferramenta", use o titleatributo ou, muito melhor, o Google para "dicas de ferramentas CSS" e use dicas de ferramentas baseadas em CSS de sua preferência (elas podem ser caracterizadas como "camadas" ocultas que se tornam visíveis na passagem do mouse).

Jukka K. Korpela
fonte
Como uso os links criados programaticamente usando dicas de ferramentas baseadas em CSS?
Salvador Valencia
6

Você deve usar o atributo title para tags de âncora, se desejar aplicar informações descritivas da mesma forma que faria em um atributo alt. O atributo title é válido em tags de âncora e não serve para outra finalidade além de fornecer informações sobre a página vinculada.

O W3C recomenda que o valor do atributo title corresponda ao valor do título do documento vinculado, mas não é obrigatório.

http://www.w3.org/MarkUp/1995-archive/Elements/A.html


Como alternativa, e provavelmente será mais benéfico, você pode usar o atributo de acessibilidade ARIA aria-label(não deve ser confundido aria-labeledby). aria-labelserve a mesma função que o atributo alt para imagens, mas para elementos que não são de imagem e inclui alguma medida de otimização desde a otimização para leitores de tela.

http://www.w3.org/WAI/GL/wiki/Using_aria-label_to_provide_labels_for_objects


No entanto, se você deseja descrever uma tag de âncora, geralmente é apropriado usar a tag rel ou rev, mas o seu limite a valores específicos, eles não devem ser usados ​​para descrições legíveis por humanos.

Rel serve para descrever o relacionamento da página vinculada à página atual. (por exemplo, se a página vinculada for a próxima em uma série lógica, seria rel = next)

O atributo rev é essencialmente o relacionamento inverso do atributo rel. Rev descreve o relacionamento da página atual com a página vinculada.

Você pode encontrar uma lista de valores válidos aqui: http://microformats.org/wiki/existing-rel-values

davidcondrey
fonte
5

Eu usei o título e funcionou!

O atributo title fornece o título do link. Com uma exceção, é puramente consultivo. O valor é texto. A exceção é para links de folhas de estilos, em que o atributo title define conjuntos de folhas de estilos alternativos.

<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>
Giovanni G. PY
fonte
1

Estou surpreso ao ver todas as respostas afirmando que o uso do altatributo na atag não é válido . Isto está absolutamente errado.

O HTML não o bloqueia usando nenhum atributo:

<a your-custom-attribute="value">Any attribute can be used</a>

Se você perguntar se é semanticamente correto usar o altatributo, aentão direi:

NÃO. É usado para definir a descrição da imagem <img alt="image description" />.

É uma questão do que você faria com os atributos. Aqui está um exemplo:

a::after {
  content: attr(color); /* attr can be used as content */
  display: block;
  color: white;
  background-color: blue;
  background-color: attr(color); /* This won't work */
  display: none;
}
a:hover::after {
  display: block;
}
[hidden] {
  display: none;
}
<a href="#" color="red">Hover me!</a>
<a href="#" color="red" hidden>In some cases, it can be used to hide it!</a>

Novamente, se você perguntar se é semanticamente correto usar o atributo personalizado, direi:

Não. Use data-*atributos para seu uso semântico.


Opa, a pergunta foi feita em 2013.

Bhojendra Rauniyar
fonte