# Getting Started ## Requirements - React Native 0.71 or later - iOS 13+ / Android API 21+ - Expo SDK 49+ (with prebuild — bare workflow) ## Installation ```sh yarn add react-native-a11y-order ``` ```sh npm install react-native-a11y-order ``` ### iOS Run pod install after adding the package: ```sh cd ios && pod install ``` ### Expo The library is compatible with Expo prebuild. Add it to your project and run: ```sh npx expo prebuild ``` No config plugin is required. ## Architecture support | Architecture | Supported | | :-- | :-- | | New Architecture (Fabric / Turbo Modules) | Yes | | Old Architecture (Bridge) | Yes | | Bridgeless mode | Yes | ## Quick start ```tsx import { A11y } from 'react-native-a11y-order'; export default function App() { return ( First Third Second ); } ``` ## What's available | Export | Purpose | | :-- | :-- | | [`A11y.Order`](../guides/a11y-order.md) | Container that defines a named focus-order sequence | | [`A11y.Index`](../components/A11yIndex.md) | Positioned slot within an `A11y.Order` sequence | | [`A11y.View`](../components/A11yView.md) | Standalone view with screen reader focus events; no ordering | | [`A11y.Card`](../components/A11yCard.md) | Card that keeps both a card-level action and nested buttons accessible simultaneously | | [`A11y.FocusTrap`](../components/A11yFocusTrap.md) | Confines screen reader focus to a subtree (modal/overlay) | | [`A11y.FocusFrame`](../components/A11yFocusTrap.md) | Root boundary required by `A11y.FocusTrap`; detects focus escaping the region | | [`A11y.PaneTitle`](../components/A11yPaneTitle.md) | Announces screen or panel transitions to VoiceOver/TalkBack | | [`A11y.ScreenChange`](../components/A11yPaneTitle.md) | Shorthand for `A11y.PaneTitle` with `type="activity"` pre-set | | [`ScreenReader`](../api/ScreenReader.md) | Reliable programmatic announcements on iOS | ## Before you reach for this library Most simple focus order problems can be fixed with a single prop: ```tsx {/* children will follow render order */} ``` React Native optimises away views that have no visual effect. This can scramble focus order when the native tree differs from the React tree. `collapsable={false}` prevents the optimisation. Use this library when `collapsable={false}` is not enough — complex reordering, cards with inner buttons, modal focus trapping, or programmatic focus management. --- [Component overview](../guides/overview.md) →