revert(#35684): select options can be invisible (#35687)

This commit is contained in:
Pavel Feldman 2025-04-21 18:37:37 -07:00 committed by GitHub
parent 7ec70c61d7
commit 11f2ce7d3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 2 additions and 26 deletions

View File

@ -17,7 +17,7 @@
import { Map, Set } from '@isomorphic/builtins';
import { escapeRegExp, longestCommonSubstring, normalizeWhiteSpace } from '@isomorphic/stringUtils';
import { getElementComputedStyle, getGlobalOptions, isElementVisible } from './domUtils';
import { getElementComputedStyle, getGlobalOptions } from './domUtils';
import * as roleUtils from './roleUtils';
import { yamlEscapeKeyIfNeeded, yamlEscapeValueIfNeeded } from './yaml';
@ -86,10 +86,6 @@ export function generateAriaTree(rootElement: Element, generation: number, optio
}
}
// Skip all the leaf nodes that are not visible as they can't be interacted with.
if (!ariaChildren.length && !isElementVisible(element))
return;
addElement(element);
const childAriaNode = toAriaNode(element, options);
if (childAriaNode)

View File

@ -68,6 +68,7 @@ test.describe(() => {
await recorder.trustedClick();
await recorder.recorderPage.getByRole('tab', { name: 'Aria' }).click();
await expect(recorder.recorderPage.locator('.tab-aria .CodeMirror')).toMatchAriaSnapshot(`
- textbox
- text: '- button "Submit"'
`);
});

View File

@ -731,18 +731,6 @@ it('ref mode can be used to stitch all frame snapshots', async ({ page, server }
`.trim());
});
it('should not include hidden input elements', async ({ page }) => {
await page.setContent(`
<button>One</button>
<button style="width: 0; height: 0; appearance: none; border: 0; padding: 0;">Two</button>
<button>Three</button>
`);
const snapshot = await page.locator('body').ariaSnapshot();
expect(snapshot).toContain(`- button \"One\"
- button \"Three\"`);
});
it('emit generic roles for nodes w/o roles', async ({ page }) => {
await page.setContent(`
<style>
@ -754,21 +742,12 @@ it('emit generic roles for nodes w/o roles', async ({ page }) => {
</style>
<div>
<label>
<span>
<input type="radio" value="Apple" checked="">
</span>
<span>Apple</span>
</label>
<label>
<span>
<input type="radio" value="Pear">
</span>
<span>Pear</span>
</label>
<label>
<span>
<input type="radio" value="Orange">
</span>
<span>Orange</span>
</label>
</div>