From 8bd428f7a156e80247a0ddc2c1d9a2892d97db64 Mon Sep 17 00:00:00 2001
From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com>
Date: Tue, 20 Aug 2024 16:54:59 -0700
Subject: [PATCH 1/7] Add Tests
---
.../Button/ButtonExample.windows.js | 1 +
.../Switch/SwitchExample.windows.js | 3 +
.../ActivityIndicatorExample.windows.js | 1 +
.../js/examples/Image/ImageExample.windows.js | 2 +
.../Pressable/PressableExample.windows.js | 6 +-
.../js/examples/Text/TextExample.windows.js | 3 +-
.../TextInput/TextInputExample.windows.js | 3 +
.../Touchable/TouchableExample.windows.js | 6 +-
.../js/examples/View/ViewExample.windows.js | 1 +
.../RNTesterApp-Fabric/RNTesterApp-Fabric.cpp | 23 +++
packages/playground/Samples/simple.tsx | 25 ++-
.../packages.lock.json | 180 ++----------------
.../CompositionDynamicAutomationProvider.cpp | 5 +
.../CompositionViewComponentView.cpp | 3 +
.../Fabric/Composition/UiaHelpers.cpp | 12 ++
.../Fabric/Composition/UiaHelpers.h | 1 +
.../components/view/HostPlatformViewProps.cpp | 7 +-
.../components/view/HostPlatformViewProps.h | 1 +
.../Microsoft.ReactNative/packages.lock.json | 19 +-
19 files changed, 111 insertions(+), 191 deletions(-)
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 fcf7662f5a0..04c9672e011 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'
/>
);
}}
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 e6dc8961610..83b02651d64 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
@@ -1584,6 +1584,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 5308d63f22a..a9fe6c6aa02 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
@@ -1046,15 +1046,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 101f09cb81c..40518aa696f 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
@@ -1552,7 +1552,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 4571755fd07..ad23651b1e1 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 28951e896db..b913f3080a4 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
@@ -581,15 +581,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 bd571201f36..de03b1d461c 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/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp
index d474ae36081..eaf5e8a9058 100644
--- a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp
+++ b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp
@@ -247,6 +247,26 @@ void InsertBooleanValueIfNotDefault(
}
}
+void InsertLiveSettingValueIfNotDefault(
+ const winrt::Windows::Data::Json::JsonObject &obj,
+ winrt::hstring name,
+ LiveSetting value,
+ LiveSetting defaultValue = LiveSetting::Off) {
+ if (value != defaultValue) {
+ switch (value) {
+ case 0:
+ obj.Insert(name, winrt::Windows::Data::Json::JsonValue::CreateStringValue(L"Off"));
+ break;
+ case 1:
+ obj.Insert(name, winrt::Windows::Data::Json::JsonValue::CreateStringValue(L"Polite"));
+ break;
+ case 2:
+ obj.Insert(name, winrt::Windows::Data::Json::JsonValue::CreateStringValue(L"Assertive"));
+ break;
+ }
+ }
+}
+
void InsertSizeValue(
const winrt::Windows::Data::Json::JsonObject &obj,
winrt::hstring name,
@@ -304,6 +324,7 @@ winrt::Windows::Data::Json::JsonObject DumpUIATreeRecurse(
BSTR name;
int positionInSet;
int sizeOfSet;
+ LiveSetting liveSetting;
pTarget->get_CurrentAutomationId(&automationId);
pTarget->get_CurrentControlType(&controlType);
@@ -317,6 +338,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));
@@ -329,6 +351,7 @@ 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);
IUIAutomationElement *pChild;
IUIAutomationElement *pSibling;
diff --git a/packages/playground/Samples/simple.tsx b/packages/playground/Samples/simple.tsx
index 8304290492f..763bd4c0df2 100644
--- a/packages/playground/Samples/simple.tsx
+++ b/packages/playground/Samples/simple.tsx
@@ -4,15 +4,30 @@
* @format
*/
import React from 'react';
-import {AppRegistry, View} from 'react-native';
+import {AppRegistry, View, Text} from 'react-native';
export default class Bootstrap extends React.Component {
render() {
return (
-
-
+
+
+ Polite Accessibility
+
+
+ None Accessibility
+
+
+ Assertive Accessibility
+
);
}
diff --git a/packages/playground/windows/playground-composition.Package/packages.lock.json b/packages/playground/windows/playground-composition.Package/packages.lock.json
index b10fcd50f7e..c22ea4fc107 100644
--- a/packages/playground/windows/playground-composition.Package/packages.lock.json
+++ b/packages/playground/windows/playground-composition.Package/packages.lock.json
@@ -2,58 +2,8 @@
"version": 1,
"dependencies": {
"UAP,Version=v10.0.17763": {
- "boost": {
- "type": "Transitive",
- "resolved": "1.83.0",
- "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ=="
- },
- "Microsoft.Build.Tasks.Git": {
- "type": "Transitive",
- "resolved": "1.1.1",
- "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q=="
- },
- "Microsoft.JavaScript.Hermes": {
- "type": "Transitive",
- "resolved": "0.1.23",
- "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g=="
- },
- "Microsoft.SourceLink.Common": {
- "type": "Transitive",
- "resolved": "1.1.1",
- "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg=="
- },
- "Microsoft.SourceLink.GitHub": {
- "type": "Transitive",
- "resolved": "1.1.1",
- "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
- "dependencies": {
- "Microsoft.Build.Tasks.Git": "1.1.1",
- "Microsoft.SourceLink.Common": "1.1.1"
- }
- },
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.Windows.SDK.BuildTools": {
- "type": "Transitive",
- "resolved": "10.0.22621.756",
- "contentHash": "7ZL2sFSioYm1Ry067Kw1hg0SCcW5kuVezC2SwjGbcPE61Nn+gTbH86T73G3LcEOVj0S3IZzNuE/29gZvOLS7VA=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- },
"common": {
- "type": "Project",
- "dependencies": {
- "boost": "[1.83.0, )"
- }
+ "type": "Project"
},
"fmt": {
"type": "Project"
@@ -61,7 +11,6 @@
"folly": {
"type": "Project",
"dependencies": {
- "boost": "[1.83.0, )",
"fmt": "[1.0.0, )"
}
},
@@ -70,135 +19,28 @@
"dependencies": {
"Common": "[1.0.0, )",
"Folly": "[1.0.0, )",
- "Microsoft.JavaScript.Hermes": "[0.1.23, )",
- "Microsoft.SourceLink.GitHub": "[1.1.1, )",
- "Microsoft.WindowsAppSDK": "[1.5.240227000, )",
- "ReactCommon": "[1.0.0, )",
- "boost": "[1.83.0, )"
+ "ReactCommon": "[1.0.0, )"
}
},
"playground-composition": {
"type": "Project",
"dependencies": {
- "Microsoft.JavaScript.Hermes": "[0.1.23, )",
- "Microsoft.ReactNative": "[1.0.0, )",
- "Microsoft.VCRTForwarders.140": "[1.0.2-rc, )",
- "Microsoft.WindowsAppSDK": "[1.5.240227000, )",
- "boost": "[1.83.0, )"
+ "Microsoft.ReactNative": "[1.0.0, )"
}
},
"reactcommon": {
"type": "Project",
"dependencies": {
- "Folly": "[1.0.0, )",
- "boost": "[1.83.0, )"
+ "Folly": "[1.0.0, )"
}
}
},
- "UAP,Version=v10.0.17763/win10-arm": {
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- }
- },
- "UAP,Version=v10.0.17763/win10-arm-aot": {
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- }
- },
- "UAP,Version=v10.0.17763/win10-arm64-aot": {
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- }
- },
- "UAP,Version=v10.0.17763/win10-x64": {
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- }
- },
- "UAP,Version=v10.0.17763/win10-x64-aot": {
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- }
- },
- "UAP,Version=v10.0.17763/win10-x86": {
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- }
- },
- "UAP,Version=v10.0.17763/win10-x86-aot": {
- "Microsoft.VCRTForwarders.140": {
- "type": "Transitive",
- "resolved": "1.0.2-rc",
- "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
- },
- "Microsoft.WindowsAppSDK": {
- "type": "Transitive",
- "resolved": "1.5.240227000",
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
- "dependencies": {
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
- }
- }
- }
+ "UAP,Version=v10.0.17763/win10-arm": {},
+ "UAP,Version=v10.0.17763/win10-arm-aot": {},
+ "UAP,Version=v10.0.17763/win10-arm64-aot": {},
+ "UAP,Version=v10.0.17763/win10-x64": {},
+ "UAP,Version=v10.0.17763/win10-x64-aot": {},
+ "UAP,Version=v10.0.17763/win10-x86": {},
+ "UAP,Version=v10.0.17763/win10-x86-aot": {}
}
}
\ No newline at end of file
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp
index cffc7ee7b7f..886e2cc2d75 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp
@@ -323,6 +323,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 7a969d91da2..2bcebdaf376 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
@@ -1332,6 +1332,9 @@ 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::getAcccessiblityValue() noexcept {
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
index c2187cf114a..689b61588b3 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
@@ -162,4 +162,16 @@ void UpdateUiaProperty(
spProviderSimple.get(), propId, CComVariant(oldValue.c_str()), CComVariant(newValue.c_str()));
}
+long GetLiveSetting(const std::string &liveRegion) noexcept {
+ if (liveRegion == "none"){
+ return LiveSetting::Off;
+ }else if (liveRegion == "polite"){
+ return LiveSetting::Polite;
+ }else if (liveRegion == "assertive"){
+ return LiveSetting::Assertive;
+ }
+ //assert(false); // TO-DO: swap to a RedBox error
+ return LiveSetting::Off;
+}
+
} // namespace winrt::Microsoft::ReactNative::implementation
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h
index 2350b164bee..de62742644b 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h
@@ -29,4 +29,5 @@ void UpdateUiaProperty(
const std::string &oldValue,
const std::string &newValue) noexcept;
+long GetLiveSetting(const std::string &liveRegion) 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..01b14378353 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,11 @@ 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 +75,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 1ef56f2aba0..f9bdebebf19 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, )",
@@ -48,6 +39,16 @@
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
}
},
+ "Microsoft.Build.Tasks.Git": {
+ "type": "Transitive",
+ "resolved": "1.1.1",
+ "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q=="
+ },
+ "Microsoft.SourceLink.Common": {
+ "type": "Transitive",
+ "resolved": "1.1.1",
+ "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg=="
+ },
"Microsoft.Windows.SDK.BuildTools": {
"type": "Transitive",
"resolved": "10.0.22621.756",
From bc35875988667360b5e13319ba813e14fbd51720 Mon Sep 17 00:00:00 2001
From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com>
Date: Tue, 20 Aug 2024 17:10:25 -0700
Subject: [PATCH 2/7] Change files
---
...ative-windows-2f3ac2ef-b7c1-4ca2-b10d-ec0d29508646.json | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 change/react-native-windows-2f3ac2ef-b7c1-4ca2-b10d-ec0d29508646.json
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"
+}
From 2329f40f791e59695eae6aff7fbf9e1a98b63a14 Mon Sep 17 00:00:00 2001
From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com>
Date: Wed, 21 Aug 2024 12:48:08 -0700
Subject: [PATCH 3/7] Fix Error
---
.../AutomationChannel/packages.lock.json | 110 +++++++++++-------
.../RNTesterApp-Fabric/RNTesterApp-Fabric.cpp | 2 +-
packages/playground/Samples/simple.tsx | 25 +---
3 files changed, 75 insertions(+), 62 deletions(-)
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/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp
index d2dccee98fd..06d084471ee 100644
--- a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp
+++ b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.cpp
@@ -328,7 +328,7 @@ winrt::Windows::Data::Json::JsonObject DumpUIATreeRecurse(
int sizeOfSet = 0;
BSTR value;
BOOL isReadOnly;
- LiveSetting liveSetting;
+ LiveSetting liveSetting = LiveSetting::Off;
pTarget->get_CurrentAutomationId(&automationId);
pTarget->get_CurrentControlType(&controlType);
diff --git a/packages/playground/Samples/simple.tsx b/packages/playground/Samples/simple.tsx
index 763bd4c0df2..8304290492f 100644
--- a/packages/playground/Samples/simple.tsx
+++ b/packages/playground/Samples/simple.tsx
@@ -4,30 +4,15 @@
* @format
*/
import React from 'react';
-import {AppRegistry, View, Text} from 'react-native';
+import {AppRegistry, View} from 'react-native';
export default class Bootstrap extends React.Component {
render() {
return (
-
-
- Polite Accessibility
-
-
- None Accessibility
-
-
- Assertive Accessibility
-
+
+
);
}
From 9ff293bc82541b9bf7fc7a47a807ac9393135373 Mon Sep 17 00:00:00 2001
From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com>
Date: Fri, 23 Aug 2024 10:44:48 -0700
Subject: [PATCH 4/7] Change files
---
...ation-channel-e3e061a4-0e5e-4c70-9158-8b61d0eebe2a.json | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 change/@react-native-windows-automation-channel-e3e061a4-0e5e-4c70-9158-8b61d0eebe2a.json
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"
+}
From 5154a3cb2d2ac218fa8b83eacf7d9ec0e9ac24ed Mon Sep 17 00:00:00 2001
From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com>
Date: Fri, 23 Aug 2024 11:17:19 -0700
Subject: [PATCH 5/7] Format
---
.../Composition/CompositionViewComponentView.cpp | 5 ++++-
.../Fabric/Composition/UiaHelpers.cpp | 8 ++++----
.../renderer/components/view/HostPlatformViewProps.cpp | 10 +++++++---
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
index 2d2ba8dda67..a41b4482045 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp
@@ -1334,7 +1334,10 @@ void ComponentView::updateAccessibilityProps(
m_uiaProvider, UIA_SizeOfSetPropertyId, oldViewProps.accessibilitySetSize, newViewProps.accessibilitySetSize);
winrt::Microsoft::ReactNative::implementation::UpdateUiaProperty(
- m_uiaProvider, UIA_LiveSettingPropertyId, oldViewProps.accessibilityLiveRegion, newViewProps.accessibilityLiveRegion);
+ 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 f765b4c6a96..9a64658cb59 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
@@ -164,14 +164,14 @@ void UpdateUiaProperty(
}
long GetLiveSetting(const std::string &liveRegion) noexcept {
- if (liveRegion == "none"){
+ if (liveRegion == "none") {
return LiveSetting::Off;
- }else if (liveRegion == "polite"){
+ } else if (liveRegion == "polite") {
return LiveSetting::Polite;
- }else if (liveRegion == "assertive"){
+ } else if (liveRegion == "assertive") {
return LiveSetting::Assertive;
}
- //assert(false); // TO-DO: swap to a RedBox error
+ // assert(false); // TO-DO: swap to a RedBox error
return LiveSetting::Off;
}
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 01b14378353..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
@@ -36,9 +36,13 @@ HostPlatformViewProps::HostPlatformViewProps(
? sourceProps.accessibilitySetSize
: convertRawProp(context, rawProps, "accessibilitySetSize", sourceProps.accessibilitySetSize, 0)),
accessibilityLiveRegion(
- CoreFeatures::enablePropIteratorSetter
- ? sourceProps.accessibilityLiveRegion
- : convertRawProp(context, rawProps, "accessibilityLiveRegion", sourceProps.accessibilityLiveRegion, "none")) {}
+ 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): { \
From a7e8bc9fbb6d16d77814f1100ad0ad0157f0cb4e Mon Sep 17 00:00:00 2001
From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com>
Date: Fri, 23 Aug 2024 12:34:21 -0700
Subject: [PATCH 6/7] Update Snapshots
---
.../ActivityIndicatorComponentTest.test.ts.snap | 1 +
.../__snapshots__/ImageComponentTest.test.ts.snap | 2 ++
.../PressableComponentTest.test.ts.snap | 2 ++
.../SwitchComponentTest.test.ts.snap | 2 ++
.../TextInputComponentTest.test.ts.snap | 2 ++
.../TouchableComponentTest.test.ts.snap | 2 ++
.../__snapshots__/ViewComponentTest.test.ts.snap | 1 +
.../test/__snapshots__/snapshotPages.test.js.snap | 15 +++++++++++++++
8 files changed, 27 insertions(+)
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`] = `
Date: Mon, 26 Aug 2024 10:18:08 -0700
Subject: [PATCH 7/7] Default to None
---
.../Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
index 9a64658cb59..76a9fa7676d 100644
--- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
+++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp
@@ -164,14 +164,11 @@ void UpdateUiaProperty(
}
long GetLiveSetting(const std::string &liveRegion) noexcept {
- if (liveRegion == "none") {
- return LiveSetting::Off;
- } else if (liveRegion == "polite") {
+ if (liveRegion == "polite") {
return LiveSetting::Polite;
} else if (liveRegion == "assertive") {
return LiveSetting::Assertive;
}
- // assert(false); // TO-DO: swap to a RedBox error
return LiveSetting::Off;
}