电话号码通常都是数字,忽略括号、破折号、加号等,因此电话号码的输入字段通常是数字。
当屏幕阅读器遇到数字输入字段时,它会将值作为整数读取。例如,如果我有三个用于美国电话号码的输入字段,第一个是区号(3 位),然后是交换机(3 位),然后是线路(4 位),如果字段有 123、456 , 7890(分别),我们通常说这个数字的方式是“一二三”、“四五六”、“七、八、九、零”。
但是当屏幕阅读器遇到这些字段时,它会显示“一百二十三”、“四百五十六”、“七千八百九十”。
我认为屏幕阅读器用户习惯于将电话号码听成大数字(至少我谈过的人是这样期望的),但这并不意味着我们不能让它变得更好。如果我向其中一个人询问他们的电话号码,他们不会使用大数字,而是使用单个数字。
我尝试了各种 <input> 类型并查看了所有角色、状态和属性,但没有看到任何可以强制读取数字的内置内容。
我能想到的就是围绕它进行编码,方法是使用一个视觉隐藏的 <span>,其中包含作为单独数字的数字 <span id='foo'>1 2 3</span>,然后使用 <input aria-labelledby= '富'>。
有没有更好的办法?