【发布时间】:2022-01-07 18:26:27
【问题描述】:
hCaptcha 是一种相当流行的验证码解决方案(请参阅demo。
他们的系统大致是这样工作的:
- 网站将 div 添加到带有站点密钥的表单中,并添加 hCaptcha 的 JavaScript
- hCaptcha 向表单添加一个 iframe 和 2 个文本区域。
- 当访问者解决 hCaptcha 时,两个文本区域会填充一个提交给站点的令牌
- 网站可以在服务器到服务器调用中发送令牌,以验证用户是否通过了验证码
第 2 步中添加的 texteares 如下所示:
<textarea id="h-captcha-response-0da5o6pd30l5" name="h-captcha-response" style=""></textarea>
<textarea id="g-recaptcha-response-0da5o6pd30l5" name="g-recaptcha-response" style=""></textarea>
根据pa11y,这些文本区域不可访问。屏幕阅读器需要知道这些表单元素不是用于人工输入,而是仅用于站点的功能。我相信一种解决方案是将 HTML 属性 aria-hidden="true" 添加到这两个 textarea 元素中。
hCaptcha 的消费者有什么解决办法吗?或者对 hCaptcha 来说最好的事情是什么?
【问题讨论】:
-
你能分享你的代码(减去你的密钥)吗?文本区域不应可见。 hCaptcha 的文档说在表单中添加了一个隐藏令牌,但看起来它在演示站点上可见。