做网站的朋友经常听到“地标区域标签”这个词,但很多人不太清楚它到底是什么、有什么用。简单来说,地标区域标签(Landmark Regions)就是HTML里那些用来划分网页大块结构的语义化标签,比如header、nav、main、footer、aside这些。它们就像给网页的不同区域贴上了“这是导航”“这是主要内容”“这是页脚”的标签,让屏幕阅读器和搜索引擎都能快速理解页面的组织结构。
HTML5提供了几个核心的地标标签,日常开发中用得最多的是这几种。header标签代表页面的头部区域,通常放网站logo、站名和搜索框。nav标签专门包导航链接,比如顶部菜单、侧边栏导航。main标签是页面的主要内容区域,一个页面只能出现一次,这是硬性规定。aside标签放和主要内容相关但又不那么重要的信息,比如侧边推荐文章、广告位。footer标签是页脚,一般放版权信息、备案号、联系方式。除此之外,form标签带名称时也算地标,section标签配上合理的标题也能充当区域角色。
视障用户使用屏幕阅读器浏览网页时,不可能一个字一个字从头听到尾。地标标签的作用就是给他们提供“快捷跳转”的能力。比如用户想直接跳到主要内容,屏幕阅读器可以通过main标签一键跳过去,省去重复听导航的时间。据统计,熟练的屏幕阅读器用户中有相当一部分会用地标区域来浏览网页,如果你的网站没有这些标签,他们只能靠盲猜和逐个试链接,体验会非常糟糕。这就是为什么政府网站、公共服务平台都把地标标签列为无障碍改造的必做项目。
搜索引擎一直在努力理解网页结构,语义化标签就是给搜索引擎的明确信号。虽然Google官方没有明说header、footer这类标签是直接排名因素,但实践证明语义清晰的页面往往抓取效率更高、内容识别更准确。特别是nav标签能帮搜索引擎区分导航链接和正文链接,main标签能让爬虫准确定位核心内容区域,避免把页脚的重复内容当成正文重点。对做本地SEO的商家来说,页脚footer里规范放置地址、电话等信息,配合结构化数据,还能提升在本地搜索结果里的展示效果。
用地标标签有几个原则要遵守。第一,不要滥用,一个页面main只能有一个,header和footer按层级合理使用,整个页面级别一套,嵌套在article里的可以另算。第二,标签要语义匹配,导航就用nav,别为了样式方便乱套div再手动加role属性,能用原生标签就不要绕弯。第三,当某些区域不方便改标签时,可以用ARIA的role属性补救,比如给div加上role="navigation",效果等同于nav标签,但这是备选方案,首选还是原生语义标签。第四,重复出现的天标区域建议加上aria-label区分,比如页面顶部和底部都有nav,可以分别标注“主导航”和“页脚导航”,屏幕阅读器用户一听就明白。
实际项目里常见的坑不少。有的人整个页面从头到尾全是div,样式做得再好看,机器读起来就是一锅粥。有的人为了凑语义把nav包住所有链接,连版权链接都塞进去,这就过头了,nav只该包真正的导航集合。还有人不给main标签留位置,把所有内容都塞进header和footer之间的一堆section里,屏幕阅读器跳转功能就废了一半。另外要注意旧项目改造时的兼容性,有些老浏览器对HTML5标签支持有问题,需要配合polyfill或者CSS处理,不过现在主流浏览器基本都没问题了,这点可以放心。
验证方法很简单。开发者可以打开浏览器控制台,用JavaScript查一下页面里各地标标签的数量和嵌套关系。更方便的是直接用工具,比如Chrome浏览器自带的Lighthouse能跑无障碍评分,axe浏览器插件能一键扫描地标结构问题,WAVE工具会把页面所有地标区域可视化标出来,一眼就能看出布局合不合理。建议每次改版上线前都跑一遍检测,把问题消灭在发布之前。
总结一下,地标区域标签是网页结构的地基,它同时服务于无障碍访问和搜索引擎优化,成本低、收益高,是每个做网站的人都该掌握的基础技能。把header、nav、main、aside、footer这几个标签用对位置,你的网站在用户体验和搜索表现上都会更上一层楼。