键盘可访问

为了完全可访问,网页必须能够仅通过键盘进行访问和控制。这包括屏幕阅读器用户,但也可能包括那些难以操作鼠标或轨迹球等指针设备的用户,或者他们的鼠标目前无法工作,或者那些在可能的情况下更喜欢使用键盘进行输入的用户。

可聚焦元素应具有交互式语义

如果一个元素可以使用键盘聚焦,那么它应该是可交互的;也就是说,用户应该能够对其进行操作并产生某种变化(例如,激活链接或更改选项)。

注意: 此规则的一个重要例外是,如果元素应用了 role="document" 属性,并且位于交互式上下文(如 role="application")的内部。在这种情况下,聚焦嵌套文档是使辅助技术返回非交互式状态(通常称为“浏览模式”)的唯一方法。

大多数交互式元素默认是可聚焦的;您可以通过为其添加 tabindex=0 属性值来使其可聚焦。但是,您应该仅在已使元素可交互(例如,通过定义适当的键盘事件事件处理程序)的情况下才添加 tabindex

另见

避免使用大于零的 tabindex 属性

tabindex 属性表示一个元素可以使用键盘聚焦。值为零表示该元素是默认焦点顺序的一部分,该顺序基于 HTML 文档中元素的顺序。正值会将元素置于默认顺序的前面;具有正值的元素按其 tabindex 值(1、2、3 等)的顺序聚焦。

当焦点顺序与页面的逻辑顺序不同时,这会给仅使用键盘的用户带来混淆。更好的策略是构建 HTML 文档,使可聚焦元素按逻辑顺序排列,而无需使用正 tabindex 值重新排序它们。

另见

可点击元素必须可聚焦,并应具有交互式语义

如果一个元素可以使用鼠标等指针设备点击,那么它也应该能够使用键盘聚焦,并且用户应该能够通过与其交互来执行某些操作。

如果元素定义了 onclick 事件处理程序,则它是可点击的。您可以通过为其添加 tabindex=0 属性值来使其可聚焦。通过定义 onkeydown 事件处理程序,您可以使其可以通过键盘操作;在大多数情况下,事件处理程序执行的操作应与两种事件类型相同。

另见

交互式元素必须能够使用键盘进行激活

如果用户可以通过触摸或指针设备与元素进行交互,那么该元素也应该支持通过键盘进行交互。也就是说,如果您为触摸或单击事件定义了事件处理程序,那么您也应该为键盘事件定义它们。键盘事件处理程序应实现与触摸或单击处理程序基本相同的交互。

另见

交互式元素必须可聚焦

如果用户可以与元素进行交互(例如,通过触摸或指针设备),那么它应该能够使用键盘聚焦。您可以通过为其添加 tabindex=0 属性值来使其可聚焦。这将把该元素添加到可以通过按 Tab 键聚焦的元素列表中,按 HTML 文档中定义的此类元素的顺序排列。

另见

可聚焦元素必须具有焦点样式

任何可以接收键盘焦点的元素都应该具有可见的样式,以指示元素何时获得焦点。您可以使用 :focus:focus-visible CSS 伪类来实现这一点。

链接和输入字段等标准可聚焦元素默认由浏览器提供特殊的样式,因此您可能不需要为这些元素指定焦点样式,除非您希望焦点样式更具辨识度。

如果您创建了自己的可聚焦组件,请确保也为它们定义了焦点样式。

另见