diff --git a/packages/react-native/Libraries/Components/Button.js b/packages/react-native/Libraries/Components/Button.js
index 081403800cd7..dcf0c92c3c3f 100644
--- a/packages/react-native/Libraries/Components/Button.js
+++ b/packages/react-native/Libraries/Components/Button.js
@@ -159,6 +159,7 @@ export type ButtonProps = $ReadOnly<{
'aria-checked'?: ?boolean | 'mixed',
'aria-disabled'?: ?boolean,
'aria-expanded'?: ?boolean,
+ 'aria-invalid'?: ?boolean,
'aria-selected'?: ?boolean,
/**
@@ -296,6 +297,7 @@ const Button: component(
'aria-checked': ariaChecked,
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
+ 'aria-invalid': ariaInvalid,
'aria-label': ariaLabel,
'aria-selected': ariaSelected,
importantForAccessibility,
@@ -331,6 +333,7 @@ const Button: component(
checked: ariaChecked ?? accessibilityState?.checked,
disabled: ariaDisabled ?? accessibilityState?.disabled,
expanded: ariaExpanded ?? accessibilityState?.expanded,
+ invalid: ariaInvalid ?? accessibilityState?.invalid,
selected: ariaSelected ?? accessibilityState?.selected,
};
diff --git a/packages/react-native/Libraries/Components/Pressable/Pressable.js b/packages/react-native/Libraries/Components/Pressable/Pressable.js
index ae4cb5e3fd48..c2991fbb637e 100644
--- a/packages/react-native/Libraries/Components/Pressable/Pressable.js
+++ b/packages/react-native/Libraries/Components/Pressable/Pressable.js
@@ -179,6 +179,7 @@ function Pressable(
'aria-checked': ariaChecked,
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
+ 'aria-invalid': ariaInvalid,
'aria-label': ariaLabel,
'aria-selected': ariaSelected,
cancelable,
@@ -218,6 +219,7 @@ function Pressable(
checked: ariaChecked ?? accessibilityState?.checked,
disabled: ariaDisabled ?? accessibilityState?.disabled,
expanded: ariaExpanded ?? accessibilityState?.expanded,
+ invalid: ariaInvalid ?? accessibilityState?.invalid,
selected: ariaSelected ?? accessibilityState?.selected,
};
diff --git a/packages/react-native/Libraries/Components/Pressable/__tests__/__snapshots__/Pressable-test.js.snap b/packages/react-native/Libraries/Components/Pressable/__tests__/__snapshots__/Pressable-test.js.snap
index 307aaba80c6a..36839b2d4e3f 100644
--- a/packages/react-native/Libraries/Components/Pressable/__tests__/__snapshots__/Pressable-test.js.snap
+++ b/packages/react-native/Libraries/Components/Pressable/__tests__/__snapshots__/Pressable-test.js.snap
@@ -8,6 +8,7 @@ exports[` should render as expected: should deep render when mocked
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -44,6 +45,7 @@ exports[` should render as expected: should deep render when not mo
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -80,6 +82,7 @@ exports[` should be disabled when disabled is true:
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -116,6 +119,7 @@ exports[` should be disabled when disabled is true:
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -152,6 +156,7 @@ exports[` should be disable
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -188,6 +193,7 @@ exports[` should be disable
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -224,6 +230,7 @@ exports[` shou
"checked": true,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -260,6 +267,7 @@ exports[` shou
"checked": true,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -296,6 +304,7 @@ exports[` sh
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -332,6 +341,7 @@ exports[` sh
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
diff --git a/packages/react-native/Libraries/Components/TextInput/TextInput.js b/packages/react-native/Libraries/Components/TextInput/TextInput.js
index 9cf46b2f6985..cb1947f91ced 100644
--- a/packages/react-native/Libraries/Components/TextInput/TextInput.js
+++ b/packages/react-native/Libraries/Components/TextInput/TextInput.js
@@ -356,6 +356,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
'aria-checked': ariaChecked,
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
+ 'aria-invalid': ariaInvalid,
'aria-selected': ariaSelected,
accessibilityState,
id,
@@ -620,6 +621,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
ariaChecked != null ||
ariaDisabled != null ||
ariaExpanded != null ||
+ ariaInvalid != null ||
ariaSelected != null
) {
_accessibilityState = {
@@ -627,6 +629,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
checked: ariaChecked ?? accessibilityState?.checked,
disabled: ariaDisabled ?? accessibilityState?.disabled,
expanded: ariaExpanded ?? accessibilityState?.expanded,
+ invalid: ariaInvalid ?? accessibilityState?.invalid,
selected: ariaSelected ?? accessibilityState?.selected,
};
}
diff --git a/packages/react-native/Libraries/Components/TextInput/__tests__/TextInput-test.js b/packages/react-native/Libraries/Components/TextInput/__tests__/TextInput-test.js
index 86a0d33cecc7..1799f79df5f0 100644
--- a/packages/react-native/Libraries/Components/TextInput/__tests__/TextInput-test.js
+++ b/packages/react-native/Libraries/Components/TextInput/__tests__/TextInput-test.js
@@ -415,6 +415,7 @@ jest.unmock('../TextInput');
"checked": true,
"disabled": true,
"expanded": true,
+ "invalid": true,
"selected": true,
}
}
@@ -434,7 +435,6 @@ jest.unmock('../TextInput');
aria-flowto="flowto"
aria-haspopup={true}
aria-hidden={true}
- aria-invalid={true}
aria-keyshortcuts="Cmd+S"
aria-label="label"
aria-labelledby="labelledby"
diff --git a/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js b/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js
index 776076101bf8..9bba5172d5e2 100644
--- a/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js
+++ b/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js
@@ -147,6 +147,8 @@ class TouchableBounce extends React.Component<
this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,
expanded:
this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,
+ invalid:
+ this.props['aria-invalid'] ?? this.props.accessibilityState?.invalid,
selected:
this.props['aria-selected'] ?? this.props.accessibilityState?.selected,
};
diff --git a/packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js b/packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js
index 1cc6533cd9eb..2e3cc0053fdf 100644
--- a/packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js
+++ b/packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js
@@ -308,6 +308,8 @@ class TouchableNativeFeedback extends React.Component<
this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,
expanded:
this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,
+ invalid:
+ this.props['aria-invalid'] ?? this.props.accessibilityState?.invalid,
selected:
this.props['aria-selected'] ?? this.props.accessibilityState?.selected,
};
diff --git a/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js b/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js
index c965c5ad02f2..388e6086f17d 100644
--- a/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js
+++ b/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js
@@ -271,6 +271,8 @@ class TouchableOpacity extends React.Component<
this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,
expanded:
this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,
+ invalid:
+ this.props['aria-invalid'] ?? this.props.accessibilityState?.invalid,
selected:
this.props['aria-selected'] ?? this.props.accessibilityState?.selected,
};
diff --git a/packages/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js b/packages/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js
index 037ac5255c1e..febaf3fb6e47 100755
--- a/packages/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js
+++ b/packages/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js
@@ -243,6 +243,7 @@ export default function TouchableWithoutFeedback(
checked: props['aria-checked'] ?? props.accessibilityState?.checked,
disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
+ invalid: props['aria-invalid'] ?? props.accessibilityState?.invalid,
selected: props['aria-selected'] ?? props.accessibilityState?.selected,
};
diff --git a/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableNativeFeedback-test.js.snap b/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableNativeFeedback-test.js.snap
index 6802f754650b..d693f9deab26 100644
--- a/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableNativeFeedback-test.js.snap
+++ b/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableNativeFeedback-test.js.snap
@@ -8,6 +8,7 @@ exports[` should render as expected 1`] = `
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -39,6 +40,7 @@ exports[` shoul
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -101,6 +104,7 @@ exports[` should be disabled when disab
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -194,6 +200,7 @@ exports[`TouchableWithoutFeedback renders correctly 1`] = `
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
diff --git a/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableOpacity-test.js.snap b/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableOpacity-test.js.snap
index 17f2e7f6f764..860b6144a061 100644
--- a/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableOpacity-test.js.snap
+++ b/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableOpacity-test.js.snap
@@ -8,6 +8,7 @@ exports[`TouchableOpacity renders correctly 1`] = `
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -49,6 +50,7 @@ exports[`TouchableOpacity renders in disabled state when a disabled prop is pass
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -90,6 +92,7 @@ exports[`TouchableOpacity renders in disabled state when a key disabled in acces
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
diff --git a/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableWithoutFeedback-test.js.snap b/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableWithoutFeedback-test.js.snap
index 932c5f133c03..44cee36dee35 100644
--- a/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableWithoutFeedback-test.js.snap
+++ b/packages/react-native/Libraries/Components/Touchable/__tests__/__snapshots__/TouchableWithoutFeedback-test.js.snap
@@ -8,6 +8,7 @@ exports[`TouchableWithoutFeedback renders correctly 1`] = `
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -33,6 +34,7 @@ exports[`TouchableWithoutFeedback with disabled state should be disabled when di
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -56,6 +58,7 @@ exports[`TouchableWithoutFeedback with disabled state should be disabled when di
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -79,6 +82,7 @@ exports[`TouchableWithoutFeedback with disabled state should disable button when
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -102,6 +106,7 @@ exports[`TouchableWithoutFeedback with disabled state should keep accessibilityS
"checked": true,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -125,6 +130,7 @@ exports[`TouchableWithoutFeedback with disabled state should overwrite accessibi
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
diff --git a/packages/react-native/Libraries/Components/View/View.js b/packages/react-native/Libraries/Components/View/View.js
index 5e1cb1469023..edd967d5c24c 100644
--- a/packages/react-native/Libraries/Components/View/View.js
+++ b/packages/react-native/Libraries/Components/View/View.js
@@ -40,6 +40,7 @@ const View: component(
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
'aria-hidden': ariaHidden,
+ 'aria-invalid': ariaInvalid,
'aria-label': ariaLabel,
'aria-labelledby': ariaLabelledBy,
'aria-live': ariaLive,
@@ -67,12 +68,14 @@ const View: component(
ariaChecked != null ||
ariaDisabled != null ||
ariaExpanded != null ||
+ ariaInvalid != null ||
ariaSelected != null
? {
busy: ariaBusy ?? accessibilityState?.busy,
checked: ariaChecked ?? accessibilityState?.checked,
disabled: ariaDisabled ?? accessibilityState?.disabled,
expanded: ariaExpanded ?? accessibilityState?.expanded,
+ invalid: ariaInvalid ?? accessibilityState?.invalid,
selected: ariaSelected ?? accessibilityState?.selected,
}
: undefined;
diff --git a/packages/react-native/Libraries/Components/View/ViewAccessibility.d.ts b/packages/react-native/Libraries/Components/View/ViewAccessibility.d.ts
index bf4bee395385..c35eadfcc543 100644
--- a/packages/react-native/Libraries/Components/View/ViewAccessibility.d.ts
+++ b/packages/react-native/Libraries/Components/View/ViewAccessibility.d.ts
@@ -56,6 +56,7 @@ export interface AccessibilityProps
'aria-checked'?: boolean | 'mixed' | undefined;
'aria-disabled'?: boolean | undefined;
'aria-expanded'?: boolean | undefined;
+ 'aria-invalid'?: boolean | undefined;
'aria-selected'?: boolean | undefined;
/**
@@ -161,6 +162,10 @@ export interface AccessibilityState {
* When present, informs accessible tools the element is expanded or collapsed
*/
expanded?: boolean | undefined;
+ /**
+ * When present, informs accessible tools the element is invalid
+ */
+ invalid?: boolean | undefined;
}
export interface AccessibilityValue {
diff --git a/packages/react-native/Libraries/Components/View/ViewAccessibility.js b/packages/react-native/Libraries/Components/View/ViewAccessibility.js
index 08ba5e0a0477..78474e1fd035 100644
--- a/packages/react-native/Libraries/Components/View/ViewAccessibility.js
+++ b/packages/react-native/Libraries/Components/View/ViewAccessibility.js
@@ -186,6 +186,10 @@ export type AccessibilityState = {
* When present, informs accessible tools the element is expanded or collapsed
*/
expanded?: ?boolean,
+ /**
+ * When present, informs accessible tools the element is invalid
+ */
+ invalid?: ?boolean,
...
};
@@ -405,6 +409,7 @@ export type AccessibilityProps = $ReadOnly<{
'aria-checked'?: ?boolean | 'mixed',
'aria-disabled'?: ?boolean,
'aria-expanded'?: ?boolean,
+ 'aria-invalid'?: ?boolean,
'aria-selected'?: ?boolean,
/** A value indicating whether the accessibility elements contained within
* this accessibility element are hidden.
diff --git a/packages/react-native/Libraries/Components/View/__tests__/View-test.js b/packages/react-native/Libraries/Components/View/__tests__/View-test.js
index 39db27fc3428..7cc0f13a1956 100644
--- a/packages/react-native/Libraries/Components/View/__tests__/View-test.js
+++ b/packages/react-native/Libraries/Components/View/__tests__/View-test.js
@@ -116,6 +116,7 @@ describe('View compat with web', () => {
"checked": true,
"disabled": true,
"expanded": true,
+ "invalid": true,
"selected": true,
}
}
@@ -140,7 +141,6 @@ describe('View compat with web', () => {
aria-errormessage="errormessage"
aria-flowto="flowto"
aria-haspopup={true}
- aria-invalid={true}
aria-keyshortcuts="Cmd+S"
aria-level={3}
aria-modal={true}
diff --git a/packages/react-native/Libraries/Components/__tests__/__snapshots__/Button-test.js.snap b/packages/react-native/Libraries/Components/__tests__/__snapshots__/Button-test.js.snap
index 5b4294e0e8c8..be81fb834025 100644
--- a/packages/react-native/Libraries/Components/__tests__/__snapshots__/Button-test.js.snap
+++ b/packages/react-native/Libraries/Components/__tests__/__snapshots__/Button-test.js.snap
@@ -9,6 +9,7 @@ exports[` should be disabled and it should set accessibilityState to d
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -75,6 +76,7 @@ exports[` should be disabled when disabled is empty and accessibilityS
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -141,6 +143,7 @@ exports[` should be disabled when disabled={true} and accessibilitySta
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -207,6 +210,7 @@ exports[` should be set importantForAccessibility={no-hide-descendants
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -269,6 +273,7 @@ exports[` should be set importantForAccessibility={no-hide-descendants
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -331,6 +336,7 @@ exports[` should not be disabled when disabled={false} and accessibili
"checked": undefined,
"disabled": false,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -393,6 +399,7 @@ exports[` should not be disabled when disabled={false} and accessibili
"checked": undefined,
"disabled": false,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -455,6 +462,7 @@ exports[` should overwrite accessibilityState with value of disabled p
"checked": undefined,
"disabled": true,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
@@ -521,6 +529,7 @@ exports[` should render as expected 1`] = `
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
diff --git a/packages/react-native/Libraries/Image/Image.android.js b/packages/react-native/Libraries/Image/Image.android.js
index fa4f65243bd2..a4960b26ff33 100644
--- a/packages/react-native/Libraries/Image/Image.android.js
+++ b/packages/react-native/Libraries/Image/Image.android.js
@@ -193,6 +193,7 @@ let BaseImage: AbstractImageAndroid = React.forwardRef(
checked: props['aria-checked'] ?? props.accessibilityState?.checked,
disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
+ invalid: props['aria-invalid'] ?? props.accessibilityState?.invalid,
selected: props['aria-selected'] ?? props.accessibilityState?.selected,
},
};
diff --git a/packages/react-native/Libraries/Image/Image.ios.js b/packages/react-native/Libraries/Image/Image.ios.js
index 337411aff731..1c42945d1339 100644
--- a/packages/react-native/Libraries/Image/Image.ios.js
+++ b/packages/react-native/Libraries/Image/Image.ios.js
@@ -144,6 +144,7 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
'aria-checked': ariaChecked,
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
+ 'aria-invalid': ariaInvalid,
'aria-selected': ariaSelected,
src,
...restProps
@@ -154,6 +155,7 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
checked: ariaChecked ?? props.accessibilityState?.checked,
disabled: ariaDisabled ?? props.accessibilityState?.disabled,
expanded: ariaExpanded ?? props.accessibilityState?.expanded,
+ invalid: ariaInvalid ?? props.accessibilityState?.invalid,
selected: ariaSelected ?? props.accessibilityState?.selected,
};
const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel;
diff --git a/packages/react-native/Libraries/Image/__tests__/__snapshots__/Image-test.js.snap b/packages/react-native/Libraries/Image/__tests__/__snapshots__/Image-test.js.snap
index 310832436732..281702d7cb9d 100644
--- a/packages/react-native/Libraries/Image/__tests__/__snapshots__/Image-test.js.snap
+++ b/packages/react-native/Libraries/Image/__tests__/__snapshots__/Image-test.js.snap
@@ -18,6 +18,7 @@ exports[`Image should render as when not mocked 1`] = `
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
diff --git a/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorStackFrames-test.js.snap b/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorStackFrames-test.js.snap
index 831c0e692e77..8388851ae490 100644
--- a/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorStackFrames-test.js.snap
+++ b/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorStackFrames-test.js.snap
@@ -146,6 +146,7 @@ exports[`LogBoxInspectorStackFrames should render stack frames with 1 frame coll
"checked": undefined,
"disabled": undefined,
"expanded": undefined,
+ "invalid": undefined,
"selected": undefined,
}
}
diff --git a/packages/react-native/Libraries/Text/Text.js b/packages/react-native/Libraries/Text/Text.js
index aef37d83b35d..ea6a7797eb78 100644
--- a/packages/react-native/Libraries/Text/Text.js
+++ b/packages/react-native/Libraries/Text/Text.js
@@ -50,6 +50,7 @@ const TextImpl: component(
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
'aria-label': ariaLabel,
+ 'aria-invalid': ariaInvalid,
'aria-selected': ariaSelected,
children,
ellipsizeMode,
@@ -85,6 +86,7 @@ const TextImpl: component(
ariaChecked != null ||
ariaDisabled != null ||
ariaExpanded != null ||
+ ariaInvalid != null ||
ariaSelected != null
) {
if (_accessibilityState != null) {
@@ -93,6 +95,7 @@ const TextImpl: component(
checked: ariaChecked ?? _accessibilityState.checked,
disabled: ariaDisabled ?? _accessibilityState.disabled,
expanded: ariaExpanded ?? _accessibilityState.expanded,
+ invalid: ariaInvalid ?? _accessibilityState.invalid,
selected: ariaSelected ?? _accessibilityState.selected,
};
} else {
@@ -101,6 +104,7 @@ const TextImpl: component(
checked: ariaChecked,
disabled: ariaDisabled,
expanded: ariaExpanded,
+ invalid: ariaInvalid,
selected: ariaSelected,
};
}
diff --git a/packages/react-native/Libraries/Text/TextProps.js b/packages/react-native/Libraries/Text/TextProps.js
index 805abe9cf1e6..0d59121b213f 100644
--- a/packages/react-native/Libraries/Text/TextProps.js
+++ b/packages/react-native/Libraries/Text/TextProps.js
@@ -162,6 +162,7 @@ type TextBaseProps = $ReadOnly<{
'aria-checked'?: ?boolean | 'mixed',
'aria-disabled'?: ?boolean,
'aria-expanded'?: ?boolean,
+ 'aria-invalid'?: ?boolean,
'aria-selected'?: ?boolean,
/**
diff --git a/packages/react-native/Libraries/Text/__tests__/Text-test.js b/packages/react-native/Libraries/Text/__tests__/Text-test.js
index f0a6a54479b5..fb4c5c3c21f0 100644
--- a/packages/react-native/Libraries/Text/__tests__/Text-test.js
+++ b/packages/react-native/Libraries/Text/__tests__/Text-test.js
@@ -128,6 +128,7 @@ describe('Text compat with web', () => {
"checked": true,
"disabled": true,
"expanded": true,
+ "invalid": true,
"selected": true,
}
}
@@ -147,7 +148,6 @@ describe('Text compat with web', () => {
aria-flowto="flowto"
aria-haspopup={true}
aria-hidden={true}
- aria-invalid={true}
aria-keyshortcuts="Cmd+S"
aria-labelledby="labelledby"
aria-level={3}
diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap
index 9d91aebc889d..a8b6741425a4 100644
--- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap
+++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap
@@ -1518,6 +1518,7 @@ exports[`public API should not change unintentionally Libraries/Components/Butto
\\"aria-checked\\"?: ?boolean | \\"mixed\\",
\\"aria-disabled\\"?: ?boolean,
\\"aria-expanded\\"?: ?boolean,
+ \\"aria-invalid\\"?: ?boolean,
\\"aria-selected\\"?: ?boolean,
importantForAccessibility?: ?(\\"auto\\" | \\"yes\\" | \\"no\\" | \\"no-hide-descendants\\"),
accessibilityHint?: ?string,
@@ -3629,6 +3630,7 @@ export type AccessibilityState = {
checked?: ?boolean | \\"mixed\\",
busy?: ?boolean,
expanded?: ?boolean,
+ invalid?: ?boolean,
...
};
export type AccessibilityValue = $ReadOnly<{
@@ -3674,6 +3676,7 @@ export type AccessibilityProps = $ReadOnly<{
\\"aria-checked\\"?: ?boolean | \\"mixed\\",
\\"aria-disabled\\"?: ?boolean,
\\"aria-expanded\\"?: ?boolean,
+ \\"aria-invalid\\"?: ?boolean,
\\"aria-selected\\"?: ?boolean,
\\"aria-hidden\\"?: ?boolean,
}>;
@@ -7833,6 +7836,7 @@ type TextBaseProps = $ReadOnly<{
\\"aria-checked\\"?: ?boolean | \\"mixed\\",
\\"aria-disabled\\"?: ?boolean,
\\"aria-expanded\\"?: ?boolean,
+ \\"aria-invalid\\"?: ?boolean,
\\"aria-selected\\"?: ?boolean,
\\"aria-labelledby\\"?: ?string,
children?: ?React.Node,
diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm
index 92b8b1d6309d..05f9a420ace6 100644
--- a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm
+++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm
@@ -1272,6 +1272,10 @@ - (NSString *)accessibilityValue
[valueComponents addObject:RCTLocalizedString("busy", "an element currently being updated or modified")];
}
+ if (accessibilityState.invalid) {
+ [valueComponents addObject:RCTLocalizedString("invalid", "an input field which has failed validation or does not conform to the expected format")];
+ }
+
// Using super.accessibilityValue:
// 1. to access the value that is set to accessibilityValue in updateProps
// 2. can't access from self.accessibilityElement because it resolves to self
diff --git a/packages/react-native/React/Views/RCTView.m b/packages/react-native/React/Views/RCTView.m
index 7fd1f3453b01..addcc000c0c2 100644
--- a/packages/react-native/React/Views/RCTView.m
+++ b/packages/react-native/React/Views/RCTView.m
@@ -325,6 +325,8 @@ - (NSString *)accessibilityValue
RCTLocalizedString("collapsed", "a menu, dialog, accordian panel, or other widget which is collapsed"),
@"mixed" :
RCTLocalizedString("mixed", "a checkbox, radio button, or other widget which is both checked and unchecked"),
+ @"invalid" :
+ RCTLocalizedString("invalid", "an input field which has failed validation or does not conform to the expected format"),
};
});
@@ -369,6 +371,9 @@ - (NSString *)accessibilityValue
if ([state isEqualToString:@"busy"] && [val isKindOfClass:[NSNumber class]] && [val boolValue]) {
[valueComponents addObject:rolesAndStatesDescription[@"busy"]];
}
+ if ([state isEqualToString:@"invalid"] && [val isKindOfClass:[NSNumber class]] && [val boolValue]) {
+ [valueComponents addObject:rolesAndStatesDescription[@"invalid"]];
+ }
}
// Handle accessibilityValue.
diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java
index c3a0326a333b..251b225b449b 100644
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java
@@ -60,6 +60,7 @@ public abstract class BaseViewManagerNutsbalk
Opsomming
besig
+ ongeldig
is uitgevou
is ingevou
ontkies
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ar/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ar/strings.xml
index 09606420a91f..cfebef03b82f 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ar/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ar/strings.xml
@@ -22,6 +22,7 @@
شريط الأدوات
ملخص
مشغول
+ غير صالح
موسع
مطوي
غير محدَد
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bg/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bg/strings.xml
index a50ed8236cf7..30e4a776744f 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bg/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bg/strings.xml
@@ -22,6 +22,7 @@
Лента с инструменти
Обобщение
заето
+ невалидно
разширено
свито
неизбрано
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bn/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bn/strings.xml
index 1f097ede4442..9b8005388211 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bn/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-bn/strings.xml
@@ -22,6 +22,7 @@
টুল বার
সারসংক্ষেপ
ব্যস্ত
+ অবৈধ
বাড়ানো হয়েছে
ছোট করা হয়েছে
আনসিলেক্ট করা হয়েছে
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-cs/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-cs/strings.xml
index 53b972bbfd8f..2569c8322baa 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-cs/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-cs/strings.xml
@@ -22,6 +22,7 @@
Panel nástrojů
Přehled
zaneprázdněno
+ neplatné
rozbaleno
sbaleno
nevybráno
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-da/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-da/strings.xml
index 6c51adb91eca..ff344ab99ed6 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-da/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-da/strings.xml
@@ -19,6 +19,7 @@
Værktøjslinje
Oversigt
optaget
+ ugyldigt
udvidet
skjult
fravalgt
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-de/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-de/strings.xml
index d0aaf6106fe4..bf28dbd9ae25 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-de/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-de/strings.xml
@@ -19,6 +19,7 @@
Symbolleiste
Übersicht
in Gebrauch
+ ungültig
eingeblendet
ausgeblendet
nicht ausgewählt
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-el/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-el/strings.xml
index 0fdf564435f0..c7e9365d2510 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-el/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-el/strings.xml
@@ -22,6 +22,7 @@
Γραμμή εργαλείων
Σύνοψη
απασχολημένος/η
+ άκυρος
διευρυμένο
συμπτυγμένο
μη επιλεγμένα
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es-rES/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es-rES/strings.xml
index d3200129fe5e..614e47f795bc 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es-rES/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es-rES/strings.xml
@@ -22,6 +22,7 @@
Barra de herramientas
Resumen
ocupado
+ inválido
ampliado
contraído
sin seleccionar
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es/strings.xml
index b9781f5e9108..39b782cbfab5 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-es/strings.xml
@@ -22,6 +22,7 @@
Barra de herramientas
Resumen
ocupado
+ inválido
expandido
contraído
no seleccionado
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-et/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-et/strings.xml
index ba66aff65d1d..1299dfb40a0f 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-et/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-et/strings.xml
@@ -21,6 +21,7 @@
Tööriistariba
Kokkuvõte
hõivatud
+ vigane
laiendatud
ahendatud
valimata
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fa/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fa/strings.xml
index e669a7bb65af..616db7bc6c01 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fa/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fa/strings.xml
@@ -22,6 +22,7 @@
نوار ابزار
خلاصه
مشغول
+ نامعتبر
بزرگشده
کوچکشده
لغو انتخاب شد
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fi/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fi/strings.xml
index ce80c989f9e7..1765d2980eaf 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fi/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fi/strings.xml
@@ -22,6 +22,7 @@
Työkalupalkki
Yhteenveto
varattu
+ virheellinen
laajennettu
pienennetty
ei valittu
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr-rCA/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr-rCA/strings.xml
index 116e8fc71442..5d965d64fa8f 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr-rCA/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr-rCA/strings.xml
@@ -20,6 +20,7 @@
Barre d’outils
Résumé
en cours de traitement
+ invalide
agrandi
réduit
désélectionné
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr/strings.xml
index aad6fa4a4e95..2bfed1e121ce 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-fr/strings.xml
@@ -20,6 +20,7 @@
Barre d’outils
Récapitulatif
opération en cours
+ invalide
agrandi
réduit
désélectionné(s)
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-gu/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-gu/strings.xml
index 6dac5291f783..fcc17c08b3d0 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-gu/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-gu/strings.xml
@@ -22,6 +22,7 @@
ટૂલ બાર
સારાંશ
વ્યસ્ત
+ અમાન
વિસ્તૃત
નાનું
પસંદગીમાંથી કાઢી નાખ્યું
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hi/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hi/strings.xml
index 17e5277843ad..4741e2ec4d5b 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hi/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hi/strings.xml
@@ -22,6 +22,7 @@
टूल बार
सारांश
व्यस्त
+ अवैध
बड़ा किया गया
छोटा किया गया
नहीं चुने गए
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hr/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hr/strings.xml
index d2d2419b247b..481753c42729 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hr/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hr/strings.xml
@@ -22,6 +22,7 @@
Traka s alatima
Sažetak
zauzeto
+ nevažeći
prošireno
sažeto
poništen odabir
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hu/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hu/strings.xml
index ea922b64737f..13e74fe10e30 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hu/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-hu/strings.xml
@@ -22,6 +22,7 @@
Eszköztár
Összegzés
elfoglalt
+ érvénytelen
kibontva
összecsukva
nincs kiválasztva
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-it/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-it/strings.xml
index 0a87368ca7c5..cb8659100002 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-it/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-it/strings.xml
@@ -18,6 +18,7 @@
Barra degli strumenti
Riepilogo
occupato
+ non valido/a
aperto
chiuso
non selezionato
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-iw/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-iw/strings.xml
index d032407ea5be..adb7533492f9 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-iw/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-iw/strings.xml
@@ -22,6 +22,7 @@
סרגל כלים
סיכום
תפוס
+ לא תקין
מורחב
מצומצם
הבחירה בוטלה
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ja/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ja/strings.xml
index 871ca3b04aa5..48e5dc44dedf 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ja/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ja/strings.xml
@@ -22,6 +22,7 @@
ツールバー
概要
作業中
+ 無効
展開中
縮小中
未選択
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml
index c41275f66749..d3f57d5b45c2 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml
@@ -21,6 +21,7 @@
ხელსაწყოების ზოლი
შეჯამება
დაკავებული
+ არასწორი
გაშლილი
აკეცილი
აურჩეველი
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-km/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-km/strings.xml
index 88e3287d26a3..489691626baa 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-km/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-km/strings.xml
@@ -22,6 +22,7 @@
របារឧបករណ៍
សេចក្ដីសង្ខេប
ជាប់រវល់
+ មិនត្រឹមត្រូវ
បានពង្រីក
បានបង្រួម
បាបនដោះការជ្រើសរើស
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-kn/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-kn/strings.xml
index 15c52aff789e..2fa03d31218f 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-kn/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-kn/strings.xml
@@ -22,6 +22,7 @@
ಟೂಲ್ ಬಾರ್
ಸಾರಾಂಶ
ಕಾರ್ಯನಿರತ
+ ಅಮಾನ
ವಿಸ್ತರಿಸಲಾಗಿದೆ
ಮುಚ್ಚಿದೆ
ಆಯ್ಕೆ ರದ್ದುಮಾಡಲಾಗಿದೆ
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ko/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ko/strings.xml
index 7370e6d18ac6..5eab6dba9459 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ko/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ko/strings.xml
@@ -22,6 +22,7 @@
도구 표시줄
요약
처리 중
+ 유효하지 않음
확대됨
숨겨짐
선택되지 않음
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lt/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lt/strings.xml
index 454a465ec4c3..491dc3d16697 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lt/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lt/strings.xml
@@ -22,6 +22,7 @@
Įrankių juosta
Suvestinė
naudojama
+ neteisinga
išskleista
sutraukta
pasirinkimas atšauktas
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml
index 903d064e649c..6d36addb5592 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml
@@ -22,6 +22,7 @@
Rīkjosla
Kopsavilkums
aizņemts
+ nepareizs
izvērsts
sakļauts
nav atlasīts
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mk/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mk/strings.xml
index 9ed07d6fdf4c..66d52d91c63c 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mk/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mk/strings.xml
@@ -22,6 +22,7 @@
Лента со алатки
Резиме
зафатено
+ невалидно
проширено
собрано
изборот е поништен
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ml/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ml/strings.xml
index a9aa446a89b7..8fa6cf40913d 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ml/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ml/strings.xml
@@ -22,6 +22,7 @@
ടൂൾ ബാർ
സംഗ്രഹം
തിരക്കിലാണ്
+ അസാധുവായ
വിപുലീകരിച്ചു
ചുരുക്കി
തിരഞ്ഞെടുത്തത് മാറ്റി
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mr/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mr/strings.xml
index bf953bf7a295..53634fef49ca 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mr/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mr/strings.xml
@@ -22,6 +22,7 @@
टूल बार
सारांश
व्यग्र
+ अवैध
विस्तारित केले
संकुचित केले
निवड रद्द केलेले
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ms/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ms/strings.xml
index c1091f8d92ff..2398ea33dbff 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ms/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ms/strings.xml
@@ -20,6 +20,7 @@
Bar Alat
Ringkasan
sibuk
+ tidak sah
dikembangkan
diruntuhkan
dinyahpilih
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-my/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-my/strings.xml
index 8a8424acc41b..98267aa88d18 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-my/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-my/strings.xml
@@ -22,6 +22,7 @@
ကိရိယာ ဘားတန်း
အနှစ်ချုပ်
လုပ်ဆောင်နေဆဲ
+ မှန်ကန်မှုမရှိ
ချဲ့ထားပြီး
ခေါက်သိမ်းထားပါတယ်
ရွေးမထားပါ
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-nl/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-nl/strings.xml
index feeed53f1ae5..e27d136948b2 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-nl/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-nl/strings.xml
@@ -19,6 +19,7 @@
Werkbalk
Samenvatting
bezig
+ ongeldig
uitgevouwen
samengevouwen
gedeselecteerd
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pa/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pa/strings.xml
index 7cc4e095fa7f..eb0649e7895c 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pa/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pa/strings.xml
@@ -22,6 +22,7 @@
ਟੂਲ ਬਾਰ
ਸਾਰ
ਵਿਅਸਤ
+ ਅਵੈਧ
ਵਿਸਤਾਰ ਕੀਤਾ ਗਿਆ
ਸਮੇਟਿਆ ਗਿਆ
ਚੋਣ ਹਟਾਈ ਗਈ
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pl/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pl/strings.xml
index 040ce847300b..21aca3e015c9 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pl/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pl/strings.xml
@@ -19,6 +19,7 @@
Pasek narzędzi
Podsumowanie
zajęte
+ nieprawidłowe
rozwinięte
zwinięte
nie wybrano
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt-rPT/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt-rPT/strings.xml
index f3afd9bf3e55..00ad35f9d1c3 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt-rPT/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt-rPT/strings.xml
@@ -21,6 +21,7 @@
Barra de ferramentas
Resumo
ocupado
+ inválido
expandido
fechado
não selecionado
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt/strings.xml
index 940fdce4c0b6..1c3691c409f3 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-pt/strings.xml
@@ -22,6 +22,7 @@
Barra de ferramentas
Resumo
ocupado
+ inválido
expandido
recolhido
desmarcados
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ro/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ro/strings.xml
index 571d7e6f357d..2a433aaf4621 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ro/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ro/strings.xml
@@ -20,6 +20,7 @@
Bară de instrumente
Rezumat
ocupat
+ invalid
extins
restrâns
neselectat
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ru/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ru/strings.xml
index 3d4088ffc97f..62eaa6377cf4 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ru/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ru/strings.xml
@@ -22,6 +22,7 @@
Панель инструментов
Сводка
занято
+ недействительно
развернуто
свернуто
не выбрано
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-si/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-si/strings.xml
index 5aeb46293d7a..9f713adaf8c2 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-si/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-si/strings.xml
@@ -22,6 +22,7 @@
මෙවලම් තීරුව
සාරාංශය
කාර්යබහුලයි
+ අවලංගු
විහිදුවන ලදි
හකුළන ලදී
තේරීම ඉවත් කරන ලද
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sk/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sk/strings.xml
index 7d7f4b6c603f..217fdfe7af8f 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sk/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sk/strings.xml
@@ -22,6 +22,7 @@
Panel s nástrojmi
Súhrn
obsadené
+ neplatné
rozbalené
zbalené
nevybrané
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sl/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sl/strings.xml
index a70f4bfac881..71aaa397415e 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sl/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sl/strings.xml
@@ -22,6 +22,7 @@
Vrstica z orodji
Povzetek
zasedeno
+ neveljavno
razširjen
strnjeno
neizbrano
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sq/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sq/strings.xml
index 4b681fa5da26..4661ac8ab2b8 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sq/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sq/strings.xml
@@ -22,6 +22,7 @@
Shiriti i mjeteve
Përmbledhja
I zënë
+ I pavlefshëm
zgjeruar
palosur
i pazgjedhur
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sr/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sr/strings.xml
index 28d6ea337cbd..9602f449a684 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sr/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sr/strings.xml
@@ -22,6 +22,7 @@
Трака са алаткама
Резиме
заузето
+ неважећи
проширено
скупљено
избор опозван
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sv/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sv/strings.xml
index c40edbe77235..91eb4e53b88a 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sv/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sv/strings.xml
@@ -21,6 +21,7 @@
Verktygsfält
Sammanfattning
upptagen
+ ogiltig
utökad
minimerad
avmarkerad
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sw/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sw/strings.xml
index a26adb80d40d..69f45eeadfb2 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sw/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-sw/strings.xml
@@ -22,6 +22,7 @@
Upau wa Zana
Muhtasari
shughulini
+ batili
imepanuliwa
imekunjwa
haijateuliwa
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ta/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ta/strings.xml
index 9823eab70ede..35f3798dac26 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ta/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ta/strings.xml
@@ -22,6 +22,7 @@
கருவிப்பட்டி
சுருக்கம்
பணிமிகுதி
+ செல்லாதது
விரிவாக்கப்பட்டது
சுருக்கப்பட்டது
தேர்வுநீக்கப்பட்டது
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-te/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-te/strings.xml
index f08a251c1855..04efbc5fe8e7 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-te/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-te/strings.xml
@@ -22,6 +22,7 @@
టూల్ బార్
సమ్మరీ
బిజీగా ఉన్నారు
+ చెల్లన
విస్తరింపబడింది
కుదించబడింది
ఎంపిక తీసివేసారు
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-th/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-th/strings.xml
index f78b401f7b0a..0c86ee15d758 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-th/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-th/strings.xml
@@ -22,6 +22,7 @@
แถบเครื่องมือ
สรุป
ไม่ว่าง
+ ไม่ถูกต้อง
ขยายแล้ว
ยุบแล้ว
ไม่ได้เลือก
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-tr/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-tr/strings.xml
index f8866dfe87d6..7fbe68717144 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-tr/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-tr/strings.xml
@@ -22,6 +22,7 @@
Araç Çubuğu
Özet
meşgul
+ geçersiz
genişletilmiş
daraltılmış
seçili değil
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-uk/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-uk/strings.xml
index 02c3e74feae6..f0573ddb7611 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-uk/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-uk/strings.xml
@@ -22,6 +22,7 @@
Панель інструментів
Зведення
зайнято
+ недійсний
розгорнуто
згорнуто
не вибрано
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ur/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ur/strings.xml
index 7d1bd49dc597..3edf3f5b985b 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ur/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ur/strings.xml
@@ -22,6 +22,7 @@
ٹول بار
خلاصہ
مصروف
+ غیر معتبر
توسیع کیا گیا
سکیڑا گیا
غیر منتخب کردہ
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-vi/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-vi/strings.xml
index 5a185889b86d..58f2320c22e5 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-vi/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-vi/strings.xml
@@ -20,6 +20,7 @@
Thanh công cụ
Tóm tắt
bận
+ không hợp lệ
đã mở rộng
đã thu gọn
không được chọn
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rCN/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rCN/strings.xml
index 3727372faeb3..1c3b33eb3dec 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rCN/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rCN/strings.xml
@@ -22,6 +22,7 @@
工具栏
摘要
忙碌中
+ 无效
已展开
已收起
未选中
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rHK/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rHK/strings.xml
index c2f4bc5e83e4..ca540c81496f 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rHK/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rHK/strings.xml
@@ -22,6 +22,7 @@
工具列
摘要
忙碌中
+ 無效
已展開
已收合
已取消選取
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rTW/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rTW/strings.xml
index b6d6018cc405..7642f0e60f65 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rTW/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-zh-rTW/strings.xml
@@ -22,6 +22,7 @@
工具列
摘要
忙碌中
+ 無效
已展開
已收合
已取消選取
diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values/strings.xml
index a2f6ad526315..5a712e887b14 100644
--- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values/strings.xml
+++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values/strings.xml
@@ -76,6 +76,10 @@
name="state_busy_description"
description="an element currently being updated or modified"
>busy
+ invalid
expanded{std::nullopt};
enum { Unchecked, Checked, Mixed, None } checked{None};
};
@@ -78,7 +79,7 @@ constexpr bool operator==(
const AccessibilityState& rhs) {
return lhs.disabled == rhs.disabled && lhs.selected == rhs.selected &&
lhs.checked == rhs.checked && lhs.busy == rhs.busy &&
- lhs.expanded == rhs.expanded;
+ lhs.expanded == rhs.expanded && lhs.invalid == rhs.invalid;
}
constexpr bool operator!=(
diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h
index 7b16f62dc543..6f2e9924a7bd 100644
--- a/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h
+++ b/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h
@@ -170,6 +170,10 @@ inline void fromRawValue(
if (expanded != map.end()) {
fromRawValue(context, expanded->second, result.expanded);
}
+ auto invalid = map.find("invalid");
+ if (invalid != map.end()) {
+ fromRawValue(context, invalid->second, result.invalid);
+ }
}
inline std::string toString(
diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp
index f5ee897794e2..606816afe244 100644
--- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp
+++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp
@@ -454,6 +454,10 @@ inline static void updateAccessibilityStateProp(
resultState["busy"] = newState->busy;
}
+ if (!oldState.has_value() || newState->invalid != oldState->invalid) {
+ resultState["invalid"] = newState->invalid;
+ }
+
if (!oldState.has_value() || newState->expanded != oldState->expanded) {
resultState["expanded"] =
newState->expanded.has_value() && newState->expanded.value();