使用nav标签定义导航区域,内部用ul和li组织链接,添加aria-current指示当前页,结合aria-haspopup和aria-expanded处理下拉菜单,提升可访问性与SEO。
在构建网页时,导航栏是用户快速访问网站不同页面的关键部分。为了让结构更清晰、提升可访问性并利于SEO,使用语义化标签来布局HTML导航栏非常重要。语义化意味着用合适的HTML标签准确表达内容的含义,而不仅仅是追求视觉效果。
nav 是HTML5中专门用于定义页面导航链接区域的语义化标签。它告诉浏览器和辅助技术(如屏幕阅读器)这一部分包含主要的导航链接。
常见的应用场景包括:示例代码:
虽然nav定义了导航区域,但内部链接应使用无序列表(ul + li)结构,这是语义化和可访问性的最佳实践。
优势包括:避免将多个独立的 a 标签直接放在 nav 中而不使用列表,那样会丢失结构信息。
用户需要知道当前所处的位置。通过给当前页面的导航项添加特定类名,结合ARIA属性,可以增强语义表达。
示例:
这样不仅视觉上高亮,也确保视障用户
能“听”出当前位置。
对于下拉菜单或多层级导航,保持语义清晰尤为重要。
示例片段:
基本上就这些。用 nav 包裹导航区域,内部用列表组织链接,配合合理的class和ARIA属性,就能实现既语义清晰又易于维护的导航结构。不复杂但容易忽略细节,尤其是可访问性方面的处理。