diff --git a/packages/calcite-components/src/components/dialog/dialog.e2e.ts b/packages/calcite-components/src/components/dialog/dialog.e2e.ts
index da1bd2e771d..476a74dd329 100644
--- a/packages/calcite-components/src/components/dialog/dialog.e2e.ts
+++ b/packages/calcite-components/src/components/dialog/dialog.e2e.ts
@@ -728,6 +728,18 @@ describe("calcite-dialog", () => {
});
});
+ it("content with visibility: visible should not be focusable when closed", async () => {
+ const page = await newE2EPage();
+ await page.setContent(html`
+
+
+
+ `);
+
+ await page.keyboard.press("Tab");
+ expect(await isElementFocused(page, "#should-not-be-keyboard-focusable")).toBe(false);
+ });
+
it("has correct aria role/attribute", async () => {
const page = await newE2EPage();
await page.setContent(`Hello world!`);
diff --git a/packages/calcite-components/src/components/dialog/dialog.tsx b/packages/calcite-components/src/components/dialog/dialog.tsx
index 7a27d258fd4..06a6c636572 100644
--- a/packages/calcite-components/src/components/dialog/dialog.tsx
+++ b/packages/calcite-components/src/components/dialog/dialog.tsx
@@ -786,6 +786,7 @@ export class Dialog extends LitElement implements OpenCloseComponent {
description={description}
heading={heading}
headingLevel={this.headingLevel}
+ hidden={!this.opened}
icon={icon}
iconFlipRtl={iconFlipRtl}
loading={this.loading}