diff --git a/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h b/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h new file mode 100644 index 0000000000..905844d9f5 --- /dev/null +++ b/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCTAccessibilityElement : UIAccessibilityElement + +@end + +NS_ASSUME_NONNULL_END diff --git a/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm b/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm new file mode 100644 index 0000000000..751c1817ba --- /dev/null +++ b/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm @@ -0,0 +1,18 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import "RCTAccessibilityElement.h" + +@implementation RCTAccessibilityElement + +- (CGRect)accessibilityFrame +{ + UIView *container = (UIView *)self.accessibilityContainer; + return UIAccessibilityConvertFrameToScreenCoordinates(container.bounds, container); +} + +@end diff --git a/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm b/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm index fc40be86ac..08ae2cafa1 100644 --- a/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm +++ b/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm @@ -13,6 +13,7 @@ #import #import +#import "RCTAccessibilityElement.h" #import "RCTConversions.h" #import "RCTFabricComponentsPlugins.h" #import "RCTLocalizationProvider.h" @@ -61,7 +62,8 @@ using namespace facebook::react; accessibilityLabel = RCTNSStringFromString(_attributedString.getString()); } // add first element has the text for the whole textview in order to read out the whole text - UIAccessibilityElement *firstElement = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:_view]; + UIAccessibilityElement *firstElement = + [[RCTAccessibilityElement alloc] initWithAccessibilityContainer:_view.superview]; firstElement.isAccessibilityElement = YES; firstElement.accessibilityTraits = UIAccessibilityTraitStaticText; firstElement.accessibilityLabel = accessibilityLabel;