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

焦点环

Focus Ring

别名:焦点环键盘焦点框键盘框蓝框聚焦框focus outlinefocus ring

这是什么

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

名词辨析

焦点环不等于 hover 高亮——焦点环服务键盘用户,hover 服务指针用户。

交互实验室

试一试,再决定怎么用

正在加载实验室…

✓ 适用场景

  • 任何可聚焦元素(按钮、链接、输入框、自定义控件)
  • 用 :focus-visible 而非 :focus,避免鼠标点击也弹框
  • 自定义控件覆盖了浏览器默认轮廓之后

✕ 不适用场景

  • outline: none 之后不给任何替代指示(键盘用户直接失联)
  • 把焦点环做成 hover 高亮的复制品,只在鼠标下可见
  • 焦点环对比度不足 3:1,或被邻近元素裁切遮挡

常见形式

外轮廓

Outline ring

outline + outline-offset,最通用、可被 forced-colors 保留

阴影环

Shadow ring

box-shadow 双层描边,圆角跟随元素形状

描边染色

Border tint

只变边框色,视觉最弱,需配合加粗才够用

实现要点

:focus-visibleoutlineoutline-offset

基础写法::focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px }。需要跟随圆角时改用 box-shadow: 0 0 0 2px 两层环。覆盖浏览器默认轮廓后必须提供替代;forced-colors 模式下保留 outline。可用 :focus:not(:focus-visible) 精确去掉鼠标点击的环。

平台 API

:focus-visibleoutlineoutline-offsetfocus()

代码里叫什么

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

相关概念

键盘导航Keyboard Navigation

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

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

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

无障碍搭配使用
对比度Contrast Ratio

前景与背景的亮度比值,衡量文字是否看得清。WCAG 2.1 给出硬性门槛:正文 AA 4.5:1、AAA 7:1,大号文字降到 3:1 与 4.5:1。APCA 按字重与字号给出更贴近感知的建议值。先算比值再选色,不要靠肉眼验收。

基础搭配使用

容易混淆

悬停发光Hover Glow

hover-glow 是鼠标悬停的装饰反馈,焦点环是键盘可达性的必需指示。

参考来源

Markdown 版(给 Agent) · JSON