10

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

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

<p>01234 567890</p>

这被读作

零一二三四五十六万七千八百九十

这让听者很困惑。我想要某种方式来指定屏幕阅读器应该拼出数字,例如

零一二三四五六七八九零

4

3 回答 3

4

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

CSS:听觉

说出数字作为单个数字。因此,“237”被称为“二三七”。

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

HTML: telURI

RFC 3996:电话号码的 tel URI

所以而不是

<p>01234 567890</p>

你会有类似的东西

<a href="tel:01234-567890">01234 567890</a>

HTML:词汇

于 2014-02-18T13:51:45.797 回答
4

也许speak-numeral你的样式表中的属性?

speak-numeral 属性仅在听觉样式表中使用。

文档的听觉呈现结合声音和声音来遍历文档的内容。听觉演示通常通过将文档转换为纯文本然后将其提供给屏幕阅读器来实现。

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

  • 对于盲人
  • 在车里
  • 帮助用户学习阅读

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;'</p>

于 2014-02-17T15:30:37.680 回答
-1

您可以使用字符拆分

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

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

于 2014-02-17T15:32:21.957 回答