跳到主要内容
界面图谱Interface Atlas
☰
EN
无障碍Accessibility / Keyboard

键盘导航

Keyboard Navigation

别名:键盘导航键盘操作键盘可达tab 顺序不用鼠标操作keyboard nav

这是什么

让所有功能都能只用键盘完成:Tab/Shift+Tab 按合理顺序移动焦点,复合组件内用方向键漫游并配 roving tabindex,Escape 关闭浮层并归还焦点。这是焦点环之外的一整套焦点秩序,规则写在 ARIA APG 里。

名词辨析

「Tab 键」是移动焦点的按键,「标签页(Tabs)」是一个组件——英文同形,中文口语都可能说成 Tab,一个是输入按键,一个是界面元素。

交互实验室

试一试,再决定怎么用

正在加载实验室…

✓ 适用场景

  • 工具栏、菜单、标签页等复合组件的组内焦点管理
  • 弹层、抽屉、对话框需要打开与关闭的焦点闭环
  • 任何必须「无鼠标可完成」的核心流程

✕ 不适用场景

  • 用 tabindex="0" 把非交互元素强行拉进 Tab 序
  • 组内每个项都 tabindex="0",方向键又不能漫游
  • Escape 关掉浮层后焦点掉回 body 顶

常见形式

线性 Tab 序

Linear tab order

DOM 顺序即焦点顺序,页面级默认

漫游 tabindex

Roving tabindex

组内仅一项 tabindex="0",方向键切换

Escape 归还焦点

Escape dismiss

关闭浮层后焦点回到触发元素

实现要点

tabindex:focus-visiblekeydown

页面级用自然 DOM 顺序 + 原生可交互元素,别用正数 tabindex 重排。复合组件按 APG:组内一项 tabindex="0" 其余 -1,keydown 处理方向键/Home/End 并 .focus() 目标项;浮层打开时焦点移入,Escape 关闭并归还触发元素。keydown 里 preventDefault 前先确认按键属于该组件。

平台 API

tabindexkeydown:focus-visible

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

体系名称
WAI-ARIA APGKeyboard Interaction
WCAG2.4.3 Focus Order

相关概念

焦点环Focus Ring

用可见轮廓标记当前键盘焦点位置,让用户知道下一个按键会落在哪里。鼠标点击往往不需要它,但键盘与辅助技术用户必须始终看见焦点在哪,否则只能盲操作。通常用 :focus-visible 控制——键盘聚焦才显示,鼠标点击不打扰。

无障碍搭配使用
跳过链接Skip Link

页面第一个可聚焦元素,通常是视觉上隐藏的链接;键盘用户按下第一个 Tab 就能看见它,激活后直接跳到主内容区,不必逐个穿过顶部导航链接。长导航站点的必备逃生口,WCAG 称之为「跳过区块」。

无障碍搭配使用
菜单Menu

点击或右键触发的临时操作列表浮层:平铺或分组的命令项,选中即执行并关闭。 用于收纳非高频操作(更多、设置、删除),通常以「⋯」按钮或右键唤起。

组件搭配使用
命令面板Command Palette

用快捷键(⌘K / Ctrl+K)唤出的浮动搜索面板:输入即筛选命令、页面或内容, 键盘上下选择、回车执行。macOS Spotlight 把它带入大众视野, 现在是效率工具和开发者产品的标配。

组件搭配使用

容易混淆

标签页Tabs

tabs 是标签页组件;keyboard-navigation 里的 Tab 键是焦点移动按键——同名不同物。

参考来源

Markdown 版(给 Agent) · JSON