From 3cd6732b94e5798c38c357548d36234d131f6aae Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:01:19 -0700 Subject: [PATCH 01/20] Implement ISelectionProvider and ISelectionItemProvider --- .../CompositionDynamicAutomationProvider.cpp | 202 ++++- .../CompositionDynamicAutomationProvider.h | 20 +- .../CompositionViewComponentView.cpp | 12 + .../Fabric/Composition/UiaHelpers.cpp | 20 + .../Fabric/Composition/UiaHelpers.h | 8 +- .../components/view/AccessibilityPrimitives.h | 252 ++++++ .../view/accessibilityPropsConversions.h | 795 ++++++++++++++++++ vnext/overrides.json | 28 + .../Libraries/Components/Button.windows.js | 6 + .../Components/Pressable/Pressable.windows.js | 6 + .../Components/TextInput/TextInput.windows.js | 8 +- .../Touchable/TouchableBounce.windows.js | 222 +++++ .../TouchableNativeFeedback.windows.js | 370 ++++++++ .../Touchable/TouchableOpacity.windows.js | 4 + .../TouchableWithoutFeedback.windows.js | 4 + .../Libraries/Components/View/View.windows.js | 8 +- .../Components/View/ViewAccessibility.d.ts | 10 + .../View/ViewAccessibility.windows.js | 2 + .../src-win/Libraries/Image/Image.windows.js | 4 + vnext/src-win/Libraries/Text/Text.windows.js | 10 +- 20 files changed, 1984 insertions(+), 7 deletions(-) create mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h create mode 100644 vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h create mode 100644 vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js create mode 100644 vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp index 88330c1e804..5db3ffbd03c 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp @@ -9,14 +9,28 @@ namespace winrt::Microsoft::ReactNative::implementation { CompositionDynamicAutomationProvider::CompositionDynamicAutomationProvider( const winrt::Microsoft::ReactNative::Composition::ComponentView &componentView) noexcept - : m_view{componentView} {} + : m_view{componentView} { + auto strongView = m_view.view(); + + if (!strongView) + return; + + auto props = std::static_pointer_cast( + winrt::get_self(strongView)->props()); + if (!props) + return; + + if (props->accessibilityState.has_value() && props->accessibilityState->selected.has_value()) { + AddSelectionItemsToContainer(this); + } +} HRESULT __stdcall CompositionDynamicAutomationProvider::Navigate( NavigateDirection direction, IRawElementProviderFragment **pRetVal) { if (pRetVal == nullptr) return E_POINTER; - + AddRef(); return UiaNavigateHelper(m_view.view(), direction, *pRetVal); } @@ -202,6 +216,18 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetPatternProvider(PATTE AddRef(); } + if (patternId == UIA_SelectionPatternId && props->accessibilityState.has_value() && + props->accessibilityState->multiselectable.has_value() && props->accessibilityState->required.has_value()) { + *pRetVal = static_cast(this); + AddRef(); + } + + if (patternId == UIA_SelectionItemPatternId && props->accessibilityState.has_value() && + props->accessibilityState->selected.has_value()) { + *pRetVal = static_cast(this); + AddRef(); + } + return S_OK; } @@ -345,6 +371,7 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetPropertyValue(PROPERT case UIA_IsOffscreenPropertyId: { pRetVal->vt = VT_BOOL; pRetVal->boolVal = (compositionView->getClipState() == ClipState::FullyClipped) ? VARIANT_TRUE : VARIANT_FALSE; + break; } case UIA_HelpTextPropertyId: { pRetVal->vt = VT_BSTR; @@ -555,4 +582,175 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::Collapse() { return S_OK; } +HRESULT __stdcall CompositionDynamicAutomationProvider::get_CanSelectMultiple(BOOL *pRetVal) { + if (pRetVal == nullptr) + return E_POINTER; + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + + auto props = std::static_pointer_cast( + winrt::get_self(strongView)->props()); + + if (props == nullptr) + return UIA_E_ELEMENTNOTAVAILABLE; + + *pRetVal = (props->accessibilityState.has_value() && props->accessibilityState->multiselectable.has_value()) + ? props->accessibilityState->multiselectable.value() + : false; + + return S_OK; +} + +HRESULT __stdcall CompositionDynamicAutomationProvider::get_IsSelectionRequired(BOOL *pRetVal) { + if (pRetVal == nullptr) + return E_POINTER; + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + + auto props = std::static_pointer_cast( + winrt::get_self(strongView)->props()); + + if (props == nullptr) + return UIA_E_ELEMENTNOTAVAILABLE; + + *pRetVal = (props->accessibilityState.has_value() && props->accessibilityState->required.has_value()) + ? props->accessibilityState->required.value() + : false; + + return S_OK; +} + +HRESULT __stdcall CompositionDynamicAutomationProvider::GetSelection(SAFEARRAY **pRetVal) { + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + + std::vector m_selectedItems; + for (size_t i = 0; i < m_selectionItems.size(); i++) { + auto selectionItem = m_selectionItems.at(i); + auto provider = static_cast(selectionItem); + BOOL selected; + auto hr = provider->get_IsSelected(&selected); + if (hr == S_OK && selected) { + m_selectedItems.push_back(i); + } + } + + *pRetVal = SafeArrayCreateVector(VT_UNKNOWN, 0, m_selectedItems.size()); + if (*pRetVal == nullptr) + return E_OUTOFMEMORY; + + for (size_t i = 0; i < m_selectedItems.size(); i++) { + auto pos = static_cast(i); + SafeArrayPutElement(*pRetVal, &pos, m_selectionItems.at(m_selectedItems.at(i))); + AddRef(); + } + return S_OK; +} + +void CompositionDynamicAutomationProvider::AddToSelectionItems(IRawElementProviderSimple *item) { + for (size_t i = 0; i < m_selectionItems.size(); i++) { + if (m_selectionItems.at(i) == item) { + return; + } + } + m_selectionItems.push_back(item); +} + +void CompositionDynamicAutomationProvider::RemoveFromSelectionItems(IRawElementProviderSimple *item) { + for (size_t i = 0; i < m_selectionItems.size(); i++) { + if (m_selectionItems.at(i) == item) { + m_selectionItems.erase(m_selectionItems.begin() + i); + return; + } + } +} + +HRESULT __stdcall CompositionDynamicAutomationProvider::AddToSelection() { + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + DispatchAccessibilityAction(m_view, "addToSelection"); + return S_OK; +} + +HRESULT __stdcall CompositionDynamicAutomationProvider::get_IsSelected(BOOL *pRetVal) { + if (pRetVal == nullptr) + return E_POINTER; + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + + auto props = std::static_pointer_cast( + winrt::get_self(strongView)->props()); + + if (props == nullptr) + return UIA_E_ELEMENTNOTAVAILABLE; + + *pRetVal = (props->accessibilityState.has_value() && props->accessibilityState->selected.has_value()) + ? props->accessibilityState->selected.value() + : false; + + return S_OK; +} + +IRawElementProviderSimple *findSelectionContainer(winrt::Microsoft::ReactNative::ComponentView current) { + if (!current) + return nullptr; + + auto props = std::static_pointer_cast( + winrt::get_self(current)->props()); + if (props->accessibilityState.has_value() && props->accessibilityState->multiselectable.has_value() && + props->accessibilityState->required.has_value()) { + auto uiaProvider = + current.as()->EnsureUiaProvider(); + if (uiaProvider != nullptr) { + auto spProviderSimple = uiaProvider.try_as(); + if (spProviderSimple != nullptr) { + return spProviderSimple.get(); + } + } + } else { + return findSelectionContainer(current.Parent()); + } + return nullptr; +} + +HRESULT __stdcall CompositionDynamicAutomationProvider::get_SelectionContainer(IRawElementProviderSimple **pRetVal) { + if (pRetVal == nullptr) + return E_POINTER; + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + + *pRetVal = findSelectionContainer(strongView.Parent()); + return S_OK; +} + +HRESULT __stdcall CompositionDynamicAutomationProvider::RemoveFromSelection() { + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + DispatchAccessibilityAction(m_view, "removeFromSelection"); + return S_OK; +} + +HRESULT __stdcall CompositionDynamicAutomationProvider::Select() { + auto strongView = m_view.view(); + + if (!strongView) + return UIA_E_ELEMENTNOTAVAILABLE; + DispatchAccessibilityAction(m_view, "select"); + return S_OK; +} + } // namespace winrt::Microsoft::ReactNative::implementation diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h index fd37624b580..37fe60290d3 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h @@ -17,7 +17,9 @@ class CompositionDynamicAutomationProvider : public winrt::implements< IScrollItemProvider, IValueProvider, IToggleProvider, - IExpandCollapseProvider> { + IExpandCollapseProvider, + ISelectionProvider, + ISelectionItemProvider> { public: CompositionDynamicAutomationProvider( const winrt::Microsoft::ReactNative::Composition::ComponentView &componentView) noexcept; @@ -57,8 +59,24 @@ class CompositionDynamicAutomationProvider : public winrt::implements< virtual HRESULT __stdcall Expand() override; virtual HRESULT __stdcall Collapse() override; + // inherited via ISelectionProvider + virtual HRESULT __stdcall get_CanSelectMultiple(BOOL *pRetVal) override; + virtual HRESULT __stdcall get_IsSelectionRequired(BOOL *pRetVal) override; + virtual HRESULT __stdcall GetSelection(SAFEARRAY **pRetVal) override; + + // inherited via ISelectionItemProvider + virtual HRESULT __stdcall AddToSelection() override; + virtual HRESULT __stdcall get_IsSelected(BOOL *pRetVal) override; + virtual HRESULT __stdcall get_SelectionContainer(IRawElementProviderSimple **pRetVal) override; + virtual HRESULT __stdcall RemoveFromSelection() override; + virtual HRESULT __stdcall Select() override; + + void AddToSelectionItems(IRawElementProviderSimple *item); + void RemoveFromSelectionItems(IRawElementProviderSimple *item); + private: ::Microsoft::ReactNative::ReactTaggedView m_view; + std::vector m_selectionItems; }; } // namespace winrt::Microsoft::ReactNative::implementation diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp index baf6a03ee7c..3805373cd47 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp @@ -1323,6 +1323,18 @@ void ComponentView::updateAccessibilityProps( UIA_LiveSettingPropertyId, oldViewProps.accessibilityLiveRegion, newViewProps.accessibilityLiveRegion); + + if ((oldViewProps.accessibilityState.has_value() && oldViewProps.accessibilityState->selected.has_value()) != ((newViewProps.accessibilityState.has_value() && newViewProps.accessibilityState->selected.has_value()))){ + auto compProvider = + m_uiaProvider.try_as(); + if (compProvider) { + if ((newViewProps.accessibilityState.has_value() && newViewProps.accessibilityState->selected.has_value())) { + winrt::Microsoft::ReactNative::implementation::AddSelectionItemsToContainer(compProvider.get()); + } else { + winrt::Microsoft::ReactNative::implementation::RemoveSelectionItemsFromContainer(compProvider.get()); + } + } + } } std::optional ComponentView::getAccessiblityValue() noexcept { diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp index 9689b046f60..8188ab0bc13 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp @@ -214,4 +214,24 @@ ExpandCollapseState GetExpandCollapseState(const bool &expanded) noexcept { } } +void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider) noexcept { + IRawElementProviderSimple *selectionContainer; + provider->get_SelectionContainer(&selectionContainer); + if (!selectionContainer) + return; + auto selectionContainerProvider = static_cast(selectionContainer); + auto simpleProvider = static_cast(provider); + selectionContainerProvider->AddToSelectionItems(simpleProvider); +} + +void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept { + IRawElementProviderSimple *selectionContainer; + provider->get_SelectionContainer(&selectionContainer); + if (!selectionContainer) + return; + auto selectionContainerProvider = static_cast(selectionContainer); + auto simpleProvider = static_cast(provider); + selectionContainerProvider->RemoveFromSelectionItems(simpleProvider); +} + } // namespace winrt::Microsoft::ReactNative::implementation diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h index 42a31aa131e..163b8c45e83 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h @@ -3,6 +3,7 @@ #include #include #include +#include namespace Microsoft::ReactNative { struct winrt::Microsoft::ReactNative::implementation::ComponentView; @@ -36,4 +37,9 @@ std::string extractAccessibilityValue(const facebook::react::AccessibilityValue void DispatchAccessibilityAction(::Microsoft::ReactNative::ReactTaggedView &view, const std::string &action) noexcept; ExpandCollapseState GetExpandCollapseState(const bool &expanded) noexcept; -} // namespace winrt::Microsoft::ReactNative::implementation + +void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider) noexcept; + +void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept; + +}// namespace winrt::Microsoft::ReactNative::implementation diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h new file mode 100644 index 00000000000..e1ba1e6a3fd --- /dev/null +++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h @@ -0,0 +1,252 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#pragma once + +#include +#include +#include +#include + +namespace facebook::react { + +enum class AccessibilityTraits : uint32_t { + None = 0, + Button = (1 << 0), + Link = (1 << 1), + Image = (1 << 2), + Selected = (1 << 3), + PlaysSound = (1 << 4), + KeyboardKey = (1 << 5), + StaticText = (1 << 6), + SummaryElement = (1 << 7), + NotEnabled = (1 << 8), + UpdatesFrequently = (1 << 9), + SearchField = (1 << 10), + StartsMediaSession = (1 << 11), + Adjustable = (1 << 12), + AllowsDirectInteraction = (1 << 13), + CausesPageTurn = (1 << 14), + Header = (1 << 15), + Switch = (1 << 16), + TabBar = (1 << 17), +}; + +constexpr enum AccessibilityTraits operator|( + const enum AccessibilityTraits lhs, + const enum AccessibilityTraits rhs) { + return (enum AccessibilityTraits)((uint32_t)lhs | (uint32_t)rhs); +} + +constexpr enum AccessibilityTraits operator&( + const enum AccessibilityTraits lhs, + const enum AccessibilityTraits rhs) { + return (enum AccessibilityTraits)((uint32_t)lhs & (uint32_t)rhs); +} + +struct AccessibilityAction { + std::string name{""}; + std::optional label{}; +}; + +inline static bool operator==( + const AccessibilityAction& lhs, + const AccessibilityAction& rhs) { + return lhs.name == rhs.name && lhs.label == rhs.label; +} + +inline static bool operator!=( + const AccessibilityAction& lhs, + const AccessibilityAction& rhs) { + return !(rhs == lhs); +} + +struct AccessibilityState { + bool disabled{false}; + std::optional selected{std::nullopt}; // [Windows] - Do not remove; required for Windows ISelectionItemProvider Implementation + bool busy{false}; + std::optional expanded{std::nullopt}; + std::optional multiselectable{std::nullopt}; // [Windows] - Do not remove; required for Windows ISelectionProvider Implementation + std::optional required{std::nullopt}; // [Windows] - Do not remove; required for Windows ISelectionProvider Implementation + enum { Unchecked, Checked, Mixed, None } checked{None}; +}; + +constexpr bool operator==( + const AccessibilityState& lhs, + const AccessibilityState& rhs) { + return lhs.disabled == rhs.disabled && lhs.selected == rhs.selected && + lhs.checked == rhs.checked && lhs.busy == rhs.busy && + lhs.expanded == rhs.expanded; +} + +constexpr bool operator!=( + const AccessibilityState& lhs, + const AccessibilityState& rhs) { + return !(rhs == lhs); +} + +struct AccessibilityLabelledBy { + std::vector value{}; +}; + +inline static bool operator==( + const AccessibilityLabelledBy& lhs, + const AccessibilityLabelledBy& rhs) { + return lhs.value == rhs.value; +} + +inline static bool operator!=( + const AccessibilityLabelledBy& lhs, + const AccessibilityLabelledBy& rhs) { + return !(lhs == rhs); +} + +struct AccessibilityValue { + std::optional min; + std::optional max; + std::optional now; + std::optional text{}; +}; + +constexpr bool operator==( + const AccessibilityValue& lhs, + const AccessibilityValue& rhs) { + return lhs.min == rhs.min && lhs.max == rhs.max && lhs.now == rhs.now && + lhs.text == rhs.text; +} + +constexpr bool operator!=( + const AccessibilityValue& lhs, + const AccessibilityValue& rhs) { + return !(rhs == lhs); +} + +enum class ImportantForAccessibility : uint8_t { + Auto, + Yes, + No, + NoHideDescendants, +}; + +enum class AccessibilityLiveRegion : uint8_t { + None, + Polite, + Assertive, +}; + +enum class AccessibilityRole { + None, + Button, + Dropdownlist, + Togglebutton, + Link, + Search, + Image, + Keyboardkey, + Text, + Adjustable, + Imagebutton, + Header, + Summary, + Alert, + Checkbox, + Combobox, + Menu, + Menubar, + Menuitem, + Progressbar, + Radio, + Radiogroup, + Scrollbar, + Spinbutton, + Switch, + Tab, + Tabbar, + Tablist, + Timer, + List, + Toolbar, + Grid, + Pager, + Scrollview, + Horizontalscrollview, + Viewgroup, + Webview, + Drawerlayout, + Slidingdrawer, + Iconmenu, +}; + +enum class Role { + Alert, + Alertdialog, + Application, + Article, + Banner, + Button, + Cell, + Checkbox, + Columnheader, + Combobox, + Complementary, + Contentinfo, + Definition, + Dialog, + Directory, + Document, + Feed, + Figure, + Form, + Grid, + Group, + Heading, + Img, + Link, + List, + Listitem, + Log, + Main, + Marquee, + Math, + Menu, + Menubar, + Menuitem, + Meter, + Navigation, + None, + Note, + Option, + Presentation, + Progressbar, + Radio, + Radiogroup, + Region, + Row, + Rowgroup, + Rowheader, + Scrollbar, + Searchbox, + Separator, + Slider, + Spinbutton, + Status, + Summary, + Switch, + Tab, + Table, + Tablist, + Tabpanel, + Term, + Timer, + Toolbar, + Tooltip, + Tree, + Treegrid, + Treeitem, +}; + +} // namespace facebook::react diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h new file mode 100644 index 00000000000..19826f1abbe --- /dev/null +++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h @@ -0,0 +1,795 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace facebook::react { + +inline void fromString(const std::string& string, AccessibilityTraits& result) { + if (string == "none") { + result = AccessibilityTraits::None; + return; + } + if (string == "button" || string == "togglebutton") { + result = AccessibilityTraits::Button; + return; + } + if (string == "link") { + result = AccessibilityTraits::Link; + return; + } + if (string == "image" || string == "img") { + result = AccessibilityTraits::Image; + return; + } + if (string == "selected") { + result = AccessibilityTraits::Selected; + return; + } + if (string == "plays") { + result = AccessibilityTraits::PlaysSound; + return; + } + if (string == "keyboardkey" || string == "key") { + result = AccessibilityTraits::KeyboardKey; + return; + } + if (string == "text") { + result = AccessibilityTraits::StaticText; + return; + } + if (string == "disabled") { + result = AccessibilityTraits::NotEnabled; + return; + } + if (string == "frequentUpdates") { + result = AccessibilityTraits::UpdatesFrequently; + return; + } + if (string == "search") { + result = AccessibilityTraits::SearchField; + return; + } + if (string == "startsMedia") { + result = AccessibilityTraits::StartsMediaSession; + return; + } + if (string == "adjustable") { + result = AccessibilityTraits::Adjustable; + return; + } + if (string == "allowsDirectInteraction") { + result = AccessibilityTraits::AllowsDirectInteraction; + return; + } + if (string == "pageTurn") { + result = AccessibilityTraits::CausesPageTurn; + return; + } + if (string == "header" || string == "heading") { + result = AccessibilityTraits::Header; + return; + } + if (string == "imagebutton") { + result = AccessibilityTraits::Image | AccessibilityTraits::Button; + return; + } + if (string == "summary") { + result = AccessibilityTraits::SummaryElement; + return; + } + if (string == "switch") { + result = AccessibilityTraits::Switch; + return; + } + if (string == "tabbar") { + result = AccessibilityTraits::TabBar; + return; + } + if (string == "progressbar") { + result = AccessibilityTraits::UpdatesFrequently; + return; + } + result = AccessibilityTraits::None; +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + AccessibilityTraits& result) { + if (value.hasType()) { + fromString((std::string)value, result); + return; + } + + result = {}; + + react_native_expect(value.hasType>()); + if (value.hasType>()) { + auto items = (std::vector)value; + for (auto& item : items) { + AccessibilityTraits itemAccessibilityTraits; + fromString(item, itemAccessibilityTraits); + result = result | itemAccessibilityTraits; + } + } else { + LOG(ERROR) << "AccessibilityTraits parsing: unsupported type"; + } +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + AccessibilityState& result) { + auto map = (std::unordered_map)value; + auto selected = map.find("selected"); + if (selected != map.end()) { + fromRawValue(context, selected->second, result.selected); + } + auto disabled = map.find("disabled"); + if (disabled != map.end()) { + fromRawValue(context, disabled->second, result.disabled); + } + auto checked = map.find("checked"); + if (checked != map.end()) { + if (checked->second.hasType()) { + if ((std::string)checked->second == "mixed") { + result.checked = AccessibilityState::Mixed; + } else { + result.checked = AccessibilityState::None; + } + } else if (checked->second.hasType()) { + if ((bool)checked->second == true) { + result.checked = AccessibilityState::Checked; + } else { + result.checked = AccessibilityState::Unchecked; + } + } else { + result.checked = AccessibilityState::None; + } + } + auto busy = map.find("busy"); + if (busy != map.end()) { + fromRawValue(context, busy->second, result.busy); + } + auto expanded = map.find("expanded"); + if (expanded != map.end()) { + fromRawValue(context, expanded->second, result.expanded); + } + // [Windows] - DO NOT REMOVE - required for Windows ISelectionProvider Implementation + auto multiselectable = map.find("multiselectable"); + if (multiselectable != map.end()) { + fromRawValue(context, multiselectable->second, result.multiselectable); + } + auto required = map.find("required"); + if (required != map.end()) { + fromRawValue(context, required->second, result.required); + } + // [Windows] - DO NOT REMOVE +} + +inline std::string toString( + const ImportantForAccessibility& importantForAccessibility) { + switch (importantForAccessibility) { + case ImportantForAccessibility::Auto: + return "auto"; + case ImportantForAccessibility::Yes: + return "yes"; + case ImportantForAccessibility::No: + return "no"; + case ImportantForAccessibility::NoHideDescendants: + return "no-hide-descendants"; + } +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + ImportantForAccessibility& result) { + result = ImportantForAccessibility::Auto; + react_native_expect(value.hasType()); + if (value.hasType()) { + auto string = (std::string)value; + if (string == "auto") { + result = ImportantForAccessibility::Auto; + } else if (string == "yes") { + result = ImportantForAccessibility::Yes; + } else if (string == "no") { + result = ImportantForAccessibility::No; + } else if (string == "no-hide-descendants") { + result = ImportantForAccessibility::NoHideDescendants; + } else { + LOG(ERROR) << "Unsupported ImportantForAccessibility value: " << string; + react_native_expect(false); + } + } else { + LOG(ERROR) << "Unsupported ImportantForAccessibility type"; + } +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + AccessibilityAction& result) { + auto map = (std::unordered_map)value; + + auto name = map.find("name"); + react_native_assert(name != map.end() && name->second.hasType()); + if (name != map.end()) { + fromRawValue(context, name->second, result.name); + } + + auto label = map.find("label"); + if (label != map.end()) { + if (label->second.hasType()) { + result.label = (std::string)label->second; + } + } +} + +inline void fromRawValue( + const PropsParserContext&, + const RawValue& value, + AccessibilityValue& result) { + auto map = (std::unordered_map)value; + + auto min = map.find("min"); + if (min != map.end()) { + if (min->second.hasType()) { + result.min = (int)min->second; + } + } + + auto max = map.find("max"); + if (max != map.end()) { + if (max->second.hasType()) { + result.max = (int)max->second; + } + } + + auto now = map.find("now"); + if (now != map.end()) { + if (now->second.hasType()) { + result.now = (int)now->second; + } + } + + auto text = map.find("text"); + if (text != map.end()) { + if (text->second.hasType()) { + result.text = (std::string)text->second; + } + } +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + AccessibilityLabelledBy& result) { + if (value.hasType()) { + result.value.push_back((std::string)value); + } else if (value.hasType>()) { + result.value = (std::vector)value; + } +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + AccessibilityLiveRegion& result) { + result = AccessibilityLiveRegion::None; + react_native_expect(value.hasType()); + if (value.hasType()) { + auto string = (std::string)value; + if (string == "none") { + result = AccessibilityLiveRegion::None; + } else if (string == "polite") { + result = AccessibilityLiveRegion::Polite; + } else if (string == "assertive") { + result = AccessibilityLiveRegion::Assertive; + } else { + LOG(ERROR) << "Unsupported AccessibilityLiveRegion value: " << string; + react_native_expect(false); + } + } else { + LOG(ERROR) << "Unsupported AccessibilityLiveRegion type"; + } +} + +inline std::string toString(const AccessibilityRole& accessibilityRole) { + switch (accessibilityRole) { + case AccessibilityRole::None: + return "none"; + case AccessibilityRole::Button: + return "button"; + case AccessibilityRole::Dropdownlist: + return "dropdownlist"; + case AccessibilityRole::Togglebutton: + return "togglebutton"; + case AccessibilityRole::Link: + return "link"; + case AccessibilityRole::Search: + return "search"; + case AccessibilityRole::Image: + return "image"; + case AccessibilityRole::Keyboardkey: + return "keyboardkey"; + case AccessibilityRole::Text: + return "text"; + case AccessibilityRole::Adjustable: + return "adjustable"; + case AccessibilityRole::Imagebutton: + return "imagebutton"; + case AccessibilityRole::Header: + return "header"; + case AccessibilityRole::Summary: + return "summary"; + case AccessibilityRole::Alert: + return "alert"; + case AccessibilityRole::Checkbox: + return "checkbox"; + case AccessibilityRole::Combobox: + return "combobox"; + case AccessibilityRole::Menu: + return "menu"; + case AccessibilityRole::Menubar: + return "menubar"; + case AccessibilityRole::Menuitem: + return "menuitem"; + case AccessibilityRole::Progressbar: + return "progressbar"; + case AccessibilityRole::Radio: + return "radio"; + case AccessibilityRole::Radiogroup: + return "radiogroup"; + case AccessibilityRole::Scrollbar: + return "scrollbar"; + case AccessibilityRole::Spinbutton: + return "spinbutton"; + case AccessibilityRole::Switch: + return "switch"; + case AccessibilityRole::Tab: + return "tab"; + case AccessibilityRole::Tabbar: + return "tabbar"; + case AccessibilityRole::Tablist: + return "tablist"; + case AccessibilityRole::Timer: + return "timer"; + case AccessibilityRole::List: + return "timer"; + case AccessibilityRole::Toolbar: + return "toolbar"; + case AccessibilityRole::Grid: + return "grid"; + case AccessibilityRole::Pager: + return "pager"; + case AccessibilityRole::Scrollview: + return "scrollview"; + case AccessibilityRole::Horizontalscrollview: + return "horizontalscrollview"; + case AccessibilityRole::Viewgroup: + return "viewgroup"; + case AccessibilityRole::Webview: + return "webview"; + case AccessibilityRole::Drawerlayout: + return "drawerlayout"; + case AccessibilityRole::Slidingdrawer: + return "slidingdrawer"; + case AccessibilityRole::Iconmenu: + return "iconmenu"; + } + + LOG(ERROR) << "Unsupported AccessibilityRole value"; + react_native_expect(false); + // sane default for prod + return "none"; +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + AccessibilityRole& result) { + react_native_expect(value.hasType()); + if (value.hasType()) { + auto string = (std::string)value; + if (string == "none") { + result = AccessibilityRole::None; + } else if (string == "button") { + result = AccessibilityRole::Button; + } else if (string == "dropdownlist") { + result = AccessibilityRole::Dropdownlist; + } else if (string == "togglebutton") { + result = AccessibilityRole::Togglebutton; + } else if (string == "link") { + result = AccessibilityRole::Link; + } else if (string == "search") { + result = AccessibilityRole::Search; + } else if (string == "image") { + result = AccessibilityRole::Image; + } else if (string == "keyboardkey") { + result = AccessibilityRole::Keyboardkey; + } else if (string == "text") { + result = AccessibilityRole::Text; + } else if (string == "adjustable") { + result = AccessibilityRole::Adjustable; + } else if (string == "imagebutton") { + result = AccessibilityRole::Imagebutton; + } else if (string == "header") { + result = AccessibilityRole::Header; + } else if (string == "summary") { + result = AccessibilityRole::Summary; + } else if (string == "alert") { + result = AccessibilityRole::Alert; + } else if (string == "checkbox") { + result = AccessibilityRole::Checkbox; + } else if (string == "combobox") { + result = AccessibilityRole::Combobox; + } else if (string == "menu") { + result = AccessibilityRole::Menu; + } else if (string == "menubar") { + result = AccessibilityRole::Menubar; + } else if (string == "menuitem") { + result = AccessibilityRole::Menuitem; + } else if (string == "progressbar") { + result = AccessibilityRole::Progressbar; + } else if (string == "radio") { + result = AccessibilityRole::Radio; + } else if (string == "radiogroup") { + result = AccessibilityRole::Radiogroup; + } else if (string == "scrollbar") { + result = AccessibilityRole::Scrollbar; + } else if (string == "spinbutton") { + result = AccessibilityRole::Spinbutton; + } else if (string == "switch") { + result = AccessibilityRole::Switch; + } else if (string == "tab") { + result = AccessibilityRole::Tab; + } else if (string == "tabbar") { + result = AccessibilityRole::Tabbar; + } else if (string == "tablist") { + result = AccessibilityRole::Tablist; + } else if (string == "timer") { + result = AccessibilityRole::Timer; + } else if (string == "toolbar") { + result = AccessibilityRole::Toolbar; + } else if (string == "grid") { + result = AccessibilityRole::Grid; + } else if (string == "pager") { + result = AccessibilityRole::Pager; + } else if (string == "scrollview") { + result = AccessibilityRole::Scrollview; + } else if (string == "horizontalscrollview") { + result = AccessibilityRole::Horizontalscrollview; + } else if (string == "viewgroup") { + result = AccessibilityRole::Viewgroup; + } else if (string == "webview") { + result = AccessibilityRole::Webview; + } else if (string == "drawerlayout") { + result = AccessibilityRole::Drawerlayout; + } else if (string == "slidingdrawer") { + result = AccessibilityRole::Slidingdrawer; + } else if (string == "iconmenu") { + result = AccessibilityRole::Iconmenu; + } else { + LOG(ERROR) << "Unsupported AccessibilityRole value: " << string; + react_native_expect(false); + // sane default for prod + result = AccessibilityRole::None; + } + return; + } + + LOG(ERROR) << "Unsupported AccessibilityRole type"; + react_native_expect(false); + // sane default for prod + result = AccessibilityRole::None; +} + +inline std::string toString(const Role& role) { + switch (role) { + case Role::Alert: + return "alert"; + case Role::Alertdialog: + return "alertdialog"; + case Role::Application: + return "application"; + case Role::Article: + return "article"; + case Role::Banner: + return "banner"; + case Role::Button: + return "button"; + case Role::Cell: + return "cell"; + case Role::Checkbox: + return "checkbox"; + case Role::Columnheader: + return "columnheader"; + case Role::Combobox: + return "combobox"; + case Role::Complementary: + return "complementary"; + case Role::Contentinfo: + return "contentinfo"; + case Role::Definition: + return "definition"; + case Role::Dialog: + return "dialog"; + case Role::Directory: + return "directory"; + case Role::Document: + return "document"; + case Role::Feed: + return "feed"; + case Role::Figure: + return "figure"; + case Role::Form: + return "form"; + case Role::Grid: + return "grid"; + case Role::Group: + return "group"; + case Role::Heading: + return "heading"; + case Role::Img: + return "img"; + case Role::Link: + return "link"; + case Role::List: + return "list"; + case Role::Listitem: + return "listitem"; + case Role::Log: + return "log"; + case Role::Main: + return "main"; + case Role::Marquee: + return "marquee"; + case Role::Math: + return "math"; + case Role::Menu: + return "menu"; + case Role::Menubar: + return "menubar"; + case Role::Menuitem: + return "menuitem"; + case Role::Meter: + return "meter"; + case Role::Navigation: + return "navigation"; + case Role::None: + return "none"; + case Role::Note: + return "note"; + case Role::Option: + return "option"; + case Role::Presentation: + return "presentation"; + case Role::Progressbar: + return "progressbar"; + case Role::Radio: + return "radio"; + case Role::Radiogroup: + return "radiogroup"; + case Role::Region: + return "region"; + case Role::Row: + return "row"; + case Role::Rowgroup: + return "rowgroup"; + case Role::Rowheader: + return "rowheader"; + case Role::Scrollbar: + return "scrollbar"; + case Role::Searchbox: + return "searchbox"; + case Role::Separator: + return "separator"; + case Role::Slider: + return "slider"; + case Role::Spinbutton: + return "spinbutton"; + case Role::Status: + return "status"; + case Role::Summary: + return "summary"; + case Role::Switch: + return "switch"; + case Role::Tab: + return "tab"; + case Role::Table: + return "table"; + case Role::Tablist: + return "tablist"; + case Role::Tabpanel: + return "tabpanel"; + case Role::Term: + return "term"; + case Role::Timer: + return "timer"; + case Role::Toolbar: + return "toolbar"; + case Role::Tooltip: + return "tooltip"; + case Role::Tree: + return "tree"; + case Role::Treegrid: + return "treegrid"; + case Role::Treeitem: + return "treeitem"; + } + + LOG(ERROR) << "Unsupported Role value"; + react_native_expect(false); + // sane default for prod + return "none"; +} + +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + Role& result) { + react_native_expect(value.hasType()); + if (value.hasType()) { + auto string = (std::string)value; + if (string == "alert") { + result = Role::Alert; + } else if (string == "alertdialog") { + result = Role::Alertdialog; + } else if (string == "application") { + result = Role::Application; + } else if (string == "article") { + result = Role::Article; + } else if (string == "banner") { + result = Role::Banner; + } else if (string == "button") { + result = Role::Button; + } else if (string == "cell") { + result = Role::Cell; + } else if (string == "checkbox") { + result = Role::Checkbox; + } else if (string == "columnheader") { + result = Role::Columnheader; + } else if (string == "combobox") { + result = Role::Combobox; + } else if (string == "complementary") { + result = Role::Complementary; + } else if (string == "contentinfo") { + result = Role::Contentinfo; + } else if (string == "definition") { + result = Role::Definition; + } else if (string == "dialog") { + result = Role::Dialog; + } else if (string == "directory") { + result = Role::Directory; + } else if (string == "document") { + result = Role::Document; + } else if (string == "feed") { + result = Role::Feed; + } else if (string == "figure") { + result = Role::Figure; + } else if (string == "form") { + result = Role::Form; + } else if (string == "grid") { + result = Role::Grid; + } else if (string == "group") { + result = Role::Group; + } else if (string == "heading") { + result = Role::Heading; + } else if (string == "img") { + result = Role::Img; + } else if (string == "link") { + result = Role::Link; + } else if (string == "list") { + result = Role::List; + } else if (string == "listitem") { + result = Role::Listitem; + } else if (string == "log") { + result = Role::Log; + } else if (string == "main") { + result = Role::Main; + } else if (string == "marquee") { + result = Role::Marquee; + } else if (string == "math") { + result = Role::Math; + } else if (string == "menu") { + result = Role::Menu; + } else if (string == "menubar") { + result = Role::Menubar; + } else if (string == "menuitem") { + result = Role::Menuitem; + } else if (string == "meter") { + result = Role::Meter; + } else if (string == "navigation") { + result = Role::Navigation; + } else if (string == "none") { + result = Role::None; + } else if (string == "note") { + result = Role::Note; + } else if (string == "option") { + result = Role::Option; + } else if (string == "presentation") { + result = Role::Presentation; + } else if (string == "progressbar") { + result = Role::Progressbar; + } else if (string == "radio") { + result = Role::Radio; + } else if (string == "radiogroup") { + result = Role::Radiogroup; + } else if (string == "region") { + result = Role::Region; + } else if (string == "row") { + result = Role::Row; + } else if (string == "rowgroup") { + result = Role::Rowgroup; + } else if (string == "rowheader") { + result = Role::Rowheader; + } else if (string == "scrollbar") { + result = Role::Scrollbar; + } else if (string == "searchbox") { + result = Role::Searchbox; + } else if (string == "separator") { + result = Role::Separator; + } else if (string == "slider") { + result = Role::Slider; + } else if (string == "spinbutton") { + result = Role::Spinbutton; + } else if (string == "status") { + result = Role::Status; + } else if (string == "summary") { + result = Role::Summary; + } else if (string == "switch") { + result = Role::Switch; + } else if (string == "tab") { + result = Role::Tab; + } else if (string == "table") { + result = Role::Table; + } else if (string == "tablist") { + result = Role::Tablist; + } else if (string == "tabpanel") { + result = Role::Tabpanel; + } else if (string == "term") { + result = Role::Term; + } else if (string == "timer") { + result = Role::Timer; + } else if (string == "toolbar") { + result = Role::Toolbar; + } else if (string == "tooltip") { + result = Role::Tooltip; + } else if (string == "tree") { + result = Role::Tree; + } else if (string == "treegrid") { + result = Role::Treegrid; + } else if (string == "treeitem") { + result = Role::Treeitem; + } else { + LOG(ERROR) << "Unsupported Role value: " << string; + react_native_expect(false); + // sane default for prod + result = Role::None; + } + return; + } + + LOG(ERROR) << "Unsupported Role type"; + react_native_expect(false); + // sane default for prod + result = Role::None; +} + +} // namespace facebook::react diff --git a/vnext/overrides.json b/vnext/overrides.json index f0f874220b1..46a695e65c5 100644 --- a/vnext/overrides.json +++ b/vnext/overrides.json @@ -189,6 +189,20 @@ "baseHash": "ba169659231c48eae21905371dcba8cc83db90f2", "issue": 12879 }, + { + "type": "derived", + "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h", + "baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h", + "baseHash": "6db5b174fe1dc7d108ae7f9e730decfe5f633bd8", + "issue": 0 + }, + { + "type": "derived", + "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h", + "baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h", + "baseHash": "4b2822199233e660f36c01df18fbbff7799968cc", + "issue": 0 + }, { "type": "patch", "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/LayoutableShadowNode.cpp", @@ -407,12 +421,26 @@ "baseHash": "27e19d3bf49ff28629fdad544aad04939c2ce030", "issue": 0 }, + { + "type": "derived", + "file": "src-win/Libraries/Components/Touchable/TouchableBounce.windows.js", + "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableBounce.js", + "baseHash": "be638b955fd4b85c2e94231db2ccb642b39e2795", + "issue": 0 + }, { "type": "patch", "file": "src-win/Libraries/Components/Touchable/TouchableHighlight.windows.js", "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableHighlight.js", "baseHash": "61a20bbe5190cfdbb38949d3397808034afb46c9" }, + { + "type": "derived", + "file": "src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js", + "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js", + "baseHash": "8a1cc3c55ca3af68c5627479b3614fa44a1ffbea", + "issue": 0 + }, { "type": "patch", "file": "src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js", diff --git a/vnext/src-win/Libraries/Components/Button.windows.js b/vnext/src-win/Libraries/Components/Button.windows.js index d4fd85c5ea2..cd717bd8173 100644 --- a/vnext/src-win/Libraries/Components/Button.windows.js +++ b/vnext/src-win/Libraries/Components/Button.windows.js @@ -164,6 +164,8 @@ type ButtonProps = $ReadOnly<{| 'aria-disabled'?: ?boolean, 'aria-expanded'?: ?boolean, 'aria-selected'?: ?boolean, + 'aria-multiselectable'?: ?boolean, // Windows + 'aria-required'?: ?boolean, // Windows /** * [Android] Controlling if a view fires accessibility events and if it is reported to accessibility services. @@ -308,6 +310,8 @@ const Button: React.AbstractComponent< 'aria-expanded': ariaExpanded, 'aria-label': ariaLabel, 'aria-selected': ariaSelected, + 'aria-multiselectable': ariaMultiselectable, // Windows + 'aria-required': ariaRequired, // Windows importantForAccessibility, color, onPress, @@ -343,6 +347,8 @@ const Button: React.AbstractComponent< disabled: ariaDisabled ?? accessibilityState?.disabled, expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, + multiselectable: ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows + required: ariaRequired ?? accessibilityState?.required // Windows }; const disabled = diff --git a/vnext/src-win/Libraries/Components/Pressable/Pressable.windows.js b/vnext/src-win/Libraries/Components/Pressable/Pressable.windows.js index f2a830dd128..45e02f7bc74 100644 --- a/vnext/src-win/Libraries/Components/Pressable/Pressable.windows.js +++ b/vnext/src-win/Libraries/Components/Pressable/Pressable.windows.js @@ -75,6 +75,8 @@ type Props = $ReadOnly<{| 'aria-disabled'?: ?boolean, 'aria-expanded'?: ?boolean, 'aria-selected'?: ?boolean, + 'aria-multiselectable'?: ?boolean, // Windows + 'aria-required'?: ?boolean, // Windows /** * A value indicating whether the accessibility elements contained within * this accessibility element are hidden. @@ -262,6 +264,8 @@ function Pressable( 'aria-expanded': ariaExpanded, 'aria-label': ariaLabel, 'aria-selected': ariaSelected, + 'aria-multiselectable': ariaMultiselectable, // Windows + 'aria-required': ariaRequired, // Windows cancelable, children, delayHoverIn, @@ -305,6 +309,8 @@ function Pressable( disabled: ariaDisabled ?? accessibilityState?.disabled, expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, + multiselectable: ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows + required: ariaRequired ?? accessibilityState?.required, // Windows }; _accessibilityState = diff --git a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js index 83d6839838d..1e59c11feb6 100644 --- a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js +++ b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js @@ -1352,6 +1352,8 @@ function InternalTextInput(props: Props): React.Node { 'aria-disabled': ariaDisabled, 'aria-expanded': ariaExpanded, 'aria-selected': ariaSelected, + 'aria-multiselectable': ariaMultiselectable, // Windows + 'aria-required': ariaRequired, // Windows accessibilityState, id, tabIndex, @@ -1675,7 +1677,9 @@ function InternalTextInput(props: Props): React.Node { ariaChecked != null || ariaDisabled != null || ariaExpanded != null || - ariaSelected != null + ariaSelected != null || + ariaMultiselectable != null || + ariaRequired != null ) { _accessibilityState = { busy: ariaBusy ?? accessibilityState?.busy, @@ -1683,6 +1687,8 @@ function InternalTextInput(props: Props): React.Node { disabled: ariaDisabled ?? accessibilityState?.disabled, expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, + multiselectable: ariaMultiselectable ?? accessibilityState?.multiselectable, + required: ariaRequired ?? accessibilityState?.required }; } diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js new file mode 100644 index 00000000000..74bc3e48435 --- /dev/null +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js @@ -0,0 +1,222 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +import type {ViewStyleProp} from '../../StyleSheet/StyleSheet'; +import typeof TouchableWithoutFeedback from './TouchableWithoutFeedback'; + +import Animated from '../../Animated/Animated'; +import Pressability, { + type PressabilityConfig, +} from '../../Pressability/Pressability'; +import {PressabilityDebugView} from '../../Pressability/PressabilityDebug'; +import Platform from '../../Utilities/Platform'; +import * as React from 'react'; + +type Props = $ReadOnly<{| + ...React.ElementConfig, + + onPressAnimationComplete?: ?() => void, + onPressWithCompletion?: ?(callback: () => void) => void, + releaseBounciness?: ?number, + releaseVelocity?: ?number, + style?: ?ViewStyleProp, + + hostRef: React.RefSetter>, +|}>; + +type State = $ReadOnly<{| + pressability: Pressability, + scale: Animated.Value, +|}>; + +class TouchableBounce extends React.Component { + state: State = { + pressability: new Pressability(this._createPressabilityConfig()), + scale: new Animated.Value(1), + }; + + _createPressabilityConfig(): PressabilityConfig { + return { + cancelable: !this.props.rejectResponderTermination, + disabled: this.props.disabled, + hitSlop: this.props.hitSlop, + delayLongPress: this.props.delayLongPress, + delayPressIn: this.props.delayPressIn, + delayPressOut: this.props.delayPressOut, + minPressDuration: 0, + pressRectOffset: this.props.pressRetentionOffset, + android_disableSound: this.props.touchSoundDisabled, + onBlur: event => { + if (Platform.isTV) { + this._bounceTo(1, 0.4, 0); + } + if (this.props.onBlur != null) { + this.props.onBlur(event); + } + }, + onFocus: event => { + if (Platform.isTV) { + this._bounceTo(0.93, 0.1, 0); + } + if (this.props.onFocus != null) { + this.props.onFocus(event); + } + }, + onLongPress: this.props.onLongPress, + onPress: event => { + const {onPressAnimationComplete, onPressWithCompletion} = this.props; + const releaseBounciness = this.props.releaseBounciness ?? 10; + const releaseVelocity = this.props.releaseVelocity ?? 10; + + if (onPressWithCompletion != null) { + onPressWithCompletion(() => { + this.state.scale.setValue(0.93); + this._bounceTo( + 1, + releaseVelocity, + releaseBounciness, + onPressAnimationComplete, + ); + }); + return; + } + + this._bounceTo( + 1, + releaseVelocity, + releaseBounciness, + onPressAnimationComplete, + ); + if (this.props.onPress != null) { + this.props.onPress(event); + } + }, + onPressIn: event => { + this._bounceTo(0.93, 0.1, 0); + if (this.props.onPressIn != null) { + this.props.onPressIn(event); + } + }, + onPressOut: event => { + this._bounceTo(1, 0.4, 0); + if (this.props.onPressOut != null) { + this.props.onPressOut(event); + } + }, + }; + } + + _bounceTo( + toValue: number, + velocity: number, + bounciness: number, + callback?: ?() => void, + ) { + Animated.spring(this.state.scale, { + toValue, + velocity, + bounciness, + useNativeDriver: true, + }).start(callback); + } + + render(): React.Node { + // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before + // adopting `Pressability`, so preserve that behavior. + const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} = + this.state.pressability.getEventHandlers(); + const accessibilityLiveRegion = + this.props['aria-live'] === 'off' + ? 'none' + : this.props['aria-live'] ?? this.props.accessibilityLiveRegion; + const _accessibilityState = { + busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy, + checked: + this.props['aria-checked'] ?? this.props.accessibilityState?.checked, + disabled: + this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled, + expanded: + this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded, + selected: + this.props['aria-selected'] ?? this.props.accessibilityState?.selected, + multiselectable: + this.props['aria-multiselectable'] ?? this.props.accessibilityState?.multiselectable, // Windows + required: + this.props['aria-required'] ?? this.props.accessibilityState?.required, // Windows + }; + + const accessibilityValue = { + max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max, + min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min, + now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now, + text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text, + }; + + const accessibilityLabel = + this.props['aria-label'] ?? this.props.accessibilityLabel; + return ( + + {this.props.children} + {__DEV__ ? ( + + ) : null} + + ); + } + + componentDidUpdate(prevProps: Props, prevState: State) { + this.state.pressability.configure(this._createPressabilityConfig()); + } + + componentDidMount(): mixed { + this.state.pressability.configure(this._createPressabilityConfig()); + } + + componentWillUnmount(): void { + this.state.pressability.reset(); + this.state.scale.resetAnimation(); + } +} + +module.exports = (React.forwardRef((props, hostRef) => ( + +)): React.AbstractComponent<$ReadOnly<$Diff>>); diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js new file mode 100644 index 00000000000..90d18898c43 --- /dev/null +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js @@ -0,0 +1,370 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +import type {PressEvent} from '../../Types/CoreEventTypes'; +import typeof TouchableWithoutFeedback from './TouchableWithoutFeedback'; + +import View from '../../Components/View/View'; +import Pressability, { + type PressabilityConfig, +} from '../../Pressability/Pressability'; +import {PressabilityDebugView} from '../../Pressability/PressabilityDebug'; +import {findHostInstance_DEPRECATED} from '../../ReactNative/RendererProxy'; +import processColor from '../../StyleSheet/processColor'; +import Platform from '../../Utilities/Platform'; +import {Commands} from '../View/ViewNativeComponent'; +import invariant from 'invariant'; +import * as React from 'react'; + +type Props = $ReadOnly<{| + ...React.ElementConfig, + + /** + * Determines the type of background drawable that's going to be used to + * display feedback. It takes an object with `type` property and extra data + * depending on the `type`. It's recommended to use one of the static + * methods to generate that dictionary. + */ + background?: ?( + | $ReadOnly<{| + type: 'ThemeAttrAndroid', + attribute: + | 'selectableItemBackground' + | 'selectableItemBackgroundBorderless', + rippleRadius: ?number, + |}> + | $ReadOnly<{| + type: 'RippleAndroid', + color: ?number, + borderless: boolean, + rippleRadius: ?number, + |}> + ), + + /** + * TV preferred focus (see documentation for the View component). + */ + hasTVPreferredFocus?: ?boolean, + + /** + * TV next focus down (see documentation for the View component). + */ + nextFocusDown?: ?number, + + /** + * TV next focus forward (see documentation for the View component). + */ + nextFocusForward?: ?number, + + /** + * TV next focus left (see documentation for the View component). + */ + nextFocusLeft?: ?number, + + /** + * TV next focus right (see documentation for the View component). + */ + nextFocusRight?: ?number, + + /** + * TV next focus up (see documentation for the View component). + */ + nextFocusUp?: ?number, + + /** + * Set to true to add the ripple effect to the foreground of the view, instead + * of the background. This is useful if one of your child views has a + * background of its own, or you're e.g. displaying images, and you don't want + * the ripple to be covered by them. + * + * Check TouchableNativeFeedback.canUseNativeForeground() first, as this is + * only available on Android 6.0 and above. If you try to use this on older + * versions, this will fallback to background. + */ + useForeground?: ?boolean, +|}>; + +type State = $ReadOnly<{| + pressability: Pressability, +|}>; + +class TouchableNativeFeedback extends React.Component { + /** + * Creates a value for the `background` prop that uses the Android theme's + * default background for selectable elements. + */ + static SelectableBackground: (rippleRadius: ?number) => $ReadOnly<{| + attribute: 'selectableItemBackground', + type: 'ThemeAttrAndroid', + rippleRadius: ?number, + |}> = (rippleRadius: ?number) => ({ + type: 'ThemeAttrAndroid', + attribute: 'selectableItemBackground', + rippleRadius, + }); + + /** + * Creates a value for the `background` prop that uses the Android theme's + * default background for borderless selectable elements. Requires API 21+. + */ + static SelectableBackgroundBorderless: (rippleRadius: ?number) => $ReadOnly<{| + attribute: 'selectableItemBackgroundBorderless', + type: 'ThemeAttrAndroid', + rippleRadius: ?number, + |}> = (rippleRadius: ?number) => ({ + type: 'ThemeAttrAndroid', + attribute: 'selectableItemBackgroundBorderless', + rippleRadius, + }); + + /** + * Creates a value for the `background` prop that uses the Android ripple with + * the supplied color. If `borderless` is true, the ripple will render outside + * of the view bounds. Requires API 21+. + */ + static Ripple: ( + color: string, + borderless: boolean, + rippleRadius: ?number, + ) => $ReadOnly<{| + borderless: boolean, + color: ?number, + rippleRadius: ?number, + type: 'RippleAndroid', + |}> = (color: string, borderless: boolean, rippleRadius: ?number) => { + const processedColor = processColor(color); + invariant( + processedColor == null || typeof processedColor === 'number', + 'Unexpected color given for Ripple color', + ); + return { + type: 'RippleAndroid', + // $FlowFixMe[incompatible-type] + color: processedColor, + borderless, + rippleRadius, + }; + }; + + /** + * Whether `useForeground` is supported. + */ + static canUseNativeForeground: () => boolean = () => + Platform.OS === 'android'; + + state: State = { + pressability: new Pressability(this._createPressabilityConfig()), + }; + + _createPressabilityConfig(): PressabilityConfig { + const accessibilityStateDisabled = + this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled; + return { + cancelable: !this.props.rejectResponderTermination, + disabled: + this.props.disabled != null + ? this.props.disabled + : accessibilityStateDisabled, + hitSlop: this.props.hitSlop, + delayLongPress: this.props.delayLongPress, + delayPressIn: this.props.delayPressIn, + delayPressOut: this.props.delayPressOut, + minPressDuration: 0, + pressRectOffset: this.props.pressRetentionOffset, + android_disableSound: this.props.touchSoundDisabled, + onLongPress: this.props.onLongPress, + onPress: this.props.onPress, + onPressIn: event => { + if (Platform.OS === 'android') { + this._dispatchHotspotUpdate(event); + this._dispatchPressedStateChange(true); + } + if (this.props.onPressIn != null) { + this.props.onPressIn(event); + } + }, + onPressMove: event => { + if (Platform.OS === 'android') { + this._dispatchHotspotUpdate(event); + } + }, + onPressOut: event => { + if (Platform.OS === 'android') { + this._dispatchPressedStateChange(false); + } + if (this.props.onPressOut != null) { + this.props.onPressOut(event); + } + }, + }; + } + + _dispatchPressedStateChange(pressed: boolean): void { + if (Platform.OS === 'android') { + const hostComponentRef = findHostInstance_DEPRECATED(this); + if (hostComponentRef == null) { + console.warn( + 'Touchable: Unable to find HostComponent instance. ' + + 'Has your Touchable component been unmounted?', + ); + } else { + Commands.setPressed(hostComponentRef, pressed); + } + } + } + + _dispatchHotspotUpdate(event: PressEvent): void { + if (Platform.OS === 'android') { + const {locationX, locationY} = event.nativeEvent; + const hostComponentRef = findHostInstance_DEPRECATED(this); + if (hostComponentRef == null) { + console.warn( + 'Touchable: Unable to find HostComponent instance. ' + + 'Has your Touchable component been unmounted?', + ); + } else { + Commands.hotspotUpdate( + hostComponentRef, + locationX ?? 0, + locationY ?? 0, + ); + } + } + } + + render(): React.Node { + const element = React.Children.only<$FlowFixMe>(this.props.children); + const children: Array = [element.props.children]; + if (__DEV__) { + if (element.type === View) { + children.push( + , + ); + } + } + + // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before + // adopting `Pressability`, so preserve that behavior. + const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} = + this.state.pressability.getEventHandlers(); + + let _accessibilityState = { + busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy, + checked: + this.props['aria-checked'] ?? this.props.accessibilityState?.checked, + disabled: + this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled, + expanded: + this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded, + selected: + this.props['aria-selected'] ?? this.props.accessibilityState?.selected, + multiselectable: + this.props['aria-multiselectable'] ?? this.props.accessibilityState?.multiselectable, // Windows + required: + this.props['aria-required'] ?? this.props.accessibilityState?.required, // Windows + }; + + _accessibilityState = + this.props.disabled != null + ? { + ..._accessibilityState, + disabled: this.props.disabled, + } + : _accessibilityState; + + const accessibilityValue = { + max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max, + min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min, + now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now, + text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text, + }; + + const accessibilityLiveRegion = + this.props['aria-live'] === 'off' + ? 'none' + : this.props['aria-live'] ?? this.props.accessibilityLiveRegion; + + const accessibilityLabel = + this.props['aria-label'] ?? this.props.accessibilityLabel; + return React.cloneElement( + element, + { + ...eventHandlersWithoutBlurAndFocus, + ...getBackgroundProp( + this.props.background === undefined + ? TouchableNativeFeedback.SelectableBackground() + : this.props.background, + this.props.useForeground === true, + ), + accessible: this.props.accessible !== false, + accessibilityHint: this.props.accessibilityHint, + accessibilityLanguage: this.props.accessibilityLanguage, + accessibilityLabel: accessibilityLabel, + accessibilityRole: this.props.accessibilityRole, + accessibilityState: _accessibilityState, + accessibilityActions: this.props.accessibilityActions, + onAccessibilityAction: this.props.onAccessibilityAction, + accessibilityValue: accessibilityValue, + importantForAccessibility: + this.props['aria-hidden'] === true + ? 'no-hide-descendants' + : this.props.importantForAccessibility, + accessibilityViewIsModal: + this.props['aria-modal'] ?? this.props.accessibilityViewIsModal, + accessibilityLiveRegion: accessibilityLiveRegion, + accessibilityElementsHidden: + this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden, + hasTVPreferredFocus: this.props.hasTVPreferredFocus, + hitSlop: this.props.hitSlop, + focusable: + this.props.focusable !== false && + this.props.onPress !== undefined && + !this.props.disabled, + nativeID: this.props.id ?? this.props.nativeID, + nextFocusDown: this.props.nextFocusDown, + nextFocusForward: this.props.nextFocusForward, + nextFocusLeft: this.props.nextFocusLeft, + nextFocusRight: this.props.nextFocusRight, + nextFocusUp: this.props.nextFocusUp, + onLayout: this.props.onLayout, + testID: this.props.testID, + }, + ...children, + ); + } + + componentDidUpdate(prevProps: Props, prevState: State) { + this.state.pressability.configure(this._createPressabilityConfig()); + } + + componentDidMount(): mixed { + this.state.pressability.configure(this._createPressabilityConfig()); + } + + componentWillUnmount(): void { + this.state.pressability.reset(); + } +} + +const getBackgroundProp = + Platform.OS === 'android' + ? /* $FlowFixMe[missing-local-annot] The type annotation(s) required by + * Flow's LTI update could not be added via codemod */ + (background, useForeground: boolean) => + useForeground && TouchableNativeFeedback.canUseNativeForeground() + ? {nativeForegroundAndroid: background} + : {nativeBackgroundAndroid: background} + : /* $FlowFixMe[missing-local-annot] The type annotation(s) required by + * Flow's LTI update could not be added via codemod */ + (background, useForeground: boolean) => null; + +TouchableNativeFeedback.displayName = 'TouchableNativeFeedback'; + +module.exports = TouchableNativeFeedback; diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js index babd8875060..b84e875e057 100644 --- a/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js @@ -235,6 +235,10 @@ class TouchableOpacity extends React.Component { this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded, selected: this.props['aria-selected'] ?? this.props.accessibilityState?.selected, + multiselectable: + this.props['aria-multiselectable'] ?? this.props.accessibilityState?.multiselectable, // Windows + required: + this.props['aria-required'] ?? this.props.accessibilityState?.required, // Windows }; _accessibilityState = diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js index f20fe804b92..a2278126b52 100644 --- a/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js @@ -59,6 +59,8 @@ type Props = $ReadOnly<{| 'aria-disabled'?: ?boolean, 'aria-expanded'?: ?boolean, 'aria-selected'?: ?boolean, + 'aria-multiselectable'?: ?boolean, // Windows + 'aria-required'?: ?boolean, // Windows 'aria-hidden'?: ?boolean, 'aria-live'?: ?('polite' | 'assertive' | 'off'), 'aria-label'?: ?Stringish, @@ -219,6 +221,8 @@ const TouchableWithoutFeedback: React.AbstractComponent< disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled, expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded, selected: props['aria-selected'] ?? props.accessibilityState?.selected, + multiselectable: props['aria-multiselectable'] ?? props.accessibilityState?.multiselectable, // Windows + required: props['aria-required'] ?? props.accessibilityState?.required, // Windows }; // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js index e6f77b141ec..365babd445c 100644 --- a/vnext/src-win/Libraries/Components/View/View.windows.js +++ b/vnext/src-win/Libraries/Components/View/View.windows.js @@ -78,6 +78,8 @@ const View: React.AbstractComponent< 'aria-checked': ariaChecked, 'aria-disabled': ariaDisabled, 'aria-expanded': ariaExpanded, + 'aria-multiselectable': ariaMultiselectable, // Windows + 'aria-required': ariaRequired, // Windows 'aria-hidden': ariaHidden, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, @@ -110,7 +112,9 @@ const View: React.AbstractComponent< ariaChecked != null || ariaDisabled != null || ariaExpanded != null || - ariaSelected != null + ariaSelected != null || + ariaMultiselectable != null || // Windows + ariaRequired != null // Windows ) { _accessibilityState = { busy: ariaBusy ?? accessibilityState?.busy, @@ -118,6 +122,8 @@ const View: React.AbstractComponent< disabled: ariaDisabled ?? accessibilityState?.disabled, expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, + multiselectable: ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows + required: ariaRequired ?? accessibilityState?.required, // Windows }; } let _accessibilityValue; diff --git a/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts b/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts index 4beda0c6be1..e1639daf382 100644 --- a/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts +++ b/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts @@ -183,6 +183,16 @@ export interface AccessibilityState { * When present, informs accessible tools the element is expanded or collapsed */ expanded?: boolean | undefined; + /** + * When present, informs accessible tools the element can have multiple items selected + * @platform windows + */ + multiselectable? : boolean | undefined; + /** + * When present, informs accessible tools the element requires selection + * @platform windows + */ + required? : boolean | undefined; } export interface AccessibilityValue { diff --git a/vnext/src-win/Libraries/Components/View/ViewAccessibility.windows.js b/vnext/src-win/Libraries/Components/View/ViewAccessibility.windows.js index 98324f23846..75cd5fb0733 100644 --- a/vnext/src-win/Libraries/Components/View/ViewAccessibility.windows.js +++ b/vnext/src-win/Libraries/Components/View/ViewAccessibility.windows.js @@ -181,6 +181,8 @@ export type AccessibilityState = { checked?: ?boolean | 'mixed', busy?: ?boolean, expanded?: ?boolean, + multiselectable?: ?boolean, // Windows + required?: ?boolean, // Windows ... }; diff --git a/vnext/src-win/Libraries/Image/Image.windows.js b/vnext/src-win/Libraries/Image/Image.windows.js index 430ff45b3ed..90ed9defa5f 100644 --- a/vnext/src-win/Libraries/Image/Image.windows.js +++ b/vnext/src-win/Libraries/Image/Image.windows.js @@ -147,6 +147,8 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => { 'aria-disabled': ariaDisabled, 'aria-expanded': ariaExpanded, 'aria-selected': ariaSelected, + 'aria-multiselectable': ariaMultiselectable, // Windows + 'aria-required': ariaRequired, // Windows height, src, width, @@ -159,6 +161,8 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => { disabled: ariaDisabled ?? props.accessibilityState?.disabled, expanded: ariaExpanded ?? props.accessibilityState?.expanded, selected: ariaSelected ?? props.accessibilityState?.selected, + multiselectable: ariaMultiselectable ?? props.accessibilityState?.multiselectable, // Windows + required: ariaRequired ?? props.accessibilityState?.required, // Windows }; const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel; diff --git a/vnext/src-win/Libraries/Text/Text.windows.js b/vnext/src-win/Libraries/Text/Text.windows.js index 5844e704dc8..36c75ba6ed4 100644 --- a/vnext/src-win/Libraries/Text/Text.windows.js +++ b/vnext/src-win/Libraries/Text/Text.windows.js @@ -49,6 +49,8 @@ const Text: React.AbstractComponent = 'aria-checked': ariaChecked, 'aria-disabled': ariaDisabled, 'aria-expanded': ariaExpanded, + 'aria-multiselectable': ariaMultiselectable, // Windows + 'aria-required': ariaRequired, // Windows 'aria-label': ariaLabel, 'aria-level': ariaLevel, // Windows 'aria-posinset': ariaPosinset, // Windows @@ -91,7 +93,9 @@ const Text: React.AbstractComponent = ariaChecked != null || ariaDisabled != null || ariaExpanded != null || - ariaSelected != null + ariaSelected != null || + ariaMultiselectable != null || // Windows + ariaRequired != null // Windows ) { if (_accessibilityState != null) { _accessibilityState = { @@ -100,6 +104,8 @@ const Text: React.AbstractComponent = disabled: ariaDisabled ?? _accessibilityState.disabled, expanded: ariaExpanded ?? _accessibilityState.expanded, selected: ariaSelected ?? _accessibilityState.selected, + multiselectable: ariaMultiselectable ?? _accessibilityState.multiselectable, // Windows + required: ariaRequired ?? _accessibilityState.required, // Windows }; } else { _accessibilityState = { @@ -108,6 +114,8 @@ const Text: React.AbstractComponent = disabled: ariaDisabled, expanded: ariaExpanded, selected: ariaSelected, + multiselectable: ariaMultiselectable, // Windows + required: ariaRequired, // Windows }; } } From 5fcba6744f0bb56395b65467294c1e2540b662f6 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:01:52 -0700 Subject: [PATCH 02/20] Change files --- ...ative-windows-a7e4e9a7-38af-4609-a0a4-152046e6e53b.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/react-native-windows-a7e4e9a7-38af-4609-a0a4-152046e6e53b.json diff --git a/change/react-native-windows-a7e4e9a7-38af-4609-a0a4-152046e6e53b.json b/change/react-native-windows-a7e4e9a7-38af-4609-a0a4-152046e6e53b.json new file mode 100644 index 00000000000..c0f555b2bba --- /dev/null +++ b/change/react-native-windows-a7e4e9a7-38af-4609-a0a4-152046e6e53b.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Implement ISelectionProvider and ISelectionItemProvider", + "packageName": "react-native-windows", + "email": "34109996+chiaramooney@users.noreply.github.com", + "dependentChangeType": "patch" +} From dabf7cb9c96224d3e4c862f4e0dcca7237170eb9 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:03:40 -0700 Subject: [PATCH 03/20] Format --- .../Fabric/Composition/CompositionViewComponentView.cpp | 3 ++- vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp index 3805373cd47..3932df10a83 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp @@ -1324,7 +1324,8 @@ void ComponentView::updateAccessibilityProps( oldViewProps.accessibilityLiveRegion, newViewProps.accessibilityLiveRegion); - if ((oldViewProps.accessibilityState.has_value() && oldViewProps.accessibilityState->selected.has_value()) != ((newViewProps.accessibilityState.has_value() && newViewProps.accessibilityState->selected.has_value()))){ + if ((oldViewProps.accessibilityState.has_value() && oldViewProps.accessibilityState->selected.has_value()) != + ((newViewProps.accessibilityState.has_value() && newViewProps.accessibilityState->selected.has_value()))) { auto compProvider = m_uiaProvider.try_as(); if (compProvider) { diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h index 163b8c45e83..2c69c947b0d 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h @@ -1,9 +1,9 @@ #pragma once #include +#include #include #include -#include namespace Microsoft::ReactNative { struct winrt::Microsoft::ReactNative::implementation::ComponentView; @@ -42,4 +42,4 @@ void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept; -}// namespace winrt::Microsoft::ReactNative::implementation +} // namespace winrt::Microsoft::ReactNative::implementation From ce448cec735b6cfcfa3c9c505b83885c21cf16cb Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 6 Dec 2024 13:57:43 -0800 Subject: [PATCH 04/20] Address Feedback 1 --- .../CompositionDynamicAutomationProvider.cpp | 30 ++++++++----------- .../CompositionDynamicAutomationProvider.h | 2 +- .../Fabric/Composition/UiaHelpers.cpp | 1 + 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp index 5db3ffbd03c..de19d866ac1 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp @@ -30,7 +30,6 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::Navigate( IRawElementProviderFragment **pRetVal) { if (pRetVal == nullptr) return E_POINTER; - AddRef(); return UiaNavigateHelper(m_view.view(), direction, *pRetVal); } @@ -591,7 +590,7 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::get_CanSelectMultiple(BO return UIA_E_ELEMENTNOTAVAILABLE; auto props = std::static_pointer_cast( - winrt::get_self(strongView)->props()); + winrt::get_self(strongView)->props()); if (props == nullptr) return UIA_E_ELEMENTNOTAVAILABLE; @@ -630,45 +629,39 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetSelection(SAFEARRAY * if (!strongView) return UIA_E_ELEMENTNOTAVAILABLE; - std::vector m_selectedItems; + std::vector selectedItems; for (size_t i = 0; i < m_selectionItems.size(); i++) { auto selectionItem = m_selectionItems.at(i); auto provider = static_cast(selectionItem); BOOL selected; auto hr = provider->get_IsSelected(&selected); if (hr == S_OK && selected) { - m_selectedItems.push_back(i); + selectedItems.push_back(i); } } - *pRetVal = SafeArrayCreateVector(VT_UNKNOWN, 0, m_selectedItems.size()); + *pRetVal = SafeArrayCreateVector(VT_UNKNOWN, 0, selectedItems.size()); if (*pRetVal == nullptr) return E_OUTOFMEMORY; - for (size_t i = 0; i < m_selectedItems.size(); i++) { + for (size_t i = 0; i < selectedItems.size(); i++) { auto pos = static_cast(i); - SafeArrayPutElement(*pRetVal, &pos, m_selectionItems.at(m_selectedItems.at(i))); - AddRef(); + auto item = m_selectionItems.at(selectedItems.at(i)); + SafeArrayPutElement(*pRetVal, &pos, item); + item->AddRef(); } return S_OK; } void CompositionDynamicAutomationProvider::AddToSelectionItems(IRawElementProviderSimple *item) { - for (size_t i = 0; i < m_selectionItems.size(); i++) { - if (m_selectionItems.at(i) == item) { - return; - } + if (std::find(m_selectionItems.begin(), m_selectionItems.end(), item) != m_selectionItems.end()) { + return; } m_selectionItems.push_back(item); } void CompositionDynamicAutomationProvider::RemoveFromSelectionItems(IRawElementProviderSimple *item) { - for (size_t i = 0; i < m_selectionItems.size(); i++) { - if (m_selectionItems.at(i) == item) { - m_selectionItems.erase(m_selectionItems.begin() + i); - return; - } - } + std::erase(m_selectionItems, item); } HRESULT __stdcall CompositionDynamicAutomationProvider::AddToSelection() { @@ -732,6 +725,7 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::get_SelectionContainer(I return UIA_E_ELEMENTNOTAVAILABLE; *pRetVal = findSelectionContainer(strongView.Parent()); + (*pRetVal)->AddRef(); return S_OK; } diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h index 37fe60290d3..268e1a3f43c 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h @@ -76,7 +76,7 @@ class CompositionDynamicAutomationProvider : public winrt::implements< private: ::Microsoft::ReactNative::ReactTaggedView m_view; - std::vector m_selectionItems; + std::vector m_selectionItems; }; } // namespace winrt::Microsoft::ReactNative::implementation diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp index 8188ab0bc13..dbde2863732 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp @@ -88,6 +88,7 @@ HRESULT UiaNavigateHelper( auto spFragment = uiaProvider.try_as(); if (spFragment != nullptr) { retVal = spFragment.detach(); + retVal->AddRef(); } return S_OK; From cf1123d990d1b1aa6b128f1347df7053b0f09a4c Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Mon, 9 Dec 2024 11:47:18 -0800 Subject: [PATCH 05/20] Address Feedback 2 --- .../CompositionDynamicAutomationProvider.cpp | 14 ++++++------- .../CompositionDynamicAutomationProvider.h | 6 +++--- .../Fabric/Composition/UiaHelpers.cpp | 20 +++++++++++-------- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp index aecf683ff97..6b4fbae6bfc 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp @@ -606,8 +606,8 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::get_CanSelectMultiple(BO if (!strongView) return UIA_E_ELEMENTNOTAVAILABLE; - auto props = std::static_pointer_cast( - winrt::get_self(strongView)->props()); + auto props = + std::static_pointer_cast(winrt::get_self(strongView)->props()); if (props == nullptr) return UIA_E_ELEMENTNOTAVAILABLE; @@ -649,7 +649,7 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetSelection(SAFEARRAY * std::vector selectedItems; for (size_t i = 0; i < m_selectionItems.size(); i++) { auto selectionItem = m_selectionItems.at(i); - auto provider = static_cast(selectionItem); + auto provider = selectionItem.as(); BOOL selected; auto hr = provider->get_IsSelected(&selected); if (hr == S_OK && selected) { @@ -663,21 +663,19 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetSelection(SAFEARRAY * for (size_t i = 0; i < selectedItems.size(); i++) { auto pos = static_cast(i); - auto item = m_selectionItems.at(selectedItems.at(i)); - SafeArrayPutElement(*pRetVal, &pos, item); - item->AddRef(); + SafeArrayPutElement(*pRetVal, &pos, m_selectionItems.at(selectedItems.at(i)).get()); } return S_OK; } -void CompositionDynamicAutomationProvider::AddToSelectionItems(IRawElementProviderSimple *item) { +void CompositionDynamicAutomationProvider::AddToSelectionItems(winrt::com_ptr item) { if (std::find(m_selectionItems.begin(), m_selectionItems.end(), item) != m_selectionItems.end()) { return; } m_selectionItems.push_back(item); } -void CompositionDynamicAutomationProvider::RemoveFromSelectionItems(IRawElementProviderSimple *item) { +void CompositionDynamicAutomationProvider::RemoveFromSelectionItems(winrt::com_ptr item) { std::erase(m_selectionItems, item); } diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h index 268e1a3f43c..a547b5496f2 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h @@ -71,12 +71,12 @@ class CompositionDynamicAutomationProvider : public winrt::implements< virtual HRESULT __stdcall RemoveFromSelection() override; virtual HRESULT __stdcall Select() override; - void AddToSelectionItems(IRawElementProviderSimple *item); - void RemoveFromSelectionItems(IRawElementProviderSimple *item); + void AddToSelectionItems(winrt::com_ptr item); + void RemoveFromSelectionItems(winrt::com_ptr item); private: ::Microsoft::ReactNative::ReactTaggedView m_view; - std::vector m_selectionItems; + std::vector> m_selectionItems; }; } // namespace winrt::Microsoft::ReactNative::implementation diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp index 5d16e68754d..11e1f4881d4 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp @@ -215,23 +215,27 @@ ExpandCollapseState GetExpandCollapseState(const bool &expanded) noexcept { } void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider) noexcept { - IRawElementProviderSimple *selectionContainer; - provider->get_SelectionContainer(&selectionContainer); + winrt::com_ptr selectionContainer; + provider->get_SelectionContainer(selectionContainer.put()); if (!selectionContainer) return; - auto selectionContainerProvider = static_cast(selectionContainer); + auto selectionContainerProvider = selectionContainer.as(); auto simpleProvider = static_cast(provider); - selectionContainerProvider->AddToSelectionItems(simpleProvider); + winrt::com_ptr simpleProviderPtr; + simpleProviderPtr.copy_from(simpleProvider); + selectionContainerProvider->AddToSelectionItems(simpleProviderPtr); } void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept { - IRawElementProviderSimple *selectionContainer; - provider->get_SelectionContainer(&selectionContainer); + winrt::com_ptr selectionContainer; + provider->get_SelectionContainer(selectionContainer.put()); if (!selectionContainer) return; - auto selectionContainerProvider = static_cast(selectionContainer); + auto selectionContainerProvider = selectionContainer.as(); auto simpleProvider = static_cast(provider); - selectionContainerProvider->RemoveFromSelectionItems(simpleProvider); + winrt::com_ptr simpleProviderPtr; + simpleProviderPtr.copy_from(simpleProvider); + selectionContainerProvider->RemoveFromSelectionItems(simpleProviderPtr); } ToggleState GetToggleState(const std::optional &state) noexcept { From 2aee8a299f84e94b29711d52af8b7877cc068b08 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Mon, 9 Dec 2024 11:56:45 -0800 Subject: [PATCH 06/20] Format --- .../Composition/CompositionDynamicAutomationProvider.cpp | 2 ++ vnext/src-win/Libraries/Components/Button.windows.js | 2 +- .../Libraries/Components/TextInput/TextInput.windows.js | 5 +++-- .../Components/Touchable/TouchableBounce.windows.js | 3 ++- .../Components/Touchable/TouchableNativeFeedback.windows.js | 3 ++- .../Components/Touchable/TouchableOpacity.windows.js | 3 ++- .../Components/Touchable/TouchableWithoutFeedback.windows.js | 4 +++- vnext/src-win/Libraries/Components/View/View.windows.js | 3 ++- .../src-win/Libraries/Components/View/ViewAccessibility.d.ts | 4 ++-- 9 files changed, 19 insertions(+), 10 deletions(-) diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp index 6b4fbae6bfc..d2f23ec10bc 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp @@ -32,6 +32,7 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::Navigate( IRawElementProviderFragment **pRetVal) { if (pRetVal == nullptr) return E_POINTER; + return UiaNavigateHelper(m_view.view(), direction, *pRetVal); } @@ -684,6 +685,7 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::AddToSelection() { if (!strongView) return UIA_E_ELEMENTNOTAVAILABLE; + DispatchAccessibilityAction(m_view, "addToSelection"); return S_OK; } diff --git a/vnext/src-win/Libraries/Components/Button.windows.js b/vnext/src-win/Libraries/Components/Button.windows.js index 03436a609d4..9257f76ed55 100644 --- a/vnext/src-win/Libraries/Components/Button.windows.js +++ b/vnext/src-win/Libraries/Components/Button.windows.js @@ -350,7 +350,7 @@ const Button: component( expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, multiselectable: ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows - required: ariaRequired ?? accessibilityState?.required // Windows + required: ariaRequired ?? accessibilityState?.required, // Windows }; const disabled = diff --git a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js index 1096a2ffc77..735fd48bb19 100644 --- a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js +++ b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js @@ -1694,8 +1694,9 @@ function InternalTextInput(props: Props): React.Node { disabled: ariaDisabled ?? accessibilityState?.disabled, expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, - multiselectable: ariaMultiselectable ?? accessibilityState?.multiselectable, - required: ariaRequired ?? accessibilityState?.required + multiselectable: + ariaMultiselectable ?? accessibilityState?.multiselectable, + required: ariaRequired ?? accessibilityState?.required, }; } diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js index 74bc3e48435..e4b8f0fa692 100644 --- a/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js @@ -147,7 +147,8 @@ class TouchableBounce extends React.Component { selected: this.props['aria-selected'] ?? this.props.accessibilityState?.selected, multiselectable: - this.props['aria-multiselectable'] ?? this.props.accessibilityState?.multiselectable, // Windows + this.props['aria-multiselectable'] ?? + this.props.accessibilityState?.multiselectable, // Windows required: this.props['aria-required'] ?? this.props.accessibilityState?.required, // Windows }; diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js index 90d18898c43..b2c34d09d6d 100644 --- a/vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js @@ -266,7 +266,8 @@ class TouchableNativeFeedback extends React.Component { selected: this.props['aria-selected'] ?? this.props.accessibilityState?.selected, multiselectable: - this.props['aria-multiselectable'] ?? this.props.accessibilityState?.multiselectable, // Windows + this.props['aria-multiselectable'] ?? + this.props.accessibilityState?.multiselectable, // Windows required: this.props['aria-required'] ?? this.props.accessibilityState?.required, // Windows }; diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js index 5298029e490..c4a9f42d4fe 100644 --- a/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableOpacity.windows.js @@ -236,7 +236,8 @@ class TouchableOpacity extends React.Component { selected: this.props['aria-selected'] ?? this.props.accessibilityState?.selected, multiselectable: - this.props['aria-multiselectable'] ?? this.props.accessibilityState?.multiselectable, // Windows + this.props['aria-multiselectable'] ?? + this.props.accessibilityState?.multiselectable, // Windows required: this.props['aria-required'] ?? this.props.accessibilityState?.required, // Windows }; diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js index 6007d1dbc58..7a999743ef9 100644 --- a/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js @@ -224,7 +224,9 @@ const TouchableWithoutFeedback: React.AbstractComponent< disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled, expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded, selected: props['aria-selected'] ?? props.accessibilityState?.selected, - multiselectable: props['aria-multiselectable'] ?? props.accessibilityState?.multiselectable, // Windows + multiselectable: + props['aria-multiselectable'] ?? + props.accessibilityState?.multiselectable, // Windows required: props['aria-required'] ?? props.accessibilityState?.required, // Windows }; diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js index 5faebcc7eef..8a0103fba94 100644 --- a/vnext/src-win/Libraries/Components/View/View.windows.js +++ b/vnext/src-win/Libraries/Components/View/View.windows.js @@ -120,7 +120,8 @@ const View: component( disabled: ariaDisabled ?? accessibilityState?.disabled, expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, - multiselectable: ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows + multiselectable: + ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows required: ariaRequired ?? accessibilityState?.required, // Windows }; } diff --git a/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts b/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts index e1639daf382..b4c6e4f3313 100644 --- a/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts +++ b/vnext/src-win/Libraries/Components/View/ViewAccessibility.d.ts @@ -187,12 +187,12 @@ export interface AccessibilityState { * When present, informs accessible tools the element can have multiple items selected * @platform windows */ - multiselectable? : boolean | undefined; + multiselectable?: boolean | undefined; /** * When present, informs accessible tools the element requires selection * @platform windows */ - required? : boolean | undefined; + required?: boolean | undefined; } export interface AccessibilityValue { From 4b479308fb7e6d313dc5ebe9df3d511fa465234a Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Tue, 10 Dec 2024 15:33:44 -0800 Subject: [PATCH 07/20] Fix Lint --- .../Composition/CompositionDynamicAutomationProvider.cpp | 4 ++-- .../Components/Touchable/TouchableBounce.windows.js | 6 +++++- .../Libraries/Components/View/ViewPropTypes.windows.js | 2 ++ vnext/src-win/Libraries/Image/ImageProps.windows.js | 0 vnext/src-win/Libraries/Text/TextProps.windows.js | 2 ++ 5 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 vnext/src-win/Libraries/Image/ImageProps.windows.js diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp index d2f23ec10bc..2e64e11e346 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp @@ -654,11 +654,11 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetSelection(SAFEARRAY * BOOL selected; auto hr = provider->get_IsSelected(&selected); if (hr == S_OK && selected) { - selectedItems.push_back(i); + selectedItems.push_back(int(i)); } } - *pRetVal = SafeArrayCreateVector(VT_UNKNOWN, 0, selectedItems.size()); + *pRetVal = SafeArrayCreateVector(VT_UNKNOWN, 0, ULONG(selectedItems.size())); if (*pRetVal == nullptr) return E_OUTOFMEMORY; diff --git a/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js b/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js index e4b8f0fa692..c36f12d6455 100644 --- a/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/TouchableBounce.windows.js @@ -194,6 +194,7 @@ class TouchableBounce extends React.Component { this.props.onPress !== undefined && !this.props.disabled } + // $FlowFixMe[prop-missing] ref={this.props.hostRef} {...eventHandlersWithoutBlurAndFocus}> {this.props.children} @@ -220,4 +221,7 @@ class TouchableBounce extends React.Component { module.exports = (React.forwardRef((props, hostRef) => ( -)): React.AbstractComponent<$ReadOnly<$Diff>>); +)): component( + ref: React.RefSetter, + ...props: $ReadOnly<$Diff> +)); diff --git a/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js b/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js index 10a053d1074..1fb9833f434 100644 --- a/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js +++ b/vnext/src-win/Libraries/Components/View/ViewPropTypes.windows.js @@ -626,6 +626,8 @@ export type ViewProps = $ReadOnly<{| * See https://reactnative.dev/docs/view#aria-hidden */ 'aria-hidden'?: ?boolean, + 'aria-multiselectable'?: ?boolean, // Windows + 'aria-required'?: ?boolean, // Windows /** * Views that are only used to layout their children or otherwise don't draw diff --git a/vnext/src-win/Libraries/Image/ImageProps.windows.js b/vnext/src-win/Libraries/Image/ImageProps.windows.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/vnext/src-win/Libraries/Text/TextProps.windows.js b/vnext/src-win/Libraries/Text/TextProps.windows.js index 84ed0941ba7..91e934d7bf9 100644 --- a/vnext/src-win/Libraries/Text/TextProps.windows.js +++ b/vnext/src-win/Libraries/Text/TextProps.windows.js @@ -97,6 +97,8 @@ export type TextProps = $ReadOnly<{ 'aria-posinset'?: ?number, // Windows 'aria-setsize'?: ?number, // Windows 'aria-level'?: ?number, // Windows + 'aria-multiselectable'?: ?boolean, // Windows + 'aria-required'?: ?boolean, // Windows /** * Represents the nativeID of the associated label text. When the assistive technology focuses on the component with this props, the text is read aloud. From 0c13d16c6e05342befd396c3565d93d80f8b8b1b Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Tue, 10 Dec 2024 17:33:42 -0800 Subject: [PATCH 08/20] Add Tests, Add Overrides --- .../AccessibilityExampleWindows.tsx | 61 +-- .../test/AccessibilityTest.test.ts | 62 +++ .../AccessibilityTest.test.ts.snap | 449 ++++++++++++++++++ .../RNTesterApp-Fabric/RNTesterApp-Fabric.cpp | 35 +- vnext/overrides.json | 7 + 5 files changed, 585 insertions(+), 29 deletions(-) create mode 100644 packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts create mode 100644 packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap diff --git a/packages/@react-native-windows/tester/src/js/examples-win/Accessibility/AccessibilityExampleWindows.tsx b/packages/@react-native-windows/tester/src/js/examples-win/Accessibility/AccessibilityExampleWindows.tsx index a9924e7cfeb..b148c49a33e 100644 --- a/packages/@react-native-windows/tester/src/js/examples-win/Accessibility/AccessibilityExampleWindows.tsx +++ b/packages/@react-native-windows/tester/src/js/examples-win/Accessibility/AccessibilityExampleWindows.tsx @@ -312,33 +312,40 @@ class AccessibilityStateExamples extends React.Component { The following list of TouchableHighlights toggles accessibilityState.selected when touched: - ( - this.selectPress(item.index)}> - - {this.state.itemsSelected[item.index] - ? 'Selected' - : 'Unselected'} - - - )} - keyExtractor={(item, index) => index.toString()} - /> + + ( + this.selectPress(item.index)}> + + {this.state.itemsSelected[item.index] + ? 'Selected' + : 'Unselected'} + + + )} + keyExtractor={(item, index) => index.toString()} + /> + The following TouchableHighlight cycles accessibilityState.checked through unchecked/checked/mixed for the View under it: diff --git a/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts new file mode 100644 index 00000000000..d729c8ddaff --- /dev/null +++ b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts @@ -0,0 +1,62 @@ +/** + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * @format + */ + +import {dumpVisualTree} from '@react-native-windows/automation-commands'; +import {goToApiExample} from './RNTesterNavigation'; +import {app} from '@react-native-windows/automation'; +import {verifyNoErrorLogs} from './Helpers'; + +beforeAll(async () => { + // If window is partially offscreen, tests will fail to click on certain elements + await app.setWindowPosition(0, 0); + await app.setWindowSize(1000, 1250); + await goToApiExample('Accessibility Windows'); +}); + +afterEach(async () => { + await verifyNoErrorLogs(); +}); + +const searchBox = async (input: string) => { + const searchBox = await app.findElementByTestID('example_search'); + await app.waitUntil( + async () => { + await searchBox.setValue(input); + return (await searchBox.getText()) === input; + }, + { + interval: 1500, + timeout: 5000, + timeoutMsg: `Unable to enter correct search text into test searchbox.`, + }, + ); +}; + +describe('Accessibility Tests', () => { + test('Elements can set accessibilityState:selected to false', async () => { + await searchBox('States'); + const component = await app.findElementByTestID('Selectable item 1'); + await component.waitForDisplayed({timeout: 5000}); + const dump = await dumpVisualTree('Selectable item 1'); + expect(dump).toMatchSnapshot(); + }); + test('Elements can set accessibilityState:selected to true', async () => { + await searchBox('States'); + const component = await app.findElementByTestID('Selectable item 1'); + await component.waitForDisplayed({timeout: 5000}); + await component.click(); + const dump = await dumpVisualTree('Selectable item 1'); + expect(dump).toMatchSnapshot(); + }); + test('Selectable items must have a Selection Container. Elements can set accessibilityState:multiselectable and accessibilityState:required to true', async () => { + await searchBox('States'); + const componentsTab = await app.findElementByTestID('selection-container'); + await componentsTab.waitForDisplayed({timeout: 5000}); + const dump = await dumpVisualTree('selection-container'); + expect(dump).toMatchSnapshot(); + }); +}); diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap new file mode 100644 index 00000000000..dab9afb2108 --- /dev/null +++ b/packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap @@ -0,0 +1,449 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Accessibility Tests Elements can set accessibilityState:selected to false 1`] = ` +{ + "Automation Tree": { + "AutomationId": "Selectable item 1", + "ControlType": 50000, + "IsKeyboardFocusable": true, + "LocalizedControlType": "button", + "Name": "Selectable item 1", + "__Children": [ + { + "AutomationId": "", + "ControlType": 50020, + "LocalizedControlType": "text", + "Name": "Unselected", + }, + ], + }, + "Component Tree": { + "Type": "Microsoft.ReactNative.Composition.ViewComponentView", + "_Props": { + "AccessibilityLabel": "Selectable item 1", + "TestId": "Selectable item 1", + }, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ParagraphComponentView", + "_Props": {}, + }, + ], + }, + "Visual Tree": { + "Brush": { + "Brush Type": "ColorBrush", + "Color": "rgba(135, 206, 250, 255)", + }, + "Comment": "Selectable item 1", + "Offset": "0, 0, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + }, + ], + }, + ], + }, +} +`; + +exports[`Accessibility Tests Elements can set accessibilityState:selected to true 1`] = ` +{ + "Automation Tree": { + "AutomationId": "Selectable item 1", + "ControlType": 50026, + "IsKeyboardFocusable": true, + "LocalizedControlType": "group", + "Name": "Selectable item 1", + "SelectionItemPattern.IsSelected": true, + "__Children": [ + { + "AutomationId": "", + "ControlType": 50020, + "LocalizedControlType": "text", + "Name": "Selected", + }, + ], + }, + "Component Tree": { + "Type": "Microsoft.ReactNative.Composition.ViewComponentView", + "_Props": { + "AccessibilityLabel": "Selectable item 1", + "TestId": "Selectable item 1", + }, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ParagraphComponentView", + "_Props": {}, + }, + ], + }, + "Visual Tree": { + "Brush": { + "Brush Type": "ColorBrush", + "Color": "rgba(128, 128, 128, 255)", + }, + "Comment": "Selectable item 1", + "Offset": "0, 0, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + }, + ], + }, + ], + }, +} +`; + +exports[`Accessibility Tests Selectable items must have a Selection Container. Elements can set accessibilityState:multiselectable and accessibilityState:required to true 1`] = ` +{ + "Automation Tree": { + "AutomationId": "selection-container", + "ControlType": 50026, + "LocalizedControlType": "group", + "Name": "Selection Container", + "SelectionPattern.CanSelectMultiple": true, + "SelectionPattern.IsSelectionRequired": true, + "__Children": [ + { + "AutomationId": "Selectable item 1", + "ControlType": 50000, + "IsKeyboardFocusable": true, + "LocalizedControlType": "button", + "Name": "Selectable item 1", + "__Children": [ + { + "AutomationId": "", + "ControlType": 50020, + "LocalizedControlType": "text", + "Name": "Unselected", + }, + ], + }, + { + "AutomationId": "Selectable item 2", + "ControlType": 50000, + "IsKeyboardFocusable": true, + "LocalizedControlType": "button", + "Name": "Selectable item 2", + "__Children": [ + { + "AutomationId": "", + "ControlType": 50020, + "LocalizedControlType": "text", + "Name": "Unselected", + }, + ], + }, + { + "AutomationId": "Selectable item 3", + "ControlType": 50000, + "IsKeyboardFocusable": true, + "LocalizedControlType": "button", + "Name": "Selectable item 3", + "__Children": [ + { + "AutomationId": "", + "ControlType": 50020, + "LocalizedControlType": "text", + "Name": "Unselected", + }, + ], + }, + ], + }, + "Component Tree": { + "Type": "Microsoft.ReactNative.Composition.ViewComponentView", + "_Props": { + "AccessibilityLabel": "Selection Container", + "TestId": "selection-container", + }, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ScrollViewComponentView", + "_Props": { + "AccessibilityLabel": "List of selectable items", + }, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ViewComponentView", + "_Props": {}, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ViewComponentView", + "_Props": { + "AccessibilityLabel": "Selectable item 1", + "TestId": "Selectable item 1", + }, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ParagraphComponentView", + "_Props": {}, + }, + ], + }, + { + "Type": "Microsoft.ReactNative.Composition.ViewComponentView", + "_Props": { + "AccessibilityLabel": "Selectable item 2", + "TestId": "Selectable item 2", + }, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ParagraphComponentView", + "_Props": {}, + }, + ], + }, + { + "Type": "Microsoft.ReactNative.Composition.ViewComponentView", + "_Props": { + "AccessibilityLabel": "Selectable item 3", + "TestId": "Selectable item 3", + }, + "__Children": [ + { + "Type": "Microsoft.ReactNative.Composition.ParagraphComponentView", + "_Props": {}, + }, + ], + }, + ], + }, + ], + }, + ], + }, + "Visual Tree": { + "Comment": "selection-container", + "Offset": "0, 0, 0", + "Size": "873, 225", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "873, 225", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "873, 225", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Brush": { + "Brush Type": "ColorBrush", + "Color": "rgba(0, 0, 0, 0)", + }, + "Offset": "0, 0, 0", + "Size": "873, 225", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Brush": { + "Brush Type": "ColorBrush", + "Color": "rgba(0, 0, 0, 0)", + }, + "Offset": "0, 0, 0", + "Size": "873, 225", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "873, 225", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "873, 225", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Brush": { + "Brush Type": "ColorBrush", + "Color": "rgba(135, 206, 250, 255)", + }, + "Comment": "Selectable item 1", + "Offset": "0, 0, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + }, + ], + }, + ], + }, + ], + }, + { + "Offset": "0, 75, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Brush": { + "Brush Type": "ColorBrush", + "Color": "rgba(135, 206, 250, 255)", + }, + "Comment": "Selectable item 2", + "Offset": "0, 0, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + }, + ], + }, + ], + }, + ], + }, + { + "Offset": "0, 150, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Brush": { + "Brush Type": "ColorBrush", + "Color": "rgba(135, 206, 250, 255)", + }, + "Comment": "Selectable item 3", + "Offset": "0, 0, 0", + "Size": "150, 75", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "0, 0, 0", + "Size": "150, 29.000015", + "Visual Type": "SpriteVisual", + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + { + "Offset": "-19.5, 0, 0", + "Size": "18, 0", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "-18, 4.5, 0", + "Opacity": 0, + "Size": "18, 216", + "Visual Type": "Visual", + }, + { + "Offset": "0, 6, 0", + "Opacity": 0, + "Size": "18, 18", + "Visual Type": "SpriteVisual", + }, + { + "Offset": "0, -24, 0", + "Opacity": 0, + "Size": "18, 18", + "Visual Type": "SpriteVisual", + }, + { + "Offset": "-7.5, 24, 0", + "Size": "9, 177", + "Visual Type": "Visual", + }, + ], + }, + { + "Offset": "0, -19.5, 0", + "Size": "0, 18", + "Visual Type": "SpriteVisual", + "__Children": [ + { + "Offset": "4.5, -18, 0", + "Opacity": 0, + "Size": "864, 18", + "Visual Type": "Visual", + }, + { + "Offset": "6, 0, 0", + "Opacity": 0, + "Size": "18, 18", + "Visual Type": "SpriteVisual", + }, + { + "Offset": "-24, 0, 0", + "Opacity": 0, + "Size": "18, 18", + "Visual Type": "SpriteVisual", + }, + { + "Offset": "24, -7.5, 0", + "Size": "825, 9", + "Visual Type": "Visual", + }, + ], + }, + ], + }, + ], + }, + ], + }, +} +`; 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 c258f306c22..864d50e03fd 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 @@ -352,14 +352,17 @@ winrt::Windows::Data::Json::JsonObject ListErrors(winrt::Windows::Data::Json::Js } void DumpUIAPatternInfo(IUIAutomationElement *pTarget, const winrt::Windows::Data::Json::JsonObject &result) { - BSTR value; + BSTR value = nullptr; BOOL isReadOnly; ToggleState toggleState; - IValueProvider *valuePattern; ExpandCollapseState expandCollapseState; HRESULT hr; + BOOL isSelected; + BOOL multipleSelection; + BOOL selectionRequired; // Dump IValueProvider Information + IValueProvider *valuePattern; hr = pTarget->GetCurrentPattern(UIA_ValuePatternId, reinterpret_cast(&valuePattern)); if (SUCCEEDED(hr) && valuePattern) { hr = valuePattern->get_Value(&value); @@ -395,6 +398,34 @@ void DumpUIAPatternInfo(IUIAutomationElement *pTarget, const winrt::Windows::Dat } expandCollapsePattern->Release(); } + + // Dump ISelectionItemProvider Information + ISelectionItemProvider *selectionItemPattern; + hr = pTarget->GetCurrentPattern(UIA_SelectionItemPatternId, reinterpret_cast(&selectionItemPattern)); + if (SUCCEEDED(hr) && selectionItemPattern) { + hr = selectionItemPattern->get_IsSelected(&isSelected); + if (SUCCEEDED(hr)) { + InsertBooleanValueIfNotDefault(result, L"SelectionItemPattern.IsSelected", isSelected); + } + selectionItemPattern->Release(); + } + + // Dump ISelectionProvider Information + ISelectionProvider *selectionPattern; + hr = pTarget->GetCurrentPattern(UIA_SelectionPatternId, reinterpret_cast(&selectionPattern)); + if (SUCCEEDED(hr) && selectionPattern) { + hr = selectionPattern->get_CanSelectMultiple(&multipleSelection); + if (SUCCEEDED(hr)) { + InsertBooleanValueIfNotDefault(result, L"SelectionPattern.CanSelectMultiple", multipleSelection, false); + } + hr = selectionPattern->get_IsSelectionRequired(&selectionRequired); + if (SUCCEEDED(hr)) { + InsertBooleanValueIfNotDefault(result, L"SelectionPattern.IsSelectionRequired", selectionRequired, false); + } + selectionPattern->Release(); + } + + ::SysFreeString(value); } winrt::Windows::Data::Json::JsonObject DumpUIATreeRecurse( diff --git a/vnext/overrides.json b/vnext/overrides.json index 26b57de5b7b..8c582271559 100644 --- a/vnext/overrides.json +++ b/vnext/overrides.json @@ -479,6 +479,13 @@ "baseHash": "a5abee6de7dca3cb043b834925de3f6f0443c738", "issue": 4590 }, + { + "type": "derived", + "file": "src-win/Libraries/Image/ImageProps.windows.js", + "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableBounce.js", + "baseHash": "39541effd705b515e24600d5bc984542a5cd668b", + "issue": 0 + }, { "type": "patch", "file": "src-win/Libraries/Image/resolveAssetSource.windows.js", From 9622ee29205dadc8bdfb85929512767c8151df57 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Wed, 11 Dec 2024 11:43:03 -0800 Subject: [PATCH 09/20] Try AccessibilityTest Separately --- .ado/jobs/e2e-test.yml | 6 ++++++ vnext/overrides.json | 16 ++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.ado/jobs/e2e-test.yml b/.ado/jobs/e2e-test.yml index 18a37e92b8a..f0d8697e8a2 100644 --- a/.ado/jobs/e2e-test.yml +++ b/.ado/jobs/e2e-test.yml @@ -196,6 +196,12 @@ jobs: echo ##vso[task.setvariable variable=StartedFabricTests]true displayName: Set StartedFabricTests + - script: | + yarn e2etest + displayName: yarn e2etest AccessibilityTest.test.ts + workingDirectory: packages/e2e-test-app-fabric + timeoutInMinutes: 10 # Time to wait for this task to complete before the server kills it. + - script: | yarn e2etest displayName: yarn e2etest diff --git a/vnext/overrides.json b/vnext/overrides.json index 8c582271559..c663a30d528 100644 --- a/vnext/overrides.json +++ b/vnext/overrides.json @@ -151,15 +151,13 @@ "type": "derived", "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h", "baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h", - "baseHash": "6db5b174fe1dc7d108ae7f9e730decfe5f633bd8", - "issue": 0 + "baseHash": "6db5b174fe1dc7d108ae7f9e730decfe5f633bd8" }, { "type": "derived", "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h", "baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h", - "baseHash": "4b2822199233e660f36c01df18fbbff7799968cc", - "issue": 0 + "baseHash": "4b2822199233e660f36c01df18fbbff7799968cc" }, { "type": "patch", @@ -390,8 +388,7 @@ "type": "derived", "file": "src-win/Libraries/Components/Touchable/TouchableBounce.windows.js", "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableBounce.js", - "baseHash": "be638b955fd4b85c2e94231db2ccb642b39e2795", - "issue": 0 + "baseHash": "39541effd705b515e24600d5bc984542a5cd668b" }, { "type": "patch", @@ -403,8 +400,7 @@ "type": "derived", "file": "src-win/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js", "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js", - "baseHash": "8a1cc3c55ca3af68c5627479b3614fa44a1ffbea", - "issue": 0 + "baseHash": "8a1cc3c55ca3af68c5627479b3614fa44a1ffbea" }, { "type": "patch", @@ -482,8 +478,8 @@ { "type": "derived", "file": "src-win/Libraries/Image/ImageProps.windows.js", - "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableBounce.js", - "baseHash": "39541effd705b515e24600d5bc984542a5cd668b", + "baseFile": "packages/react-native/Libraries/Image/ImageProps.js", + "baseHash": "3798c116eaa675aaf0344024a2816cbee3ae8263", "issue": 0 }, { From 0ea8df3de73f386324cf2011baae81af1af33209 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Wed, 11 Dec 2024 13:04:18 -0800 Subject: [PATCH 10/20] Try Fix CI --- .ado/jobs/e2e-test.yml | 2 +- packages/e2e-test-app-fabric/test/RNTesterNavigation.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ado/jobs/e2e-test.yml b/.ado/jobs/e2e-test.yml index f0d8697e8a2..f13e5a1050f 100644 --- a/.ado/jobs/e2e-test.yml +++ b/.ado/jobs/e2e-test.yml @@ -197,7 +197,7 @@ jobs: displayName: Set StartedFabricTests - script: | - yarn e2etest + yarn e2etest AccessibilityTest.test.ts displayName: yarn e2etest AccessibilityTest.test.ts workingDirectory: packages/e2e-test-app-fabric timeoutInMinutes: 10 # Time to wait for this task to complete before the server kills it. diff --git a/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts b/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts index 55675930e59..88b72dbd24d 100644 --- a/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts +++ b/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts @@ -55,7 +55,7 @@ async function goToExample(example: string) { await exampleButton.waitForDisplayed({timeout: 5000}); await exampleButton.click(); - const componentsTab = await app.findElementByTestID('components-tab'); + const componentsTab = await app.findElementByTestID('example_search'); await componentsTab.waitForDisplayed({timeout: 5000}); expect(await componentsTab.isDisplayed()).toBe(true); } From da7951992833f3b12dbb17f985aa3cf9a0f342b9 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Wed, 11 Dec 2024 13:59:50 -0800 Subject: [PATCH 11/20] Try Fix CI 2 --- packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts index d729c8ddaff..62be53287d6 100644 --- a/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts +++ b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts @@ -38,14 +38,14 @@ const searchBox = async (input: string) => { describe('Accessibility Tests', () => { test('Elements can set accessibilityState:selected to false', async () => { - await searchBox('States'); + await searchBox('Sta'); const component = await app.findElementByTestID('Selectable item 1'); await component.waitForDisplayed({timeout: 5000}); const dump = await dumpVisualTree('Selectable item 1'); expect(dump).toMatchSnapshot(); }); test('Elements can set accessibilityState:selected to true', async () => { - await searchBox('States'); + await searchBox('Sta'); const component = await app.findElementByTestID('Selectable item 1'); await component.waitForDisplayed({timeout: 5000}); await component.click(); @@ -53,7 +53,7 @@ describe('Accessibility Tests', () => { expect(dump).toMatchSnapshot(); }); test('Selectable items must have a Selection Container. Elements can set accessibilityState:multiselectable and accessibilityState:required to true', async () => { - await searchBox('States'); + await searchBox('Sta'); const componentsTab = await app.findElementByTestID('selection-container'); await componentsTab.waitForDisplayed({timeout: 5000}); const dump = await dumpVisualTree('selection-container'); From aa393ecac775750e8f937b446536e41330fa55f1 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 11:12:06 -0800 Subject: [PATCH 12/20] Disable Tests --- packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts | 4 ++-- packages/e2e-test-app-fabric/test/RNTesterNavigation.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts index 62be53287d6..4b94e191808 100644 --- a/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts +++ b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts @@ -5,7 +5,7 @@ * @format */ -import {dumpVisualTree} from '@react-native-windows/automation-commands'; +/*import {dumpVisualTree} from '@react-native-windows/automation-commands'; import {goToApiExample} from './RNTesterNavigation'; import {app} from '@react-native-windows/automation'; import {verifyNoErrorLogs} from './Helpers'; @@ -59,4 +59,4 @@ describe('Accessibility Tests', () => { const dump = await dumpVisualTree('selection-container'); expect(dump).toMatchSnapshot(); }); -}); +});*/ diff --git a/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts b/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts index 88b72dbd24d..55675930e59 100644 --- a/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts +++ b/packages/e2e-test-app-fabric/test/RNTesterNavigation.ts @@ -55,7 +55,7 @@ async function goToExample(example: string) { await exampleButton.waitForDisplayed({timeout: 5000}); await exampleButton.click(); - const componentsTab = await app.findElementByTestID('example_search'); + const componentsTab = await app.findElementByTestID('components-tab'); await componentsTab.waitForDisplayed({timeout: 5000}); expect(await componentsTab.isDisplayed()).toBe(true); } From a6ad876a15e8be709e37efc33e61af06f41d88a2 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 11:15:32 -0800 Subject: [PATCH 13/20] Remove Sample Test --- .ado/jobs/e2e-test.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.ado/jobs/e2e-test.yml b/.ado/jobs/e2e-test.yml index f13e5a1050f..18a37e92b8a 100644 --- a/.ado/jobs/e2e-test.yml +++ b/.ado/jobs/e2e-test.yml @@ -196,12 +196,6 @@ jobs: echo ##vso[task.setvariable variable=StartedFabricTests]true displayName: Set StartedFabricTests - - script: | - yarn e2etest AccessibilityTest.test.ts - displayName: yarn e2etest AccessibilityTest.test.ts - workingDirectory: packages/e2e-test-app-fabric - timeoutInMinutes: 10 # Time to wait for this task to complete before the server kills it. - - script: | yarn e2etest displayName: yarn e2etest From 19c984dbede083caca09dcddd7a3bfd9bf84d89c Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 12:26:56 -0800 Subject: [PATCH 14/20] Delete vnext/src-win/Libraries/Image/ImageProps.windows.js --- vnext/src-win/Libraries/Image/ImageProps.windows.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 vnext/src-win/Libraries/Image/ImageProps.windows.js diff --git a/vnext/src-win/Libraries/Image/ImageProps.windows.js b/vnext/src-win/Libraries/Image/ImageProps.windows.js deleted file mode 100644 index e69de29bb2d..00000000000 From f4fd31684d45d9382952587aeab25cf91fe986e8 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 12:36:43 -0800 Subject: [PATCH 15/20] Address Feedback 3 Selection Provider --- .../Composition/CompositionDynamicAutomationProvider.cpp | 6 +++--- .../Composition/CompositionDynamicAutomationProvider.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp index 2e64e11e346..c90e2d14e0e 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp @@ -669,14 +669,14 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetSelection(SAFEARRAY * return S_OK; } -void CompositionDynamicAutomationProvider::AddToSelectionItems(winrt::com_ptr item) { +void CompositionDynamicAutomationProvider::AddToSelectionItems(winrt::com_ptr &item) { if (std::find(m_selectionItems.begin(), m_selectionItems.end(), item) != m_selectionItems.end()) { return; } m_selectionItems.push_back(item); } -void CompositionDynamicAutomationProvider::RemoveFromSelectionItems(winrt::com_ptr item) { +void CompositionDynamicAutomationProvider::RemoveFromSelectionItems(winrt::com_ptr &item) { std::erase(m_selectionItems, item); } @@ -724,6 +724,7 @@ IRawElementProviderSimple *findSelectionContainer(winrt::Microsoft::ReactNative: if (uiaProvider != nullptr) { auto spProviderSimple = uiaProvider.try_as(); if (spProviderSimple != nullptr) { + spProviderSimple->AddRef(); return spProviderSimple.get(); } } @@ -742,7 +743,6 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::get_SelectionContainer(I return UIA_E_ELEMENTNOTAVAILABLE; *pRetVal = findSelectionContainer(strongView.Parent()); - (*pRetVal)->AddRef(); return S_OK; } diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h index a547b5496f2..bf403a9dad3 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h @@ -71,8 +71,8 @@ class CompositionDynamicAutomationProvider : public winrt::implements< virtual HRESULT __stdcall RemoveFromSelection() override; virtual HRESULT __stdcall Select() override; - void AddToSelectionItems(winrt::com_ptr item); - void RemoveFromSelectionItems(winrt::com_ptr item); + void AddToSelectionItems(winrt::com_ptr &item); + void RemoveFromSelectionItems(winrt::com_ptr &item); private: ::Microsoft::ReactNative::ReactTaggedView m_view; From 797b3b27b6d3283c6cbd7ccf2518a057df86b0dc Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:24:07 -0800 Subject: [PATCH 16/20] Update Snapshots, Reenable Tests --- .../test/AccessibilityTest.test.ts | 4 +- .../__snapshots__/snapshotPages.test.js.snap | 1671 +++++++++++++++-- 2 files changed, 1516 insertions(+), 159 deletions(-) diff --git a/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts index 4b94e191808..62be53287d6 100644 --- a/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts +++ b/packages/e2e-test-app-fabric/test/AccessibilityTest.test.ts @@ -5,7 +5,7 @@ * @format */ -/*import {dumpVisualTree} from '@react-native-windows/automation-commands'; +import {dumpVisualTree} from '@react-native-windows/automation-commands'; import {goToApiExample} from './RNTesterNavigation'; import {app} from '@react-native-windows/automation'; import {verifyNoErrorLogs} from './Helpers'; @@ -59,4 +59,4 @@ describe('Accessibility Tests', () => { const dump = await dumpVisualTree('selection-container'); expect(dump).toMatchSnapshot(); }); -});*/ +}); 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 c09def4becc..1b56af241ed 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 @@ -301,181 +301,196 @@ exports[`snapshotAllPages Accessibility Windows 4`] = ` The following list of TouchableHighlights toggles accessibilityState.selected when touched: - - - + + + - - Unselected - + testID="Selectable item 1" + > + + Unselected + + - - + - - Unselected - + testID="Selectable item 2" + > + + Unselected + + - - + - - Unselected - + testID="Selectable item 3" + > + + Unselected + + - - + + The following TouchableHighlight cycles accessibilityState.checked through unchecked/checked/mixed for the View under it: @@ -1240,6 +1255,8 @@ exports[`snapshotAllPages Alerts 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1300,6 +1317,8 @@ exports[`snapshotAllPages Alerts 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1359,6 +1378,8 @@ exports[`snapshotAllPages Alerts 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1419,6 +1440,8 @@ exports[`snapshotAllPages Alerts 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1478,6 +1501,8 @@ exports[`snapshotAllPages Alerts 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1537,6 +1562,8 @@ exports[`snapshotAllPages Alerts 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1596,6 +1623,8 @@ exports[`snapshotAllPages Alerts 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1678,6 +1707,8 @@ exports[`snapshotAllPages Alerts 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1732,6 +1763,8 @@ exports[`snapshotAllPages Alerts 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1786,6 +1819,8 @@ exports[`snapshotAllPages Alerts 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1840,6 +1875,8 @@ exports[`snapshotAllPages Alerts 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1894,6 +1931,8 @@ exports[`snapshotAllPages Alerts 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -1953,6 +1992,8 @@ exports[`snapshotAllPages Alerts 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -2007,6 +2048,8 @@ exports[`snapshotAllPages Alerts 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -2061,6 +2104,8 @@ exports[`snapshotAllPages Alerts 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -2204,6 +2249,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2273,6 +2320,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2342,6 +2391,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2411,6 +2462,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2480,6 +2533,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2549,6 +2604,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2618,6 +2675,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2687,6 +2746,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2756,6 +2817,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2825,6 +2888,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2894,6 +2959,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -2963,6 +3030,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -3034,6 +3103,8 @@ exports[`snapshotAllPages Animated 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -3190,6 +3261,8 @@ exports[`snapshotAllPages Animated 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -3386,6 +3459,8 @@ exports[`snapshotAllPages Animated 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -3706,6 +3781,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -3760,6 +3837,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -3814,6 +3893,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4011,6 +4092,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4065,6 +4148,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4119,6 +4204,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4316,6 +4403,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4370,6 +4459,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4424,6 +4515,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4621,6 +4714,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4675,6 +4770,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4729,6 +4826,8 @@ exports[`snapshotAllPages Animated 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -4991,6 +5090,8 @@ exports[`snapshotAllPages Animated 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -5113,6 +5214,8 @@ exports[`snapshotAllPages Animated 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -5235,6 +5338,8 @@ exports[`snapshotAllPages Animated 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -5381,6 +5486,8 @@ exports[`snapshotAllPages Animated 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -5503,6 +5610,8 @@ exports[`snapshotAllPages Animated 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -5625,6 +5734,8 @@ exports[`snapshotAllPages Animated 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -5753,6 +5864,8 @@ exports[`snapshotAllPages Animated 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -5919,6 +6032,8 @@ exports[`snapshotAllPages Animated 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6108,6 +6223,8 @@ exports[`snapshotAllPages Animated 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6163,6 +6280,8 @@ exports[`snapshotAllPages Animated 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6217,6 +6336,8 @@ exports[`snapshotAllPages Animated 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6271,6 +6392,8 @@ exports[`snapshotAllPages Animated 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6383,6 +6506,8 @@ exports[`snapshotAllPages Animated 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6521,6 +6646,8 @@ exports[`snapshotAllPages Animated 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6668,6 +6795,8 @@ exports[`snapshotAllPages Animated 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6722,6 +6851,8 @@ exports[`snapshotAllPages Animated 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6776,6 +6907,8 @@ exports[`snapshotAllPages Animated 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6830,6 +6963,8 @@ exports[`snapshotAllPages Animated 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6884,6 +7019,8 @@ exports[`snapshotAllPages Animated 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -6965,6 +7102,8 @@ exports[`snapshotAllPages Animated 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8142,6 +8281,8 @@ exports[`snapshotAllPages Button 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8229,6 +8370,8 @@ exports[`snapshotAllPages Button 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8333,6 +8476,8 @@ exports[`snapshotAllPages Button 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8424,6 +8569,8 @@ exports[`snapshotAllPages Button 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8529,6 +8676,8 @@ exports[`snapshotAllPages Button 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8620,6 +8769,8 @@ exports[`snapshotAllPages Button 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8711,6 +8862,8 @@ exports[`snapshotAllPages Button 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8806,6 +8959,8 @@ exports[`snapshotAllPages Button 5`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -8921,6 +9076,8 @@ exports[`snapshotAllPages Button 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9015,6 +9172,8 @@ exports[`snapshotAllPages Button 7`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9131,6 +9290,8 @@ exports[`snapshotAllPages Button 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9221,6 +9382,8 @@ exports[`snapshotAllPages Button 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9305,6 +9468,8 @@ exports[`snapshotAllPages Button 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9389,6 +9554,8 @@ exports[`snapshotAllPages Button 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9473,6 +9640,8 @@ exports[`snapshotAllPages Button 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9559,6 +9728,8 @@ exports[`snapshotAllPages Composition Bugs Example 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9682,6 +9853,8 @@ exports[`snapshotAllPages Composition Bugs Example 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9787,6 +9960,8 @@ exports[`snapshotAllPages Composition Bugs Example 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9892,6 +10067,8 @@ exports[`snapshotAllPages Composition Bugs Example 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -9997,6 +10174,8 @@ exports[`snapshotAllPages Composition Bugs Example 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -10117,6 +10296,8 @@ exports[`snapshotAllPages Composition Bugs Example 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -10235,6 +10416,8 @@ exports[`snapshotAllPages Crash 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -10320,6 +10503,8 @@ exports[`snapshotAllPages DevSettings 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -10405,6 +10590,8 @@ exports[`snapshotAllPages DevSettings 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -11065,6 +11252,8 @@ exports[`snapshotAllPages Fast Path Texts 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -11155,6 +11344,8 @@ exports[`snapshotAllPages Fast Path Texts 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -11264,6 +11455,8 @@ exports[`snapshotAllPages Fast Path Texts 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -13456,6 +13649,8 @@ exports[`snapshotAllPages FlatList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -13538,6 +13733,8 @@ exports[`snapshotAllPages FlatList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -13653,6 +13850,8 @@ exports[`snapshotAllPages FlatList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -13790,6 +13989,8 @@ exports[`snapshotAllPages FlatList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -13855,6 +14056,8 @@ exports[`snapshotAllPages FlatList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -13920,6 +14123,8 @@ exports[`snapshotAllPages FlatList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -13985,6 +14190,8 @@ exports[`snapshotAllPages FlatList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14050,6 +14257,8 @@ exports[`snapshotAllPages FlatList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14115,6 +14324,8 @@ exports[`snapshotAllPages FlatList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14211,6 +14422,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14340,6 +14553,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14406,6 +14621,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14472,6 +14689,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14538,6 +14757,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14604,6 +14825,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14670,6 +14893,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14736,6 +14961,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14802,6 +15029,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14868,6 +15097,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -14934,6 +15165,8 @@ exports[`snapshotAllPages FlatList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15071,6 +15304,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15210,6 +15445,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15276,6 +15513,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15342,6 +15581,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15408,6 +15649,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15474,6 +15717,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15540,6 +15785,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15606,6 +15853,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15672,6 +15921,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15738,6 +15989,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15804,6 +16057,8 @@ exports[`snapshotAllPages FlatList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -15910,6 +16165,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16040,6 +16297,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16106,6 +16365,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16172,6 +16433,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16238,6 +16501,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16304,6 +16569,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16370,6 +16637,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16436,6 +16705,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16502,6 +16773,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16568,6 +16841,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16634,6 +16909,8 @@ exports[`snapshotAllPages FlatList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16800,6 +17077,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16866,6 +17145,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16932,6 +17213,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -16998,6 +17281,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17064,6 +17349,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17130,6 +17417,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17196,6 +17485,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17262,6 +17553,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17328,6 +17621,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17394,6 +17689,8 @@ exports[`snapshotAllPages FlatList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17520,6 +17817,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17609,6 +17908,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17698,6 +17999,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17787,6 +18090,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17876,6 +18181,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -17965,6 +18272,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -18054,6 +18363,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -18143,6 +18454,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -18232,6 +18545,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -18321,6 +18636,8 @@ exports[`snapshotAllPages FlatList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -18991,6 +19308,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19057,6 +19376,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19123,6 +19444,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19189,6 +19512,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19255,6 +19580,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19321,6 +19648,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19387,6 +19716,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19453,6 +19784,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19519,6 +19852,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19585,6 +19920,8 @@ exports[`snapshotAllPages FlatList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19751,6 +20088,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19817,6 +20156,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19883,6 +20224,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -19949,6 +20292,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20015,6 +20360,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20081,6 +20428,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20147,6 +20496,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20213,6 +20564,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20279,6 +20632,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20345,6 +20700,8 @@ exports[`snapshotAllPages FlatList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20519,6 +20876,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20592,6 +20951,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20665,6 +21026,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20738,6 +21101,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20811,6 +21176,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20884,6 +21251,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -20957,6 +21326,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21030,6 +21401,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21103,6 +21476,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21176,6 +21551,8 @@ exports[`snapshotAllPages FlatList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21350,6 +21727,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21423,6 +21802,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21496,6 +21877,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21569,6 +21952,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21642,6 +22027,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21715,6 +22102,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21788,6 +22177,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21861,6 +22252,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -21934,6 +22327,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22007,6 +22402,8 @@ exports[`snapshotAllPages FlatList 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22180,6 +22577,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22246,6 +22645,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22312,6 +22713,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22378,6 +22781,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22444,6 +22849,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22510,6 +22917,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22576,6 +22985,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22642,6 +23053,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22708,6 +23121,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22774,6 +23189,8 @@ exports[`snapshotAllPages FlatList 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -22948,6 +23365,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23021,6 +23440,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23094,6 +23515,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23167,6 +23590,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23240,6 +23665,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23313,6 +23740,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23386,6 +23815,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23459,6 +23890,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23532,6 +23965,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23605,6 +24040,8 @@ exports[`snapshotAllPages FlatList 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23810,6 +24247,8 @@ exports[`snapshotAllPages Flyout 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23902,6 +24341,8 @@ exports[`snapshotAllPages Flyout 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -23994,6 +24435,8 @@ exports[`snapshotAllPages Flyout 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -24761,6 +25204,8 @@ exports[`snapshotAllPages Keyboard Focus Example 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -24815,6 +25260,8 @@ exports[`snapshotAllPages Keyboard Focus Example 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27121,6 +27568,8 @@ exports[`snapshotAllPages LegacyControlStyleTest 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27236,6 +27685,8 @@ exports[`snapshotAllPages LegacyImageTest 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27319,6 +27770,8 @@ exports[`snapshotAllPages LegacyImageTest 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27438,6 +27891,8 @@ exports[`snapshotAllPages LegacyLoginTest 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27520,6 +27975,8 @@ exports[`snapshotAllPages LegacyLoginTest 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27617,6 +28074,8 @@ exports[`snapshotAllPages LegacySelectableTextTest 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27700,6 +28159,8 @@ exports[`snapshotAllPages LegacySelectableTextTest 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -27984,6 +28445,8 @@ or click here. "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28054,6 +28517,8 @@ or click here. "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28189,6 +28654,8 @@ exports[`snapshotAllPages Linking 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28255,6 +28722,8 @@ exports[`snapshotAllPages Linking 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28321,6 +28790,8 @@ exports[`snapshotAllPages Linking 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28387,6 +28858,8 @@ exports[`snapshotAllPages Linking 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28453,6 +28926,8 @@ exports[`snapshotAllPages Linking 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28519,6 +28994,8 @@ exports[`snapshotAllPages Linking 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28591,6 +29068,8 @@ exports[`snapshotAllPages Linking 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28676,6 +29155,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -28762,6 +29243,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -28832,6 +29315,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": true, } } @@ -28905,6 +29390,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29095,6 +29582,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29172,6 +29661,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29249,6 +29740,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29326,6 +29819,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29486,6 +29981,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29563,6 +30060,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29640,6 +30139,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29717,6 +30218,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29794,6 +30297,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29905,6 +30410,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -29975,6 +30482,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -30079,6 +30588,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -30149,6 +30660,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -30219,6 +30732,8 @@ exports[`snapshotAllPages Modal 1`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": true, } } @@ -30337,6 +30852,8 @@ exports[`snapshotAllPages Modal 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -30442,6 +30959,8 @@ exports[`snapshotAllPages Mouse Click Events 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -30545,6 +31064,8 @@ exports[`snapshotAllPages Mouse Click Events 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -30790,6 +31311,8 @@ exports[`snapshotAllPages Moving Light Example 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -30891,6 +31414,8 @@ exports[`snapshotAllPages Native Animated Example 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31010,6 +31535,8 @@ exports[`snapshotAllPages Native Animated Example 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31123,6 +31650,8 @@ exports[`snapshotAllPages Native Animated Example 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31236,6 +31765,8 @@ exports[`snapshotAllPages Native Animated Example 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31341,6 +31872,8 @@ exports[`snapshotAllPages Native Animated Example 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31438,6 +31971,8 @@ exports[`snapshotAllPages Native Animated Example 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31543,6 +32078,8 @@ exports[`snapshotAllPages Native Animated Example 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31648,6 +32185,8 @@ exports[`snapshotAllPages Native Animated Example 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31753,6 +32292,8 @@ exports[`snapshotAllPages Native Animated Example 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -31858,6 +32399,8 @@ exports[`snapshotAllPages Native Animated Example 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -32002,6 +32545,8 @@ exports[`snapshotAllPages Native Animated Example 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -32336,6 +32881,8 @@ exports[`snapshotAllPages Performance API Examples 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -32467,6 +33014,8 @@ exports[`snapshotAllPages Performance API Examples 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -32634,6 +33183,8 @@ exports[`snapshotAllPages Performance API Examples 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -32728,6 +33279,8 @@ exports[`snapshotAllPages Performance API Examples 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -32853,6 +33406,8 @@ exports[`snapshotAllPages Performance Comparison Examples 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -32907,6 +33462,8 @@ exports[`snapshotAllPages Performance Comparison Examples 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33015,6 +33572,8 @@ exports[`snapshotAllPages Performance Comparison Examples 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33069,6 +33628,8 @@ exports[`snapshotAllPages Performance Comparison Examples 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33177,6 +33738,8 @@ exports[`snapshotAllPages Performance Comparison Examples 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33231,6 +33794,8 @@ exports[`snapshotAllPages Performance Comparison Examples 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33339,6 +33904,8 @@ exports[`snapshotAllPages Performance Comparison Examples 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33393,6 +33960,8 @@ exports[`snapshotAllPages Performance Comparison Examples 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33501,6 +34070,8 @@ exports[`snapshotAllPages Performance Comparison Examples 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33555,6 +34126,8 @@ exports[`snapshotAllPages Performance Comparison Examples 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33663,6 +34236,8 @@ exports[`snapshotAllPages Performance Comparison Examples 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33717,6 +34292,8 @@ exports[`snapshotAllPages Performance Comparison Examples 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33806,6 +34383,8 @@ exports[`snapshotAllPages PixelRatio 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -33912,6 +34491,8 @@ exports[`snapshotAllPages PixelRatio 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -35648,6 +36229,8 @@ exports[`snapshotAllPages Popup 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -35744,6 +36327,8 @@ exports[`snapshotAllPages Popup 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -35839,6 +36424,8 @@ exports[`snapshotAllPages Popup 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -35933,6 +36520,8 @@ exports[`snapshotAllPages Pressable 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36007,6 +36596,8 @@ exports[`snapshotAllPages Pressable 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36079,6 +36670,8 @@ exports[`snapshotAllPages Pressable 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36160,6 +36753,8 @@ exports[`snapshotAllPages Pressable 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36238,6 +36833,8 @@ exports[`snapshotAllPages Pressable 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36308,6 +36905,8 @@ exports[`snapshotAllPages Pressable 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36361,6 +36960,8 @@ exports[`snapshotAllPages Pressable 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36414,6 +37015,8 @@ exports[`snapshotAllPages Pressable 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36474,6 +37077,8 @@ exports[`snapshotAllPages Pressable 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36540,6 +37145,8 @@ exports[`snapshotAllPages Pressable 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36645,6 +37252,8 @@ exports[`snapshotAllPages Pressable 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36790,6 +37399,8 @@ exports[`snapshotAllPages Pressable 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36881,6 +37492,8 @@ exports[`snapshotAllPages Pressable 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36932,6 +37545,8 @@ exports[`snapshotAllPages Pressable 12`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -36990,6 +37605,8 @@ exports[`snapshotAllPages Pressable 12`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37069,6 +37686,8 @@ exports[`snapshotAllPages Pressable 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37133,6 +37752,8 @@ exports[`snapshotAllPages Pressable 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37243,6 +37864,8 @@ exports[`snapshotAllPages Pressable 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37337,6 +37960,8 @@ exports[`snapshotAllPages Pressable 16`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37413,6 +38038,8 @@ exports[`snapshotAllPages Pressable 17`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37473,6 +38100,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37516,6 +38145,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37559,6 +38190,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37602,6 +38235,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37645,6 +38280,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37688,6 +38325,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37731,6 +38370,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37774,6 +38415,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37817,6 +38460,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37860,6 +38505,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37903,6 +38550,8 @@ exports[`snapshotAllPages Pressable 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37954,6 +38603,8 @@ exports[`snapshotAllPages Pressable 19`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -37998,6 +38649,8 @@ exports[`snapshotAllPages Pressable 19`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38042,6 +38695,8 @@ exports[`snapshotAllPages Pressable 19`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38086,6 +38741,8 @@ exports[`snapshotAllPages Pressable 19`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38135,6 +38792,8 @@ exports[`snapshotAllPages Pressable 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38188,6 +38847,8 @@ exports[`snapshotAllPages Pressable 21`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38228,6 +38889,8 @@ exports[`snapshotAllPages Pressable 21`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38293,6 +38956,8 @@ exports[`snapshotAllPages Pressable 22`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38342,6 +39007,8 @@ exports[`snapshotAllPages Pressable 22`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38416,6 +39083,8 @@ exports[`snapshotAllPages Pressable 22`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38465,6 +39134,8 @@ exports[`snapshotAllPages Pressable 22`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38528,6 +39199,8 @@ exports[`snapshotAllPages Pressable 23`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38570,6 +39243,8 @@ exports[`snapshotAllPages Pressable 23`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38612,6 +39287,8 @@ exports[`snapshotAllPages Pressable 23`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -38736,6 +39413,8 @@ exports[`snapshotAllPages RTLExample 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39021,6 +39700,8 @@ exports[`snapshotAllPages RTLExample 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39151,6 +39832,8 @@ exports[`snapshotAllPages RTLExample 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39296,6 +39979,8 @@ exports[`snapshotAllPages RTLExample 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39441,6 +40126,8 @@ exports[`snapshotAllPages RTLExample 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39564,6 +40251,8 @@ exports[`snapshotAllPages RTLExample 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39738,6 +40427,8 @@ exports[`snapshotAllPages RTLExample 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39842,6 +40533,8 @@ exports[`snapshotAllPages RTLExample 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -39949,6 +40642,8 @@ exports[`snapshotAllPages RTLExample 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -40098,6 +40793,8 @@ exports[`snapshotAllPages RTLExample 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -40239,6 +40936,8 @@ exports[`snapshotAllPages RTLExample 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -40376,6 +41075,8 @@ exports[`snapshotAllPages RTLExample 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -40514,6 +41215,8 @@ exports[`snapshotAllPages RTLExample 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -40656,6 +41359,8 @@ exports[`snapshotAllPages RTLExample 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -40805,6 +41510,8 @@ exports[`snapshotAllPages RTLExample 14`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -40954,6 +41661,8 @@ exports[`snapshotAllPages RTLExample 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -41118,6 +41827,8 @@ exports[`snapshotAllPages RTLExample 16`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -41453,6 +42164,8 @@ exports[`snapshotAllPages ScrollView 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -41503,6 +42216,8 @@ exports[`snapshotAllPages ScrollView 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -41553,6 +42268,8 @@ exports[`snapshotAllPages ScrollView 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -41866,6 +42583,8 @@ exports[`snapshotAllPages ScrollView 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -41916,6 +42635,8 @@ exports[`snapshotAllPages ScrollView 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -42230,6 +42951,8 @@ exports[`snapshotAllPages ScrollView 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -42280,6 +43003,8 @@ exports[`snapshotAllPages ScrollView 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -42398,6 +43123,8 @@ exports[`snapshotAllPages ScrollView 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -42448,6 +43175,8 @@ exports[`snapshotAllPages ScrollView 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -42747,6 +43476,8 @@ exports[`snapshotAllPages ScrollView 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -42796,6 +43527,8 @@ exports[`snapshotAllPages ScrollView 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -43094,6 +43827,8 @@ exports[`snapshotAllPages ScrollView 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -43143,6 +43878,8 @@ exports[`snapshotAllPages ScrollView 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -43433,6 +44170,8 @@ exports[`snapshotAllPages ScrollView 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -43734,6 +44473,8 @@ exports[`snapshotAllPages ScrollView 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -43783,6 +44524,8 @@ exports[`snapshotAllPages ScrollView 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -44082,6 +44825,8 @@ exports[`snapshotAllPages ScrollView 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -44131,6 +44876,8 @@ exports[`snapshotAllPages ScrollView 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -44181,6 +44928,8 @@ exports[`snapshotAllPages ScrollView 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -44971,6 +45720,8 @@ exports[`snapshotAllPages ScrollView 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45021,6 +45772,8 @@ exports[`snapshotAllPages ScrollView 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45094,6 +45847,8 @@ exports[`snapshotAllPages ScrollView 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45177,6 +45932,8 @@ exports[`snapshotAllPages ScrollView 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45286,6 +46043,8 @@ exports[`snapshotAllPages ScrollView 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45458,6 +46217,8 @@ exports[`snapshotAllPages ScrollView 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45749,6 +46510,8 @@ exports[`snapshotAllPages ScrollView 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45798,6 +46561,8 @@ exports[`snapshotAllPages ScrollView 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45872,6 +46637,8 @@ exports[`snapshotAllPages ScrollView 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45921,6 +46688,8 @@ exports[`snapshotAllPages ScrollView 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -45970,6 +46739,8 @@ exports[`snapshotAllPages ScrollView 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -46272,6 +47043,8 @@ exports[`snapshotAllPages ScrollView 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47068,6 +47841,8 @@ exports[`snapshotAllPages ScrollView 16`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47366,6 +48141,8 @@ exports[`snapshotAllPages ScrollView 17`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47415,6 +48192,8 @@ exports[`snapshotAllPages ScrollView 17`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47464,6 +48243,8 @@ exports[`snapshotAllPages ScrollView 17`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47756,6 +48537,8 @@ exports[`snapshotAllPages ScrollView 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47805,6 +48588,8 @@ exports[`snapshotAllPages ScrollView 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47854,6 +48639,8 @@ exports[`snapshotAllPages ScrollView 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -47903,6 +48690,8 @@ exports[`snapshotAllPages ScrollView 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -48466,6 +49255,8 @@ exports[`snapshotAllPages ScrollView 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -48515,6 +49306,8 @@ exports[`snapshotAllPages ScrollView 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -48564,6 +49357,8 @@ exports[`snapshotAllPages ScrollView 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -48622,6 +49417,8 @@ exports[`snapshotAllPages ScrollView 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -48671,6 +49468,8 @@ exports[`snapshotAllPages ScrollView 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -48720,6 +49519,8 @@ exports[`snapshotAllPages ScrollView 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49290,6 +50091,8 @@ exports[`snapshotAllPages ScrollViewAnimated 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49359,6 +50162,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49412,6 +50217,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49465,6 +50272,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49518,6 +50327,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49575,6 +50386,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49628,6 +50441,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49681,6 +50496,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49734,6 +50551,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49787,6 +50606,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49840,6 +50661,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49893,6 +50716,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49946,6 +50771,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -49999,6 +50826,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50052,6 +50881,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50105,6 +50936,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50158,6 +50991,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50211,6 +51046,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50264,6 +51101,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50317,6 +51156,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50370,6 +51211,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50423,6 +51266,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50476,6 +51321,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50529,6 +51376,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50582,6 +51431,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50637,6 +51488,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50690,6 +51543,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50743,6 +51598,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50796,6 +51653,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50849,6 +51708,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50902,6 +51763,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -50955,6 +51818,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51008,6 +51873,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51061,6 +51928,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51114,6 +51983,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51167,6 +52038,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51220,6 +52093,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51273,6 +52148,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51326,6 +52203,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51379,6 +52258,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51438,6 +52319,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51492,6 +52375,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51546,6 +52431,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51600,6 +52487,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51654,6 +52543,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51708,6 +52599,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51762,6 +52655,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51816,6 +52711,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51870,6 +52767,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51924,6 +52823,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -51978,6 +52879,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52032,6 +52935,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52086,6 +52991,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52140,6 +53047,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52194,6 +53103,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52248,6 +53159,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52302,6 +53215,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52356,6 +53271,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52410,6 +53327,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52464,6 +53383,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52526,6 +53447,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52580,6 +53503,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52634,6 +53559,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52688,6 +53615,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52742,6 +53671,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52796,6 +53727,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52850,6 +53783,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52904,6 +53839,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -52958,6 +53895,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53012,6 +53951,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53066,6 +54007,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53120,6 +54063,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53174,6 +54119,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53228,6 +54175,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53282,6 +54231,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53336,6 +54287,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53390,6 +54343,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53444,6 +54399,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53498,6 +54455,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53552,6 +54511,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53614,6 +54575,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53668,6 +54631,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53722,6 +54687,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53776,6 +54743,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53830,6 +54799,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53884,6 +54855,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53938,6 +54911,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -53992,6 +54967,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54046,6 +55023,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54100,6 +55079,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54154,6 +55135,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54208,6 +55191,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54262,6 +55247,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54316,6 +55303,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54370,6 +55359,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54424,6 +55415,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54478,6 +55471,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54532,6 +55527,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54586,6 +55583,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54640,6 +55639,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54702,6 +55703,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54756,6 +55759,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54810,6 +55815,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54864,6 +55871,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54918,6 +55927,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -54972,6 +55983,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55026,6 +56039,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55080,6 +56095,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55134,6 +56151,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55188,6 +56207,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55242,6 +56263,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55296,6 +56319,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55350,6 +56375,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55404,6 +56431,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55458,6 +56487,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55512,6 +56543,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55566,6 +56599,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55620,6 +56655,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55674,6 +56711,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55728,6 +56767,8 @@ exports[`snapshotAllPages ScrollViewSimpleExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -55853,6 +56894,8 @@ exports[`snapshotAllPages SectionList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56027,6 +57070,8 @@ exports[`snapshotAllPages SectionList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56091,6 +57136,8 @@ exports[`snapshotAllPages SectionList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56155,6 +57202,8 @@ exports[`snapshotAllPages SectionList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56240,6 +57289,8 @@ exports[`snapshotAllPages SectionList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56304,6 +57355,8 @@ exports[`snapshotAllPages SectionList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56368,6 +57421,8 @@ exports[`snapshotAllPages SectionList 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56476,6 +57531,8 @@ exports[`snapshotAllPages SectionList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56640,6 +57697,8 @@ exports[`snapshotAllPages SectionList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56704,6 +57763,8 @@ exports[`snapshotAllPages SectionList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56768,6 +57829,8 @@ exports[`snapshotAllPages SectionList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56853,6 +57916,8 @@ exports[`snapshotAllPages SectionList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56917,6 +57982,8 @@ exports[`snapshotAllPages SectionList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -56981,6 +58048,8 @@ exports[`snapshotAllPages SectionList 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57175,6 +58244,8 @@ exports[`snapshotAllPages SectionList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57239,6 +58310,8 @@ exports[`snapshotAllPages SectionList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57303,6 +58376,8 @@ exports[`snapshotAllPages SectionList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57388,6 +58463,8 @@ exports[`snapshotAllPages SectionList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57452,6 +58529,8 @@ exports[`snapshotAllPages SectionList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57516,6 +58595,8 @@ exports[`snapshotAllPages SectionList 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57701,6 +58782,8 @@ exports[`snapshotAllPages SectionList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57787,6 +58870,8 @@ exports[`snapshotAllPages SectionList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -57873,6 +58958,8 @@ exports[`snapshotAllPages SectionList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58002,6 +59089,8 @@ exports[`snapshotAllPages SectionList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58088,6 +59177,8 @@ exports[`snapshotAllPages SectionList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58174,6 +59265,8 @@ exports[`snapshotAllPages SectionList 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58305,6 +59398,8 @@ exports[`snapshotAllPages SectionList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58467,6 +59562,8 @@ exports[`snapshotAllPages SectionList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58531,6 +59628,8 @@ exports[`snapshotAllPages SectionList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58595,6 +59694,8 @@ exports[`snapshotAllPages SectionList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58680,6 +59781,8 @@ exports[`snapshotAllPages SectionList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58744,6 +59847,8 @@ exports[`snapshotAllPages SectionList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58808,6 +59913,8 @@ exports[`snapshotAllPages SectionList 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -58917,6 +60024,8 @@ exports[`snapshotAllPages SectionList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59082,6 +60191,8 @@ exports[`snapshotAllPages SectionList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59146,6 +60257,8 @@ exports[`snapshotAllPages SectionList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59210,6 +60323,8 @@ exports[`snapshotAllPages SectionList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59295,6 +60410,8 @@ exports[`snapshotAllPages SectionList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59359,6 +60476,8 @@ exports[`snapshotAllPages SectionList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59423,6 +60542,8 @@ exports[`snapshotAllPages SectionList 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59617,6 +60738,8 @@ exports[`snapshotAllPages SectionList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59681,6 +60804,8 @@ exports[`snapshotAllPages SectionList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59745,6 +60870,8 @@ exports[`snapshotAllPages SectionList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59830,6 +60957,8 @@ exports[`snapshotAllPages SectionList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59894,6 +61023,8 @@ exports[`snapshotAllPages SectionList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -59958,6 +61089,8 @@ exports[`snapshotAllPages SectionList 7`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60152,6 +61285,8 @@ exports[`snapshotAllPages SectionList 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60216,6 +61351,8 @@ exports[`snapshotAllPages SectionList 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60280,6 +61417,8 @@ exports[`snapshotAllPages SectionList 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60365,6 +61504,8 @@ exports[`snapshotAllPages SectionList 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60429,6 +61570,8 @@ exports[`snapshotAllPages SectionList 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60493,6 +61636,8 @@ exports[`snapshotAllPages SectionList 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60702,6 +61847,8 @@ exports[`snapshotAllPages SectionList 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60773,6 +61920,8 @@ exports[`snapshotAllPages SectionList 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60844,6 +61993,8 @@ exports[`snapshotAllPages SectionList 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -60950,6 +62101,8 @@ exports[`snapshotAllPages SectionList 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61021,6 +62174,8 @@ exports[`snapshotAllPages SectionList 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61092,6 +62247,8 @@ exports[`snapshotAllPages SectionList 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61308,6 +62465,8 @@ exports[`snapshotAllPages SectionList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61379,6 +62538,8 @@ exports[`snapshotAllPages SectionList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61450,6 +62611,8 @@ exports[`snapshotAllPages SectionList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61556,6 +62719,8 @@ exports[`snapshotAllPages SectionList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61627,6 +62792,8 @@ exports[`snapshotAllPages SectionList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61698,6 +62865,8 @@ exports[`snapshotAllPages SectionList 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61921,6 +63090,8 @@ exports[`snapshotAllPages SectionList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -61992,6 +63163,8 @@ exports[`snapshotAllPages SectionList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62063,6 +63236,8 @@ exports[`snapshotAllPages SectionList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62169,6 +63344,8 @@ exports[`snapshotAllPages SectionList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62240,6 +63417,8 @@ exports[`snapshotAllPages SectionList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62311,6 +63490,8 @@ exports[`snapshotAllPages SectionList 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62519,6 +63700,8 @@ exports[`snapshotAllPages SectionList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62583,6 +63766,8 @@ exports[`snapshotAllPages SectionList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62647,6 +63832,8 @@ exports[`snapshotAllPages SectionList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62732,6 +63919,8 @@ exports[`snapshotAllPages SectionList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62796,6 +63985,8 @@ exports[`snapshotAllPages SectionList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62860,6 +64051,8 @@ exports[`snapshotAllPages SectionList 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -62975,6 +64168,8 @@ exports[`snapshotAllPages Share 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -63098,6 +64293,8 @@ exports[`snapshotAllPages Share 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -63234,6 +64431,8 @@ exports[`snapshotAllPages Share 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -64673,6 +65872,8 @@ exports[`snapshotAllPages Text 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -64763,6 +65964,8 @@ exports[`snapshotAllPages Text 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -64853,6 +66056,8 @@ exports[`snapshotAllPages Text 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -65066,6 +66271,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65135,6 +66342,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65204,6 +66413,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": true, } } @@ -65276,6 +66487,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65345,6 +66558,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65414,6 +66629,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65483,6 +66700,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65552,6 +66771,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65621,6 +66842,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65690,6 +66913,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65759,6 +66984,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65828,6 +67055,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65897,6 +67126,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -65966,6 +67197,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -66035,6 +67268,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -66104,6 +67339,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -66173,6 +67410,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -66242,6 +67481,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -66339,6 +67580,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": true, } } @@ -66411,6 +67654,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -66480,6 +67725,8 @@ exports[`snapshotAllPages Text 7`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -69368,6 +70615,8 @@ exports[`snapshotAllPages TextInput 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -72174,6 +73423,8 @@ exports[`snapshotAllPages TextInput 18`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -73452,6 +74703,8 @@ exports[`snapshotAllPages TextInput 20`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -76707,6 +77960,8 @@ exports[`snapshotAllPages Timers 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -76766,6 +78021,8 @@ exports[`snapshotAllPages Timers 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -76825,6 +78082,8 @@ exports[`snapshotAllPages Timers 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -76884,6 +78143,8 @@ exports[`snapshotAllPages Timers 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -76943,6 +78204,8 @@ exports[`snapshotAllPages Timers 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77007,6 +78270,8 @@ exports[`snapshotAllPages Timers 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77072,6 +78337,8 @@ exports[`snapshotAllPages Timers 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77126,6 +78393,8 @@ exports[`snapshotAllPages Timers 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77180,6 +78449,8 @@ exports[`snapshotAllPages Timers 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77234,6 +78505,8 @@ exports[`snapshotAllPages Timers 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77288,6 +78561,8 @@ exports[`snapshotAllPages Timers 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77360,6 +78635,8 @@ exports[`snapshotAllPages Timers 4`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77425,6 +78702,8 @@ exports[`snapshotAllPages Timers 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77484,6 +78763,8 @@ exports[`snapshotAllPages Timers 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77539,6 +78820,8 @@ exports[`snapshotAllPages Timers 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77734,6 +79017,8 @@ exports[`snapshotAllPages Touchable* and onPress 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -77815,6 +79100,8 @@ exports[`snapshotAllPages Touchable* and onPress 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78025,6 +79312,8 @@ exports[`snapshotAllPages Touchable* and onPress 8`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78115,6 +79404,8 @@ exports[`snapshotAllPages Touchable* and onPress 9`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78278,6 +79569,8 @@ exports[`snapshotAllPages Touchable* and onPress 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78438,6 +79731,8 @@ exports[`snapshotAllPages Touchable* and onPress 12`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78501,6 +79796,8 @@ exports[`snapshotAllPages Touchable* and onPress 14`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78561,6 +79858,8 @@ exports[`snapshotAllPages Touchable* and onPress 14`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78729,6 +80028,8 @@ exports[`snapshotAllPages Touchable* and onPress 14`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78784,6 +80085,8 @@ exports[`snapshotAllPages Touchable* and onPress 14`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78887,6 +80190,8 @@ exports[`snapshotAllPages Touchable* and onPress 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -78943,6 +80248,8 @@ exports[`snapshotAllPages Touchable* and onPress 15`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -79011,6 +80318,8 @@ exports[`snapshotAllPages TransferProperties 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -79202,6 +80511,8 @@ exports[`snapshotAllPages TransferProperties 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -79284,6 +80595,8 @@ exports[`snapshotAllPages TransferProperties 2`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -79376,6 +80689,8 @@ exports[`snapshotAllPages TransparentHitTestExample 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -79647,6 +80962,8 @@ exports[`snapshotAllPages View 5`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -80288,6 +81605,8 @@ exports[`snapshotAllPages View 10`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -80462,6 +81781,8 @@ exports[`snapshotAllPages View 11`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -80739,6 +82060,8 @@ exports[`snapshotAllPages View 13`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -82353,6 +83676,8 @@ exports[`snapshotAllPages WebSocket 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -82588,6 +83913,8 @@ exports[`snapshotAllPages WebSocket 1`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -83008,6 +84335,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83077,6 +84406,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83146,6 +84477,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83215,6 +84548,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": true, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": true, } } @@ -83287,6 +84622,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83356,6 +84693,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83425,6 +84764,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83494,6 +84835,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83563,6 +84906,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83632,6 +84977,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83701,6 +85048,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83770,6 +85119,8 @@ exports[`snapshotAllPages XMLHttpRequest 2`] = ` "checked": undefined, "disabled": false, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": false, } } @@ -83904,6 +85255,8 @@ exports[`snapshotAllPages XMLHttpRequest 3`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -84118,6 +85471,8 @@ exports[`snapshotAllPages XMLHttpRequest 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } @@ -84200,6 +85555,8 @@ exports[`snapshotAllPages XMLHttpRequest 6`] = ` "checked": undefined, "disabled": undefined, "expanded": undefined, + "multiselectable": undefined, + "required": undefined, "selected": undefined, } } From 61bc226961287e33be46a86946260a0cf427828d Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:28:39 -0800 Subject: [PATCH 17/20] Remove Override --- vnext/overrides.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/vnext/overrides.json b/vnext/overrides.json index c663a30d528..1143ac99055 100644 --- a/vnext/overrides.json +++ b/vnext/overrides.json @@ -475,13 +475,6 @@ "baseHash": "a5abee6de7dca3cb043b834925de3f6f0443c738", "issue": 4590 }, - { - "type": "derived", - "file": "src-win/Libraries/Image/ImageProps.windows.js", - "baseFile": "packages/react-native/Libraries/Image/ImageProps.js", - "baseHash": "3798c116eaa675aaf0344024a2816cbee3ae8263", - "issue": 0 - }, { "type": "patch", "file": "src-win/Libraries/Image/resolveAssetSource.windows.js", From 410c6c336ddfc2920e10c7a790f7da89812315d3 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:44:45 -0800 Subject: [PATCH 18/20] Fix Override --- vnext/overrides.json | 1 + 1 file changed, 1 insertion(+) diff --git a/vnext/overrides.json b/vnext/overrides.json index 6506630cb00..b9eac3fb461 100644 --- a/vnext/overrides.json +++ b/vnext/overrides.json @@ -160,6 +160,7 @@ "baseHash": "4b2822199233e660f36c01df18fbbff7799968cc" }, { + "type": "derived", "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp", "baseFile": "packages/react-native/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp", "baseHash": "b15afcf4971fd2c9c9a9859ffcb2113bec28fc35" From 0176be5d214bb463a8ff9cafabf8c4db808cc2f3 Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Fri, 13 Dec 2024 15:37:09 -0800 Subject: [PATCH 19/20] Update Snapshots --- .../AccessibilityTest.test.ts.snap | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap index dab9afb2108..2b60c38d4e8 100644 --- a/packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap +++ b/packages/e2e-test-app-fabric/test/__snapshots__/AccessibilityTest.test.ts.snap @@ -37,17 +37,17 @@ exports[`Accessibility Tests Elements can set accessibilityState:selected to fal }, "Comment": "Selectable item 1", "Offset": "0, 0, 0", - "Size": "150, 75", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", }, ], @@ -95,17 +95,17 @@ exports[`Accessibility Tests Elements can set accessibilityState:selected to tru }, "Comment": "Selectable item 1", "Offset": "0, 0, 0", - "Size": "150, 75", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", }, ], @@ -237,17 +237,17 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E "Visual Tree": { "Comment": "selection-container", "Offset": "0, 0, 0", - "Size": "873, 225", + "Size": "916, 150", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "873, 225", + "Size": "916, 150", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "873, 225", + "Size": "916, 150", "Visual Type": "SpriteVisual", "__Children": [ { @@ -256,7 +256,7 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E "Color": "rgba(0, 0, 0, 0)", }, "Offset": "0, 0, 0", - "Size": "873, 225", + "Size": "916, 150", "Visual Type": "SpriteVisual", "__Children": [ { @@ -265,22 +265,22 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E "Color": "rgba(0, 0, 0, 0)", }, "Offset": "0, 0, 0", - "Size": "873, 225", + "Size": "916, 150", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "873, 225", + "Size": "916, 150", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "873, 225", + "Size": "916, 150", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 75", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { @@ -290,17 +290,17 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E }, "Comment": "Selectable item 1", "Offset": "0, 0, 0", - "Size": "150, 75", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", }, ], @@ -310,8 +310,8 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E ], }, { - "Offset": "0, 75, 0", - "Size": "150, 75", + "Offset": "0, 50, 0", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { @@ -321,17 +321,17 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E }, "Comment": "Selectable item 2", "Offset": "0, 0, 0", - "Size": "150, 75", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", }, ], @@ -341,8 +341,8 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E ], }, { - "Offset": "0, 150, 0", - "Size": "150, 75", + "Offset": "0, 100, 0", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { @@ -352,17 +352,17 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E }, "Comment": "Selectable item 3", "Offset": "0, 0, 0", - "Size": "150, 75", + "Size": "100, 50", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "150, 29.000015", + "Size": "100, 20", "Visual Type": "SpriteVisual", }, ], @@ -380,61 +380,61 @@ exports[`Accessibility Tests Selectable items must have a Selection Container. E ], }, { - "Offset": "-19.5, 0, 0", - "Size": "18, 0", + "Offset": "-13, 0, 0", + "Size": "12, 0", "Visual Type": "SpriteVisual", "__Children": [ { - "Offset": "-18, 4.5, 0", + "Offset": "-12, 3, 0", "Opacity": 0, - "Size": "18, 216", + "Size": "12, 144", "Visual Type": "Visual", }, { - "Offset": "0, 6, 0", + "Offset": "0, 4, 0", "Opacity": 0, - "Size": "18, 18", + "Size": "12, 12", "Visual Type": "SpriteVisual", }, { - "Offset": "0, -24, 0", + "Offset": "0, -16, 0", "Opacity": 0, - "Size": "18, 18", + "Size": "12, 12", "Visual Type": "SpriteVisual", }, { - "Offset": "-7.5, 24, 0", - "Size": "9, 177", + "Offset": "-5, 16, 0", + "Size": "6, 118", "Visual Type": "Visual", }, ], }, { - "Offset": "0, -19.5, 0", - "Size": "0, 18", + "Offset": "0, -13, 0", + "Size": "0, 12", "Visual Type": "SpriteVisual", "__Children": [ { - "Offset": "4.5, -18, 0", + "Offset": "3, -12, 0", "Opacity": 0, - "Size": "864, 18", + "Size": "910, 12", "Visual Type": "Visual", }, { - "Offset": "6, 0, 0", + "Offset": "4, 0, 0", "Opacity": 0, - "Size": "18, 18", + "Size": "12, 12", "Visual Type": "SpriteVisual", }, { - "Offset": "-24, 0, 0", + "Offset": "-16, 0, 0", "Opacity": 0, - "Size": "18, 18", + "Size": "12, 12", "Visual Type": "SpriteVisual", }, { - "Offset": "24, -7.5, 0", - "Size": "825, 9", + "Offset": "16, -5, 0", + "Size": "884, 6", "Visual Type": "Visual", }, ], From 9512913a234c18eadf4af37359240d3d53b8d72e Mon Sep 17 00:00:00 2001 From: Chiara Mooney <34109996+chiaramooney@users.noreply.github.com> Date: Mon, 16 Dec 2024 15:57:49 -0800 Subject: [PATCH 20/20] Update Comments --- .../Libraries/Components/TextInput/TextInput.windows.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js index 7c5f0e94d63..f0bf49ad74a 100644 --- a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js +++ b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js @@ -1691,8 +1691,8 @@ function InternalTextInput(props: Props): React.Node { ariaDisabled != null || ariaExpanded != null || ariaSelected != null || - ariaMultiselectable != null || - ariaRequired != null + ariaMultiselectable != null || // Windows + ariaRequired != null // Windows ) { _accessibilityState = { busy: ariaBusy ?? accessibilityState?.busy, @@ -1701,8 +1701,8 @@ function InternalTextInput(props: Props): React.Node { expanded: ariaExpanded ?? accessibilityState?.expanded, selected: ariaSelected ?? accessibilityState?.selected, multiselectable: - ariaMultiselectable ?? accessibilityState?.multiselectable, - required: ariaRequired ?? accessibilityState?.required, + ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows + required: ariaRequired ?? accessibilityState?.required, // Windows }; }