mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: This is a reconstitution of #24190. It extends accessibility actions to include both a name and user facing label. These extensions support both standard and custom actions. We've also added actions support on Android, and added examples to RNTester showing how both standard and custom accessibility actions are used. ## Changelog [general] [changed] - Enhanced accessibility actions support Pull Request resolved: https://github.com/facebook/react-native/pull/24695 Differential Revision: D15391408 Pulled By: cpojer fbshipit-source-id: 5ed48004d46d9887da53baea7fdcd0e7e15c5739
73 lines
2.0 KiB
JavaScript
73 lines
2.0 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @flow
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const React = require('react');
|
|
const {Text, View, Alert} = require('react-native');
|
|
|
|
const RNTesterBlock = require('./RNTesterBlock');
|
|
|
|
type Props = $ReadOnly<{||}>;
|
|
class AccessibilityIOSExample extends React.Component<Props> {
|
|
render() {
|
|
return (
|
|
<RNTesterBlock title="Accessibility iOS APIs">
|
|
<View
|
|
onAccessibilityAction={event => {
|
|
if (event.nativeEvent.actionName === 'activate') {
|
|
Alert.alert('Alert', 'onAccessibilityTap success');
|
|
}
|
|
}}
|
|
accessible={true}
|
|
accessibilityActions={[{name: 'activate'}]}>
|
|
<Text>Accessibility normal tap example</Text>
|
|
</View>
|
|
<View
|
|
onAccessibilityAction={event => {
|
|
if (event.nativeEvent.actionName === 'magicTap') {
|
|
Alert.alert('Alert', 'onMagicTap success');
|
|
}
|
|
}}
|
|
accessible={true}
|
|
accessibilityActions={[{name: 'magicTap'}]}>
|
|
<Text>Accessibility magic tap example</Text>
|
|
</View>
|
|
<View
|
|
onAccessibilityAction={event => {
|
|
if (event.nativeEvent.actionName === 'escape') {
|
|
Alert.alert('onAccessibilityEscape success');
|
|
}
|
|
}}
|
|
accessible={true}
|
|
accessibilityActions={[{name: 'escape'}]}>
|
|
<Text>Accessibility escape example</Text>
|
|
</View>
|
|
<View accessibilityElementsHidden={true}>
|
|
<Text>
|
|
This view's children are hidden from the accessibility tree
|
|
</Text>
|
|
</View>
|
|
</RNTesterBlock>
|
|
);
|
|
}
|
|
}
|
|
|
|
exports.title = 'AccessibilityIOS';
|
|
exports.description = 'iOS specific Accessibility APIs';
|
|
exports.examples = [
|
|
{
|
|
title: 'iOS Accessibility elements',
|
|
render(): React.Element<any> {
|
|
return <AccessibilityIOSExample />;
|
|
},
|
|
},
|
|
];
|