WordPress无障碍特性:地标、跳转链接与可访问导航菜单
对许多网站访客来说,使用键盘或屏幕浏览工具访问网页是刚需。WordPress区块主题内置的无障碍支持,正是为了解决这个问题。本文将聚焦于区块主题中三个核心的无障碍特性:通过为内容区块指定HTML5地标角色(Landmark Roles)来构建清晰的页面结构、利用<main>地标自动生成“跳转到内容”链接以绕过重复导航,以及导航区块开箱即用的键盘与屏幕阅读器支持。这些功能让开发者无需编写额外代码,就能构建一个更具包容性的站点。以下内容将解释其运作方式与实现细节。
一、地标角色:为页面划分区域
对于使用屏幕阅读器的用户,他们通常不会逐字阅读整个页面,而是习惯于通过“地标”来快速定位到他们感兴趣的区域,比如导航栏、主要内容区或页脚。
在WordPress的区块主题中,你可以为几个特定的区块赋予HTML5地标角色,将它们变成一个“地标”。这些区块包括Group(组)、Template Part(模板部件)以及Query(查询)区块。
实现方式主要有两种。
1. 通过区块标记设置
在编辑代码时,你可以直接修改区块的tagName属性。例如,将一个Group区块的标签改为header,它就具备了横幅(banner)地标的作用。
html
<!-- wp:group {"tagName":"header","layout":{"type":"constrained"}} -->
<header class="wp-block-group">
<!-- wp:site-title /-->
</header>
<!-- /wp:group -->
2. 通过站点编辑器设置
如果更喜欢图形化操作,可以在编辑器右侧的区块面板(Block Panel)中找到高级(Advanced)部分。这里的HTML元素(HTML element)下拉菜单提供了几个预设选项,选择它们即可快速为区块指定地标角色:
<header>: 定义页眉区域。<main>: 定义页面的核心内容。<section>: 定义文档中的一个章节。<article>: 定义独立的、可复用的内容块。<aside>: 定义侧边栏或补充内容。<footer>: 定义页脚区域。
注意:并非所有区块都能随意更改HTML标签。Group、Template Part和Query这三个区块是支持这项操作的主要对象。合理使用地标可以让页面结构一目了然,但切勿滥用,过多的地标反而会成为辅助技术用户的负担。
二、“跳转到内容”链接:绕过重复导航
当用户使用键盘(例如按Tab键)浏览网页时,通常需要按很多次才能跳过页眉和导航栏,抵达真正想看的内容。对于行动不便或依赖屏幕阅读器的用户,这无疑是个糟糕的体验。
“跳转到内容”(Skip to Content)链接就是为了解决这个问题。它是一个通常不可见(但在获得键盘焦点时会显示)的链接,让用户可以直接跳转到页面的主要内容区域。
在区块主题中,只要你为Group、Template Part或Query区块设置了 <main> 地标,WordPress就会自动生成这个“跳转到内容”的链接,不需要你编写任何额外的PHP或JavaScript代码。
注意:这个功能是自动的,前提是你的页面中必须存在一个
<main>地标。确保你的主题中至少有一个区块被正确地指定为<main>,这是开启该功能的关键。
三、导航区块:开箱即用的可访问性
导航菜单是网站中复杂也关键的部分之一。WordPress的导航(Navigation)区块已经为你处理了大部分繁琐的无障碍工作。
当你使用导航区块创建菜单时,以下无障碍特性是自动生效的,无需任何额外代码:
- 响应式视图支持:在不同屏幕尺寸下,导航菜单都能保持可用。
- 键盘导航支持:用户可以使用键盘的方向键在菜单项之间移动,按
Enter或空格键展开子菜单。 - 自动插入
<nav>地标:导航区块的根元素默认就是<nav>,屏幕阅读器可以立刻识别它。 - 自动生成ARIA属性:区块会自动添加
aria-label和aria-hidden等属性,为辅助技术提供必要的上下文信息。
注意:当页面中存在多个导航区块时,请务必为它们设置不同的
aria-label,例如“主导航”和“页脚导航”,以便用户区分。
总结
WordPress区块主题在设计上就将无障碍作为核心考量,大简化了开发者构建包容性网站的过程。总结一下: