html 电话号码和屏幕阅读器

dw1jzc5e  于 2023-03-06  发布在  其他
关注(0)|答案(4)|浏览(114)

有没有一种标准的方法可以让屏幕阅读器拼出数字?
我目前正在使用NVDA和Firefox,电话号码如下

<p>01234 567890</p>

这读作
零一二三四五十六万七千八百九十
这会让听众很困惑。我想用某种方法来指定屏幕阅读器应该拼写出数字,如
零一二三四五六七八九零

l7mqbcuq

l7mqbcuq1#

也许是样式表中的speak-numeral属性?
speak-numeric属性仅在听觉样式表中使用。
文档的听觉呈现结合声音和语音来浏览文档的内容。听觉呈现通常通过将文档转换为纯文本,然后将其提供给屏幕阅读器来实现。
听取信息的情况和市场可以是:

  • 为盲人准备的
  • 在车里
  • 帮助用户学习阅读

speak-numeric属性指定如何读出数字。
来源: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
在画外音中,这个数字是"零,七千,一,二,一零,二,二"。注意,我把"7000"保留为一个数字;对我来说,"七千"比"七零零"更令人难忘。
并且还
我对听觉CSS属性的研究发现,我需要的属性已经存在了--"speak-numeric:数字;'

3pvhb19x

3pvhb19x2#

我不知道屏幕阅读器是否(或哪些)支持这些功能,但(在理想情况下)它们应该支持。

CSS:听觉

  • CSS 2.1:speak-numeral: digits;

把数字读成单个的数字。因此,"237"读成"二三七"。

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

一次说一个数字,例如,"十二"会说成"一二","三十一"会说成"三一"。

HTML:tel URI

RFC 3996: The tel URI for Telephone Numbers
所以与其说

<p>01234 567890</p>

你会得到这样的结果

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

HTML:词汇表

guykilcj

guykilcj3#

我认为最好的方法是这样写号码,它的语义是正确的,(打破了Brail用户的经验,见@slugolicious评论) 使屏幕阅读器宣布电话号码的数字

<a 
    href="tel:01234567890" 
    aria-label="0 1 2 3 4 5 6 7 8 9 0"
>
    01234 567890
</a>

如果你使用Twig作为模板引擎,你可以这样做

<a 
    href="tel:01234567890" 
    aria-label="{{ "01234567890"|split('')|join(' ') }}"
>
    01234 567890
</a>

学分:https://jhalabi.com/blog/accessibility-phone-number-formatting

cidc1ykv

cidc1ykv4#

可以使用字符拆分

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

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

相关问题