diff --git a/packages/react/src/component-tests/IcDialog/IcDialog.cy.tsx b/packages/react/src/component-tests/IcDialog/IcDialog.cy.tsx index 79985cdca8c..0068151d813 100644 --- a/packages/react/src/component-tests/IcDialog/IcDialog.cy.tsx +++ b/packages/react/src/component-tests/IcDialog/IcDialog.cy.tsx @@ -2,6 +2,7 @@ import React from "react"; import { mount } from "cypress/react"; +import { IcDialog } from "../../components"; import { NoBackgroundClickDialog, SimpleDialog, @@ -804,3 +805,34 @@ describe("IcDialog visual regression tests in high contrast mode", () => { }); }); }); + +describe("IcDialog structured content accessibility", () => { + beforeEach(() => { + cy.injectAxe(); + }); + + it("should keep slotted links navigable instead of flattening dialog content", () => { + mount( + +

+ Read the details before continuing. +

+
+ ); + + cy.checkHydrated(DIALOG); + cy.get(DIALOG) + .shadow() + .find("dialog") + .should(NOT_HAVE_ATTR, "aria-describedby"); + cy.get(DIALOG) + .shadow() + .find("dialog") + .should(HAVE_ATTR, "aria-labelledby", "dialog-label dialog-heading"); + + cy.get(DIALOG).find('a[href="#details"]').focus(); + cy.focused().should(HAVE_ATTR, "href", "#details"); + + cy.checkA11yWithWait(); + }); +}); diff --git a/packages/web-components/src/components/ic-dialog/ic-dialog.tsx b/packages/web-components/src/components/ic-dialog/ic-dialog.tsx index 8e81320c9e7..dc5d618d1f2 100644 --- a/packages/web-components/src/components/ic-dialog/ic-dialog.tsx +++ b/packages/web-components/src/components/ic-dialog/ic-dialog.tsx @@ -431,7 +431,6 @@ export class Dialog { "disable-width-constraint": !!disableWidthConstraint, }} aria-labelledby="dialog-label dialog-heading" - aria-describedby="dialog-alert dialog-content" ref={(el) => (this.dialogEl = el)} >
diff --git a/packages/web-components/src/components/ic-dialog/test/basic/__snapshots__/ic-dialog.spec.ts.snap b/packages/web-components/src/components/ic-dialog/test/basic/__snapshots__/ic-dialog.spec.ts.snap index 208753559fb..043870489e7 100644 --- a/packages/web-components/src/components/ic-dialog/test/basic/__snapshots__/ic-dialog.spec.ts.snap +++ b/packages/web-components/src/components/ic-dialog/test/basic/__snapshots__/ic-dialog.spec.ts.snap @@ -3,7 +3,7 @@ exports[`ic-dialog component should render 1`] = `