0

处理发送给客户的电子邮件。电子邮件有一个混合了大小写字母的访问代码。我们面临的问题是,即使设置为阅读大写字母,因为Cap屏幕阅读器不会宣布字母的大小写并连续阅读它们。例如,我们希望它读取以下内容:

您的一次性访问代码:U8dFyX

我如何确保它说 U、F、X 是大写字母。

任何帮助将不胜感激。

4

2 回答 2

4

作为一般规则,您不应试图影响屏幕阅读器的发音方式。(@QuentinC 对此进行了详细介绍)

然而,在用户测试中,我们发现经验不足的屏幕阅读器用户难以按音高区分字母(尤其是也有轻微听力障碍的老年屏幕阅读器用户)。

我们实施的内容如下:-

  1. 正常显示激活码。
  2. 激活码后有一个视觉隐藏部分。
  3. 在本节中,我们将“为清楚起见,您的代码包含大写和小写字母,如下所示:”
  4. 然后我们将每个字母添加到一个解释字母是什么的跨度中。

例如

<div class="visually-hidden">
    <p>for clarity your code contains upper and lower case letters as follows:</p>
    <span>Upper Case U</span><span>Number 8</span><span>Lower Case D</span> // etc.
</div>

它提高了每个人的准确性和识别度,甚至更有经验的屏幕阅读器用户也受益于模拟的嘈杂环境。

我们最终解决了这个问题。

该网站被翻译成多种语言,因此我们不得不翻译“大写”和“小写”作为其中的一部分,i18n因为这会造成混乱。

我们最终只切换到更长的小写字符字符串,并使其不区分大小写。(无论如何,8 个小写字符优于 6 个字母数字字符 208,827,064,576 组合与 68,719,476,736 组合)

由于电子邮件不安全,因此除了减少蛮力尝试之外,其他任何事情都不重要。如果您将其用于安全性,请停止!

更好的解决方案

大约一年后,我们更换了上述解决方案。

相反,我们只是在电子邮件中发送了一个自动输入代码的链接。

正如您所提到的,它是一次性代码,只需将相同的逻辑应用于一次性链接即可。yoursite.com/code/aU4383H483kdj483Jfdfsk3UF

这样,您可以根据需要获得 256 位代码。

它还有一个额外的好处,那就是不在公共场所大声读取访问代码。

由于访问代码不提供任何安全优势(除非您通过 SMS 或 WhatsApp 消息等第二种媒介发送它们),您不妨发送一个单次使用链接。

这样做的最后一个好处是您的非屏幕阅读器用户也不需要输入代码,因此它对每个人都更好!

于 2019-11-23T07:56:35.847 回答
2

你最好不要试图自己控制。

在阅读生成的密码、激活码等时,屏幕阅读器用户习惯于注意并仔细阅读一个字一个字,所以应该不是什么大问题。对于屏幕阅读器用户来说,IT 问题甚至比对于视力不佳的用户来说更小,他们可能难以区分 0、O 和 o,或 1、I 和 l。这就是为什么建议避免在生成的密码和激活码中包含 0、O、o、1、I 和 l 的原因。

您最好不要尝试自己控制它的阅读方式,因为不同的屏幕阅读器有不同的方式来阅读这些字符串并宣布大写字母。

例如,在逐个字符阅读时,为了区分大小写字母,屏幕阅读器可以:

  • 说出音高较高的字母(最常见)
  • 说“资本”
  • 在宣布字母之前或之后发出声音,例如小哔哔声

当将这样的字符串作为一个完整的单词阅读时,屏幕阅读器将其拆分为单词的方式非常依赖于屏幕阅读器和语音特定。大多数在大写边界处拆分,一些忽略大小写,一些产生声音,并且可以通过屏幕阅读器或语音合成器选项进行自定义。

所以,你最好不要试图控制自己如何发音或应该如何发音。只需让用户按照他们习惯的方式去做。

于 2019-11-23T06:19:41.563 回答