react-native - 如何将反应本机TextInput设置为由屏幕阅读器读取为手机号码输入
问题描述
我正在尝试为我TextInput
的 in react native 添加可访问性,以将其读取为手机号码而不是数字,如下所示。
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
editable={false}
accessibilityLabel={'26726855243'}
value={'26726855243'}
/>
这被 android TalkBack 和 iOS VoiceOver 读取为数字。我试过在数字之间添加空格,但仍然没有用,accessibilityLabel={'26726855243'.split('').join(' ')}
解决方案
CSS3 语音模块为此行为提供支持:https ://www.w3.org/TR/css3-speech/
对于您的具体示例,您可以创建一个“电话”类,如下所示:
<style>
.phone {speak: digits;}
</style>
请注意,目前只有 VoiceOver 支持此行为,TalkBack 不支持。
对于 Talkback 和大多数其他屏幕阅读器,插入逗号而不是空格会起作用(屏幕阅读器通常会暂停逗号、句点、分号、感叹号和问号,而不是空格):
accessibilityLabel={'26726855243'.split('').join(',')}
然而!我鼓励您考虑不要尝试以这种方式管理屏幕阅读器行为。请记住,现代屏幕阅读器具有各种用于处理数字和首字母缩写词发音的用户设置。通过尝试在开发人员方面将他们的发音管理到这个级别,您可能会导致用户出现意外行为。
推荐阅读
- aws-lambda - 在 virtualenv 中安装 minizinc | Zappa 无法识别 virtualenv 之外的依赖项
- javascript - 追加后表单数据显示为空
- sql - 一半的输入没有写入 excel - exceljs 和 nodejs
- python - 熊猫和加入形状不均匀的数据框
- postgresql - 具有 M-2-M 的 2 个不同实体的类别表。我应该分开吗?[PostgreSQL]
- javascript - 正则表达式之前的任何内容,与组
- android - 从用户地图上的 4 个角检索纬度和经度
- c# - 无法从 appsettings.json 的 IConfiguration 提供程序映射实例
- reactjs - 选择选项以刷新日期选择器
- javascript - 如果 de-DE 语言环境包含其他选项,则使用 .toLocaleDateString() 不能正确缩短 "{month: 'short'}" 的月份