验证码类身份验证方法的可访问性问题
验证码本意是拦截机器人,但往往也将残障人士挡在门外。从图像分类到基于点击的测试,许多“人类检测”远非具有包容性。虽然没有通用的解决方案,但理解真实用户需求才是可访问性真正的起点。
自从个人电脑在消费电子市场获得发展势头以来,“全自动区分计算机和人类的图灵测试”(CAPTCHA)已深深融入互联网浏览。几乎就在人们开始上网的同时,网络开发者就一直在寻求阻止垃圾邮件机器人的方法。
CAPTCHA服务通过区分人类和机器人的活动来拦截机器人。不幸的是,其方法并不精确。在试图保护人类的过程中,开发者却让许多网页对残障人士变得不可访问。
诸如CAPTCHA之类的身份验证方法,通常使用图像分类、谜题、音频样本或点击测试来确定用户是否为人类。虽然挑战的类型有据可查,但其背后的逻辑并非公开信息。人们只能猜测“证明”自己是人类需要什么。
什么是验证码?
验证码是一种反向图灵测试,采用挑战-应答测试的形式。例如,如果它指示用户“选择所有包含楼梯的图片”,用户必须从栏杆、车道和人行横道中挑选出楼梯。或者,可能会要求用户输入看到的文本、计算骰子点数之和,或者完成滑动拼图。
基于图像的验证码导致了互联网用户最令人沮丧的共同体验——当目标物体只有一小部分出现在方格里时,决定是否要选择这个方格。
无论采用何种方法,最终由计算机或算法来判断测试者是人还是机器。这项身份验证服务催生了许多衍生产品,包括reCAPTCHA和hCAPTCHA。它甚至催生了整个公司的诞生,例如GeeTest和Arkose Labs。谷歌旗下的自动化系统reCAPTCHA要求用户点击一个标有“我不是机器人”的复选框进行身份验证,它会在后台运行自适应分析以分配风险评分。hCAPTCHA是一种基于图像分类的替代方案。
其他身份验证方法包括多因素认证(MFA)、二维码、临时个人识别码(PIN)和生物识别技术。它们不遵循挑战-应答模式,但服务于基本相似的目的。
这些衍生产品本意是想比原版更好,但它们往往达不到现代可访问性标准。以hCaptcha为例,它使用cookie让你完全绕过挑战-应答测试。理论上这是个好主意,但在实践中行不通。
理论上,你应该通过电子邮件收到一个一次性验证码,然后通过短信发送到特定号码。但用户报告称收到了无穷无尽的错误消息,迫使他们完成标准的文本验证码。而此功能仅在网站在配置时明确启用后才可用。如果未设置,则必须完成一个不识别屏幕阅读器的图像挑战。
即使初始流程有效,后续的身份验证也依赖于第三方跨站点cookie,而大多数浏览器会自动阻止此类cookie。此外,验证码会在短时间内过期,因此如果花费太长时间进行下一步,就必须重做整个流程。
团队为何使用验证码及类似身份验证方法?
验证码很常见,因为它易于设置。开发者可以编程使其出现,并自动进行测试。这样,他们可以专注于更重要的事情,同时仍能防止垃圾邮件、欺诈和滥用。这些工具本应让人类更安全地使用互联网,但它们常常阻止真实用户登录。
这些测试总体上导致用户体验不佳。一项研究发现,截至2023年,用户在超过5120亿次reCAPTCHA v2会话中浪费了超过8.19亿小时。尽管如此,机器人依然盛行。机器学习模型可以在几分之一秒内以超过97%的准确率解决基于文本的验证码。
一项2024年针对谷歌reCAPTCHA v2的研究发现,根据要求识别的对象不同,机器人解决图像分类验证码的准确率最高可达100%。尽管reCAPTCHA v3已经推出,但v2仍被广泛使用。研究人员使用了一个免费的开源模型,这意味着恶意行为者可以轻松复制他们的工作。
网络开发者为何应停止使用验证码?
验证码等身份验证方法存在可访问性问题。机器学习的进步迫使这些服务变得越来越复杂。即便如此,它们也不是万无一失的。机器人比人做得更正确。研究表明,它们可以在17.5秒内完成reCAPTCHA,准确率达到85%。而人类花费的时间更长,准确率更低。
许多人在验证码测试中失败,却不知道自己错在哪里。例如,指示用户“选择所有包含交通灯的方格”的提示看似简单,但如果灯柱的一小部分在另一个方格里,情况就变得复杂了。他们应该选择那个方框吗?还是说那样做反而像机器人的行为?
尽管机器人的能力已经成倍增长,但人类却保持不变。随着测试变得越来越困难,人们尝试的意愿也会降低。一项调查显示,近59%的人在经历几次糟糕体验后会停止使用某个产品。如果身份验证过于繁琐或复杂,他们可能会完全停止使用该网站。
人们可能因各种原因无法通过这些测试,包括技术原因。如果他们阻止第三方cookie、运行本地代理,或者有一段时间没有更新浏览器,那么无论尝试多少次,都可能一直失败。
验证码的身份验证问题
由于上述原因,大多数类型的验证码本身都是不可访问的。对于残障人士尤其如此,因为这些挑战-应答测试在设计时并未考虑到他们的需求。一些常见问题包括:
与视觉和屏幕阅读器使用相关的问题
屏幕阅读器无法读取标准视觉验证码(例如扭曲文本测试),因为那些杂乱、扭曲的单词无法被机器读取。图像分类和滑动拼图方法同样不可访问。
在WebAIM于2023年至2024年进行的一项调查中,屏幕阅读器用户一致认为验证码是最成问题的项目,其排名高于模糊链接、意外的屏幕变化、缺失替代文本、不可访问的搜索以及缺乏键盘可访问性。十多年来,它位居榜首的位置基本没有改变,说明了其长期以来存在的不可访问性。
与听觉和音频处理相关的问题
音频验证码相对不常见,因为网页开发最佳实践建议避免自动播放音频,并强调用户控制的重要性。然而,音频验证码仍然存在。听力障碍或耳聋人士在尝试这些测试时可能会遇到障碍。即使有辅助技术,故意的音频失真和背景噪音也使患有听觉处理障碍的个人难以理解这些样本。
与运动和灵活性相关的问题
需要运动和灵活性技能的测试对于有运动障碍或身体残疾的人来说可能具有挑战性。例如,手部颤抖的人可能会觉得滑动拼图很困难。此外,那些不断加载更多图像直到没有符合条件的图像为止的图像分类测试也可能构成挑战。
与认知和语言相关的问题
随着验证码变得越来越复杂,一些开发者开始转向需要结合创造性和批判性思维的测试。那些要求用户解决数学问题或完成谜题的测试,对于患有阅读障碍、计算障碍、视觉处理障碍或认知障碍的人来说可能具有挑战性。
为何辅助技术无法弥合差距
验证码是特意设计为让人类解读和解决的,因此屏幕阅读器和免提控制等辅助技术可能帮助不大。reCAPTCHA尤其构成问题,因为它会分析后台活动。如果它将无障碍设备标记为机器人,则会提供一个可能不可访问的验证码。
即使这项技术能够弥合差距,网络开发者也不应指望它。行业标准要求他们遵循通用设计原则,使网站尽可能具有可访问性和功能性。
如果验证码是一种有效的安全工具,那么其可访问性问题或许可以被原谅,但它远非万无一失,因为机器人比人类做得更正确。为什么要继续使用一种既无效又为残障人士设置障碍的方法?
“存在更好的替代方案。”
无障碍身份验证的原则
人类应始终胜过算法的观念已经过时。存在更好的身份验证方法,例如多因素认证(MFA)。预计到2027年,双因素认证市场价值将达到267亿美元,凸显了它的普及性。这个工具比验证码更有效,因为它能防止未经授权的访问,即使对方拥有合法的凭证。
确保你的MFA技术是无障碍的。与其让网站访问者抄写复杂的代码,不如发送推送通知或短信。利用验证码自动填充功能来自动捕获和输入代码。或者,可以引入“记住此设备”功能,在受信任的设备上跳过身份验证。
苹果的双因素身份验证方法就是这样设计的。受信任的设备会自动显示一个六位数的验证码,因此用户无需寻找它。当提示时,iPhone用户可以点击出现在其移动键盘上方的建议进行自动填充。

