Releases: ArturKalach/react-native-a11y-order
Release list
Release 1.0.0
1.0.0 (2026-05-25)
| iOS | Android |
|---|---|
![]() |
![]() |
What's Changed
- New
A11y.Cardcomponent for accessible cards with interactive children - Refactored props types - each component now owns a co-located
*.types.tsfile - Overhauled native iOS and Android layers
- Comprehensive documentation added
- Updated example app with Card demo
A11y.Card
New component for the "card with inner buttons" accessibility pattern. A plain
Pressablewith interactive children breaks VoiceOver by acting as a leaf node.A11y.Cardsolves this by placing a full-cover overlay first in the accessibility tree (iOS), so VoiceOver focuses the card as a whole while sighted users tap through to inner elements. On Android, TalkBack does not have this limitation so the card acts as a standardPressable.
<A11y.Card
accessibility={{ accessibilityLabel: 'Product card', accessibilityRole: 'button' }}
onPress={handlePress}
>
<Text>Card title</Text>
<Button title="Add to cart" onPress={handleAddToCart} />
</A11y.Card>Key props:
accessibility— a11y props routed to the overlay on iOS and thePressableon Androidstyle— visual style for the innerPressablecontainerProps— layout props for the outer container viewpressableProps— escape hatch forPressable-specific props (hitSlop, ripple, etc.)
Props types refactor
Each component now owns a co-located
*.types.tsfile instead of shared files undersrc/types/. All*Propstypes continue to be re-exported from the rootreact-native-a11y-orderentry point — no import changes needed.
Native layer overhaul
iOS
- Added
RNAOA11yCardView— native view backingA11y.Card - Introduced shared base classes:
RNAOA11yAutoFocusView,RNAOA11yScreenReaderView,RNAOA11yViewGroup,RNAOA11yViewOrder,RNAOA11yGroupChildrenView - Removed
RNAOA11yGroupView,RNAOA11yUIContainerView,RNAOA11yView(consolidated into base layer) - Improved focus ordering reliability and cleaner view manager implementations
Android
- Added
A11yCardViewManager,A11yAutoFocusView,A11yViewOrder,A11yScreenReaderView - Removed
A11yGroupView,A11yUIContainerView,A11yViewManager(consolidated) - Fixed old-architecture code path
- Cleaner
A11yOrderPackageregistration
Documentation
Full documentation site added under
docs/covering getting started, per-component API reference, guides, migration notes, and troubleshooting.
Release 0.11.0
0.11.0 (2026-05-25)
| iOS | Android |
|---|---|
![]() |
![]() |
What's Changed
- New
A11y.Cardcomponent for accessible cards with interactive children - Refactored props types - each component now owns a co-located
*.types.tsfile - Overhauled native iOS and Android layers
- Comprehensive documentation added
- Updated example app with Card demo
A11y.Card
New component for the "card with inner buttons" accessibility pattern. A plain
Pressablewith interactive children breaks VoiceOver by acting as a leaf node.A11y.Cardsolves this by placing a full-cover overlay first in the accessibility tree (iOS), so VoiceOver focuses the card as a whole while sighted users tap through to inner elements. On Android, TalkBack does not have this limitation so the card acts as a standardPressable.
<A11y.Card
accessibility={{ accessibilityLabel: 'Product card', accessibilityRole: 'button' }}
onPress={handlePress}
>
<Text>Card title</Text>
<Button title="Add to cart" onPress={handleAddToCart} />
</A11y.Card>Key props:
accessibility— a11y props routed to the overlay on iOS and thePressableon Androidstyle— visual style for the innerPressablecontainerProps— layout props for the outer container viewpressableProps— escape hatch forPressable-specific props (hitSlop, ripple, etc.)
Props types refactor
Each component now owns a co-located
*.types.tsfile instead of shared files undersrc/types/. All*Propstypes continue to be re-exported from the rootreact-native-a11y-orderentry point — no import changes needed.
Native layer overhaul
iOS
- Added
RNAOA11yCardView— native view backingA11y.Card - Introduced shared base classes:
RNAOA11yAutoFocusView,RNAOA11yScreenReaderView,RNAOA11yViewGroup,RNAOA11yViewOrder,RNAOA11yGroupChildrenView - Removed
RNAOA11yGroupView,RNAOA11yUIContainerView,RNAOA11yView(consolidated into base layer) - Improved focus ordering reliability and cleaner view manager implementations
Android
- Added
A11yCardViewManager,A11yAutoFocusView,A11yViewOrder,A11yScreenReaderView - Removed
A11yGroupView,A11yUIContainerView,A11yViewManager(consolidated) - Fixed old-architecture code path
- Cleaner
A11yOrderPackageregistration
Documentation
Full documentation site added under
docs/covering getting started, per-component API reference, guides, migration notes, and troubleshooting.
Release 1.0.0-rc
1.0.0-rc (2026-05-10)
| iOS | Android |
|---|---|
![]() |
![]() |
What's Changed
- New
A11y.Cardcomponent for accessible cards with interactive children - Refactored props types - each component now owns a co-located
*.types.tsfile - Overhauled native iOS and Android layers
- Comprehensive documentation added
- Updated example app with Card demo
A11y.Card
New component for the "card with inner buttons" accessibility pattern. A plain
Pressablewith interactive children breaks VoiceOver by acting as a leaf node.A11y.Cardsolves this by placing a full-cover overlay first in the accessibility tree (iOS), so VoiceOver focuses the card as a whole while sighted users tap through to inner elements. On Android, TalkBack does not have this limitation so the card acts as a standardPressable.
<A11y.Card
accessibility={{ accessibilityLabel: 'Product card', accessibilityRole: 'button' }}
onPress={handlePress}
>
<Text>Card title</Text>
<Button title="Add to cart" onPress={handleAddToCart} />
</A11y.Card>Key props:
accessibility— a11y props routed to the overlay on iOS and thePressableon Androidstyle— visual style for the innerPressablecontainerProps— layout props for the outer container viewpressableProps— escape hatch forPressable-specific props (hitSlop, ripple, etc.)
Props types refactor
Each component now owns a co-located
*.types.tsfile instead of shared files undersrc/types/. All*Propstypes continue to be re-exported from the rootreact-native-a11y-orderentry point — no import changes needed.
Native layer overhaul
iOS
- Added
RNAOA11yCardView— native view backingA11y.Card - Introduced shared base classes:
RNAOA11yAutoFocusView,RNAOA11yScreenReaderView,RNAOA11yViewGroup,RNAOA11yViewOrder,RNAOA11yGroupChildrenView - Removed
RNAOA11yGroupView,RNAOA11yUIContainerView,RNAOA11yView(consolidated into base layer) - Improved focus ordering reliability and cleaner view manager implementations
Android
- Added
A11yCardViewManager,A11yAutoFocusView,A11yViewOrder,A11yScreenReaderView - Removed
A11yGroupView,A11yUIContainerView,A11yViewManager(consolidated) - Fixed old-architecture code path
- Cleaner
A11yOrderPackageregistration
Documentation
Full documentation site added under
docs/covering getting started, per-component API reference, guides, migration notes, and troubleshooting.
Release 0.9.1
0.9.1 (2026-05-06)
What's Changed
- Removed hardcoded AGP dependency from
android/build.gradle#41
Android Build Fix
Removed a hardcoded AGP 7.2.1 dependency that pulled in libraries with known security vulnerabilities. This was causing build failures in projects that use corporate Maven proxies with vulnerability policies (e.g. Cloudsmith, Nexus).
Upgrade to 0.9.1 — no changes needed on your side.
Workaround if you can't upgrade yet
React Native < 0.71 — add to your root android/build.gradle:
buildscript {
dependencies {
classpath "com.android.tools.build:gradle:8.1.4"
}
}Special thanks to @jsyrjala for reporting the issue and providing detailed context on the Gradle side.
Release 0.9.0
0.9.0 (2026-05-04)
| iOS | Android |
|---|---|
![]() |
![]() |
What's Changed
- React Native 0.85.x support
A11y.FocusTrapforceLockprop for active focus enforcement on iOS- Internal refactor of native iOS and Android layers
- Updated example app
React Native 0.85.x Support
Updated iOS native layer to support React Native 0.85.x. This ensures VoiceOver focus tracking works correctly with the new default framework build configuration introduced in this version.
Force Lock (iOS)
A11y.FocusTrapon iOS now supports aforceLockprop that actively enforces focus containment — VoiceOver is redirected back into the trap whenever focus escapes. Use it whenaccessibilityViewIsModalalone is not sufficient to keep focus within the locked area.
<A11y.FocusTrap forceLock>
...
</A11y.FocusTrap>Internal Refactor
Refactored native iOS and Android implementations to improve stability and maintainability.
More Information
iOS
- Improved focus ordering services reliability
- More robust focus lock behavior
- Cleaner view and delegate implementations
Android
- Better focus order tracking
- Improved internal utilities
- Cleaner view implementations
Example App Update
The example application has been refreshed with updated screens and components.
Release 0.8.2
0.8.2 (2026-03-10)
Improved CommonJS support by updating the builder config.
Release 0.8.1
0.8.1 (2026-03-02)
Types updated for improved React v18 and v19 support.
Release 0.8.0
0.8.0 (2026-02-26)
Dependencies Update
The dependency packages have been updated based on the latest version of create-react-native-library, which helps reduce vulnerabilities and improve version support.
Package functionality and compatibility have been tested with the following React Native versions:
0.72.17, 0.75.5, 0.83.1, 0.84.0
Release 0.7.2
0.7.2 (2026-02-16)
- Associated Objects issue on iOS that caused crashes in
A11yViewhas been fixed (10c240c) ScreenReaderDescendantFocusChangedEventhas been added toindex.tsfor better type import (0cda3a7)
Thanks to @sleepym09 for providing the fix for the issue with iOS.



