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'); + }); });