diff --git a/Libraries/Animated/nodes/AnimatedValue.js b/Libraries/Animated/nodes/AnimatedValue.js index 207dbf69c6e12b..0c3dcbf86e7c40 100644 --- a/Libraries/Animated/nodes/AnimatedValue.js +++ b/Libraries/Animated/nodes/AnimatedValue.js @@ -49,7 +49,7 @@ const NativeAnimatedAPI = NativeAnimatedHelper.API; * transform which can receive values from multiple parents. */ export function flushValue(rootNode: AnimatedNode): void { - const leaves = new Set<{update: () => void, ...}>(); + const leaves = new Set<{update:() => void, ...}>(); function findAnimatedStyles(node: AnimatedNode) { // $FlowFixMe[prop-missing] if (typeof node.update === 'function') { diff --git a/Libraries/Components/Switch/Switch.js b/Libraries/Components/Switch/Switch.js index f356df50a64f52..f830c31bbb3162 100644 --- a/Libraries/Components/Switch/Switch.js +++ b/Libraries/Components/Switch/Switch.js @@ -13,10 +13,10 @@ import type {ColorValue} from '../../StyleSheet/StyleSheet'; import type {SyntheticEvent} from '../../Types/CoreEventTypes'; import type {ViewProps} from '../View/ViewPropTypes'; -import ViewAncestor from '../View/ViewAncestor'; import StyleSheet from '../../StyleSheet/StyleSheet'; import Platform from '../../Utilities/Platform'; import useMergeRefs from '../../Utilities/useMergeRefs'; +import ViewAncestor from '../View/ViewAncestor'; import AndroidSwitchNativeComponent, { Commands as AndroidSwitchCommands, } from './AndroidSwitchNativeComponent'; diff --git a/Libraries/Components/TextInput/TextInput.js b/Libraries/Components/TextInput/TextInput.js index 6bfb297d4dc0b9..cb2fe7202eca14 100644 --- a/Libraries/Components/TextInput/TextInput.js +++ b/Libraries/Components/TextInput/TextInput.js @@ -16,7 +16,6 @@ import type { } from '../../Types/CoreEventTypes'; import type {ViewProps} from '../View/ViewPropTypes'; import type {TextInputType} from './TextInput.flow'; -import ViewAncestor from '../View/ViewAncestor'; import usePressability from '../../Pressability/usePressability'; import flattenStyle from '../../StyleSheet/flattenStyle'; @@ -29,13 +28,14 @@ import Text from '../../Text/Text'; import TextAncestor from '../../Text/TextAncestor'; import Platform from '../../Utilities/Platform'; import useMergeRefs from '../../Utilities/useMergeRefs'; +import ViewAncestor from '../View/ViewAncestor'; import TextInputState from './TextInputState'; import invariant from 'invariant'; import nullthrows from 'nullthrows'; import * as React from 'react'; import { - useContext, useCallback, + useContext, useLayoutEffect, useRef, useState, diff --git a/Libraries/Components/View/View.js b/Libraries/Components/View/View.js index b67b5c7b7d76e9..a5524a8b394f6a 100644 --- a/Libraries/Components/View/View.js +++ b/Libraries/Components/View/View.js @@ -12,8 +12,8 @@ import type {ViewProps} from './ViewPropTypes'; import flattenStyle from '../../StyleSheet/flattenStyle'; import TextAncestor from '../../Text/TextAncestor'; -import ViewAncestor from './ViewAncestor'; import {getAccessibilityRoleFromRole} from '../../Utilities/AcessibilityMapping'; +import ViewAncestor from './ViewAncestor'; import ViewNativeComponent from './ViewNativeComponent'; import * as React from 'react'; import {useContext} from 'react'; diff --git a/Libraries/Text/Text.js b/Libraries/Text/Text.js index 6a6310d476d67e..bf2b366db9facf 100644 --- a/Libraries/Text/Text.js +++ b/Libraries/Text/Text.js @@ -11,6 +11,7 @@ import type {PressEvent} from '../Types/CoreEventTypes'; import type {TextProps} from './TextProps'; +import ViewAncestor from '../Components/View/ViewAncestor'; import * as PressabilityDebug from '../Pressability/PressabilityDebug'; import usePressability from '../Pressability/usePressability'; import flattenStyle from '../StyleSheet/flattenStyle'; @@ -18,7 +19,6 @@ import processColor from '../StyleSheet/processColor'; import {getAccessibilityRoleFromRole} from '../Utilities/AcessibilityMapping'; import Platform from '../Utilities/Platform'; import TextAncestor from './TextAncestor'; -import ViewAncestor from '../Components/View/ViewAncestor'; import {NativeText, NativeVirtualText} from './TextNativeComponent'; import * as React from 'react'; import {useContext, useMemo, useState} from 'react'; diff --git a/Libraries/Text/TextProps.js b/Libraries/Text/TextProps.js index 4213a29809b89f..0897dcbb1c6a38 100644 --- a/Libraries/Text/TextProps.js +++ b/Libraries/Text/TextProps.js @@ -61,7 +61,6 @@ export type TextProps = $ReadOnly<{| * For iOS see https://bit.ly/3P2jItf */ accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'), - 'aria-live'?: ?('polite' | 'assertive' | 'off'), onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed, accessibilityHint?: ?Stringish, @@ -100,6 +99,7 @@ export type TextProps = $ReadOnly<{| 'aria-checked'?: ?boolean | 'mixed', 'aria-disabled'?: ?boolean, 'aria-expanded'?: ?boolean, + 'aria-live'?: ?('polite' | 'assertive' | 'off'), 'aria-selected'?: ?boolean, /** diff --git a/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm index 288116bee39dd7..924c11398158c4 100644 --- a/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm @@ -101,6 +101,7 @@ - (void)mountChildComponentView:(UIView *)childCompone childComponentView, @(index), @([childComponentView.superview tag])); + if (_removeClippedSubviews) { [_reactSubviews insertObject:childComponentView atIndex:index]; } else { @@ -295,9 +296,8 @@ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const & self.accessibilityLiveRegion = newViewProps.accessibilityLiveRegion; } - BOOL isReactRootView = RCTIsReactRootView(self.reactTag); BOOL accessibilityLiveRegionEnabled = newViewProps.accessible && newViewProps.accessibilityLiveRegion != AccessibilityLiveRegion::None; - BOOL shouldAnnounceLiveRegionChanges = accessibilityLiveRegionEnabled && !isReactRootView; + BOOL shouldAnnounceLiveRegionChanges = accessibilityLiveRegionEnabled && ![self isReactRootView]; // `accessibilityLabel` if (oldViewProps.accessibilityLabel != newViewProps.accessibilityLabel) { diff --git a/packages/rn-tester/js/examples/Accessibility/AccessibilityExample.js b/packages/rn-tester/js/examples/Accessibility/AccessibilityExample.js index 90d3be4261adfc..aed09fefaec912 100644 --- a/packages/rn-tester/js/examples/Accessibility/AccessibilityExample.js +++ b/packages/rn-tester/js/examples/Accessibility/AccessibilityExample.js @@ -30,7 +30,6 @@ const { Platform, Switch, ScrollView, - Pressable, } = require('react-native'); import type {EventSubscription} from 'react-native/Libraries/vendor/emitter/EventEmitter'; @@ -1585,7 +1584,6 @@ function DisplayOptionStatusExample({ function AccessibilityLiveRegion(): React.Node { const [count, setCount] = React.useState(0); - const [messageCount, setMessageCount] = React.useState(0); const [enabled, setEnabled] = React.useState(false); const [disabled, setDisabled] = React.useState(false); const [liveRegion, setLiveRegion] = React.useState(true); @@ -1594,14 +1592,13 @@ function AccessibilityLiveRegion(): React.Node { <> setDisabled(disabled => !disabled)}> + onPress={() => setDisabled(previousState => !previousState)}> Click me to set Text state disabled - +