使用React Native在Android上访问性键盘输入的问题

kev*_*oat 6 keyboard android accessibility react-native

我一直在使用React Native构建一个应用程序,我们确保它是高度可访问的.但是,当我们尝试使用键盘在Android上进行测试时,我们无法激活任何按钮.我们尝试使用最简单的应用程序重现它,问题仍然存在.我们能够用React Native版本重现这个问题0.41.0- 0.44.0.我们已尝试过各种道具组合TouchableOpacity,以及尝试Button元素,并且没有取得任何成功.

使用带有TalkBack的Android手机和连接的蓝牙键盘,请执行以下步骤:

  • react-native init myProject
  • cd myProject
  • 编辑index.android.js以添加<TouchableOpacity>带有可以测试的处理程序的标记,例如制作警报框
  • react-native run-android
  • 导航到可触摸元素并按Alt+ Enter(或Alt+ Shift+,Enter如果使用足够老的Android风格)

请注意,使用键盘时不会触发处理程序,但您仍然可以通过双击屏幕来触发元素.

这是我index.android.js的例子:

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  TouchableOpacity
} from 'react-native';

export default class myProject extends Component {
  render() {
    return (
      <View style={styles.container}>
        <TouchableOpacity onPress={() => alert('test')}>
          <Text style={styles.welcome}>
            Click me!
          </Text>
        </TouchableOpacity>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('myProject', () => myProject);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何让键盘按预期触发此事件?