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

时间:2017-05-22 18:07:03

标签: android react-native keyboard accessibility

我一直在使用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 + 输入(或 Alt + Shift + 如果使用足够陈旧的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);

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

0 个答案:

没有答案