电话号码和屏幕阅读器

时间:2014-02-17 15:24:46

标签: html numbers accessibility screen-readers wcag

有没有一种标准方法可以让屏幕阅读器拼出数字?

我目前正在使用NVDA和Firefox并拥有以下电话号码

<p>01234 567890</p>

读作

  

零一二三四有五六十七数千八百九十。

这对听众来说非常困惑。我想要一些方法来指定屏幕阅读器应该拼出像

这样的数字
  零一二三四有五六七八九零

3 个答案:

答案 0 :(得分:4)

我不知道(或者是哪个)屏幕阅读器支持这些,但是(在理想世界中)他们应该

CSS:Aural

  • CSS 2.1:speak-numeral: digits;

      

    将数字说成个别数字。因此,“237”被称为“二三七”。

  • CSS语音模块(CR):speak-as: digits;

      

    一次说一个数字,例如,“十二”将被称为“一二”,而“31”将被称为“三一”。

HTML:tel URI

RFC 3996: The tel URI for Telephone Numbers

所以而不是

<p>01234 567890</p>

你会有像

这样的东西
<a href="tel:01234-567890">01234 567890</a>

HTML:词汇表

答案 1 :(得分:3)

可能是样式表中的speak-numeral属性?

  

speak-numeral属性仅在Aural Stylesheets中使用。

     

文档的听觉呈现结合了声音和声音来浏览文档的内容。通常通过将文档转换为纯文本然后将其提供给屏幕阅读器来进行听觉呈现。

     

听取信息的情况和市场可能是:

     
      
  • 适合盲人
  •   
  • 在车里
  •   
  • 帮助用户学习阅读
  •   
     

speak-numeral属性指定如何说出数字。

来源:http://www.w3schools.com/xslfo/prop_speak-numeral.asp

另外,我发现这篇文章很有帮助: http://www.nicksmith.co.uk/blog/2007/11/09/does-your-screen-reader-read-phone-numbers-properly/

  

然后我提出了以下想法:

     

0<span>7000</span> 1<span>2</span>1 0<span>2</span>2

     

在VoiceOver中,它显示“零,七千,一,二,一零,二,二”。请注意,我将'7000'保留为一个数字;对我来说“七千”比“七零零零”更令人难忘。

并进一步

  

我对听觉CSS属性的研究发现,我需要的属性已经存在 - 'speak-numeral:digits;'

答案 2 :(得分:-1)

你可以使用字符拆分

int[] numbers;
for(int i = 0; i<string.length; i++) {
   numbers.add(string[i]);
}

注意代码未经过测试,因为我不知道您使用的是什么语言java,c#,perl