react-native-a11y-order 0.9.1 → 0.11.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -345
- package/android/src/main/java/com/a11yorder/A11yOrderPackage.java +2 -6
- package/android/src/main/java/com/a11yorder/core/A11yAutoFocusView.java +61 -0
- package/android/src/main/java/com/a11yorder/{views/A11yView/A11yView.java → core/A11yScreenReaderView.java} +3 -45
- package/android/src/main/java/com/a11yorder/core/A11yViewOrder.java +37 -0
- package/android/src/main/java/com/a11yorder/views/A11yCardView/A11yCardViewManager.java +18 -0
- package/android/src/main/java/com/a11yorder/views/A11yIndexView/A11yIndexView.java +2 -65
- package/android/src/main/java/com/a11yorder/views/A11yIndexView/A11yIndexViewManager.java +27 -0
- package/android/src/newarch/A11yCardViewManagerSpec.java +9 -0
- package/android/src/oldarch/A11yCardViewManagerSpec.java +8 -0
- package/android/src/oldarch/A11yIndexViewManagerSpec.java +9 -0
- package/ios/helpers/RNAOFabricEventHelper/RNAOFabricEventHelper.mm +5 -5
- package/ios/views/RNAOA11yCardView/RNAOA11yCardView.h +29 -0
- package/ios/views/RNAOA11yCardView/RNAOA11yCardView.mm +83 -0
- package/ios/views/RNAOA11yCardView/RNAOA11yCardViewManager.h +14 -0
- package/ios/views/RNAOA11yCardView/RNAOA11yCardViewManager.mm +17 -0
- package/ios/views/RNAOA11yIndexView/RNAOA11yIndexView.h +2 -41
- package/ios/views/RNAOA11yIndexView/RNAOA11yIndexView.mm +27 -127
- package/ios/views/RNAOA11yIndexView/RNAOA11yIndexViewManager.mm +21 -0
- package/ios/views/base/RNAOA11yAutoFocusView.h +30 -0
- package/ios/views/{RNAOA11yView/RNAOA11yView.mm → base/RNAOA11yAutoFocusView.mm} +66 -168
- package/ios/views/base/RNAOA11yGroupChildrenView.h +21 -0
- package/ios/views/base/RNAOA11yGroupChildrenView.mm +19 -0
- package/ios/views/base/RNAOA11yScreenReaderView.h +24 -0
- package/ios/views/base/RNAOA11yScreenReaderView.mm +32 -0
- package/ios/views/base/RNAOA11yViewGroup.h +35 -0
- package/ios/views/base/RNAOA11yViewGroup.mm +46 -0
- package/ios/views/base/RNAOA11yViewOrder.h +40 -0
- package/ios/views/base/RNAOA11yViewOrder.mm +92 -0
- package/lib/commonjs/components/A11yCard/A11yCard.ios.js +49 -0
- package/lib/commonjs/components/A11yCard/A11yCard.ios.js.map +1 -0
- package/lib/commonjs/components/A11yCard/A11yCard.js +41 -0
- package/lib/commonjs/components/A11yCard/A11yCard.js.map +1 -0
- package/lib/commonjs/{types/A11yGroup.types.js → components/A11yCard/A11yCard.types.js} +1 -1
- package/lib/commonjs/components/A11yCard/A11yCard.types.js.map +1 -0
- package/lib/commonjs/components/A11yIndex/A11yIndex.js +88 -28
- package/lib/commonjs/components/A11yIndex/A11yIndex.js.map +1 -1
- package/lib/commonjs/components/A11yIndex/A11yIndex.types.js +39 -0
- package/lib/commonjs/components/A11yIndex/A11yIndex.types.js.map +1 -0
- package/lib/commonjs/components/A11yIndex/A11yIndex.web.js.map +1 -1
- package/lib/commonjs/components/A11yLock/A11yFocusFrame/A11yFocusFrame.js.map +1 -1
- package/lib/commonjs/components/A11yLock/A11yFocusTrap/A11yFocusTrap.js.map +1 -1
- package/lib/commonjs/components/A11yLock/A11yLock.types.js.map +1 -0
- package/lib/commonjs/components/{A11ySequence/A11ySequence.js → A11yOrder/A11yOrder.js} +3 -3
- package/lib/commonjs/components/A11yOrder/A11yOrder.js.map +1 -0
- package/lib/commonjs/{types/A11yModule.types.js → components/A11yOrder/A11yOrder.types.js} +1 -1
- package/lib/commonjs/components/A11yOrder/A11yOrder.types.js.map +1 -0
- package/lib/commonjs/components/A11yPaneTitle/A11yPaneTitle.js +6 -7
- package/lib/commonjs/components/A11yPaneTitle/A11yPaneTitle.js.map +1 -1
- package/lib/commonjs/components/A11yPaneTitle/A11yPaneTitle.types.js +6 -0
- package/lib/commonjs/components/A11yPaneTitle/A11yPaneTitle.types.js.map +1 -0
- package/lib/commonjs/components/A11yView/A11yView.js +7 -33
- package/lib/commonjs/components/A11yView/A11yView.js.map +1 -1
- package/lib/commonjs/components/A11yView/A11yView.types.js.map +1 -0
- package/lib/commonjs/index.js +17 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +10 -4
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/nativeSpecs/{A11yGroupNativeComponent.ts → A11yCardNativeComponent.ts} +3 -3
- package/lib/commonjs/nativeSpecs/A11yIndexNativeComponent.ts +12 -3
- package/lib/module/components/A11yCard/A11yCard.ios.js +43 -0
- package/lib/module/components/A11yCard/A11yCard.ios.js.map +1 -0
- package/lib/module/components/A11yCard/A11yCard.js +35 -0
- package/lib/module/components/A11yCard/A11yCard.js.map +1 -0
- package/lib/module/components/A11yCard/A11yCard.types.js +4 -0
- package/lib/module/components/A11yCard/A11yCard.types.js.map +1 -0
- package/lib/module/components/A11yIndex/A11yIndex.js +88 -28
- package/lib/module/components/A11yIndex/A11yIndex.js.map +1 -1
- package/lib/module/components/A11yIndex/A11yIndex.types.js +35 -0
- package/lib/module/components/A11yIndex/A11yIndex.types.js.map +1 -0
- package/lib/module/components/A11yIndex/A11yIndex.web.js.map +1 -1
- package/lib/module/components/A11yLock/A11yFocusFrame/A11yFocusFrame.js.map +1 -1
- package/lib/module/components/A11yLock/A11yFocusTrap/A11yFocusTrap.js.map +1 -1
- package/lib/module/components/A11yLock/A11yLock.types.js.map +1 -0
- package/lib/module/components/{A11ySequence/A11ySequence.js → A11yOrder/A11yOrder.js} +2 -2
- package/lib/module/components/A11yOrder/A11yOrder.js.map +1 -0
- package/lib/module/components/A11yOrder/A11yOrder.types.js +4 -0
- package/lib/module/components/A11yOrder/A11yOrder.types.js.map +1 -0
- package/lib/module/components/A11yPaneTitle/A11yPaneTitle.js +6 -7
- package/lib/module/components/A11yPaneTitle/A11yPaneTitle.js.map +1 -1
- package/lib/module/components/A11yPaneTitle/A11yPaneTitle.types.js +4 -0
- package/lib/module/components/A11yPaneTitle/A11yPaneTitle.types.js.map +1 -0
- package/lib/module/components/A11yView/A11yView.js +7 -31
- package/lib/module/components/A11yView/A11yView.js.map +1 -1
- package/lib/module/components/A11yView/A11yView.types.js.map +1 -0
- package/lib/module/index.js +12 -8
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +4 -4
- package/lib/module/index.web.js.map +1 -1
- package/{src/nativeSpecs/A11yGroupNativeComponent.ts → lib/module/nativeSpecs/A11yCardNativeComponent.ts} +3 -3
- package/lib/module/nativeSpecs/A11yIndexNativeComponent.ts +12 -3
- package/lib/typescript/src/components/A11yCard/A11yCard.d.ts +5 -0
- package/lib/typescript/src/components/A11yCard/A11yCard.d.ts.map +1 -0
- package/lib/typescript/src/components/A11yCard/A11yCard.ios.d.ts +5 -0
- package/lib/typescript/src/components/A11yCard/A11yCard.ios.d.ts.map +1 -0
- package/lib/typescript/src/components/A11yCard/A11yCard.types.d.ts +14 -0
- package/lib/typescript/src/components/A11yCard/A11yCard.types.d.ts.map +1 -0
- package/lib/typescript/src/components/A11yIndex/A11yIndex.d.ts +15 -10
- package/lib/typescript/src/components/A11yIndex/A11yIndex.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yIndex/A11yIndex.types.d.ts +83 -0
- package/lib/typescript/src/components/A11yIndex/A11yIndex.types.d.ts.map +1 -0
- package/lib/typescript/src/components/A11yIndex/A11yIndex.web.d.ts +14 -10
- package/lib/typescript/src/components/A11yIndex/A11yIndex.web.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yLock/A11yBaseLock/A11yBaseLock.d.ts +1 -1
- package/lib/typescript/src/components/A11yLock/A11yBaseLock/A11yBaseLock.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yLock/A11yFocusFrame/A11yFocusFrame.android.d.ts +1 -1
- package/lib/typescript/src/components/A11yLock/A11yFocusFrame/A11yFocusFrame.android.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yLock/A11yFocusFrame/A11yFocusFrame.d.ts +2 -2
- package/lib/typescript/src/components/A11yLock/A11yFocusFrame/A11yFocusFrame.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yLock/A11yFocusTrap/A11yFocusTrap.android.d.ts +1 -1
- package/lib/typescript/src/components/A11yLock/A11yFocusTrap/A11yFocusTrap.android.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yLock/A11yFocusTrap/A11yFocusTrap.d.ts +2 -2
- package/lib/typescript/src/components/A11yLock/A11yFocusTrap/A11yFocusTrap.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yLock/A11yLock.types.d.ts +31 -0
- package/lib/typescript/src/components/A11yLock/A11yLock.types.d.ts.map +1 -0
- package/lib/typescript/src/components/{A11ySequence/A11ySequence.d.ts → A11yOrder/A11yOrder.d.ts} +4 -2
- package/lib/typescript/src/components/A11yOrder/A11yOrder.d.ts.map +1 -0
- package/lib/typescript/src/components/A11yOrder/A11yOrder.types.d.ts +11 -0
- package/lib/typescript/src/components/A11yOrder/A11yOrder.types.d.ts.map +1 -0
- package/lib/typescript/src/components/A11yPaneTitle/A11yPaneTitle.d.ts +3 -17
- package/lib/typescript/src/components/A11yPaneTitle/A11yPaneTitle.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yPaneTitle/A11yPaneTitle.types.d.ts +43 -0
- package/lib/typescript/src/components/A11yPaneTitle/A11yPaneTitle.types.d.ts.map +1 -0
- package/lib/typescript/src/components/A11yView/A11yView.d.ts +13 -6
- package/lib/typescript/src/components/A11yView/A11yView.d.ts.map +1 -1
- package/lib/typescript/src/components/A11yView/A11yView.types.d.ts +10 -0
- package/lib/typescript/src/components/A11yView/A11yView.types.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +32 -36
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +22 -22
- package/lib/typescript/src/index.web.d.ts.map +1 -1
- package/lib/typescript/src/nativeSpecs/A11yCardNativeComponent.d.ts +8 -0
- package/lib/typescript/src/nativeSpecs/A11yCardNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/nativeSpecs/A11yIndexNativeComponent.d.ts +10 -3
- package/lib/typescript/src/nativeSpecs/A11yIndexNativeComponent.d.ts.map +1 -1
- package/package.json +12 -11
- package/src/components/A11yCard/A11yCard.ios.tsx +44 -0
- package/src/components/A11yCard/A11yCard.tsx +35 -0
- package/src/components/A11yCard/A11yCard.types.ts +39 -0
- package/src/components/A11yIndex/A11yIndex.tsx +144 -52
- package/src/components/A11yIndex/A11yIndex.types.ts +102 -0
- package/src/components/A11yIndex/A11yIndex.web.tsx +12 -17
- package/src/components/A11yLock/A11yBaseLock/A11yBaseLock.tsx +1 -1
- package/src/components/A11yLock/A11yFocusFrame/A11yFocusFrame.android.tsx +1 -1
- package/src/components/A11yLock/A11yFocusFrame/A11yFocusFrame.tsx +3 -2
- package/src/components/A11yLock/A11yFocusTrap/A11yFocusTrap.android.tsx +1 -1
- package/src/components/A11yLock/A11yFocusTrap/A11yFocusTrap.tsx +2 -2
- package/src/components/A11yLock/A11yLock.types.ts +34 -0
- package/src/components/{A11ySequence/A11ySequence.tsx → A11yOrder/A11yOrder.tsx} +4 -2
- package/src/components/A11yOrder/A11yOrder.types.ts +11 -0
- package/src/components/A11yPaneTitle/A11yPaneTitle.tsx +13 -19
- package/src/components/A11yPaneTitle/A11yPaneTitle.types.ts +49 -0
- package/src/components/A11yView/A11yView.tsx +8 -63
- package/src/components/A11yView/A11yView.types.ts +11 -0
- package/src/index.ts +26 -19
- package/src/index.web.ts +6 -13
- package/{lib/module/nativeSpecs/A11yGroupNativeComponent.ts → src/nativeSpecs/A11yCardNativeComponent.ts} +3 -3
- package/src/nativeSpecs/A11yIndexNativeComponent.ts +12 -3
- package/android/src/main/java/com/a11yorder/views/A11yGroupView/A11yGroupViewManager.java +0 -25
- package/android/src/main/java/com/a11yorder/views/A11yUIContainerView/A11yUIContainerViewManager.java +0 -30
- package/android/src/main/java/com/a11yorder/views/A11yView/A11yViewManager.java +0 -67
- package/android/src/newarch/A11yGroupViewManagerSpec.java +0 -9
- package/android/src/newarch/A11yUIContainerViewManagerSpec.java +0 -8
- package/android/src/newarch/A11yViewSpec.java +0 -13
- package/android/src/oldarch/A11yGroupViewManagerSpec.java +0 -8
- package/android/src/oldarch/A11yUIContainerViewManagerSpec.java +0 -9
- package/android/src/oldarch/A11yViewSpec.java +0 -18
- package/ios/views/RNAOA11yGroupView/RNAOA11yGroupView.h +0 -37
- package/ios/views/RNAOA11yGroupView/RNAOA11yGroupView.mm +0 -67
- package/ios/views/RNAOA11yGroupView/RNAOA11yGroupViewManager.h +0 -18
- package/ios/views/RNAOA11yGroupView/RNAOA11yGroupViewManager.mm +0 -25
- package/ios/views/RNAOA11yUIContainerView/RNAOA11yUIContainerView.h +0 -35
- package/ios/views/RNAOA11yUIContainerView/RNAOA11yUIContainerView.mm +0 -79
- package/ios/views/RNAOA11yUIContainerView/RNAOA11yUIContainerViewManager.h +0 -18
- package/ios/views/RNAOA11yUIContainerView/RNAOA11yUIContainerViewManager.mm +0 -27
- package/ios/views/RNAOA11yView/RNAOA11yView.h +0 -45
- package/ios/views/RNAOA11yView/RNAOA11yViewManager.h +0 -14
- package/ios/views/RNAOA11yView/RNAOA11yViewManager.mm +0 -53
- package/lib/commonjs/components/A11yGroup/A11yGroup.android.js +0 -18
- package/lib/commonjs/components/A11yGroup/A11yGroup.android.js.map +0 -1
- package/lib/commonjs/components/A11yGroup/A11yGroup.ios.js +0 -24
- package/lib/commonjs/components/A11yGroup/A11yGroup.ios.js.map +0 -1
- package/lib/commonjs/components/A11yGroup/A11yGroup.js +0 -9
- package/lib/commonjs/components/A11yGroup/A11yGroup.js.map +0 -1
- package/lib/commonjs/components/A11ySequence/A11ySequence.js.map +0 -1
- package/lib/commonjs/components/A11yUIContainer/A11yUIContainer.ios.js +0 -22
- package/lib/commonjs/components/A11yUIContainer/A11yUIContainer.ios.js.map +0 -1
- package/lib/commonjs/components/A11yUIContainer/A11yUIContainer.js +0 -9
- package/lib/commonjs/components/A11yUIContainer/A11yUIContainer.js.map +0 -1
- package/lib/commonjs/nativeSpecs/A11yUIContainerNativeComponent.ts +0 -12
- package/lib/commonjs/nativeSpecs/A11yViewNativeComponent.ts +0 -36
- package/lib/commonjs/types/A11yGroup.types.js.map +0 -1
- package/lib/commonjs/types/A11yIndex.types.js +0 -13
- package/lib/commonjs/types/A11yIndex.types.js.map +0 -1
- package/lib/commonjs/types/A11yLock.types.js.map +0 -1
- package/lib/commonjs/types/A11yModule.types.js.map +0 -1
- package/lib/commonjs/types/A11yUIContainerView.types.js +0 -15
- package/lib/commonjs/types/A11yUIContainerView.types.js.map +0 -1
- package/lib/commonjs/types/A11yView.types.js.map +0 -1
- package/lib/module/components/A11yGroup/A11yGroup.android.js +0 -12
- package/lib/module/components/A11yGroup/A11yGroup.android.js.map +0 -1
- package/lib/module/components/A11yGroup/A11yGroup.ios.js +0 -18
- package/lib/module/components/A11yGroup/A11yGroup.ios.js.map +0 -1
- package/lib/module/components/A11yGroup/A11yGroup.js +0 -5
- package/lib/module/components/A11yGroup/A11yGroup.js.map +0 -1
- package/lib/module/components/A11ySequence/A11ySequence.js.map +0 -1
- package/lib/module/components/A11yUIContainer/A11yUIContainer.ios.js +0 -17
- package/lib/module/components/A11yUIContainer/A11yUIContainer.ios.js.map +0 -1
- package/lib/module/components/A11yUIContainer/A11yUIContainer.js +0 -5
- package/lib/module/components/A11yUIContainer/A11yUIContainer.js.map +0 -1
- package/lib/module/nativeSpecs/A11yUIContainerNativeComponent.ts +0 -12
- package/lib/module/nativeSpecs/A11yViewNativeComponent.ts +0 -36
- package/lib/module/types/A11yGroup.types.js +0 -4
- package/lib/module/types/A11yGroup.types.js.map +0 -1
- package/lib/module/types/A11yIndex.types.js +0 -9
- package/lib/module/types/A11yIndex.types.js.map +0 -1
- package/lib/module/types/A11yLock.types.js.map +0 -1
- package/lib/module/types/A11yModule.types.js +0 -4
- package/lib/module/types/A11yModule.types.js.map +0 -1
- package/lib/module/types/A11yUIContainerView.types.js +0 -11
- package/lib/module/types/A11yUIContainerView.types.js.map +0 -1
- package/lib/module/types/A11yView.types.js.map +0 -1
- package/lib/typescript/src/components/A11yGroup/A11yGroup.android.d.ts +0 -4
- package/lib/typescript/src/components/A11yGroup/A11yGroup.android.d.ts.map +0 -1
- package/lib/typescript/src/components/A11yGroup/A11yGroup.d.ts +0 -3
- package/lib/typescript/src/components/A11yGroup/A11yGroup.d.ts.map +0 -1
- package/lib/typescript/src/components/A11yGroup/A11yGroup.ios.d.ts +0 -4
- package/lib/typescript/src/components/A11yGroup/A11yGroup.ios.d.ts.map +0 -1
- package/lib/typescript/src/components/A11ySequence/A11ySequence.d.ts.map +0 -1
- package/lib/typescript/src/components/A11yUIContainer/A11yUIContainer.d.ts +0 -3
- package/lib/typescript/src/components/A11yUIContainer/A11yUIContainer.d.ts.map +0 -1
- package/lib/typescript/src/components/A11yUIContainer/A11yUIContainer.ios.d.ts +0 -4
- package/lib/typescript/src/components/A11yUIContainer/A11yUIContainer.ios.d.ts.map +0 -1
- package/lib/typescript/src/nativeSpecs/A11yGroupNativeComponent.d.ts +0 -8
- package/lib/typescript/src/nativeSpecs/A11yGroupNativeComponent.d.ts.map +0 -1
- package/lib/typescript/src/nativeSpecs/A11yUIContainerNativeComponent.d.ts +0 -10
- package/lib/typescript/src/nativeSpecs/A11yUIContainerNativeComponent.d.ts.map +0 -1
- package/lib/typescript/src/nativeSpecs/A11yViewNativeComponent.d.ts +0 -26
- package/lib/typescript/src/nativeSpecs/A11yViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/src/types/A11yGroup.types.d.ts +0 -7
- package/lib/typescript/src/types/A11yGroup.types.d.ts.map +0 -1
- package/lib/typescript/src/types/A11yIndex.types.d.ts +0 -19
- package/lib/typescript/src/types/A11yIndex.types.d.ts.map +0 -1
- package/lib/typescript/src/types/A11yLock.types.d.ts +0 -8
- package/lib/typescript/src/types/A11yLock.types.d.ts.map +0 -1
- package/lib/typescript/src/types/A11yModule.types.d.ts +0 -7
- package/lib/typescript/src/types/A11yModule.types.d.ts.map +0 -1
- package/lib/typescript/src/types/A11yUIContainerView.types.d.ts +0 -13
- package/lib/typescript/src/types/A11yUIContainerView.types.d.ts.map +0 -1
- package/lib/typescript/src/types/A11yView.types.d.ts +0 -12
- package/lib/typescript/src/types/A11yView.types.d.ts.map +0 -1
- package/src/components/A11yGroup/A11yGroup.android.tsx +0 -8
- package/src/components/A11yGroup/A11yGroup.ios.tsx +0 -11
- package/src/components/A11yGroup/A11yGroup.tsx +0 -5
- package/src/components/A11yUIContainer/A11yUIContainer.ios.tsx +0 -20
- package/src/components/A11yUIContainer/A11yUIContainer.tsx +0 -5
- package/src/nativeSpecs/A11yUIContainerNativeComponent.ts +0 -12
- package/src/nativeSpecs/A11yViewNativeComponent.ts +0 -36
- package/src/types/A11yGroup.types.ts +0 -9
- package/src/types/A11yIndex.types.ts +0 -21
- package/src/types/A11yLock.types.ts +0 -8
- package/src/types/A11yModule.types.ts +0 -7
- package/src/types/A11yUIContainerView.types.ts +0 -15
- package/src/types/A11yView.types.ts +0 -19
- /package/lib/commonjs/{types → components/A11yLock}/A11yLock.types.js +0 -0
- /package/lib/commonjs/{types → components/A11yView}/A11yView.types.js +0 -0
- /package/lib/module/{types → components/A11yLock}/A11yLock.types.js +0 -0
- /package/lib/module/{types → components/A11yView}/A11yView.types.js +0 -0
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
3
|
-
import type {
|
|
4
|
-
IndexCommands,
|
|
5
|
-
A11yIndexProps,
|
|
6
|
-
} from '../../types/A11yIndex.types';
|
|
3
|
+
import type { A11yIndexProps } from './A11yIndex.types';
|
|
7
4
|
import { UIManager } from 'react-native';
|
|
8
5
|
import { View } from 'react-native';
|
|
9
6
|
|
|
@@ -11,17 +8,15 @@ const WebUiManager = UIManager as unknown as {
|
|
|
11
8
|
focus: (v: View) => void;
|
|
12
9
|
};
|
|
13
10
|
|
|
14
|
-
export const A11yIndex = forwardRef<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}));
|
|
11
|
+
export const A11yIndex = forwardRef<{}, A11yIndexProps>((props, ref) => {
|
|
12
|
+
const viewRef = useRef<View>(null);
|
|
13
|
+
useImperativeHandle(ref, () => ({
|
|
14
|
+
focus: () => {
|
|
15
|
+
if (viewRef.current) {
|
|
16
|
+
WebUiManager.focus(viewRef.current);
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
}));
|
|
24
20
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
);
|
|
21
|
+
return <View {...props} ref={viewRef as any} />;
|
|
22
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import A11yLockNativeComponent from '../../../nativeSpecs/A11yLockNativeComponent';
|
|
3
|
-
import type { A11yLockProps } from '
|
|
3
|
+
import type { A11yLockProps } from '../A11yLock.types';
|
|
4
4
|
|
|
5
5
|
export const A11yBaseLock = React.memo<A11yLockProps>(
|
|
6
6
|
({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { A11yLockProps } from '
|
|
2
|
+
import type { A11yLockProps } from '../A11yLock.types';
|
|
3
3
|
import { A11yBaseLock } from '../A11yBaseLock/A11yBaseLock';
|
|
4
4
|
import { A11yFrameProvider } from '../../../context/A11yFocusFrameProviderContext';
|
|
5
5
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { View
|
|
2
|
+
import { View } from 'react-native';
|
|
3
3
|
import { A11yFrameProvider } from '../../../context/A11yFocusFrameProviderContext';
|
|
4
|
+
import type { A11yFocusFrameProps } from '../A11yLock.types';
|
|
4
5
|
|
|
5
|
-
export const A11yFocusFrame = (props:
|
|
6
|
+
export const A11yFocusFrame = (props: A11yFocusFrameProps) => (
|
|
6
7
|
<A11yFrameProvider>
|
|
7
8
|
<View {...props} />
|
|
8
9
|
</A11yFrameProvider>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { A11yLockProps } from '
|
|
2
|
+
import type { A11yLockProps } from '../A11yLock.types';
|
|
3
3
|
import { A11yBaseLock } from '../A11yBaseLock/A11yBaseLock';
|
|
4
4
|
import { A11yFocusTrapMountWrapper } from './A11yFocusTrapMountWrapper';
|
|
5
5
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
|
-
import type {
|
|
3
|
+
import type { A11yFocusTrapProps } from '../A11yLock.types';
|
|
4
4
|
import { A11yFocusTrapMountWrapper } from './A11yFocusTrapMountWrapper';
|
|
5
5
|
import { A11yBaseLock } from '../A11yBaseLock/A11yBaseLock';
|
|
6
6
|
|
|
7
7
|
export const A11yFocusTrap = ({
|
|
8
8
|
forceLock = false,
|
|
9
9
|
...props
|
|
10
|
-
}:
|
|
10
|
+
}: A11yFocusTrapProps) => {
|
|
11
11
|
if (forceLock) {
|
|
12
12
|
return (
|
|
13
13
|
<A11yFocusTrapMountWrapper>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ViewProps } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props for {@link A11y.FocusTrap} — confines VoiceOver / TalkBack focus to this subtree.
|
|
5
|
+
* Useful for modals, bottom sheets, and overlays where focus must not leak out.
|
|
6
|
+
*/
|
|
7
|
+
export type A11yFocusTrapProps = ViewProps & {
|
|
8
|
+
/**
|
|
9
|
+
* When `true`, the focus trap is inactive — the screen reader can navigate freely
|
|
10
|
+
* outside this container. Defaults to `false`.
|
|
11
|
+
*/
|
|
12
|
+
lockDisabled?: boolean;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* When `true`, focus is trapped immediately on mount rather than waiting for
|
|
16
|
+
* the next accessibility navigation gesture. Use for programmatically-opened modals.
|
|
17
|
+
* Defaults to `false`.
|
|
18
|
+
*/
|
|
19
|
+
forceLock?: boolean;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Props for {@link A11y.FocusFrame} — detects when screen reader focus escapes
|
|
24
|
+
* this subtree, enabling focus-leak detection in complex UIs.
|
|
25
|
+
*/
|
|
26
|
+
export type A11yFocusFrameProps = ViewProps;
|
|
27
|
+
|
|
28
|
+
/** @internal Full props accepted by the native lock component. Not part of the public API. */
|
|
29
|
+
export type A11yLockProps = ViewProps & {
|
|
30
|
+
componentType?: number;
|
|
31
|
+
containerKey?: string;
|
|
32
|
+
lockDisabled?: boolean;
|
|
33
|
+
forceLock?: boolean;
|
|
34
|
+
};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ViewProps } from 'react-native';
|
|
3
2
|
import { A11ySequenceOrderContext } from '../../context/A11ySequenceOrderContext';
|
|
4
3
|
import A11yOrderNativeComponent from '../../nativeSpecs/A11yOrderNativeComponent';
|
|
4
|
+
import type { A11yOrderProps } from './A11yOrder.types';
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export type { A11yOrderProps };
|
|
7
|
+
|
|
8
|
+
export const A11yOrder = React.memo<A11yOrderProps>((props) => {
|
|
7
9
|
const orderKey = React.useId();
|
|
8
10
|
return (
|
|
9
11
|
<A11ySequenceOrderContext.Provider value={orderKey}>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ViewProps } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props for {@link A11y.Order} — a container that defines an explicit screen reader
|
|
5
|
+
* focus sequence for its `A11y.Index` children.
|
|
6
|
+
*
|
|
7
|
+
* All standard `View` props are accepted and forwarded to the underlying native view.
|
|
8
|
+
* The `orderKey` that links child `A11y.Index` elements to this container is generated
|
|
9
|
+
* internally via `React.useId` and requires no prop.
|
|
10
|
+
*/
|
|
11
|
+
export type A11yOrderProps = ViewProps;
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type ViewProps } from 'react-native';
|
|
3
2
|
import A11yPaneTitleNative from '../../nativeSpecs/A11yPaneTitleNativeComponent';
|
|
3
|
+
import type {
|
|
4
|
+
A11yPaneTitleProps,
|
|
5
|
+
A11yPaneType,
|
|
6
|
+
A11yScreenChangeProps,
|
|
7
|
+
} from './A11yPaneTitle.types';
|
|
4
8
|
|
|
5
|
-
|
|
6
|
-
activity
|
|
7
|
-
pane
|
|
8
|
-
announce
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
type PaneType = keyof typeof PaneEnum;
|
|
12
|
-
|
|
13
|
-
type A11yPaneTitleType = React.PropsWithChildren<{
|
|
14
|
-
title?: string;
|
|
15
|
-
detachMessage?: string;
|
|
16
|
-
type?: PaneType;
|
|
17
|
-
withFocusRestore?: boolean;
|
|
18
|
-
displayed?: boolean;
|
|
19
|
-
}>;
|
|
9
|
+
const PaneTypeValue: Record<A11yPaneType, number> = {
|
|
10
|
+
activity: 0,
|
|
11
|
+
pane: 1,
|
|
12
|
+
announce: 2,
|
|
13
|
+
};
|
|
20
14
|
|
|
21
15
|
export const A11yPaneTitle = ({
|
|
22
16
|
title,
|
|
@@ -25,21 +19,21 @@ export const A11yPaneTitle = ({
|
|
|
25
19
|
children,
|
|
26
20
|
displayed,
|
|
27
21
|
withFocusRestore = true,
|
|
28
|
-
}:
|
|
22
|
+
}: A11yPaneTitleProps) => {
|
|
29
23
|
if (displayed === false) return null;
|
|
30
24
|
|
|
31
25
|
return (
|
|
32
26
|
<A11yPaneTitleNative
|
|
33
27
|
title={title}
|
|
34
28
|
detachMessage={detachMessage}
|
|
35
|
-
type={
|
|
29
|
+
type={PaneTypeValue[type]}
|
|
36
30
|
children={children}
|
|
37
31
|
withFocusRestore={withFocusRestore}
|
|
38
32
|
/>
|
|
39
33
|
);
|
|
40
34
|
};
|
|
41
35
|
|
|
42
|
-
export const A11yScreenChange = (props:
|
|
36
|
+
export const A11yScreenChange = (props: A11yScreenChangeProps) => (
|
|
43
37
|
<A11yPaneTitle
|
|
44
38
|
title={props.title}
|
|
45
39
|
detachMessage={props.detachMessage}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Controls the native accessibility announcement mechanism.
|
|
5
|
+
*
|
|
6
|
+
* - `'pane'` — layout-changed notification with a title (default, use for panels/sheets)
|
|
7
|
+
* - `'activity'` — screen-change notification (use for full-screen transitions)
|
|
8
|
+
* - `'announce'` — plain announcement with no focus shift (use for status updates)
|
|
9
|
+
*/
|
|
10
|
+
export type A11yPaneType = 'activity' | 'pane' | 'announce';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Props for {@link A11y.PaneTitle} — announces a screen or panel transition to
|
|
14
|
+
* VoiceOver / TalkBack and optionally restores focus when the view unmounts.
|
|
15
|
+
*/
|
|
16
|
+
export type A11yPaneTitleProps = React.PropsWithChildren<{
|
|
17
|
+
/** The title announced to the screen reader when this component mounts. */
|
|
18
|
+
title?: string;
|
|
19
|
+
|
|
20
|
+
/** A message announced when this component unmounts, e.g. `"Drawer closed"`. */
|
|
21
|
+
detachMessage?: string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Controls the native announcement type. Defaults to `'pane'`.
|
|
25
|
+
*
|
|
26
|
+
* - `'pane'` — layout-changed notification with a title
|
|
27
|
+
* - `'activity'` — screen-change notification for full-screen transitions
|
|
28
|
+
* - `'announce'` — plain announcement, no focus shift
|
|
29
|
+
*/
|
|
30
|
+
type?: A11yPaneType;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* When `true` (default), VoiceOver / TalkBack restores focus to the previously
|
|
34
|
+
* focused element when this component unmounts.
|
|
35
|
+
*/
|
|
36
|
+
withFocusRestore?: boolean;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* When `false`, the component renders nothing and posts no announcement.
|
|
40
|
+
* Use to conditionally suppress the view without unmounting the subtree.
|
|
41
|
+
*/
|
|
42
|
+
displayed?: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Props for {@link A11y.ScreenChange} — shorthand for `A11y.PaneTitle` with
|
|
47
|
+
* `type="activity"` pre-set for full-screen navigation transitions.
|
|
48
|
+
*/
|
|
49
|
+
export type A11yScreenChangeProps = Omit<A11yPaneTitleProps, 'type'>;
|
|
@@ -1,63 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export const A11yView =
|
|
9
|
-
React.forwardRef<ViewRefType, A11yViewProps>(
|
|
10
|
-
(
|
|
11
|
-
{
|
|
12
|
-
onScreenReaderFocused,
|
|
13
|
-
onScreenReaderSubViewFocusChange,
|
|
14
|
-
onScreenReaderSubViewFocused,
|
|
15
|
-
onScreenReaderSubViewBlurred,
|
|
16
|
-
onScreenReaderDescendantFocusChanged,
|
|
17
|
-
...props
|
|
18
|
-
},
|
|
19
|
-
ref
|
|
20
|
-
) => {
|
|
21
|
-
const hasHandler = Boolean(
|
|
22
|
-
onScreenReaderSubViewBlurred ||
|
|
23
|
-
onScreenReaderSubViewFocused ||
|
|
24
|
-
onScreenReaderSubViewFocusChange
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
const onScreenReaderChangeHandler = React.useCallback(
|
|
28
|
-
(event: { nativeEvent: { isFocused: boolean } }) => {
|
|
29
|
-
onScreenReaderSubViewFocusChange?.(event.nativeEvent.isFocused);
|
|
30
|
-
if (event.nativeEvent.isFocused) {
|
|
31
|
-
onScreenReaderSubViewFocused?.();
|
|
32
|
-
} else {
|
|
33
|
-
onScreenReaderSubViewBlurred?.();
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
[
|
|
37
|
-
onScreenReaderSubViewFocusChange,
|
|
38
|
-
onScreenReaderSubViewBlurred,
|
|
39
|
-
onScreenReaderSubViewFocused,
|
|
40
|
-
]
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
const onScreenReaderHandlerProp = hasHandler
|
|
44
|
-
? onScreenReaderChangeHandler
|
|
45
|
-
: undefined;
|
|
46
|
-
|
|
47
|
-
return (
|
|
48
|
-
<A11yViewNativeComponent
|
|
49
|
-
{...props}
|
|
50
|
-
ref={ref as React.Ref<any>}
|
|
51
|
-
descendantFocusChangedEnabled={Boolean(
|
|
52
|
-
onScreenReaderDescendantFocusChanged
|
|
53
|
-
)}
|
|
54
|
-
onScreenReaderFocused={onScreenReaderFocused}
|
|
55
|
-
onScreenReaderFocusChange={onScreenReaderHandlerProp}
|
|
56
|
-
onScreenReaderDescendantFocusChanged={
|
|
57
|
-
onScreenReaderDescendantFocusChanged
|
|
58
|
-
}
|
|
59
|
-
/>
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
)
|
|
63
|
-
);
|
|
1
|
+
import { A11yIndex } from '../A11yIndex/A11yIndex';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Standalone focus-tracking view with no ordering context.
|
|
5
|
+
* Use when you need screen reader focus events but no position in a sequence.
|
|
6
|
+
* For ordered elements, use {@link A11yIndex} inside an Order container.
|
|
7
|
+
*/
|
|
8
|
+
export const A11yView = A11yIndex;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { A11yIndexProps } from '../A11yIndex/A11yIndex.types';
|
|
2
|
+
|
|
3
|
+
export type { ScreenReaderDescendantFocusChangedEvent } from '../A11yIndex/A11yIndex.types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Props for {@link A11y.View} — a standalone focus-tracking view with no ordering context.
|
|
7
|
+
*
|
|
8
|
+
* All screen reader focus events from {@link A11yIndexProps} are available.
|
|
9
|
+
* `index` and `orderType` are omitted because they only apply inside an `A11y.Order` sequence.
|
|
10
|
+
*/
|
|
11
|
+
export type A11yViewProps = Omit<A11yIndexProps, 'index' | 'orderType'>;
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { A11yIndex } from './components/A11yIndex/A11yIndex';
|
|
2
|
-
import {
|
|
3
|
-
import { A11yGroup } from './components/A11yGroup/A11yGroup';
|
|
4
|
-
import { A11yUIContainer } from './components/A11yUIContainer/A11yUIContainer';
|
|
2
|
+
import { A11yOrder } from './components/A11yOrder/A11yOrder';
|
|
5
3
|
import {
|
|
6
4
|
A11yPaneTitle,
|
|
7
5
|
A11yScreenChange,
|
|
@@ -9,34 +7,43 @@ import {
|
|
|
9
7
|
import { A11yView } from './components/A11yView/A11yView';
|
|
10
8
|
import { A11yFocusFrame } from './components/A11yLock/A11yFocusFrame/A11yFocusFrame';
|
|
11
9
|
import { A11yFocusTrap } from './components/A11yLock/A11yFocusTrap/A11yFocusTrap';
|
|
10
|
+
import { A11yCard } from './components/A11yCard/A11yCard';
|
|
12
11
|
|
|
12
|
+
// ─── Component props ──────────────────────────────────────────────────────────
|
|
13
|
+
|
|
14
|
+
export type { A11yCardProps } from './components/A11yCard/A11yCard.types';
|
|
15
|
+
export type { A11yOrderProps } from './components/A11yOrder/A11yOrder.types';
|
|
13
16
|
export type {
|
|
14
|
-
IndexCommands,
|
|
15
|
-
A11yOrderType,
|
|
16
|
-
A11yOrderTypeEnum,
|
|
17
17
|
A11yIndexProps,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
A11yOrderType,
|
|
19
|
+
IndexCommands,
|
|
20
|
+
} from './components/A11yIndex/A11yIndex.types';
|
|
21
|
+
export { A11yOrderTypeEnum } from './components/A11yIndex/A11yIndex.types';
|
|
20
22
|
export type {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
A11yViewProps,
|
|
24
|
+
ScreenReaderDescendantFocusChangedEvent,
|
|
25
|
+
} from './components/A11yView/A11yView.types';
|
|
26
|
+
export type {
|
|
27
|
+
A11yFocusTrapProps,
|
|
28
|
+
A11yFocusFrameProps,
|
|
29
|
+
} from './components/A11yLock/A11yLock.types';
|
|
30
|
+
export type {
|
|
31
|
+
A11yPaneTitleProps,
|
|
32
|
+
A11yScreenChangeProps,
|
|
33
|
+
A11yPaneType,
|
|
34
|
+
} from './components/A11yPaneTitle/A11yPaneTitle.types';
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
// ─── Namespace ────────────────────────────────────────────────────────────────
|
|
29
37
|
|
|
30
38
|
export const A11y = {
|
|
31
|
-
Order:
|
|
39
|
+
Order: A11yOrder,
|
|
32
40
|
Index: A11yIndex,
|
|
33
|
-
|
|
34
|
-
Container: A11yUIContainer,
|
|
41
|
+
View: A11yView,
|
|
35
42
|
PaneTitle: A11yPaneTitle,
|
|
36
43
|
ScreenChange: A11yScreenChange,
|
|
37
|
-
View: A11yView,
|
|
38
44
|
FocusFrame: A11yFocusFrame,
|
|
39
45
|
FocusTrap: A11yFocusTrap,
|
|
46
|
+
Card: A11yCard,
|
|
40
47
|
};
|
|
41
48
|
|
|
42
49
|
export { A11yModule } from './modules/A11yAnnounceModule';
|
package/src/index.web.ts
CHANGED
|
@@ -4,30 +4,23 @@ import { View } from 'react-native';
|
|
|
4
4
|
export type {
|
|
5
5
|
IndexCommands,
|
|
6
6
|
A11yOrderType,
|
|
7
|
-
A11yOrderTypeEnum,
|
|
8
7
|
A11yIndexProps,
|
|
9
|
-
} from './
|
|
8
|
+
} from './components/A11yIndex/A11yIndex.types';
|
|
9
|
+
export { A11yOrderTypeEnum } from './components/A11yIndex/A11yIndex.types';
|
|
10
10
|
|
|
11
|
-
export type {
|
|
12
|
-
A11yContainerTypeEnum,
|
|
13
|
-
A11yUIContainerType,
|
|
14
|
-
A11yUIContainerProps,
|
|
15
|
-
} from './types/A11yUIContainerView.types';
|
|
16
|
-
|
|
17
|
-
export type { ScreenReaderDescendantFocusChangedEvent } from './types/A11yView.types';
|
|
11
|
+
export type { ScreenReaderDescendantFocusChangedEvent } from './components/A11yView/A11yView.types';
|
|
18
12
|
|
|
19
|
-
export type { A11yViewProps } from './
|
|
13
|
+
export type { A11yViewProps } from './components/A11yView/A11yView.types';
|
|
20
14
|
|
|
21
15
|
export const A11y = {
|
|
22
16
|
Order: View,
|
|
23
|
-
Group: View,
|
|
24
17
|
Index: A11yIndex,
|
|
25
|
-
|
|
18
|
+
View: View,
|
|
26
19
|
PaneTitle: View,
|
|
27
20
|
ScreenChange: View,
|
|
28
|
-
View: View,
|
|
29
21
|
FocusFrame: View,
|
|
30
22
|
FocusTrap: View,
|
|
23
|
+
Card: View,
|
|
31
24
|
};
|
|
32
25
|
|
|
33
26
|
export { A11yModule } from './modules/A11yAnnounceModule';
|
|
@@ -2,8 +2,8 @@ import type { ViewProps } from 'react-native';
|
|
|
2
2
|
// eslint-disable-next-line @react-native/no-deep-imports
|
|
3
3
|
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
4
4
|
|
|
5
|
-
export interface
|
|
5
|
+
export interface A11yCardNativeComponentProps extends ViewProps {}
|
|
6
6
|
|
|
7
|
-
export default codegenNativeComponent<
|
|
8
|
-
'
|
|
7
|
+
export default codegenNativeComponent<A11yCardNativeComponentProps>(
|
|
8
|
+
'A11yCardView'
|
|
9
9
|
);
|
|
@@ -15,14 +15,23 @@ export type ScreenReaderFocusChange = Readonly<{
|
|
|
15
15
|
|
|
16
16
|
export type ScreenReaderDescendantFocusChanged = Readonly<{
|
|
17
17
|
status: string;
|
|
18
|
+
nativeId?: string;
|
|
18
19
|
}>;
|
|
19
20
|
|
|
20
21
|
export interface A11yIndexNativeComponentProps extends ViewProps {
|
|
21
|
-
orderIndex
|
|
22
|
-
orderKey
|
|
23
|
-
orderFocusType
|
|
22
|
+
orderIndex?: Int32;
|
|
23
|
+
orderKey?: string;
|
|
24
|
+
orderFocusType?: Int32;
|
|
25
|
+
shouldGroupAccessibilityChildren?: Int32;
|
|
24
26
|
|
|
27
|
+
autoFocus?: boolean;
|
|
28
|
+
descendantFocusChangedEnabled?: boolean;
|
|
29
|
+
|
|
30
|
+
onScreenReaderFocused?: DirectEventHandler<{}>;
|
|
31
|
+
onScreenReaderDescendantFocusChanged?: DirectEventHandler<ScreenReaderDescendantFocusChanged>;
|
|
25
32
|
onScreenReaderFocusChange?: DirectEventHandler<ScreenReaderFocusChange>;
|
|
33
|
+
|
|
34
|
+
containerType?: Int32;
|
|
26
35
|
}
|
|
27
36
|
|
|
28
37
|
export interface NativeCommands {
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
package com.a11yorder.views.A11yGroupView;
|
|
2
|
-
|
|
3
|
-
import android.view.ViewGroup;
|
|
4
|
-
|
|
5
|
-
import androidx.annotation.NonNull;
|
|
6
|
-
|
|
7
|
-
import com.a11yorder.A11yGroupViewManagerSpec;
|
|
8
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
9
|
-
import com.facebook.react.views.view.ReactViewGroup;
|
|
10
|
-
|
|
11
|
-
public class A11yGroupViewManager extends A11yGroupViewManagerSpec<ViewGroup> {
|
|
12
|
-
public static final String REACT_CLASS = "A11yGroupView";
|
|
13
|
-
|
|
14
|
-
@NonNull
|
|
15
|
-
@Override
|
|
16
|
-
public String getName() {
|
|
17
|
-
return REACT_CLASS;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@NonNull
|
|
21
|
-
@Override
|
|
22
|
-
protected ReactViewGroup createViewInstance(@NonNull ThemedReactContext context) {
|
|
23
|
-
return new ReactViewGroup(context);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
package com.a11yorder.views.A11yUIContainerView;
|
|
2
|
-
|
|
3
|
-
import android.view.ViewGroup;
|
|
4
|
-
|
|
5
|
-
import androidx.annotation.NonNull;
|
|
6
|
-
|
|
7
|
-
import com.a11yorder.A11yUIContainerViewManagerSpec;
|
|
8
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
9
|
-
import com.facebook.react.views.view.ReactViewGroup;
|
|
10
|
-
|
|
11
|
-
public class A11yUIContainerViewManager extends A11yUIContainerViewManagerSpec<ViewGroup> {
|
|
12
|
-
public static final String REACT_CLASS = "A11yUIContainer";
|
|
13
|
-
|
|
14
|
-
@NonNull
|
|
15
|
-
@Override
|
|
16
|
-
public String getName() {
|
|
17
|
-
return REACT_CLASS;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@NonNull
|
|
21
|
-
@Override
|
|
22
|
-
protected ReactViewGroup createViewInstance(@NonNull ThemedReactContext context) {
|
|
23
|
-
return new ReactViewGroup(context);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
public void setContainerType(ViewGroup view, int value) {
|
|
28
|
-
//stub
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
package com.a11yorder.views.A11yView;
|
|
2
|
-
|
|
3
|
-
import com.a11yorder.events.EventHelper;
|
|
4
|
-
import com.a11yorder.events.ScreenReaderDescendantFocusChangedEvent;
|
|
5
|
-
import com.a11yorder.events.ScreenReaderFocusChangedEvent;
|
|
6
|
-
import com.a11yorder.events.ScreenReaderFocusedEvent;
|
|
7
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
8
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
9
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
10
|
-
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
11
|
-
|
|
12
|
-
import java.util.HashMap;
|
|
13
|
-
import java.util.Map;
|
|
14
|
-
|
|
15
|
-
import javax.annotation.Nullable;
|
|
16
|
-
|
|
17
|
-
@ReactModule(name = A11yViewManager.NAME)
|
|
18
|
-
public class A11yViewManager extends com.a11yorder.A11yViewSpec<A11yView> {
|
|
19
|
-
public static final String NAME = "A11yView";
|
|
20
|
-
|
|
21
|
-
@Override
|
|
22
|
-
public String getName() {
|
|
23
|
-
return NAME;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
public A11yView createViewInstance(ThemedReactContext context) {
|
|
28
|
-
return new A11yView(context);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@Override
|
|
32
|
-
public void receiveCommand(A11yView view, String commandId, @Nullable ReadableArray args) {
|
|
33
|
-
switch (commandId) {
|
|
34
|
-
case "focus": {
|
|
35
|
-
this.focus(view);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@Override
|
|
41
|
-
@ReactProp(name = "autoFocus")
|
|
42
|
-
public void setAutoFocus(A11yView view, boolean value) {
|
|
43
|
-
view.setAutoFocus(value);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@Override
|
|
47
|
-
public void setDescendantFocusChangedEnabled(A11yView view, boolean value) {
|
|
48
|
-
//stub
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@Override
|
|
52
|
-
public void focus(A11yView view) {
|
|
53
|
-
view.focus();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@Nullable
|
|
57
|
-
@Override
|
|
58
|
-
public Map<String, Object> getExportedCustomDirectEventTypeConstants() {
|
|
59
|
-
Map<String, Object> export = new HashMap<>();
|
|
60
|
-
|
|
61
|
-
export.put(ScreenReaderFocusedEvent.EVENT_NAME, EventHelper.buildDirectEventMap("onScreenReaderFocused"));
|
|
62
|
-
export.put(ScreenReaderFocusChangedEvent.EVENT_NAME, EventHelper.buildDirectEventMap("onScreenReaderFocusChange"));
|
|
63
|
-
export.put(ScreenReaderDescendantFocusChangedEvent.EVENT_NAME, EventHelper.buildDirectEventMap("onScreenReaderDescendantFocusChanged"));
|
|
64
|
-
|
|
65
|
-
return export;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
package com.a11yorder;
|
|
2
|
-
|
|
3
|
-
import android.view.ViewGroup;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.uimanager.ViewGroupManager;
|
|
6
|
-
import com.facebook.react.viewmanagers.A11yGroupViewManagerInterface;
|
|
7
|
-
|
|
8
|
-
public abstract class A11yGroupViewManagerSpec<T extends ViewGroup> extends ViewGroupManager<T> implements A11yGroupViewManagerInterface<T> {
|
|
9
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
package com.a11yorder;
|
|
2
|
-
|
|
3
|
-
import android.view.ViewGroup;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.uimanager.ViewGroupManager;
|
|
6
|
-
import com.facebook.react.viewmanagers.A11yUIContainerManagerInterface;
|
|
7
|
-
public abstract class A11yUIContainerViewManagerSpec<T extends ViewGroup> extends ViewGroupManager<T> implements A11yUIContainerManagerInterface<T> {
|
|
8
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
package com.a11yorder;
|
|
2
|
-
|
|
3
|
-
import android.view.ViewGroup;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
6
|
-
import com.facebook.react.viewmanagers.A11yViewManagerInterface;
|
|
7
|
-
import com.facebook.react.views.view.ReactViewManager;
|
|
8
|
-
|
|
9
|
-
import javax.annotation.Nullable;
|
|
10
|
-
|
|
11
|
-
public abstract class A11yViewSpec<T extends ViewGroup> extends ReactViewManager implements A11yViewManagerInterface<T> {
|
|
12
|
-
public abstract void receiveCommand(T view, String commandId, @Nullable ReadableArray args);
|
|
13
|
-
}
|