diff --git a/change/@react-native-windows-automation-channel-e3e061a4-0e5e-4c70-9158-8b61d0eebe2a.json b/change/@react-native-windows-automation-channel-e3e061a4-0e5e-4c70-9158-8b61d0eebe2a.json
new file mode 100644
index 00000000000..3cb7684cf91
--- /dev/null
+++ b/change/@react-native-windows-automation-channel-e3e061a4-0e5e-4c70-9158-8b61d0eebe2a.json
@@ -0,0 +1,7 @@
+{
+ "type": "patch",
+ "comment": "Add Tests",
+ "packageName": "@react-native-windows/automation-channel",
+ "email": "34109996+chiaramooney@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
diff --git a/change/react-native-windows-2f3ac2ef-b7c1-4ca2-b10d-ec0d29508646.json b/change/react-native-windows-2f3ac2ef-b7c1-4ca2-b10d-ec0d29508646.json
new file mode 100644
index 00000000000..f9f5099429c
--- /dev/null
+++ b/change/react-native-windows-2f3ac2ef-b7c1-4ca2-b10d-ec0d29508646.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "Add Tests",
+ "packageName": "react-native-windows",
+ "email": "34109996+chiaramooney@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
diff --git a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.lock.json b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.lock.json
index 79233b0d618..5434d1bc638 100644
--- a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.lock.json
+++ b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.lock.json
@@ -2,21 +2,21 @@
"version": 1,
"dependencies": {
"native,Version=v0.0": {
- "Microsoft.UI.Xaml": {
- "type": "Direct",
- "requested": "[2.8.0, )",
- "resolved": "2.8.0",
- "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
- "dependencies": {
- "Microsoft.Web.WebView2": "1.0.1264.42"
- }
- },
"Microsoft.Windows.CppWinRT": {
"type": "Direct",
"requested": "[2.0.230706.1, )",
"resolved": "2.0.230706.1",
"contentHash": "l0D7oCw/5X+xIKHqZTi62TtV+1qeSz7KVluNFdrJ9hXsst4ghvqQ/Yhura7JqRdZWBXAuDS0G0KwALptdoxweQ=="
},
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
+ },
"boost": {
"type": "Transitive",
"resolved": "1.83.0",
@@ -46,10 +46,10 @@
"Microsoft.SourceLink.Common": "1.1.1"
}
},
- "Microsoft.Web.WebView2": {
+ "Microsoft.Windows.SDK.BuildTools": {
"type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "resolved": "10.0.22621.756",
+ "contentHash": "7ZL2sFSioYm1Ry067Kw1hg0SCcW5kuVezC2SwjGbcPE61Nn+gTbH86T73G3LcEOVj0S3IZzNuE/29gZvOLS7VA=="
},
"common": {
"type": "Project",
@@ -74,7 +74,7 @@
"Folly": "[1.0.0, )",
"Microsoft.JavaScript.Hermes": "[0.1.23, )",
"Microsoft.SourceLink.GitHub": "[1.1.1, )",
- "Microsoft.UI.Xaml": "[2.8.0, )",
+ "Microsoft.WindowsAppSDK": "[1.5.240227000, )",
"ReactCommon": "[1.0.0, )",
"boost": "[1.83.0, )"
}
@@ -88,52 +88,80 @@
}
},
"native,Version=v0.0/win10-arm": {
- "Microsoft.Web.WebView2": {
- "type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
}
},
"native,Version=v0.0/win10-arm-aot": {
- "Microsoft.Web.WebView2": {
- "type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
}
},
"native,Version=v0.0/win10-arm64-aot": {
- "Microsoft.Web.WebView2": {
- "type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
}
},
"native,Version=v0.0/win10-x64": {
- "Microsoft.Web.WebView2": {
- "type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
}
},
"native,Version=v0.0/win10-x64-aot": {
- "Microsoft.Web.WebView2": {
- "type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
}
},
"native,Version=v0.0/win10-x86": {
- "Microsoft.Web.WebView2": {
- "type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
}
},
"native,Version=v0.0/win10-x86-aot": {
- "Microsoft.Web.WebView2": {
- "type": "Transitive",
- "resolved": "1.0.1264.42",
- "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+ "Microsoft.WindowsAppSDK": {
+ "type": "Direct",
+ "requested": "[1.5.240227000, )",
+ "resolved": "1.5.240227000",
+ "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
+ "dependencies": {
+ "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
+ }
}
}
}
diff --git a/packages/@react-native-windows/tester/src/js/examples-win/Button/ButtonExample.windows.js b/packages/@react-native-windows/tester/src/js/examples-win/Button/ButtonExample.windows.js
index 20e397fb40f..419f64868ce 100644
--- a/packages/@react-native-windows/tester/src/js/examples-win/Button/ButtonExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples-win/Button/ButtonExample.windows.js
@@ -221,6 +221,7 @@ exports.examples = [
accessibilityHint="Submit Button"
accessibilityPosInSet={1}
accessibilitySetSize={1}
+ accessibilityLiveRegion='assertive'
accessibilityValue={{Text: "Submit Application"}}
/>
);
diff --git a/packages/@react-native-windows/tester/src/js/examples-win/Switch/SwitchExample.windows.js b/packages/@react-native-windows/tester/src/js/examples-win/Switch/SwitchExample.windows.js
index f1409281ab9..7503b9aeb22 100644
--- a/packages/@react-native-windows/tester/src/js/examples-win/Switch/SwitchExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples-win/Switch/SwitchExample.windows.js
@@ -303,6 +303,7 @@ class AccessibilitySwitchExample extends React.Component<
accessibilityHint="Switch"
accessibilityPosInSet={2}
accessibilitySetSize={4}
+ accessibilityLiveRegion='none'
// focusable={false}
onValueChange={value => this.setState({noFocusableValue: value})}
value={this.state.noFocusableValue}
@@ -314,6 +315,7 @@ class AccessibilitySwitchExample extends React.Component<
accessibilityHint="Switch"
accessibilityPosInSet={3}
accessibilitySetSize={4}
+ accessibilityLiveRegion='polite'
// accessible={false}
onValueChange={value => this.setState({noAccessibleValue: value})}
value={this.state.noAccessibleValue}
@@ -323,6 +325,7 @@ class AccessibilitySwitchExample extends React.Component<
accessibilityHint="Switch"
accessibilityPosInSet={4}
accessibilitySetSize={4}
+ accessibilityLiveRegion='assertive'
// focusable={false}
// accessible={false}
onValueChange={value => this.setState({noFocusValue: value})}
diff --git a/packages/@react-native-windows/tester/src/js/examples/ActivityIndicator/ActivityIndicatorExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/ActivityIndicator/ActivityIndicatorExample.windows.js
index 7f17782abe3..81d732dabb1 100644
--- a/packages/@react-native-windows/tester/src/js/examples/ActivityIndicator/ActivityIndicatorExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/ActivityIndicator/ActivityIndicatorExample.windows.js
@@ -79,6 +79,7 @@ exports.examples = [
accessibilityLabel="Wait for content to load!"
accessibilityPosInSet={1}
accessibilitySetSize={1}
+ accessibilityLiveRegion='polite'
accessible
/>
);
diff --git a/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js
index 27dc6b8de33..e3543afab43 100644
--- a/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js
@@ -1607,6 +1607,7 @@ exports.examples = [
accessible
accessibilityPosInSet={1}
accessibilitySetSize={2}
+ accessibilityLiveRegion='polite'
/>
);
diff --git a/packages/@react-native-windows/tester/src/js/examples/Pressable/PressableExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/Pressable/PressableExample.windows.js
index 8ad93005aa2..f3a87a52a7e 100644
--- a/packages/@react-native-windows/tester/src/js/examples/Pressable/PressableExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/Pressable/PressableExample.windows.js
@@ -1073,15 +1073,15 @@ const examples = [
return (
{}} accessibilityPosInSet={1} accessibilitySetSize={3}>
+ onPress={() => {}} accessibilityPosInSet={1} accessibilitySetSize={3} accessibilityLiveRegion='none'>
Pressable 1 of 3
{}} accessibilityPosInSet={2} accessibilitySetSize={3}>
+ onPress={() => {}} accessibilityPosInSet={2} accessibilitySetSize={3} accessibilityLiveRegion='polite'>
Pressable 2 of 3
{}} accessibilityPosInSet={3} accessibilitySetSize={3}>
+ onPress={() => {}} accessibilityPosInSet={3} accessibilitySetSize={3} accessibilityLiveRegion='assertive'>
Pressable 3 of 3
diff --git a/packages/@react-native-windows/tester/src/js/examples/Text/TextExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/Text/TextExample.windows.js
index 43b2dbf2735..3877f6a4a72 100644
--- a/packages/@react-native-windows/tester/src/js/examples/Text/TextExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/Text/TextExample.windows.js
@@ -1608,7 +1608,8 @@ const examples = [
accessibilityLabel="This text has customized accessibility"
accessibilityHint="Text"
accessibilityPosInSet={1}
- accessibilitySetSize={1}>
+ accessibilitySetSize={1}
+ accessibilityLiveRegion='polite'>
This text has customized accessibility.
diff --git a/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js
index afe213b0be9..053cf5b7530 100644
--- a/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js
@@ -810,18 +810,21 @@ const examples: Array = [
placeholder='TextInput 1 in Set of 3'
accessibilityPosInSet={1}
accessibilitySetSize={3}
+ accessibilityLiveRegion='none'
/>
);
diff --git a/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js
index f35c320a9e0..98755349301 100644
--- a/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js
@@ -582,15 +582,15 @@ function TouchableOnFocus>() {
function TouchableSet>() {
return (
- {}} accessibilityPosInSet={1} accessibilitySetSize={3}>
+ {}} accessibilityPosInSet={1} accessibilitySetSize={3} accessibilityLiveRegion='none'>
Touchable Highlight (Control 1 in Set of 3)
- {}} accessibilityPosInSet={2} accessibilitySetSize={3}>
+ {}} accessibilityPosInSet={2} accessibilitySetSize={3} accessibilityLiveRegion='polite'>
Touchable Opacity (Control 2 in Set of 3)
- {}} accessibilityPosInSet={3} accessibilitySetSize={3}>
+ {}} accessibilityPosInSet={3} accessibilitySetSize={3} accessibilityLiveRegion='assertive'>
TouchableWithoutFeedback (Control 3 in Set of 3)
diff --git a/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js
index 533b6ac8390..4fe556f33d1 100644
--- a/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js
@@ -479,6 +479,7 @@ class AccessibilityExample extends React.Component<
]}
accessibilityPosInSet={1}
accessibilitySetSize={1}
+ accessibilityLiveRegion='polite'
testID="accessibility"
accessible
focusable
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/ActivityIndicatorComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/ActivityIndicatorComponentTest.test.ts.snap
index 04da1893677..3b66569cbf9 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/ActivityIndicatorComponentTest.test.ts.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/ActivityIndicatorComponentTest.test.ts.snap
@@ -509,6 +509,7 @@ exports[`ActivityIndicator Tests An ActivityIndicator can render 1`] = `
"Automation Tree": {
"AutomationId": "default_activity_indicator",
"ControlType": 50012,
+ "LiveSetting": "Polite",
"LocalizedControlType": "progress bar",
"Name": "Wait for content to load!",
"PositionInSet": 1,
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/ImageComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/ImageComponentTest.test.ts.snap
index 218bcc43545..2881f7173d3 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/ImageComponentTest.test.ts.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/ImageComponentTest.test.ts.snap
@@ -3243,6 +3243,7 @@ exports[`Image Tests Images can be defined as a set using accessibilityPosInSet
{
"AutomationId": "",
"ControlType": 50006,
+ "LiveSetting": "Polite",
"LocalizedControlType": "image",
"PositionInSet": 1,
"SizeofSet": 2,
@@ -3250,6 +3251,7 @@ exports[`Image Tests Images can be defined as a set using accessibilityPosInSet
{
"AutomationId": "",
"ControlType": 50006,
+ "LiveSetting": "Assertive",
"LocalizedControlType": "image",
"PositionInSet": 2,
"SizeofSet": 2,
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/PressableComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/PressableComponentTest.test.ts.snap
index 702acb0fb44..b31675c1ac8 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/PressableComponentTest.test.ts.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/PressableComponentTest.test.ts.snap
@@ -27,6 +27,7 @@ exports[`Pressable Tests Pressables can be defined as a set using accessibilityP
"AutomationId": "",
"ControlType": 50026,
"IsKeyboardFocusable": true,
+ "LiveSetting": "Polite",
"LocalizedControlType": "group",
"PositionInSet": 2,
"SizeofSet": 3,
@@ -43,6 +44,7 @@ exports[`Pressable Tests Pressables can be defined as a set using accessibilityP
"AutomationId": "",
"ControlType": 50026,
"IsKeyboardFocusable": true,
+ "LiveSetting": "Assertive",
"LocalizedControlType": "group",
"PositionInSet": 3,
"SizeofSet": 3,
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/SwitchComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/SwitchComponentTest.test.ts.snap
index 097b2534938..3cde4a9c1e8 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/SwitchComponentTest.test.ts.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/SwitchComponentTest.test.ts.snap
@@ -439,6 +439,7 @@ exports[`SwitchTests Switches can have customized accessibility 1`] = `
"ControlType": 50000,
"HelpText": "Switch",
"IsKeyboardFocusable": true,
+ "LiveSetting": "Polite",
"LocalizedControlType": "button",
"Name": "This is a Switch with accessible set to false",
"PositionInSet": 3,
@@ -449,6 +450,7 @@ exports[`SwitchTests Switches can have customized accessibility 1`] = `
"ControlType": 50000,
"HelpText": "Switch",
"IsKeyboardFocusable": true,
+ "LiveSetting": "Assertive",
"LocalizedControlType": "button",
"Name": "This is a Switch with focusable and accessible set to false",
"PositionInSet": 4,
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap
index 3cc9c5f997a..a3c6d200aac 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap
@@ -1105,6 +1105,7 @@ exports[`TextInput Tests TextInputs can be defined as a set using accessibilityP
"ControlType": 50004,
"HelpText": "TextInput 2 in Set of 3",
"IsKeyboardFocusable": true,
+ "LiveSetting": "Polite",
"LocalizedControlType": "edit",
"Name": "TextInput 2 in Set of 3",
"PositionInSet": 2,
@@ -1116,6 +1117,7 @@ exports[`TextInput Tests TextInputs can be defined as a set using accessibilityP
"ControlType": 50004,
"HelpText": "TextInput 3 in Set of 3",
"IsKeyboardFocusable": true,
+ "LiveSetting": "Assertive",
"LocalizedControlType": "edit",
"Name": "TextInput 3 in Set of 3",
"PositionInSet": 3,
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/TouchableComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/TouchableComponentTest.test.ts.snap
index 19702b93e46..cba06ad9b0b 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/TouchableComponentTest.test.ts.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/TouchableComponentTest.test.ts.snap
@@ -106,6 +106,7 @@ exports[`Touchable Tests Touchables can be defined in a set using accessibilityP
"AutomationId": "",
"ControlType": 50026,
"IsKeyboardFocusable": true,
+ "LiveSetting": "Polite",
"LocalizedControlType": "group",
"PositionInSet": 2,
"SizeofSet": 3,
@@ -122,6 +123,7 @@ exports[`Touchable Tests Touchables can be defined in a set using accessibilityP
"AutomationId": "",
"ControlType": 50020,
"IsKeyboardFocusable": true,
+ "LiveSetting": "Assertive",
"LocalizedControlType": "text",
"Name": "TouchableWithoutFeedback (Control 3 in Set of 3)",
"PositionInSet": 3,
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/ViewComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/ViewComponentTest.test.ts.snap
index cadb2233726..1cb3315b5f0 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/ViewComponentTest.test.ts.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/ViewComponentTest.test.ts.snap
@@ -1096,6 +1096,7 @@ exports[`View Tests Views can have customized accessibility 1`] = `
"ControlType": 50000,
"HelpText": "Accessibility Hint",
"IsKeyboardFocusable": true,
+ "LiveSetting": "Polite",
"LocalizedControlType": "button",
"Name": "A View with accessibility values",
"PositionInSet": 1,
diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap b/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap
index ffa59f5deb4..736aa7271d7 100644
--- a/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap
+++ b/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap
@@ -1033,6 +1033,7 @@ exports[`snapshotAllPages Accessibility Windows 5`] = `
exports[`snapshotAllPages ActivityIndicator 1`] = `
get_CurrentAutomationId(&automationId);
pTarget->get_CurrentControlType(&controlType);
@@ -321,6 +342,7 @@ winrt::Windows::Data::Json::JsonObject DumpUIATreeRecurse(
if (SUCCEEDED(hr) && pTarget4) {
pTarget4->get_CurrentPositionInSet(&positionInSet);
pTarget4->get_CurrentSizeOfSet(&sizeOfSet);
+ pTarget4->get_CurrentLiveSetting(&liveSetting);
pTarget4->Release();
}
result.Insert(L"AutomationId", winrt::Windows::Data::Json::JsonValue::CreateStringValue(automationId));
@@ -333,6 +355,8 @@ winrt::Windows::Data::Json::JsonObject DumpUIATreeRecurse(
InsertStringValueIfNotEmpty(result, L"Name", name);
InsertIntValueIfNotDefault(result, L"PositionInSet", positionInSet);
InsertIntValueIfNotDefault(result, L"SizeofSet", sizeOfSet);
+ InsertLiveSettingValueIfNotDefault(result, L"LiveSetting", liveSetting);
+
IValueProvider *valuePattern;
hr = pTarget->GetCurrentPattern(UIA_ValuePatternId, reinterpret_cast(&valuePattern));
if (SUCCEEDED(hr) && valuePattern) {
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp
index 60faca9bbf2..10ca5a07de2 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp
@@ -339,6 +339,11 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetPropertyValue(PROPERT
pRetVal->lVal = props->accessibilitySetSize;
break;
}
+ case UIA_LiveSettingPropertyId: {
+ pRetVal->vt = VT_I4;
+ pRetVal->lVal = GetLiveSetting(props->accessibilityLiveRegion);
+ break;
+ }
}
return hr;
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
index 835c9d2d001..a41b4482045 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
@@ -1332,6 +1332,12 @@ void ComponentView::updateAccessibilityProps(
winrt::Microsoft::ReactNative::implementation::UpdateUiaProperty(
m_uiaProvider, UIA_SizeOfSetPropertyId, oldViewProps.accessibilitySetSize, newViewProps.accessibilitySetSize);
+
+ winrt::Microsoft::ReactNative::implementation::UpdateUiaProperty(
+ m_uiaProvider,
+ UIA_LiveSettingPropertyId,
+ oldViewProps.accessibilityLiveRegion,
+ newViewProps.accessibilityLiveRegion);
}
std::optional ComponentView::getAccessiblityValue() noexcept {
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
index 8acdfc0387d..76a9fa7676d 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
@@ -163,6 +163,15 @@ void UpdateUiaProperty(
spProviderSimple.get(), propId, CComVariant(oldValue.c_str()), CComVariant(newValue.c_str()));
}
+long GetLiveSetting(const std::string &liveRegion) noexcept {
+ if (liveRegion == "polite") {
+ return LiveSetting::Polite;
+ } else if (liveRegion == "assertive") {
+ return LiveSetting::Assertive;
+ }
+ return LiveSetting::Off;
+}
+
std::string extractAccessibilityValue(const facebook::react::AccessibilityValue &value) noexcept {
if (value.now.has_value()) {
return std::to_string(value.now.value());
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h
index c69aadce19b..c5a5a109f80 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h
@@ -29,6 +29,8 @@ void UpdateUiaProperty(
const std::string &oldValue,
const std::string &newValue) noexcept;
+long GetLiveSetting(const std::string &liveRegion) noexcept;
+
std::string extractAccessibilityValue(const facebook::react::AccessibilityValue &value) noexcept;
} // namespace winrt::Microsoft::ReactNative::implementation
diff --git a/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp b/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp
index 6110bddceb8..7e4638224cc 100644
--- a/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp
@@ -34,7 +34,15 @@ HostPlatformViewProps::HostPlatformViewProps(
accessibilitySetSize(
CoreFeatures::enablePropIteratorSetter
? sourceProps.accessibilitySetSize
- : convertRawProp(context, rawProps, "accessibilitySetSize", sourceProps.accessibilitySetSize, 0)) {}
+ : convertRawProp(context, rawProps, "accessibilitySetSize", sourceProps.accessibilitySetSize, 0)),
+ accessibilityLiveRegion(
+ CoreFeatures::enablePropIteratorSetter ? sourceProps.accessibilityLiveRegion
+ : convertRawProp(
+ context,
+ rawProps,
+ "accessibilityLiveRegion",
+ sourceProps.accessibilityLiveRegion,
+ "none")) {}
#define WINDOWS_VIEW_EVENT_CASE(eventType) \
case CONSTEXPR_RAW_PROPS_KEY_HASH("on" #eventType): { \
@@ -71,6 +79,7 @@ void HostPlatformViewProps::setProp(
RAW_SET_PROP_SWITCH_CASE_BASIC(focusable);
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityPosInSet);
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilitySetSize);
+ RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLiveRegion);
RAW_SET_PROP_SWITCH_CASE_BASIC(keyDownEvents);
RAW_SET_PROP_SWITCH_CASE_BASIC(keyUpEvents);
}
diff --git a/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h b/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h
index 4ab0b547f43..b2fce99065b 100644
--- a/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h
+++ b/vnext/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h
@@ -26,6 +26,7 @@ class HostPlatformViewProps : public BaseViewProps {
bool focusable{false};
int accessibilityPosInSet{0};
int accessibilitySetSize{0};
+ std::string accessibilityLiveRegion{"none"};
// std::optional overflowAnchor{};
// std::optional tooltip{};
diff --git a/vnext/Microsoft.ReactNative/packages.lock.json b/vnext/Microsoft.ReactNative/packages.lock.json
index b6159122ee8..acd06d451f2 100644
--- a/vnext/Microsoft.ReactNative/packages.lock.json
+++ b/vnext/Microsoft.ReactNative/packages.lock.json
@@ -24,15 +24,6 @@
"Microsoft.SourceLink.Common": "1.1.1"
}
},
- "Microsoft.UI.Xaml": {
- "type": "Direct",
- "requested": "[2.8.0, )",
- "resolved": "2.8.0",
- "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
- "dependencies": {
- "Microsoft.Web.WebView2": "1.0.1264.42"
- }
- },
"Microsoft.Windows.CppWinRT": {
"type": "Direct",
"requested": "[2.0.230706.1, )",