HTMLPAGE Logo

验证码与无障碍访问的矛盾:为什么要改进身份验证设计

作者:HTMLPAGE 内容团队
发布日期:2025-12-01
无障碍与设计

深入探讨验证码(CAPTCHA)等身份验证方法对残障用户的影响,以及如何设计更包容的验证方案

在互联网上,验证码(CAPTCHA)已成为防止机器人和垃圾信息的标准做法。但在保护网站的同时,这些"人机识别"测试往往将真正的人类用户——特别是残障用户——挡在了门外。本文深入探讨验证码的无障碍问题,并介绍更合理的替代方案。


什么是 CAPTCHA?

CAPTCHA(Completely Automated Public Turing Test to Tell Computers and Humans Apart,全自动图灵测试)是一种反向图灵测试,通过挑战-响应的方式来区分人类和机器。

常见的验证码形式包括:

  • 图片分类:"选择所有包含红绿灯的方格" —— 用户需要从多个网格中找出符合条件的图片
  • 扭曲文字识别:输入被扭曲、变形的文本
  • 滑动拼图:将分散的图片碎片拖动到正确位置
  • 数学运算:计算表情中的骰子点数和

这类验证码的各种变种(如谷歌 reCAPTCHA、hCaptcha 等)已经成为互联网的重要组成部分,许多公司(GeeTest、Arkose Labs 等)因此而成立。

验证码并非完美解决方案

尽管验证码的初衷是防止滥用,但研究表明它们的实际效果令人堪忧:

  • 2023 年数据:用户在超过 5.12 亿次 reCAPTCHA v2 会话中浪费了超过 8.19 亿小时
  • AI 破解能力:现代机器学习模型可以以 97% 以上的准确率在几分之一秒内破解基于文本的验证码
  • 2024 年研究:AI 甚至可以以接近 100% 的准确率破解图片分类验证码,而普通用户的成功率反而更低

更讽刺的是,用户的失败率反而高于机器人。


为什么团队仍在使用 CAPTCHA?

开发团队选择验证码的原因很简单:易于部署且成本低

  • 开发者无需投入太多精力,只需调用现成的服务即可
  • 自动化程度高,可在后台运行
  • 虽然效果有限,但似乎总比没有好

但这种选择忽视了一个关键问题:验证码确实能阻挡机器人,但同时也阻挡了许多真实用户。

用户体验的代价

  • 高放弃率:超过 59% 的用户在几次不良体验后会放弃使用产品
  • 复杂性螺旋:为了应对 AI 破解,验证码变得越来越复杂,进一步降低人类用户的体验
  • 技术障碍:即使是普通用户,如果禁用了第三方 Cookie、使用了本地代理,或浏览器版本过旧,也可能反复验证失败

CAPTCHA 对残障用户的影响

这正是问题的症结所在。CAPTCHA 存在的无障碍问题不仅严重,而且多面向。

视觉和屏幕阅读器相关问题

标准图片验证码对屏幕阅读器用户几乎无用:

  • 扭曲的文字是不可机读的
  • 图片分类和拼图方法同样无法被屏幕阅读器识别
  • 根据 WebAIM 的调查(2023-2024),屏幕阅读器用户将 CAPTCHA 列为最具问题性的网络元素,这一排名已持续超过十年未变
  • 问题远超其他无障碍缺陷,如模糊的链接、意外的屏幕变化、缺失的图片 alt 文本等

听觉和音频处理相关问题

虽然音频 CAPTCHA 相对不常见(网页最佳实践建议避免自动播放音频),但它们仍然存在问题:

  • 听力障碍或失聪用户无法完成音频验证
  • 即使使用辅助技术,刻意扭曲的音频和背景噪声对听觉处理障碍患者来说也具有挑战性

运动和灵活性相关问题

需要精确运动控制的验证方式对运动能力有限的用户构成障碍:

  • 手部震颤:滑动拼图对有手部震颤的用户极具挑战
  • 分类任务耗时:重复点击大量图片直到找到所有匹配项,可能导致疲劳和错误

认知和语言相关问题

随着验证码变得越来越复杂,认知障碍用户的困难也在加剧:

  • 需要创意和批判性思维的数学问题或谜题
  • 对患有读写障碍症(dyslexia)、计算障碍症(dyscalculia)、视觉处理障碍或认知障碍的用户造成困难

为什么辅助技术无法拯救局面?

有人可能会想,屏幕阅读器或语音控制等辅助技术应该能解决这些问题。遗憾的是,答案是否定的。

