From ab485c6a943a3b096aaa8a22d16abf506fae5b76 Mon Sep 17 00:00:00 2001 From: Blake Friedman Date: Fri, 12 Jul 2024 06:17:42 -0700 Subject: [PATCH] Fix testID propogation in Fabric (#45379) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45379 Fixes an accessibility issue where these values weren't being propogated for RCTTextInputComponentView See facebook/react-native#38709 Changelog: [iOS] [Fixed] - testID wasn't propogating to accessibilityIdentifier Reviewed By: cipolleschi Differential Revision: D59594049 fbshipit-source-id: 89ec15f92b423b6e18b1a5eb9d32fc4013c039ba --- .../Mounting/ComponentViews/View/RCTViewComponentView.mm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm index 89e659cd7d4..b55105b25ae 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm @@ -388,7 +388,14 @@ using namespace facebook::react; // `testId` if (oldViewProps.testId != newViewProps.testId) { - self.accessibilityIdentifier = RCTNSStringFromString(newViewProps.testId); + SEL setAccessibilityIdentifierSelector = @selector(setAccessibilityIdentifier:); + NSString *identifier = RCTNSStringFromString(newViewProps.testId); + if ([self.accessibilityElement respondsToSelector:setAccessibilityIdentifierSelector]) { + UIView *accessibilityView = (UIView *)self.accessibilityElement; + accessibilityView.accessibilityIdentifier = identifier; + } else { + self.accessibilityIdentifier = identifier; + } } // `filter`