html - 强制屏幕阅读器将数字读取为单个数字
问题描述
我正在使用画外音,并试图让它将数字读取为单个数字,例如,如果我输入了 2000,画外音将读出“两千”。我希望所需的行为读出“两个零零零”。
我当前的输入元素看起来像这样
<input class="some-class" id="some-id" name="some-name"
type="text">
我尝试将 type 属性设置为type="number"
,type="tel"
并添加一个等于 的 style 属性style="speak:spell-out"
,但它们都不起作用。
当我用空格分隔数字时,value="2 0 0 0"
它可以工作,但当然,你不能指望用户这样做。
我知道可能有一种方法可以使用 javascript 来执行此操作,但由于业务需求,该解决方案不能在浏览器中包含 javascript。
有什么建议么?
解决方案
您不应该尝试强制特定的发音或数字分组。如果分组具有特殊的重要性或意义,请添加空格。
采取基本原则,即屏幕阅读器对数字的阅读方式不应与呈现方式不同。如果必须以特定方式分隔数字,请添加空格、点、破折号或其他分隔符。相反,如果没有空格,则没有特别需要绝对逐位读取数字。这很简单。
您不应该强迫屏幕阅读器以您自己查看的方式阅读某些内容。其他人的愿景可能与您不同。关于数字,有些人更喜欢逐个数字地阅读,但其他人更喜欢将它们按两个、三个或四个分组,以便于阅读、书写和记忆。他们的屏幕阅读器通常进行相应配置。
如果给定的分组很重要,则必须用空格或其他字符分隔组。如果没有分隔,那么它隐含地意味着分组没有特别的重要性。
请注意,如果用户愿意,屏幕阅读器总是可以逐位读取数字。它通常不是默认值。逐位读取数字通常仅适用于非常大的数字(十亿),或者混合数字和字母时。
另外考虑:
- 不同的屏幕阅读器用户有不同的偏好,从可访问性来说,违背偏好或常见默认设置通常是个坏主意
- 有几个屏幕阅读器,以及多种语言的许多不同声音;在读取数字时,所有这些行为的行为方式都可能略有不同,任何为了调整它而进行的小改动都可能会产生比解决更多的问题。
- 屏幕阅读器用户习惯于发音怪癖,他们可以使用个人词典来修复它们
- 如今,屏幕阅读器在决定是否需要在孔中、成组或逐位读取数字方面并不那么糟糕。
因此,避免决定特定的分组或发音。这是一个坏主意,而且无论如何在技术上都是危险的。
推荐阅读
- algorithm - 从元素列表中添加数字。O(1) 逻辑 c++
- scala - 选择列并在列之间添加固定宽度的空间并保存到 Spark 中的 fixedWidth 文件
- python - Python OGR:在源代码中寻找代码位移的坏点
- ios - 使用用户的私钥签署任何消息并在以太坊上验证签名
- java - 如何在没有轮询的情况下获取谷歌分析数据
- c# - SFML - C# 垃圾收集器删除正在使用的对象
- python - 使用 np.nans 从 python 数据框中选择数据部分
- python - 我们可以将handycam连接到Opencv吗
- php - Laravel 4.2 用户'root'@'localhost'的访问被拒绝(使用密码:否)
- c++ - C++在多个ts队列之间分发数据