diff --git a/packages/react/src/Overlay/Overlay.test.tsx b/packages/react/src/Overlay/Overlay.test.tsx index 50715fae3e2..1125be5d866 100644 --- a/packages/react/src/Overlay/Overlay.test.tsx +++ b/packages/react/src/Overlay/Overlay.test.tsx @@ -303,4 +303,13 @@ describe('Overlay', () => { expect(queryByRole('dialog')).not.toBeInTheDocument() expect(queryByRole('none')).toBeInTheDocument() }) + + it('should add `aria-modal` if `role="dialog"` is present', async () => { + const user = userEvent.setup() + const {getByText, queryByRole} = render() + + await user.click(getByText('open overlay')) + + expect(queryByRole('dialog')).toHaveAttribute('aria-modal') + }) }) diff --git a/packages/react/src/Overlay/Overlay.tsx b/packages/react/src/Overlay/Overlay.tsx index 2982fabc873..d6f05a711fb 100644 --- a/packages/react/src/Overlay/Overlay.tsx +++ b/packages/react/src/Overlay/Overlay.tsx @@ -207,7 +207,7 @@ const Overlay = React.forwardRef( const dialog = role && role !== 'dialog' ? true : false useFocusTrap({ - containerRef: overlayRef, // only if `role="dialog"`, `aria-modal="true"` is true + containerRef: overlayRef, disabled: !focusTrap || dialog, })