From 2d20ea2b3930df7ddaf9d86f9dfb6dbb1dd6bfd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B3=E5=BB=B7=E5=AE=89?= <73953029+nrps9909@users.noreply.github.com> Date: Thu, 27 Aug 2026 04:20:46 +0800 Subject: [PATCH] fix: show default tooltips on focus --- src/Tooltip.tsx | 2 +- tests/index.test.tsx | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Tooltip.tsx b/src/Tooltip.tsx index 5aaa8da..52a5aae 100644 --- a/src/Tooltip.tsx +++ b/src/Tooltip.tsx @@ -65,7 +65,7 @@ export interface TooltipRef extends TriggerRef {} const Tooltip = React.forwardRef((props, ref) => { const { - trigger = ['hover'], + trigger = ['hover', 'focus'], mouseEnterDelay = 0, mouseLeaveDelay = 0.1, prefixCls = 'rc-tooltip', diff --git a/tests/index.test.tsx b/tests/index.test.tsx index d8c89d9..50b4dbb 100644 --- a/tests/index.test.tsx +++ b/tests/index.test.tsx @@ -528,6 +528,24 @@ describe('rc-tooltip', () => { }); describe('children handling', () => { + it('should expose tooltip content when the default trigger receives focus', () => { + const { container } = render( + + + , + ); + + const trigger = container.querySelector('button'); + fireEvent.focus(trigger); + + const describedBy = trigger.getAttribute('aria-describedby'); + expect(describedBy).toBeTruthy(); + expect(document.getElementById(describedBy)).toHaveTextContent('tooltip content'); + + fireEvent.blur(trigger); + expect(trigger).not.toHaveAttribute('aria-describedby'); + }); + it('should set aria-describedby immediately when defaultVisible is true', () => { const { container } = render(