Globe Icon
VN | ENG | 中文
M&M Communications
新闻 网页可访问性 (A11y): 为所有人设计
网页可访问性 (A11y): 为所有人设计

网页可访问性 (A11y): 为所有人设计

最后更新: October 29, 2025 00:00 | Website Design

分享

可访问性影响网站交付的各个层面——包括研究、用户体验(UX)、用户界面(UI)、内容、工程、质量保证、基础设施、运营和采购。这份指南以实用、以产品为导向的方式,介绍了 WCAG 2.1/2.2 AA,以便团队能够无需反复修改,就能交付包容性的体验。它可作为从发现、设计系统、组件模式、内容标准、媒体处理、键盘和屏幕阅读器支持、测试、部署以及持续监控的全流程参考。

1. 基础与心态

可访问性就是质量。WCAG 的四个核心原则——可感知性、可操作性、可理解性、健壮性——直接映射到产品风险:如果用户无法感知、操作或理解您的用户界面,那么转化率和信任度就会崩溃。将可访问性纳入“已完成/已完成”的定义中,而不是在发布后进行审计。从“仅仅通过审计”转变为“一个视力障碍用户是否可以使用屏幕阅读器和键盘完成结账?”或“一个弱视用户是否可以在阳光下阅读?”。

首选原生 HTML。 诸如按钮、输入框、下拉菜单、文本区域、details/summary 以及语义化标题等元素,已经具备了角色、状态和键盘行为。 仅在必要时使用 ARIA 来补充,并且永远不要覆盖原生语义。 保持 DOM 顺序与视觉顺序一致;避免仅使用 CSS 进行重新排序,以免造成焦点混乱。

2. 发现与需求

在发现性访谈中,纳入残疾人士。绘制关键流程——搜索、导航、身份验证、结账、账户管理——并记录观察到的障碍(自动播放的轮播图、丢失焦点、模糊的错误提示)。定义成功指标:使用 NVDA/VoiceOver 完成任务、表单错误恢复时间、字幕使用情况、对比度通过率、辅助技术用户流失率、以及标记为可访问性的支持工单。

捕捉非功能性需求:WCAG 2.1 AA(以及 2.2 焦点可见更新)、仅键盘操作、屏幕阅读器支持(NVDA、JAWS、VoiceOver)、高对比度主题、减少动画、深色模式影响、双语需求以及法律背景(ADA 风格的义务、采购标准、行业法规)。 将这些需求融入用户故事和验收标准中。

3. 颜色、类型和布局标记

定义包含对比度的颜色标记:目标值为正文 4.5:1,大文本和 UI 控件 3:1。分别定义背景、表面、边框、交互状态(悬停、激活、焦点、禁用)和警报(信息/成功/警告/错误)的颜色标记。永远不要只依赖颜色——与图标或文本配合使用。

排版:建立清晰的层级结构,保持一致的字号,每行字数在 45–75 个字符之间,行高约为 1.5,字与段之间的间距充足,并提供强大的越南语字符支持。提供备用字体方案。确保在小字号下,字体选择不会变得过于纤细。

间距和网格: 使用支持较大触摸目标(至少 44x44 像素)的间距标记,避免控件过于拥挤,并在文本放大到 200% 时,防止重叠。

4. 包含可访问性的组件

按钮和链接:用于操作的按钮,用于导航的链接。每个都需要清晰的文本、可见的焦点,以及禁用语义。避免低对比度的“幽灵”按钮。

Forms: every control gets a label tied with for/id; placeholders never replace labels. Use fieldset/legend for grouped controls (radio/checkbox sets). Provide inline help and clear error messages, surfaced both near the field and in a summary at the top with anchors back to errors. Preserve user input on validation failure. Mark required vs optional explicitly; avoid asterisks without explanation.

对话框和覆盖层: * 将焦点固定在对话框内部,设置 `aria-modal="true"`。 * 在关闭时,将焦点恢复到触发元素。 * 保持背景的可见性。 * 提供 Esc 键和显式关闭控件。 解释: 这段话描述了如何实现一个模态对话框或覆盖层,并强调了以下关键点: * `aria-modal="true"`: 这是一个 ARIA 属性,用于告诉屏幕阅读器该元素是一个模态对话框,应该被重点对待。 * 焦点管理: 在对话框打开时,焦点应该固定在对话框内部。 在关闭时,焦点应该恢复到触发该对话框的元素。 这对于用户体验至关重要,特别是对于使用辅助技术的用户。 * 背景保持可见: 在对话框关闭时,应该保持背景的可见性,避免用户感到困惑。 * Esc 键和显式关闭控件: 提供 Esc 键和显式关闭控件(例如一个 "关闭" 按钮)是标准的用户交互方式,方便用户关闭对话框。 总而言之,这段话强调了在实现模态对话框时,需要关注焦点管理、用户体验和标准交互方式。

