React Native - это мобильная разработка, основанная на React, которую мы можем использовать для разработки мобильных приложений.
В этой статье мы рассмотрим, как использовать его для создания приложения с React Native.
Доступность
Мы можем добавить к нашим компонентам опоры, чтобы сделать их доступными для вспомогательных технологий.
Например, мы можем написать:
import React from 'react'; import { Text, View } from 'react-native'; export default function App() { return ( <View accessible={true}> <Text>text one</Text> <Text>text two</Text> </View> ); }
Мы устанавливаем свойство accessible
на true
, чтобы сделать View
доступным.
AccessbilityLabel
Кроме того, мы можем добавить к нашему компоненту опору accessibilityLevel
, чтобы сделать его доступным.
Например, мы можем написать:
import React from 'react'; import { StyleSheet, Text, TouchableOpacity, View } from 'react-native'; export default function App() { return ( <View accessible={true} style={styles.container}> <TouchableOpacity accessible={true} accessibilityLabel="Tap me!" onPress={() => alert('hello world')}> <View> <Text>Press me!</Text> </View> </TouchableOpacity> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, });
чтобы добавить компонент TouchableOpacity
, имеющий свойство accessbilityLabel
, чтобы программы чтения с экрана могли идентифицировать кнопку.
Мы также можем добавить опору accessibilityHint
, чтобы пользователь мог понять, что делает кнопка.
Например, мы можем написать:
import React from 'react'; import { StyleSheet, Text, TouchableOpacity, View } from 'react-native'; export default function App() { return ( <View accessible={true} style={styles.container}> <TouchableOpacity accessible={true} accessibilityLabel="Tap me!" accessibilityHint="Shows alert" onPress={() => alert('hello world')}> <View> <Text>Press me!</Text> </View> </TouchableOpacity> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, });
доступность
Свойство accessibilityLiveRegion
доступно только для приложений Android.
Он используется для уведомления пользователя об изменениях компонента.
Возможные значения: 'none'
, 'polite'
и 'assertive'
.
'none'
означает, что изменения не объявлять.
'polite'
означает объявление об изменениях в представлении.
'assertive'
означает прерывание текущей речи, чтобы немедленно объявить об изменениях в этом представлении.
Например, мы можем написать:
import React from 'react'; import { StyleSheet, Text, TouchableWithoutFeedback, View } from 'react-native'; export default function App() { const [count, setCount] = React.useState(0); return ( <View accessible={true} style={styles.container}> <TouchableWithoutFeedback onPress={() => setCount(c => c + 1)}> <View> <Text>Click me</Text> </View> </TouchableWithoutFeedback> <Text accessibilityLiveRegion="polite"> Clicked {count} times </Text> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, });
для добавления компонента Text
с опорой accessibilityLiveRegion
к компоненту Text
.
Теперь будет объявлено об изменениях в тексте этого компонента.
доступность
Опора accessbilityRole
позволяет нам сообщать вспомогательным технологиям, для чего используется компонент.
Список возможных значений находится по адресу https://reactnative.dev/docs/accessibility#accessibilityrole.
accessibilityState
Свойство accessibilityState
описывает текущее состояние компонента пользователю вспомогательных технологий.
Это объект, и он может иметь свойства disabled
, selected
, checked
, busy
и expanded
.
disabled
указывает, отключена ли она.
selected
указывает, выбрано ли оно.
checked
указывает, проверено ли оно.
busy
указывает, занят ли он.
expanded
указывает, развернут ли он.
Например, мы можем написать:
import React from 'react'; import { StyleSheet, Text, View } from 'react-native'; export default function App() { return ( <View accessible={true} style={styles.container}> <Text accessibilityState={{ disabled: false, selected: false, checked: false, busy: false, expanded: false, }}> hello world </Text> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, });
для установки значений.
Заключение
Мы можем установить метки доступности для компонентов с помощью React Native, чтобы сделать наше приложение доступным.