W3Schools.com dan saya cukup yakin saya ingat melihat status W3C.org yang <menu>
harus digunakan untuk menu Toolbar dan daftar perintah kontrol formulir.
Jadi, mana yang harus saya gunakan untuk menu utama saya? Nav
, atau Menu
? Apakah itu penting?
Jawaban:
nav
digunakan untuk grup tautan internal (a
elemen). Biasanya ini berarti link harus berpindah ke halaman terpisah, atau mengubah konten dalam kasus halaman AJAX. Harapkan semacam perubahan konten saat mengkliknav
item.menu
digunakan untuk kelompok kontrol (a
,input
,button
). Biasanya ini berarti input harus menjalankan fungsi di dalam halaman. Harapkan semacam interaksi javascript saat mengklikmenu
item.nav
: navigasi untuk situs.menu
: menu untuk aplikasi web.sumber
<li>
elemen langsung di bawah<menu>
tag, tanpa memerlukan<ul>
daftar. Persyaratannya adalah atribut<menu>
'stype
dihilangkan atau disetel ke"toolbar"
. Lihat spesifikasi untuk para<li>
elemen dan para<menu>
elemen .<menu>
salah satu spesifikasi W3C HTML5? Saya menemukannya di versi WHAT WG , tetapi tidak di draf W3C HTML 5.3 terbaru .Berikut adalah posting HTML5Doctor
nav
dengan bagian tentang perbedaannyamenu
(pada dasarnya, gunakan di aplikasi sebenarnya). Sepertinya Anda maunav
.sumber
Dengan
<menu>
itu biasanya digunakan untuk menu konteks.MDN memiliki dokumentasi yang bagus tentangnya: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu
sumber
Tempat terbaik untuk mendapatkan jawaban ini adalah standar HTML 5 itu sendiri.
Menu didefinisikan dalam HTML 5.1 Edisi ke-2 .
Nav didefinisikan dalam HTML 5 .
Ada catatan untuk nav yang tidak saya sertakan tetapi menurut saya penting, tetapi menurut saya sebaiknya Anda mendapatkan definisinya sendiri dari standar.
Definisi yang ditandai dalam posting ini sebagai jawaban hampir benar tetapi memiliki pernyataan asing di dalamnya yang membuat jawaban itu sendiri salah.
sumber
<nav>
adalah bagian (seperti<section>
atau<article>
) sehingga akan muncul dalam kerangka dokumen HTML Anda. Karena ini, saya akan menggunakan<menu>
99% waktu. Bagi saya,<nav>
adalah perpaduan antara<section>
dan<menu>
, dengan tambahan penyempitan yang<nav>
harus digunakan khusus untuk navigasi, sedangkan<menu>
bisa untuk apa saja yang disebut menu (termasuk bilah navigasi). Jadi sebagian besar bilah navigasi, terlepas dari kenyataan bahwa itu adalah bilah navigasi, tidak sesuai dengan persyaratan ketat<nav>
, dan<menu>
lebih sesuai.Saya tidak pernah dalam karir pengembangan web saya menemukan situasi di mana saya ingin bilah navigasi saya menjadi bagian dari garis besar dokumen.
sumber
<menu>
di situs web yang bukan aplikasi web - 99% dari waktu, 'menu' navigasi Anda akan berupa tautan statis ke halaman lain atau bagian lain pada halaman, untuk apa<nav>
, menurut sesuai spesifikasi.nav
bukanlah pilihan tag yang baik karenanav
merupakan elemen bagian sehingga akan menjadi bagian dari garis besar dokumen seolah-olah itu adalah bagian dengan tajuk dan konten. Ini sebenarnya adalah skenario langka di mana Anda ingin Andanav
bertindak seperti bagian.menu
hanyalah saran sebagai pengganti semantik. Saya tidak melihat apa pun di spesifikasi yang mengatakan bahwa itu tidak dapat digunakan dengan cara ini. Sepertinya cocok. Tetapi jika Anda karena alasan tertentu percaya bahwa menu hanya untuk apa yang Anda definisikan sebagai aplikasi web, maka saya merekomendasikanol
atauul
sebagai penggantinya.<menu>
masih memiliki dukungan yang buruk saat ini. (Apakah benar bahwa Chrome tidak mendukungnya ??) Selain itu, Anda dapat mencapai semantik yang sama persis dengan memberikanrole="menu"
atribut ke elemen lain (misalnya div atau nav). Atribut peran menggantikan semantik default untuk elemen apa pun.