--- tags: [React, A11y, Accessibility, Frontend] create time: 2026-04-29 22:16 --- # 可访问性 ## 概述 可访问性(Accessibility,简称 a11y)确保残障用户也能正常使用应用。这不仅是道德责任,在许多国家和地区也是法律要求。本文档梳理 React 中实现无障碍的关键实践。 ## WCAG 核心原则 ```mermaid graph TB A["WCAG 2.1 四大原则"] --> B["Perceivable
可感知"] A --> C["Operable
可操作"] A --> D["Understandable
可理解"] A --> E["Robust
鲁棒性"] B --> B1["文本替代"] B --> B2["颜色对比度 ≥ 4.5:1"] C --> C1["键盘可达"] C --> C2["足够的时间"] D --> D1["可读的文本"] D --> D2["一致导航"] E --> E1["兼容辅助技术"] style A fill:#F5A87D,color:#000 style B fill:#4FC08D,color:#fff style C fill:#61DAFB,color:#000 style D fill:#A0AEC0,color:#000 style E fill:#ED8936,color:#000 ``` ## 语义化 HTML(最重要的一条) > [!tip] 黄金法则 > **能用原生元素,绝不用 div + onClick。** 原生 HTML 元素天生具备键盘交互、屏幕阅读器支持和 SEO 友好能力。这是可访问性的基石,比任何 ARIA 属性都重要。 思考:为什么一个 `
` 加上 `onClick` 事件后,仍然不能代替 ` 首页 关于 ``` ### 常用语义标签对照表 | 功能 | 错误写法 | 正确写法 | 原因 | |------|---------|---------|------| | 按钮行为 | `
` | `