我正在使用语音结束,我试图让它以单个数字的形式读取数字,例如,如果我输入了2000,语音就会读出“2000”。我希望期望的行为读出“二零零零”。
我的当前输入元素如下所示
<input class="some-class" id="some-id" name="some-name"
type="text">我尝试过将type属性设置为type="number"、type="tel"并添加一个与style="speak:spell-out"相等的样式属性,但它们都不起作用。
当我用像value="2 0 0 0"这样的空格分隔数字时,它可以工作,但当然,您不能期望用户这样做。
我知道可能有一种使用javascript的方法,但是由于业务需求,解决方案不能在浏览器中包含javascript。
有什么建议吗?
发布于 2020-02-27 15:59:05
你不应该试图强迫一个特定的发音或数字分组。如果分组具有特殊的重要性或意义,则添加空格。
以数字的基本原理为例,屏幕读取器不应读取与其显示不同的数字。如果数字必须以特定的方式分开,则添加空格、点、破折号或其他分隔字符。相反,如果没有空格,就不需要绝对地逐个读取数字数字。这很简单。
你不应该强迫屏幕阅读器以你自己的方式阅读它。其他人可能没有和你一样的眼光。关于数字,有些人更喜欢逐位阅读,而另一些人则更喜欢将数字按二、三或四分类,以便于阅读、书写和记忆。它们的屏幕读取器通常是相应配置的。
如果给定的分组很重要,那么组必须用空格或其他字符分隔。如果没有分离,那么这就意味着分组没有特别的重要性。
请注意,如果用户希望这样做,屏幕阅读器总是提供逐位读取数字的可能性。它通常不是默认的。通常只对非常大的数字(数十亿)或当数字和字母混合时才读取数字数字。
此外,还应考虑:
不同的屏幕读取器用户有不同的偏好,从可访问性的角度来说,与首选项或常见的默认设置( dictionary
所以,避免决定一个特定的分组或发音。这是个坏主意,而且技术上也很危险。
发布于 2020-02-28 08:48:03
我知道可能有一种使用javascript的方法,但是由于业务需求,解决方案不能在浏览器中包含javascript。
您尝试了HTML和CSS,您不能使用Javascript。屏幕阅读器使用可访问性树。他们不使用CSS,没有指令告诉他们拼写文本。他们可能会选择拼写一些缩略语,而读一些缩略语。这是屏幕阅读器的选择。
屏幕阅读器用户习惯于听数字,就像他们来的时候一样奇怪,如果他们希望用字符来读取字符,他们就有合适的快捷方式来自愿拼写它们。
https://stackoverflow.com/questions/60435580
复制相似问题