导航:包括跳过链接、合适的标志(header/nav/main/aside/footer)、逻辑的标题顺序(一个表达目的的 H1 标题)、以及在整个网站上保持一致的标签。面包屑导航必须支持键盘和屏幕阅读器。对于巨型菜单,支持键盘方向键导航和按 Esc 键退出。

标签/展开面板:遵循 WAI-ARIA APG 模式——使用方向键进行切换,Home/End 键用于跳转,Space/Enter 键用于激活。 暴露 aria-selected/aria-controls,正确管理 tabIndex,并在 DOM 中保留面板,除非使用 aria-live 更新。

提示/弹窗:避免仅通过悬停触发;支持焦点和触摸。允许通过 Esc 键关闭,并提供足够的延迟时间。确保弹窗不会抢占焦点。

旋转式展示:提供暂停/停止功能,避免自动旋转速度过快,使用户难以阅读;确保控制按钮清晰易懂且尺寸足够大;尽可能保持内容在旋转式展示之外可见。对于关键信息,建议使用静态网格。

数据表格:使用 `` 元素并设置 `scope` 属性,添加标题,以及使用 `aria-sort` 属性来标记可排序的表头。同时,保持响应式设计,而无需隐藏表头,以便辅助技术能够正确识别和操作。

媒体播放器:支持完整的键盘控制、可清晰看到焦点、字幕、转录、可调节音量/播放速度,以及无自动播放带声音的功能。

5. 内容和媒体标准

替代文本:编写有目的的描述。装饰性图像的替代文本为空(`alt=""`)。用于表示状态的图标需要有可访问的名称。复杂的图表需要长描述或数据表格。

视频/音频:提供字幕(带有说话者标签)、文本稿以及在视觉内容有意义时,提供音频描述。对于网络连接较慢的情况,提供下载或低比特率的替代方案。

复制内容:使用简洁的语言、简短的句子,以及有意义的链接文本(避免使用“点击此处”)。采用标题和列表进行结构化。确保双语内容保持原意和清晰度——翻译替代文本、标题、表单标签和错误消息,而不仅仅是正文内容。

6. 运动模式、深色模式和主题

Respect 偏好:禁用视差效果、自动滚动或闪烁序列;提供简单的淡入淡出效果。避免内容每秒闪烁超过三次。对于深色模式,请使用设计标记、调整阴影/边框,并重新检查对比度;不要仅仅是反转颜色。确保在所有主题中,焦点状态仍然可见。

7. 性能和可靠性

以下是翻译: **性能是可访问性的一个重要方面。 优化核心 Web 指标,以减少认知负担。 避免因布局变化而导致焦点或控件移动的情况。 在使用大量 JavaScript 之前,优先加载关键 HTML。 逐步增强。 优雅地处理网络连接不稳定的情况,并提供清晰的提示信息。 确保表单在部分中断时仍能正常工作。

8. 测试计划

自动化:对 aria 的滥用进行 lint 检查,在关键模板上在 CI 中运行 axe/Lighthouse/Pa11y,并阻止关键违规合并。对自定义组件的焦点和键盘行为进行单元测试。

手册:仅使用键盘进行导航(不使用鼠标),屏幕阅读器扫描(NVDA+Chrome, VoiceOver+Safari),对比度检查,放大到200%,减少动画效果模式,深色模式测试,以及使用TalkBack和VoiceOver进行移动设备测试。 使用场景脚本(搜索、筛选、添加到购物车、支付)来发现实际应用中的问题。

用户测试:定期邀请使用辅助技术(如屏幕阅读器、开关设备、低视力设备)的用户参与测试。即使只有 5-8 名参与者,也能发现系统性问题。

9. 交付流程和治理

“已完成”的定义: 验收标准包括语义结构、焦点状态、标签、错误行为和对比。 “已完成”的定义: 自动化检查通过;针对该故事,已完成手动键盘和屏幕阅读器的测试。

