如何确保屏幕阅读器宣布大写字母

时间:2019-11-23 01:50:09

标签: accessibility wai-aria web-accessibility

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

您的一次性访问代码:U8dFyX

如何确定U,F,X是大写字母。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您最好不要自己控制它。

在阅读生成的密码或激活码等内容时,屏幕阅读器用户通常会注意并仔细阅读每个字符,因此这不是什么大问题。 对于屏幕阅读器用户而言,与部分视力不佳的用户相比,IT问题甚至更少,后者可能难以区分0,O和o或1,I和l。 因此,建议不要在生成的密码和激活码中包含0,O,o,1,I和l。

您最好不要尝试控制自己的阅读方式,因为不同的屏幕阅读器使用不同的方式来读取此类字符串并宣布大写字母。

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

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

当阅读整个字符串时,屏幕阅读器分解成单词的方式是沉重的屏幕阅读器和特定于语音。 大部分在大写字母处分割,一些忽略大小写,一些产生声音,可以通过屏幕阅读器或语音合成器选项进行自定义。

因此,最好不要控制自己如何发音或应该如何发音。 只需让用户按照他们的习惯去做。

答案 1 :(得分:2)

通常,您不应尝试影响屏幕阅读器的发音方式。 (@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中的“大写”和“小写”,因为这会造成混乱。

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

由于电子邮件不安全,除了减少暴力破解尝试之外,它实际上并没有其他意义。如果您出于安全目的使用它,请停止!

更好的解决方案

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

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

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

这样,如果需要,您可以拥有256位代码。

它的另一个好处是不会在公共场所大声读取访问代码。

由于访问代码没有任何安全益处(除非您通过SMS或WhatsApp消息之类的第二种媒介发送访问密码),您最好也发送一次使用链接。

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