← 返回蜂巢洞察

如何利用WCAG 2.2标准打造更加易于访问的网站

一个网站可能看起来很专业,使用鼠标操作时也能运行得非常顺畅,但对某些用户来说,使用它仍然会遇到困难。 有时,某个表单会仅通过颜色来提示用户出现了问题;固定的页眉可能会完全覆盖当前处于键盘焦点位置的元素;登录表单可能会阻止用户从密码管理工具中复制密码并粘贴到表单中;而某个自定义按钮,用鼠标点击时可以正常使用,但当人们使用键盘操作时却毫无反应。 这些其实都是开发过程中做出的决策,并非只有在进行无障碍性审核时才会出现的问题。 《Web内容无障碍性指南》为识别和消除这些障碍提供了统一的标准。WCAG 2.2是最新的WCAG 2建议标准,世界万维网联盟也建议开发人员和各类组织在可能的情况下使用WCAG

一个网站可能看起来很专业,使用鼠标操作时也能运行得非常顺畅,但对某些用户来说,使用它仍然会遇到困难。

有时,某个表单会仅通过颜色来提示用户出现了问题;固定的页眉可能会完全覆盖当前处于键盘焦点位置的元素;登录表单可能会阻止用户从密码管理工具中复制密码并粘贴到表单中;而某个自定义按钮,用鼠标点击时可以正常使用,但当人们使用键盘操作时却毫无反应。

这些其实都是开发过程中做出的决策,并非只有在进行无障碍性审核时才会出现的问题。

《Web内容无障碍性指南》为识别和消除这些障碍提供了统一的标准。WCAG 2.2是最新的WCAG 2建议标准,世界万维网联盟也建议开发人员和各类组织在可能的情况下使用WCAG 2.2。

本文重点探讨了WCAG 2.2中A级和AA级要求,这些要求往往会对前端开发产生直接影响。文章旨在说明无障碍性要求是如何与前端开发决策相互关联的。

目录

什么是WCAG 2.2?

WCAG代表网页内容无障碍指南。W3C制定了这一标准,旨在说明如何让残障人士能够更便捷地访问网页内容。

WCAG 2.2将其各项要求分为原则、指导方针和可测试的成功标准。这些成功标准与具体的技术实现无关,这一点非常重要,因为WCAG并不是专门为HTML、React、WordPress或任何其他技术而制定的。

请看以下这种层次结构:

原则:可操作性

    指导方针2.1:支持键盘操作

        成功标准2.1.1:键盘可用性

原则为人们提供了总体上的无障碍目标,指导方针进一步明确了这一目标的具体内容,而成功标准则提供了可供测试的具体要求。

W3C还发布了其他资源,例如了解WCAG 2.2如何满足WCAG 2.2的要求以及WCAG 2.2的实施技巧。这些资源对成功标准进行了说明,并提供了实现方法、示例以及常见的错误案例。它们属于参考性资料,并不属于WCAG的强制性要求。

W3C提供的某项实施技巧可以展示一种满足特定成功标准的方法,但WCAG通常并不要求必须使用这种具体的技术手段;只要能够满足相应的成功标准,其他实现方式也同样有效。

WCAG合规性的判定机制

WCAG定义了三个合规性等级:A级、AA级AAA级

这些等级是层层递进的。一个网页如果只满足了AA级的标准,是无法宣称自己达到AA级合规性的;它必须同时满足所有A级和AA级的成功标准。AAA级同样涵盖了A级、AA级和AAA级的各项要求。

这种区分非常重要,因为有时人们在讨论无障碍问题时,会将WCAG简化为一系列单独的检查项目。

你可能会修复菜单中的键盘操作功能、为图片添加替代文本、解决对比度问题等等,这些确实都是有益的无障碍改进措施,但它们并不能自动使整个网站达到“WCAG AA级合规”标准。

WCAG合规性是针对整个网页而言的。如果某个流程需要多个页面来完成,比如结账流程,那么该流程中的所有页面都必须符合所宣称的合规等级要求。

因此,本文中的示例只是展示了如何满足某些特定的无障碍要求,并不能代表整个应用程序达到了WCAG合规标准。

WCAG的四项原则是如何发挥作用的

WCAG将其指导方针归纳为四个原则,人们通常用缩写POUR来记忆这些原则:可感知性、可操作性、可理解性和稳健性。

可感知性意味着用户必须能够理解您所提供的信息。文本说明、字幕、适当的对比度以及可调整的布局设计,都属于这一原则的范畴。

可操作性指的是人们如何与界面进行交互。键盘操作、焦点行为、导航功能、指针交互以及响应时间等方面都属于这一范畴。

易理解性关注的是用户是否能够理解界面显示的信息及其运行方式。格式化的提示信息、有用的错误提示、可预测的界面设计以及便捷的身份验证机制都是实现这一目标的关键因素。

稳定性则涉及浏览器及辅助技术是否能够正确解析页面内容。语义化HTML、可访问的标签名称、角色属性、值以及状态等信息,对于确保界面的稳定性至关重要。

虽然这些分类很有用,但实际在处理无障碍设计问题时,HTML、CSS和JavaScript这三者之间的界限往往并不存在严格的划分。例如,一个自定义的下拉列表可能需要在标记中添加语义化信息,在CSS中设置可见的焦点样式,并通过JavaScript来实现正确的键盘交互功能。

