diff --git a/packages/playwright-core/src/server/injected/ariaSnapshot.ts b/packages/playwright-core/src/server/injected/ariaSnapshot.ts
index b573569f8f..8e08ae7016 100644
--- a/packages/playwright-core/src/server/injected/ariaSnapshot.ts
+++ b/packages/playwright-core/src/server/injected/ariaSnapshot.ts
@@ -16,7 +16,7 @@
import { escapeWithQuotes } from '@isomorphic/stringUtils';
import { beginAriaCaches, endAriaCaches, getAriaRole, getElementAccessibleName, isElementIgnoredForAria } from './roleUtils';
-import { isElementVisible } from './domUtils';
+import { isElementVisible, isElementStyleVisibilityVisible } from './domUtils';
type AriaNode = {
role: string;
@@ -59,11 +59,7 @@ export function generateAriaTree(rootElement: Element): AriaNode {
return;
const visible = isElementVisible(element);
- const hasVisibleChildren = element.checkVisibility({
- opacityProperty: true,
- visibilityProperty: true,
- contentVisibilityAuto: true
- });
+ const hasVisibleChildren = isElementStyleVisibilityVisible(element);
if (!hasVisibleChildren)
return;
diff --git a/tests/page/to-match-aria-snapshot.spec.ts b/tests/page/to-match-aria-snapshot.spec.ts
index d1e0d7b91e..826f8cc90e 100644
--- a/tests/page/to-match-aria-snapshot.spec.ts
+++ b/tests/page/to-match-aria-snapshot.spec.ts
@@ -94,8 +94,20 @@ test('should allow text nodes', async ({ page }) => {
`);
});
+test('details visibility', async ({ page, browserName }) => {
+ await page.setContent(`
+ Summary
+