From 2ee02a0afccfcbb4611e3f4085739ce80852d133 Mon Sep 17 00:00:00 2001 From: Abel John <9206066+abeljohn@users.noreply.github.com> Date: Mon, 4 Aug 2025 10:13:42 -0700 Subject: [PATCH] fix: prevent `useTooltipTrigger` from setting `tabIndex` (#8622) * remove tabIndex set in useTooltipTrigger * add test * add the opposite test as well --------- Co-authored-by: Robert Snow --- .../tooltip/src/useTooltipTrigger.ts | 6 ++-- .../test/Tooltip.test.js | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/packages/@react-aria/tooltip/src/useTooltipTrigger.ts b/packages/@react-aria/tooltip/src/useTooltipTrigger.ts index 5ccfb801b17..4fa5bd7ec1d 100644 --- a/packages/@react-aria/tooltip/src/useTooltipTrigger.ts +++ b/packages/@react-aria/tooltip/src/useTooltipTrigger.ts @@ -139,9 +139,9 @@ export function useTooltipTrigger(props: TooltipTriggerProps, state: TooltipTrig 'aria-describedby': state.isOpen ? tooltipId : undefined, ...mergeProps(focusableProps, hoverProps, { onPointerDown: onPressStart, - onKeyDown: onPressStart, - tabIndex: undefined - }) + onKeyDown: onPressStart + }), + tabIndex: undefined }, tooltipProps: { id: tooltipId diff --git a/packages/react-aria-components/test/Tooltip.test.js b/packages/react-aria-components/test/Tooltip.test.js index 249124a234b..b958c419df6 100644 --- a/packages/react-aria-components/test/Tooltip.test.js +++ b/packages/react-aria-components/test/Tooltip.test.js @@ -312,4 +312,32 @@ describe('Tooltip', () => { let tooltip = getByRole('tooltip'); expect(tooltip).toBeInTheDocument(); }); + + it('should not override child properties for excludeFromTabOrder', async () => { + let {getByRole} = render( + + + hello world + + ); + + let button = getByRole('button'); + expect(button).toHaveAttribute('tabindex', '-1'); + }); + + it('should not override child properties', async () => { + let {getByRole} = render( + + + hello world + + ); + + let button = getByRole('button'); + expect(button).toHaveAttribute('tabindex', '0'); + }); });