设计的局限性

验证码是有意设计为人类可以理解而机器无法理解的。这意味着辅助技术(设计目的是帮助用户与内容交互)几乎无能为力。

特别是 reCAPTCHA,它会分析后台活动,如果检测到无障碍设备的信号,甚至会误判为机器人行为,导致显示可能更加无法访问的验证码。

行业标准的要求

Web 开发行业标准明确要求遵循通用设计原则,使网站尽可能易于访问和使用。依赖辅助技术来弥补验证码的无障碍缺陷,本质上是对这一标准的违反。


可访问的身份验证原则

既然 CAPTCHA 存在如此多的问题,那么什么是更好的替代方案呢?

多因素身份验证(MFA)

MFA 比传统验证码更安全有效。即使攻击者获得了合法凭证,也无法通过单一验证方式登录。二因素认证市场预计到 2027 年将达到 267 亿美元,足以说明其受欢迎程度。

实施建议

  • 推送通知和短信:发送验证码给用户,而不是让用户手动输入复杂代码
  • 验证码自动填充:利用现代浏览器的自动填充功能,减少手动输入的需要
  • "记住此设备"功能:在已信任的设备上跳过后续认证

例如,Apple 的双因素认证就采用了这种方式:受信任设备自动显示六位验证码,用户只需轻点键盘上出现的建议即可自动填充。

单点登录(SSO)

单点登录允许用户用一套凭证登录多个网站或应用,大大减少了重复身份验证的需求。

用户无需记住密码或解题,只需点击链接即可登录。

关键建议:不要设置时间限制。根据 WCAG 标准 2.2.3,残障用户需要更多时间完成某些操作。

Cloudflare Turnstile

Cloudflare 的 Turnstile 是一个值得关注的替代方案。它能完全无需 CAPTCHA,通过后台 JavaScript 挑战自动区分人类和机器人。大多数用户甚至无需点击任何东西。


无障碍身份验证设计的测试与评估

创建一个可访问的身份验证方案需要实际测试,因为许多看起来不错的设计在实际使用中可能失效。

从实际用户获取反馈

理想情况下,应该直接从用户那里收集反馈,包括:

  • 残障用户
  • 神经多样性人群
  • 无法获取移动设备的用户
  • 使用辅助技术的用户

开放测试阶段

考虑进行公开的测试版发布,以最大化可见性和反馈。

提供多个验证选项

不存在适用于所有人的完美解决方案。一些用户可能难以完成多步流程,另一些可能无法解方程或记住密码。

最佳实践在最前面就向用户提供多个身份验证选项。用户对自己的能力最了解,应该让他们选择最适合的方式,而不是试图过度设计一个"通用"解决方案。


通过设计改变应对无障碍问题

简单用新的验证方式替换 CAPTCHA 是不够的。许多替代方案同样存在无障碍问题:

  • 二维码:视力有限的用户难以扫描,视觉障碍用户可能根本无法看到
  • 生物识别:面部识别可能对脸部畸形或活动范围有限的用户不适用

真正的解决方案需要创意思考。

学习通用设计

开发者应该访问 Web Accessibility Initiative 的无障碍教程,了解通用设计原则。W3C 的 《关于 CAPTCHA 无障碍的组草稿注记》提供了更多针对性的指导。

从最佳实践开始

理解基础是关键。互联网上有很多关于如何做好无障碍设计的资源。理想情况下,应该直接从使用网站的人那里获取反馈,而不仅仅是依赖理论。


总结:为什么现在就改变

CAPTCHA 的无障碍缺陷或许还能被原谅,如果它是一个有效的安全工具的话。但事实并非如此——机器学习模型的破解能力已经超过了普通用户,而且趋势还在继续。

问题在于:我们仍在使用一种既低效又能有效排斥残障人士的方法。这不仅是道德问题,更是商业问题:

  • 失去了大量残障用户的业务机会
  • 增加了用户放弃的可能性
  • 在不断升级的"验证码军备竞赛"中,成本不断上升,但有效性反而下降

是时候做出改变了。 采用 MFA、Magic Links、SSO 或 Cloudflare Turnstile 这样的替代方案,不仅能提高安全性,更能为所有用户创造更好的体验。


相关资源


💡 启发:良好的设计不是为了部分人,而是为了所有人。在构建身份验证系统时,首先考虑用户的多样性,不仅会得到更包容的产品,更会获得更有效的安全性。


返回导航

微信中可直接分享当前页面