因此,将无障碍设计融入到开发流程之中,而不是将其作为开发后期单独进行的任务,才能取得最佳效果。

如何开始使用语义化HTML

在开始编写任何与ARIA相关的代码之前,选择正确的HTML元素是实现无障碍设计的最重要的步骤之一。

<div onclick="submitForm()">>提交按钮</div>

对于鼠标用户来说,他们或许可以点击这个元素,但普通的div标签并不会自动表现出按钮的功能。

<button type="submit">>提交按钮<>/button>

而原生的button标签能够向浏览器明确说明自身的功能,并提供预期的键盘交互行为。

这一点与W3C的成功标准4.1.2:名称、角色、值有关,该标准要求用户界面组件能够以编程方式暴露自身的名称和功能等信息。W3C指出,当开发者按照规范使用这些标准控件时,它们本身就已经提供了大部分所需的信息。

实际应用中,一个简单的原则就是:除非确实有必要,否则不要重新设计浏览器原有的交互行为。

语义化HTML如何呈现页面结构

语义化HTML还能帮助清晰地表达页面各部分之间的关系。

<div class="top"> ... </div> <div class="navigation"> ... </div>> <div class="content"> <div class="title">>账户设置</div>> ... </div>

虽然这些类可以用来创建所需的视觉布局,但它们并不一定能以编程方式准确反映页面的实际结构。

<>header> ... <>/header> <>nav aria-label="主导航"> ... <>/nav>> <main id="main-content">>

账户设置

... </main>

这种写法才能更清晰地表达页面的结构关系。

成功标准1.3.1:信息与关联关系要求,那些通过视觉方式呈现的结构与关联关系,也应当能够通过编程方式获取,或者以文本形式提供。使用语义标记技术就可以实现这一目标,而无需开发者额外添加辅助功能属性来重新构建这些信息。

这并不意味着使用

相关文章

技术实践

如何使用Python构建一个人工智能文件分析工具

如果你曾经打开过一份30页的PDF文件,然后心想“我绝对不可能读完这一切”,那么你就已经理解了为什么文件分析人工智能工具会非常有用。 想象一下,当你上传一篇研究论文、简历、CSV文件、商业报告或PDF文档后,只需简单地问这样一个问题: “其中最重要的发现是什么?” 人工智能工具无需你手动浏览整个文件,就能理解文件的内容,并回答相关问题。 在本教程中,我们正是要构建这样的工具。我们将使用Python编写一个适合初学者的 AI文件分析工具 ,它能够: 从你的电脑中接收文件 将文件上传到人工智能模型中 读取文件的内容 理解自然语言提出的问题 分析文件 给出有用的答案 处理各种类型的问题,而无需我们为

阅读全文
技术实践

如何使用Jetpack Compose开发易于使用的Android应用程序:一份全面的指南

让移动应用程序具备无障碍使用功能,就能确保包括那些有视觉、听觉、运动或认知障碍的人在内的所有用户,都能有效地与这些应用程序进行交互并使用它们。 过去,无障碍设计往往被视为事后才需要考虑的问题——只有在发布前有足够时间时才会被纳入考量范围。 如今,这种观念已经发生了根本性的变化。随着《欧洲无障碍法案》等法规在欧盟各市场开始生效,开发具备无障碍功能的软件逐渐成为一项法律和商业上的必备要求。 更重要的是,开发无障碍应用程序本身就是良好的工程实践。这样的应用能够提升所有用户的使用体验,同时也能确保你不会遗漏掉大量潜在的用户群体。 与传统的Android View系统相比,Jetpack Compose

阅读全文
技术实践

如何使用Python中的Gradio:一本从初学者到高级用户的完整指南

Gradio就是这样一种Python库,它让你不禁思考:为什么构建Web界面一开始就会变得如此复杂呢? 你可能已经有过这样的经历:你编写了一个Python程序,它运行得很好;你的机器学习模型能够生成预测结果;你的AI应用程序也能给出相当不错的答案;你的数据处理脚本也完全按照你的预期完成了工作。 然后,有人想要使用这个程序。 你把Python文件发给他们,他们询问如何运行这个程序,你告诉他们需要安装Python环境。 接着他们又发现需要特定版本的Python,还需要相关的依赖库,之后还得执行`pip install`命令……然而,最终还是会出现各种问题。 于是,原本让你充满期待想要分享的这个应用

阅读全文
技术实践

如何负责任地使用Lovable产品

过去,开发应用程序往往就像在没有任何说明书的情况下组装家具,而且还会缺少一半的螺丝。如今,像Lovable这样的人工智能工具可以帮助你用简单明了的语言描述自己的需求,从而将一个想法转化为可运行的网页应用。 这确实很令人兴奋——但同时也意味着一种责任。 Lovable能帮助你快速行动、尝试各种想法,并创造出实用的软件。不过,速度绝不能取代周密的思考。由人工智能生成的程序可能会存在安全问题、导致用户使用体验混乱、包含不准确的信息,或者其代码在演示环境中可以正常运行,但在实际使用中却会出故障。 在这份指南中,你将学习到如何在实际使用Lovable的过程中兼顾安全性、隐私性、可访问性以及用户的安全。我

阅读全文