Atribut name sudah usang, apa perilaku yang benar ketika berhadapan dengan jangkar?

18

Saat menguji kode saya menggunakan validator w3 html5 , saya mendapatkan pesan peringatan ini:

Peringatan : nameAtribut sudah usang. Pertimbangkan untuk meletakkan idatribut pada wadah terdekat.

Pertanyaan:

  • Apa arti wadah terdekat?
  • Apakah <a>sekarang sudah kosong ?
  • Haruskah saya menggunakan idbukan name?
Kzqai
sumber

Jawaban:

9

[A] apakah tag placeholder kosong secara keseluruhan sudah tidak digunakan lagi, dan anchor dapat dengan mudah menunjuk ke elemen apa pun dengan id?

Saya lebih suka melompat pengguna ke tag heading (mengikuti perilaku default MediaWiki) di mana tautan dalam-halaman diperlukan, tetapi ya, Anda bisa mengatasi ID elemen apa pun.

danlefree
sumber
17

Jika Anda perlu mengalihkan pengguna ke tautan dalam-halaman, juga dikenal sebagai pengidentifikasi fragmen , Anda dapat mengatur idatribut (yang digunakan untuk lebih dari sekadar frag id ) pada elemen apa pun . Kemudian gunakan yang biasa #di URL hrefatribut suatu aelemen. Ini sebuah contoh:

<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>

Saat menulis halaman saya sendiri, saya ingin memberikan tag iduntuk setiap <section>tag (HTML5), bahkan jika saya tidak berencana menggunakannya. Nilai dari idini adalah versi ramah URL dari konten tajuknya. Anda dapat mencapai efek yang sama dengan menetapkan yang sama idke <h1>, dll.

Terakhir, <a>tag kosong tidak ditinggalkan, seperti ditunjukkan dalam spesifikasi HTML5 :

Jika aelemen tidak memiliki hrefatribut, maka elemen tersebut mewakili placeholder untuk tempat tautan mungkin ditempatkan ...

Selain itu hal yang sama berlaku untuk areaelemen :

The hrefatribut pada adan areaelemen tidak diperlukan; ketika elemen-elemen itu tidak memiliki hrefatribut, mereka tidak membuat hyperlink.

chharvey
sumber
2

Untuk HTML5, nameatribut sekarang sudah tidak digunakan lagi, sehingga itu berarti digunakan idsebagai pengganti name. Kalau tidak, yang lainnya sama saja.

<a> TIDAK ditinggalkan.

Sean Tank Garvey
sumber
Meskipun jawaban ini bagus, tautan ke dokumentasi atau artikel yang menjelaskan penghentian itu akan membuatnya lebih baik.
Stephen Ostermiller
1
Secara khusus, itu adalah nameatribut pada elemen jangkar yang sudah usang / usang. The nameatribut masih valid sempurna (dan diperlukan) pada elemen lainnya.
MrWhite