我正在使用画外音,并且尝试使它读取数字作为单个数字,例如,如果我输入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。
有什么建议吗?
您不应该尝试强加特定的发音或数字分组。如果分组具有特别的重要性或意义,请添加空格。
采用基本原理,即屏幕阅读器对数字的读取不应与显示的数字有所不同。如果必须以特定方式分隔数字,请添加空格,点,破折号或其他分隔字符。相反,如果没有空格,则没有必要完全逐位读取数字。这很简单。
您不应强迫屏幕阅读器以您自己的方式阅读内容。其他人可能与您的愿景不同。关于数字,有些人更喜欢逐个数字地阅读,而另一些人则更喜欢按两个,三个或四个来分组,因为它们易于阅读,书写和记忆。他们的屏幕阅读器通常进行相应配置。
如果给定的分组很重要,则必须用空格或其他字符分隔分组。如果没有分隔,则暗含表示分组没有特别的重要性。
请注意,如果用户愿意,屏幕阅读器始终可以逐位读取数字。通常不是默认值。通常仅对非常大的数字(十亿)或在混合数字和字母时才逐位读取数字。
另外考虑:
因此,请避免确定特定的分组或发音。这是一个坏主意,并且从技术上来讲都是危险的。
我知道可能有一种使用javascript的方法,但是由于业务需求,该解决方案不能在浏览器中包含javascript。
您尝试了HTML和CSS,但无法使用Javascript。屏幕阅读器使用辅助功能树。他们不使用CSS,也没有指令告诉他们拼写文字。他们可能会在阅读缩写词时选择拼写一些缩写词。这是屏幕阅读器的选择。
屏幕阅读器用户习惯于听到数字时会感到奇怪,如果他们希望按字符对字符进行逐字读取,他们有适当的捷径愿意拼写它们。