设计交付包括标注的焦点状态、对比验证、ARIA 说明以及内容指导。代码审查强制执行语义 HTML 和焦点管理。质量保证将无障碍障碍视为关键流程的 P1 优先级。

设计系统:使用“Do/Don’t”示例、代码片段和键盘/ARIA要求,详细记录设计模式。在发布时,对版本组件进行版本控制,并运行回归测试以确保无障碍性。

所有权:指定一名负责人负责处理问题、跟踪指标并协调审计。每季度对设计师、工程师、项目经理、写作者和质量保证人员进行培训。

10. 监控、指标和分析

跟踪指标: 自动化审计得分、失败次数、键盘陷阱事件、ARIA-*验证错误、字幕/转录使用情况、使用辅助技术完成任务、错误恢复率以及相关支持工单。 监控日志,查找焦点异常和破坏导航的JS错误。 安排每季度一次的审计,以及在主要UI更改后进行突击检查。

11. 法律、风险和供应商管理

发布可访问性声明和反馈渠道。对于第三方组件(如聊天、分析和支付),要求提供 VPAT/ACR 证据,并自行进行测试。在合同中纳入修复服务水平协议 (SLA)。优先处理修复工作,以根据用户影响和法律风险进行排序。

12. 遗留UI的迁移策略

首先进行语义修复:标题、地标、标签、焦点顺序。将自定义控件替换为原生控件。为顶层媒体资产添加字幕/转录。逐步更新颜色标记,以满足对比度要求。用可访问的模式替换复杂的控件(日期选择器、下拉菜单)。

13. 移动和多模态

触摸目标:最小尺寸为 44x44 像素,并留有足够的间距。 确保触摸操作具有键盘快捷键。 支持设备旋转和动态字体,同时保持布局完整。 验证移动设备屏幕阅读器上的焦点顺序和提示信息。 提供可读且可操作的离线/错误状态。

14. 搜索引擎优化和内容运营

语义化 HTML、描述性标题、替代文本、快速性能和结构化数据,可以同时提高网站的可访问性和搜索引擎优化(SEO)。 培训内容编辑人员:强制使用替代文本、标题层级、有意义的链接和字幕政策。 添加 CMS 保护措施(例如:强制提供替代文本、对富文本进行对比检查、上传时提醒字幕)。

15. 变革管理与企业文化

庆祝取得的成果(例如,屏幕阅读器用户完成率的提高)。分享“前后”示例。组织午餐学习活动,维护一个设计规范库,并在入职培训中加入无障碍设计。建立无障碍问题升级流程,并表彰解决这些问题的贡献者。

总结:可访问性是一个持续改进的过程。 把它当作性能或安全一样来对待——进行监控、负责、迭代,这样每次发布都能让用户体验更接近“人人可用”。

16. 团队实用检查清单

设计检查清单:确认每个视图中只有一个 H1 标签;标题顺序合理;颜色搭配符合对比度要求;为所有交互状态定义了焦点样式;图标具有文本等效;动画模拟包括低动画效果版本;提供暗模式标记;组件注释包括键盘模式和 ARIA 映射。

内容检查清单:以下是翻译: * 每张图片都有替代文本(或装饰性空文本);链接指向目标页面;标题和字幕已规划;表单包含清晰的说明和错误提示;语言简洁明了;双语版本保持原意和语境;表格数据包含摘要。

工程检查清单:以下是翻译: * 优先使用语义元素; tabindex 值不能大于 0;在 DOM 中尽早处理跳跃链接;存在 landmark;自定义控件应遵循 APG 规范;对话框具有焦点陷阱;关闭时恢复焦点;使用 aria-live 属性宣布状态消息;表单在出错时保留输入;避免重渲染时焦点丢失;避免滚动劫持。

测试检查清单:键盘仅限,完整流程测试;屏幕阅读器测试核心流程;对比测试通过;放大200%不影响功能;减少动画效果验证;深色模式验证;移动设备上的TalkBack/VoiceOver测试通过;针对关键问题的Axe/Lighthouse/Pa11y检查。

17. 避免使用的模式

- 使用占位符作为标签的形式(会丢失上下文,破坏自动填充/屏幕阅读器功能)。
- 缺少 `href` 属性的 `` 标签,请使用 `

相关新闻