使用 <menu> 元素作为导航是否正确?

Is it correct to use the <menu> element as navigation?

提问人:WalterV 提问时间:5/25/2023 最后编辑:Stefan - brox IT-SolutionsWalterV 更新时间:6/26/2023 访问量:123

问:

使用<menu>标签作为导航是否正确? 诸如此类:

<menu>
    <li><a href="#">Home</a></li>
    <li><a href="#">Page one</a></li>
    <li><a href="#">Page two</a></li>
    <li><a href="#">Page three</a></li>
</menu>

还是只针对上下文菜单指示,就像Mozilla上的示例一样?

HTML 语义标记

评论


答:

2赞 tacoshy 5/25/2023 #1

在您的示例中,您正确地使用了标签,事实上,这是您实际编写导航列表的方式。
标签是非语义的替代标签,因为浏览器将其视为相同。
<menu><menu><ul>

引用 MDN WebDocs 的话:

和元素都表示项目的无序列表。主要区别在于主要包含用于显示的项目,而用于交互式项目。<menu><ul><ul><menu>

<a>nchor 是交互式元素,因此在这种情况下,应正确用作列表容器。<menu>

但是,您的措辞不正确。 只是定位点无序列表的容器,而不是应使用该元素的整个导航。<menu><nav>

例如,导航栏可以包含更多链接:

<nav>
  <img src="logo.jpg" alt="Website Logo">
  <h1>table of contents</h1>
  <menu>
    <li><a href="#chapter-1">Chapter 1</a></li>
    <li><a href="#chapter-2">Chapter 2</a></li>
    <li><a href="#chapter-3">Chapter 3</a></li>
  </menu>
  <input type="text" id="search-bar">
</nav>

评论

1赞 unor 5/26/2023
该规范它用于“工具栏”,其中每个项目“代表用户可以执行或激活的命令”。我想说的是,导航链接不是命令。元素的典型用例是上下文菜单(“复制”、“粘贴”等)或图像编辑器中的工具栏(“裁剪”、“绘制”等)。menu
1赞 Sean 6/6/2023
元素在语义上不适合导航。说它不是语义元素是不正确的,而是。<menu><ul>
3赞 Sean 6/2/2023 #2

不。根据规格:

<menu> 元素表示由其内容组成的工具栏,其形式为无序列表的项(由 li 元素表示),每个项表示用户可以执行或激活的命令。

它在语义上适用于工具栏。工具栏的一个示例是富文本格式菜单,用户可以在其中按“粗体”按钮来激活其文本的粗体样式。

页面导航应使用 <nav> 元素进行标记。如果您的导航是链接列表,请根据需要在其中使用 或,但不要使用 .<ul><ol><nav><menu>