单点登录是另一种选择。这种会话和用户身份验证服务允许人们使用一组登录凭据登录多个网站或应用程序,从而最大限度地减少重复身份验证的需要。
一次性使用的“魔法链接”是reCAPTCHA和临时PIN码的绝佳替代品。用户无需记住代码或解决谜题,只需点击一个按钮即可。避免设置截止时间,因为根据WCAG成功标准2.2.3,用户不应面临时间限制,因为残障人士可能需要更多时间来完成特定操作。
或者,可以使用Cloudflare Turnstile。它无需显示验证码即可进行身份验证,并且大多数人甚至无需勾选复选框或点击按钮。该软件通过在后台发出一个小的JavaScript挑战来自动区分机器人和人类。Cloudflare Turnstile可以嵌入任何网站,使其成为标准分类任务的绝佳替代方案。
无障碍身份验证设计的测试与评估
测试和评估你的无障碍替代身份验证方法至关重要。许多设计在纸面上看起来不错,但在实践中却行不通。如果可能,从实际用户那里收集反馈。公开测试版可能是最大化可见性的有效方式。
请记住,通用的无障碍考量不仅适用于残障人士,还包括神经多样性人士、无法使用移动设备的人或使用辅助技术的人。确保你的替代设计考虑到这些人群。
现实地说,你无法创建一个完美的系统,因为每个人都是独特的。许多人在遵循多步骤流程、解决方程、处理复杂指令或记住密码方面存在困难。虽然通用网页设计原则可以提高灵活性,但没有单一的解决方案可以满足每个人的需求。
无论使用何种身份验证技术,你都应该预先为用户提供多种身份验证选项。他们最了解自己的能力,因此让他们决定使用什么,而不是试图过度设计一个适用于所有边缘情况的解决方案。
通过设计变更解决可访问性问题
手部颤抖的人可能无法完成滑动拼图,而患有音频处理障碍的人可能在处理失真的音频样本时遇到困难。然而,你不能简单地用替代方案替换验证码,因为它们往往同样不可访问。
例如,二维码对于精细运动控制能力降低的人来说可能难以扫描。视障人士可能难以在屏幕上找到它。同样,生物识别技术对于面部畸形或活动范围有限的人来说可能构成问题。解决可访问性问题需要创造性思维。
你可以从访问万维网联盟(W3C)的“Web无障碍倡议”为开发者提供的无障碍教程开始,以更好地理解通用设计。虽然这些教程更侧重于内容而非身份验证,但你仍然可以利用它们。W3C小组关于《验证码的不可访问性》的草案说明提供了更相关的指导。
入门就像研究最佳实践一样简单。理解基础知识至关重要,因为无障碍网页设计没有通用的解决方案。如果你想优化可访问性,可以考虑从实际访问你网站的人那里获取反馈。
扩展阅读
- “The CAPTCHA: Perspectives and Challenges,” Darko Brodić and Alessia Amelio
- “Designing Accessible Text Over Images: Best Practices, Techniques, And Resources,” Hannah Milan
- “In Search Of The Best CAPTCHA,” David Bushell
- “WCAG 3.0’s Proposed Scoring Model: A Shift in Accessibility Evaluation,” Mikhail Prosmitskiy