react-native-windows 0.76.4 → 0.76.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,7 @@
25
25
  #include "DynamicAutomationProperties.h"
26
26
 
27
27
  #include <Views/ViewPanel.h>
28
+ #include "FrameworkElementViewManager.h"
28
29
  #include "Unicode.h"
29
30
  #include "cdebug.h"
30
31
 
@@ -422,13 +423,24 @@ bool FrameworkElementViewManager::UpdateProperty(
422
423
  else if (role == "toolbar")
423
424
  DynamicAutomationProperties::SetAccessibilityRole(
424
425
  element, winrt::Microsoft::ReactNative::AccessibilityRoles::ToolBar);
425
- else if (role == "list")
426
+ else if (role == "list") {
426
427
  DynamicAutomationProperties::SetAccessibilityRole(
427
428
  element, winrt::Microsoft::ReactNative::AccessibilityRoles::List);
428
- else if (role == "listitem")
429
+ if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::String) {
430
+ winrt::hstring controlType = FrameworkElementViewManager::getControlTypeFromAccessibilityRole(
431
+ winrt::Microsoft::ReactNative::AccessibilityRoles::List);
432
+ FrameworkElementViewManager::setLocalizedControlTypeFromAccessibilityRole(element, controlType);
433
+ }
434
+ } else if (role == "listitem") {
429
435
  DynamicAutomationProperties::SetAccessibilityRole(
430
436
  element, winrt::Microsoft::ReactNative::AccessibilityRoles::ListItem);
431
- else
437
+ if (propertyValue.Type() ==
438
+ winrt::Microsoft::ReactNative::JSValueType::String) { // Set localized control type
439
+ winrt::hstring controlType = FrameworkElementViewManager::getControlTypeFromAccessibilityRole(
440
+ winrt::Microsoft::ReactNative::AccessibilityRoles::ListItem);
441
+ FrameworkElementViewManager::setLocalizedControlTypeFromAccessibilityRole(element, controlType);
442
+ }
443
+ } else
432
444
  DynamicAutomationProperties::SetAccessibilityRole(
433
445
  element, winrt::Microsoft::ReactNative::AccessibilityRoles::Unknown);
434
446
  } else if (propertyValue.IsNull()) {
@@ -823,6 +835,71 @@ bool FrameworkElementViewManager::UpdateProperty(
823
835
  return true;
824
836
  }
825
837
 
838
+ winrt::hstring FrameworkElementViewManager::getControlTypeFromAccessibilityRole(
839
+ winrt::Microsoft::ReactNative::AccessibilityRoles role) {
840
+ switch (role) {
841
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Button:
842
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::ImageButton:
843
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Switch:
844
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::ToggleButton:
845
+ return winrt::to_hstring("button");
846
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Link:
847
+ return winrt::to_hstring("link");
848
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Image:
849
+ return winrt::to_hstring("image");
850
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::KeyboardKey:
851
+ return winrt::to_hstring("custom");
852
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Text:
853
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Header:
854
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Summary:
855
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Alert:
856
+ return winrt::to_hstring("text");
857
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Adjustable:
858
+ return winrt::to_hstring("slider");
859
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::CheckBox:
860
+ return winrt::to_hstring("checkbox");
861
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::ComboBox:
862
+ return winrt::to_hstring("combobox");
863
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Menu:
864
+ return winrt::to_hstring("menu");
865
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::MenuBar:
866
+ return winrt::to_hstring("menubar");
867
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::MenuItem:
868
+ return winrt::to_hstring("menuitem");
869
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::ProgressBar:
870
+ return winrt::to_hstring("progressbar");
871
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Radio:
872
+ return winrt::to_hstring("radiobutton");
873
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::ScrollBar:
874
+ return winrt::to_hstring("scrollbar");
875
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::SpinButton:
876
+ return winrt::to_hstring("spinner");
877
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Tab:
878
+ return winrt::to_hstring("tabitem");
879
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::TabList:
880
+ return winrt::to_hstring("tab");
881
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::ToolBar:
882
+ return winrt::to_hstring("toolbar");
883
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::List:
884
+ return winrt::to_hstring("list");
885
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::ListItem:
886
+ return winrt::to_hstring("listitem");
887
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::None:
888
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Search:
889
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::RadioGroup:
890
+ case winrt::Microsoft::ReactNative::AccessibilityRoles::Timer:
891
+ return winrt::to_hstring("group");
892
+ }
893
+ return winrt::to_hstring("custom");
894
+ }
895
+
896
+ void FrameworkElementViewManager::setLocalizedControlTypeFromAccessibilityRole(
897
+ xaml::UIElement element,
898
+ winrt::hstring value) {
899
+ auto controlTypeBoxedValue = winrt::Windows::Foundation::PropertyValue::CreateString(value);
900
+ element.SetValue(xaml::Automation::AutomationProperties::LocalizedControlTypeProperty(), controlTypeBoxedValue);
901
+ }
902
+
826
903
  // Applies a TransformMatrix to the backing UIElement.
827
904
  // In react-native, rotates and scales are applied about the center of the
828
905
  // component, unlike XAML. Since the javascript layer sends a non-centered
@@ -13,6 +13,10 @@ class REACTWINDOWS_EXPORT FrameworkElementViewManager : public ViewManagerBase {
13
13
  public:
14
14
  FrameworkElementViewManager(const Mso::React::IReactContext &context);
15
15
 
16
+ static winrt::hstring getControlTypeFromAccessibilityRole(winrt::Microsoft::ReactNative::AccessibilityRoles role);
17
+
18
+ void setLocalizedControlTypeFromAccessibilityRole(xaml::UIElement element, winrt::hstring value);
19
+
16
20
  void GetNativeProps(const winrt::Microsoft::ReactNative::IJSValueWriter &writer) const override;
17
21
 
18
22
  // Helper functions related to setting/updating TransformMatrix
@@ -10,11 +10,11 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.76.4</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.76.5</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>76</ReactNativeWindowsMinor>
16
- <ReactNativeWindowsPatch>4</ReactNativeWindowsPatch>
16
+ <ReactNativeWindowsPatch>5</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
18
- <ReactNativeWindowsCommitId>2b94e2fc0dbb36424eeb92a8839aedcfeb6f4321</ReactNativeWindowsCommitId>
18
+ <ReactNativeWindowsCommitId>d8923f761dac41d874eba25b70387cd4b34151eb</ReactNativeWindowsCommitId>
19
19
  </PropertyGroup>
20
20
  </Project>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.76.4",
3
+ "version": "0.76.5",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",