如何设置反应本机TextInput由屏幕阅读器读取为手机号码输入

时间:2018-07-27 18:13:26

标签: react-native

我正在尝试在我的TextInput中添加可访问性,以将本机反应读取为手机号码,而不是像下面这样的号码。

<TextInput
    style={{height: 40, borderColor: 'gray', borderWidth: 1}}
    editable={false}
    accessibilityLabel={'26726855243'}
    value={'26726855243'}
  />

这已被android TalkBack和iOS VoiceOver读取为数字。 我尝试在数字之间添加空格,但仍然没有用,accessibilityLabel={'26726855243'.split('').join(' ')}

1 个答案:

答案 0 :(得分:5)

CSS3语音模块支持以下行为:https://www.w3.org/TR/css3-speech/

对于您的特定示例,您可以创建一个“ phone”类,如下所示:

<style>
  .phone {speak: digits;}
</style>

请注意,当前只有VoiceOver支持此行为,而TalkBack则不支持。

对于“话语提示”和大多数其他屏幕阅读器,插入逗号而不是空格是可行的(屏幕阅读器通常会暂停逗号,句号,分号,感叹号和问号,但不能空格):

accessibilityLabel={'26726855243'.split('').join(',')}

但是!我鼓励您考虑 not 尝试以此方式管理屏幕阅读器的行为。请记住,现代屏幕阅读器具有用于处理数字和首字母缩写发音的各种 user 设置。通过尝试在开发人员方面将他们的发音管理到此级别,您可能会给用户带来意外的行为。