1 分钟阅读
TailwindCSS 路线 08:可访问性(A11y)——Focus、对比度与语义结构
Tailwind 不会自动让你可访问。把 focus-visible、aria、对比度、键盘可用性变成组件契约,让 UI 更可靠、更专业。
- TailwindCSS
- A11y
- 可访问性
- 组件设计
AI 共读让 Noob 帮你提炼要点 / 答疑
很多“看起来很好看”的 UI,一旦用键盘操作就崩:Tab 找不到焦点,按钮像文本,弹窗无法关闭。
这篇不讲空泛标准,只落地到你每天写的组件里。
01 目标与验收#
目标:让核心交互组件满足键盘可用性与可感知焦点。
验收:
- 任何可交互元素都能用 Tab 聚焦
- 聚焦时有清晰 focus ring(不是靠浏览器默认蓝框随缘)
- 弹层类组件支持 Esc 关闭与点击外部关闭
- 文字与背景对比度足够(浅色/深色都可读)
02 Tailwind 里最该用的可访问性工具#
focus-visible::只在键盘聚焦时显示 ring(鼠标点击不乱闪)sr-only:给图标按钮加可读文本aria-*:把状态写给辅助技术(例如 switch 的aria-checked)
你在本仓库的组件里已经能看到一些好例子,比如按钮的 focus-visible:ring-4 focus-visible:ring-[var(--focus-ring)]。
03 练习:改造一个“只有图标”的按钮#
做一个图标按钮(比如复制/关闭),要求:
- 有
aria-label - 有 focus-visible ring
- hover 有反馈
- 点击区域足够大(至少 40x40 附近)
04 小结#
A11y 不是“无障碍专用”,它会直接提升你组件的可靠性与专业感。下一篇我们聊工程层面的精通:如何控制 CSS 体积、复用策略、以及从传统 CSS 迁移到 Tailwind 的路线。
相关阅读
基于内容相似度 + 标签/系列加权
- 1 分钟TailwindCSS 从入门到精通(学习与实战路线)
TailwindCSS 路线 04:表单与状态——输入框、校验、禁用、加载一套打完
真实业务离不开表单。用 Tailwind 把 Input/Select/Textarea/Checkbox 的默认、focus、error、disabled、dark 状态一次做成可复用规范。
- TailwindCSS
- 表单
- 组件设计
- 1 分钟TailwindCSS 从入门到精通(学习与实战路线)
TailwindCSS 路线 03:组件模式——从“堆 class”到可维护的 UI 组件
你不需要 CSS-in-JS 才能组件化。用 Button/Badge/Card/Popover 4 个高频组件建立可维护的 Tailwind 组件模式。
- TailwindCSS
- 组件设计
- 实战
- 1 分钟TailwindCSS 从入门到精通(学习与实战路线)
TailwindCSS 路线 06:动效与交互反馈——让 UI 有“质感”但不油腻
动效不是炫技。用 transition、active scale、hover shadow、motion-reduce 让交互有质感,同时照顾减少动态效果的用户偏好。
- TailwindCSS
- 动效
- 交互
- 1 分钟TailwindCSS 从入门到精通(学习与实战路线)
TailwindCSS 路线 07:主题与设计 Token——从暗色模式走向“设计系统”
把颜色、边框、背景、阴影、圆角固化成 Token;用 CSS 变量承载主题,用 Tailwind 工具类消费 Token,让换肤/品牌色变成低成本操作。
- TailwindCSS
- 主题
- Design Tokens