L'attributo name è obsoleto, qual è il comportamento corretto quando si ha a che fare con le ancore?


18

Quando collaudo il mio codice usando il validatore h3ml5 di w3 , ricevo questo messaggio di avviso:

Avviso : l' nameattributo è obsoleto. Valuta invece di mettere un idattributo sul contenitore più vicino.

Domande):

  • Cosa significa il contenitore più vicino?
  • Vuoto è <a>ora deprecato?
  • Dovrei usare idinvece di name?

Risposte:


9

[A] sono vuoti i tag segnaposto nel loro complesso deprecati e le ancore possono semplicemente puntare a qualsiasi elemento con un ID invece?

Preferisco passare gli utenti ai tag di intestazione (seguendo il comportamento predefinito di MediaWiki) dove sono necessari i collegamenti in-page, ma sì, potresti indirizzare l'ID di qualsiasi elemento.


17

Se è necessario passare gli utenti ai collegamenti in-page, noti anche come identificatori di frammenti , è possibile impostare l' idattributo (che viene utilizzato per più di semplici ID fram ) su qualsiasi elemento. Quindi utilizzare il solito #nell'URL di un hrefattributo di un aelemento. Ecco un esempio:

<body>
  <p>Despite the many
    <a href="#benefits-of-gum-chewing">benefits</a>
    you may experience while chewing gum, there are also many drawbacks,
    especially with 
    <a href="http://www.example.org/sugar.html#cons">non-sugarless</a>
    gum.</p>
  ...
  <section id="benefits-of-gum-chewing">
    <h1>Benefits of Gum Chewing</h1>
    ...
  </section>
</body>

Quando scrivo le mie pagine, mi piace dare un tag ida ciascun <section>tag (HTML5), anche se non ho intenzione di usarlo. Il valore di idè una versione URL-friendly del contenuto della sua intestazione. Puoi ottenere lo stesso effetto assegnando lo stesso ida un <h1>, ecc.

Infine, i <a>tag vuoti non sono deprecati, come indicato nelle specifiche HTML5 :

Se l' aelemento non ha alcun hrefattributo, l'elemento rappresenta un segnaposto per il quale altrimenti sarebbe stato inserito un collegamento ...

Inoltre, lo stesso vale per gli areaelementi :

L' hrefattributo on ae gli areaelementi non sono richiesti; quando quegli elementi non hanno hrefattributi non creano collegamenti ipertestuali.


2

Per HTML5, l' nameattributo è ora deprecato, quindi significa usare idal posto di name. Altrimenti, tutto il resto è uguale.

<a> NON è deprecato.


Mentre questa risposta è buona, un collegamento alla documentazione o ad un articolo che spiega la deprecazione la renderebbe ancora migliore.
Stephen Ostermiller

1
In particolare, è l' nameattributo sull'elemento anchor che è obsoleto / obsoleto. L' nameattributo è ancora perfettamente valido (e richiesto) su altri elementi.
Mr White
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.