diff --git a/packages/@react-aria/interactions/src/usePress.ts b/packages/@react-aria/interactions/src/usePress.ts index a90b602cc39..e018aefe316 100644 --- a/packages/@react-aria/interactions/src/usePress.ts +++ b/packages/@react-aria/interactions/src/usePress.ts @@ -787,7 +787,7 @@ export function usePress(props: PressHookProps): PressResult { ]); // Remove user-select: none in case component unmounts immediately after pressStart - + useEffect(() => { return () => { if (!allowTextSelectionOnPress) { @@ -935,7 +935,15 @@ function isOverTarget(point: EventPoint, target: Element) { function shouldPreventDefaultDown(target: Element) { // We cannot prevent default if the target is a draggable element. - return !(target instanceof HTMLElement) || !target.hasAttribute('draggable'); + if (!(target instanceof HTMLElement)) { + return true; + } + + if (target.tagName === 'A' && target.getAttribute('draggable') !== 'false') { + return false; + } + + return !target.hasAttribute('draggable'); } function shouldPreventDefaultUp(target: Element) {