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 +
Details
+
+ `); + + await expect(page.locator('body')).toMatchAriaSnapshot(` + - group: Summary + `); +}); + test('integration test', async ({ page, browserName }) => { - test.fixme(browserName === 'webkit'); await page.setContent(`

Microsoft

Open source projects and samples from Microsoft