From d18e582430a661d22d3c1568668a46d635dff72d Mon Sep 17 00:00:00 2001 From: ovalerio Date: Thu, 13 Aug 2026 19:07:33 -0600 Subject: [PATCH 1/2] fix(hyper-ref): expose disabled state for non-actionable refs --- src/components/hyper-ref/hyper-ref.tsx | 31 +++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/components/hyper-ref/hyper-ref.tsx b/src/components/hyper-ref/hyper-ref.tsx index ae7c186e9..2a527ca3a 100644 --- a/src/components/hyper-ref/hyper-ref.tsx +++ b/src/components/hyper-ref/hyper-ref.tsx @@ -297,6 +297,16 @@ export default class HyperRef extends PureComponent { const style = this.getStyle(); const { accessibilityLabel, testID } = createTestProps(this.props.element); const { onLongPress, onPress, onPressIn, onPressOut } = pressHandlers; + const elementHasAction = !!this.props.element.getAttribute('action'); + const elementHasHref = !!this.props.element.getAttribute('href'); + const hasActionablePressBehavior = behaviors.some(behaviorElement => { + const behaviorAction = ( + behaviorElement.getAttribute(BEHAVIOR_ATTRIBUTES.ACTION) || '' + ).toLowerCase(); + return behaviorAction !== '' && behaviorAction !== 'amplitude'; + }); + const disabled = + !elementHasAction && !elementHasHref && !hasActionablePressBehavior; // If element is a nested under another , simply add press events const isNestedUnderText = @@ -310,22 +320,25 @@ export default class HyperRef extends PureComponent { return ( { return ( Date: Thu, 13 Aug 2026 23:46:49 -0600 Subject: [PATCH 2/2] fix(hyper-ref): treat behavior href as actionable --- src/components/hyper-ref/hyper-ref.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/hyper-ref/hyper-ref.tsx b/src/components/hyper-ref/hyper-ref.tsx index 2a527ca3a..0f97727c8 100644 --- a/src/components/hyper-ref/hyper-ref.tsx +++ b/src/components/hyper-ref/hyper-ref.tsx @@ -303,7 +303,13 @@ export default class HyperRef extends PureComponent { const behaviorAction = ( behaviorElement.getAttribute(BEHAVIOR_ATTRIBUTES.ACTION) || '' ).toLowerCase(); - return behaviorAction !== '' && behaviorAction !== 'amplitude'; + const behaviorHref = behaviorElement.getAttribute( + BEHAVIOR_ATTRIBUTES.HREF, + ); + return ( + (behaviorAction !== '' && behaviorAction !== 'amplitude') || + !!behaviorHref + ); }); const disabled = !elementHasAction && !elementHasHref && !hasActionablePressBehavior;