Skip to main content

useAMAContext

The hook provides information on various accessibility services and can be used to trigger the AMA error banner.

Usage

import { useAMAContext } from '@react-native-ama/core';

const {
isBoldTextEnabled,
isScreenReaderEnabled,
isGrayscaleEnabled,
isInvertColorsEnabled,
isReduceMotionEnabled,
isReduceTransparencyEnabled,
isHighTextContrastEnabled,
isDarkerSystemColorsEnabled,
reactNavigationScreenOptions,
trackError, // dev mode only
} = useAMAContext();
Dev mode only!

The trackError function is available only when the DEV flag is true. It is stripped from the production code!

Properties

isReduceTransparencyEnabled

Is true if the user switched on the accessibility setting: Reduce Transparency.

isBoldTextEnabled

Is true if the user switched on the accessibility setting: Bold Text.

isGrayscaleEnabled

Is true if the user switched on the accessibility setting: Grayscale.

isInvertColorsEnabled

Is true if the user switched on the accessibility setting: Invert colors.

isReduceMotionEnabled

Is true if the user switched on the accessibility setting: Reduce motion on iOS or switches off the Animations on Android.

isScreenReaderEnabled

Is true if the user is using a screen reader, like VoiceOver or Talkback.

isHighTextContrastEnabled
Android

Is true if the user switched on the accessibility setting: High Text Contrast.

isDarkerSystemColorsEnabled

Is true if the user switched on the accessibility setting: Increase Contrast (Darker System Colors).

reactNavigationScreenOptions

Returns an object to be used for the React Navigation screenOptions prop. It's an object containing the following values:

animationEnabled: boolean;
animation: 'default' | 'fade';

Example

const { reactNavigationScreenOptions } = useAMAContext();

return (
<NavigationContainer>
<Stack.Navigator
screenOptions={reactNavigationScreenOptions}>
{/* ... */}
</Stack.Navigator>
</NavigationContainer>
);

Methods

Dev mode only!

The following methods are only available when DEV is set to true

trackError

trackError(rule: AmaRule, ref?: React.RefObject<any>): void;

Reports a JS-side accessibility rule failure into the AMA error pipeline. Highlights the offending component in the overlay (using ref to target it) and logs the failure for the given rule.

Parameters

nametyperequireddescription
ruleAmaRuleYesThe accessibility rule that failed (e.g. 'NO_KEYBOARD_TRAP')
refReact.RefObject<any>NoRef to the component that failed; used to highlight it in the overlay. If omitted, the error is logged without field-level targeting.