È corretto utilizzare il tag alt per un collegamento di ancoraggio?


124

È corretto usare il tag alt per un link di ancoraggio, qualcosa di simile

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

Risposte:


130

Queste cose trovano una risposta migliore guardando le specifiche ufficiali:

  1. vai alla specifica: https://www.w3.org/TR/html5/

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

  3. seleziona "Attributi del contenuto", che elenca tutti gli attributi consentiti per l' aelemento:

    • Attributi globali
    • href
    • target
    • download
    • rel
    • hreflang
    • type
  4. controlla gli "attributi globali" collegati: https://www.w3.org/TR/html5/dom.html#global-attributes

Come vedrai, l' altattributo non è consentito asull'elemento.
Inoltre noterai che l' srcattributo non è consentito.

Con la convalida HTML , errori come questi vengono segnalati a voi.


Nota che quanto sopra è per HTML5 , che è lo standard HTML del W3C del 2014 . Nel 2016, HTML 5.1 è diventato il prossimo standard HTML . Trovare gli attributi consentiti funziona allo stesso modo. Vedrai che l' aelemento può avere un altro attributo in HTML 5.1: rev.

Puoi trovare tutte le specifiche HTML (incluso lo standard più recente) in HTML Current Status del W3C .


2
Non vedo l' titleattributo negli attributi aglobali, è corretto utilizzare tale titleattributo in ao no?
Yousef Altaf

1
@YousefAltaf: in quale pagina guardi? Quello collegato, attributi globali , elenchi title.
entro il

Ho capito quindi è elencato sotto gli attributi globali, ma influisce sulla qualità della pagina se lo uso o no?
Yousef Altaf

@YousefAltaf: Questa è una domanda diversa, che è meglio non discutere qui. Fare riferimento alla sua definizione . Se hai ancora domande al riguardo, sentiti libero di creare una domanda separata (ma è meglio cercare prima se non è già stato chiesto).
entro il

4
Risposta contrassegnata come "Come cercare attributi HTML". Grazie.
Codebling

59

Per le ancore, dovresti usare invece il titolo. alt non è un attributo valido di a. Vedi http://w3schools.com/tags/tag_a.asp


@FabioPoloni Grazie, mi aspettavo che tutti potessero trovare il link qui sotto nella pagina :-)
tomis

Pensavo che se qualcuno non sapesse molto di questo argomento non lo avrebbe trovato ;-)
Fabio Poloni

8
Questa informazione sembra essere corretta su w3schools, ma w3schools non è ufficiale e non è affidabile, vedi w3fools.com
Jukka K. Korpela,

grazie Ragazzi ... a parte questo, la mia esigenza era basata esclusivamente su standard di accessibilità, oltre a negare il sovraccarico delle prestazioni. Ho usato un'immagine spirituale, allo stesso tempo volevo dare l'attributo alt, che non poteva fare usando immagini di sfondo. Invece ho una soluzione alternativa che ha aiutato ..
user2067736

1
"titolo" non è più su w3schools. Ma puoi usare il titolo, poiché è un attributo globale: w3.org/TR/html5/dom.html#global-attributes
rosell.dk

28

"titolo" è ampiamente implementato nei browser. Provare:

<a href="#" title="hello">asf</a>

3
Ecco come dovrebbe apparire una risposta invece della risposta di 10 minuti sopra. Ma questa risposta dovrebbe anche avere il link: w3schools.com/tags/att_global_title.asp
mikael1000

Sono d'accordo che quanto sopra non risponde alla domanda, tuttavia secondo esso, titlenon è corretto secondo le specifiche HTML5 (anche se la maggior parte dei browser lo implementerà).
felwithe

6

No, un altattributo (sarebbe un attributo, non un tag) non è consentito per un aelemento in nessuna specifica o bozza HTML. E non sembra essere riconosciuto da alcun browser come avente alcun significato.

È un po 'misterioso il motivo per cui le persone provano a usarlo, quindi, ma la probabile spiegazione è che lo stanno facendo in modo analogo con l' altattributo per gli imgelementi, aspettandosi di vedere un "suggerimento" al passaggio del mouse. Ci sono due cose che non vanno in questo. Innanzitutto, ogni elemento ha attributi propri, definiti nelle specifiche di ogni elemento. In secondo luogo, il rendering "tooltip" degli altattributi in alcuni browser antichi è / era un capriccio o addirittura un bug, piuttosto che qualcosa da aspettarsi; l' altattributo dovrebbe essere presentato all'utente se e solo se l'immagine stessa non viene presentata, per qualsiasi motivo.

Per creare un "suggerimento", usa titleinvece l' attributo o, molto meglio, Google per "suggerimenti CSS" e utilizza i suggerimenti basati su CSS di tua preferenza (possono essere caratterizzati come "livelli" nascosti che diventano visibili al passaggio del mouse).


Come si utilizzano i collegamenti creati a livello di codice utilizzando i suggerimenti basati su CSS?
Salvador Valencia

6

Dovresti usare l'attributo title per i tag di ancoraggio se desideri applicare informazioni descrittive in modo simile a come faresti per un attributo alt. L'attributo title è valido sui tag di ancoraggio e non ha altro scopo che fornire informazioni sulla pagina collegata.

W3C consiglia che il valore dell'attributo title corrisponda al valore del titolo del documento collegato, ma non è obbligatorio.

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


In alternativa, e probabilmente sarà più vantaggioso, puoi utilizzare l'attributo di accessibilità ARIA aria-label(da non confondere con aria-labeledby). aria-labelha la stessa funzione dell'attributo alt per le immagini ma per gli elementi non immagine e include una certa misura di ottimizzazione dall'ottimizzazione per gli screen reader.

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


Se vuoi descrivere un tag di ancoraggio, di solito è appropriato utilizzare il tag rel o rev ma sei limitato a valori specifici, non dovrebbero essere usati per descrizioni leggibili dall'uomo.

Rel serve a descrivere la relazione della pagina collegata alla pagina corrente. (ad esempio, se la pagina collegata è successiva in una serie logica, sarebbe rel = next)

L'attributo rev è essenzialmente la relazione inversa dell'attributo rel. Rev descrive la relazione tra la pagina corrente e la pagina collegata.

Puoi trovare un elenco di valori validi qui: http://microformats.org/wiki/existing-rel-values


5

Ho usato il titolo e ha funzionato!

L'attributo title fornisce il titolo del collegamento. Con un'eccezione, è puramente consultivo. Il valore è il testo. L'eccezione è per i collegamenti ai fogli di stile, dove l'attributo title definisce insiemi di fogli di stile alternativi.

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

1

Sono sorpreso di vedere tutte le risposte che affermano che l'uso altdell'attributo nel atag non è valido . Questo è assolutamente sbagliato.

Html non ti impedisce di utilizzare alcun attributo:

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

Se chiedi se è semanticamente corretto usare l' altattributo in aallora dirò:

NO. Viene utilizzato per impostare la descrizione dell'immagine <img alt="image description" />.

È una questione di cosa faresti con gli attributi. Ecco un esempio:

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>

Ancora una volta, se chiedi se è semanticamente corretto usare l'attributo personalizzato, dirò:

No. Usa gli data-*attributi per il suo uso semantico.


Oops, la domanda è stata posta nel 2013.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.