@geometra/proxy 1.19.22 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,15 @@
1
- import type { Page } from 'playwright';
1
+ import type { CDPSession, Page } from 'playwright';
2
2
  import type { GeometrySnapshot } from './types.js';
3
+ export interface CdpAxSessionManager {
4
+ get(page: Page): Promise<CDPSession>;
5
+ reset(): Promise<void>;
6
+ close(): Promise<void>;
7
+ }
8
+ export declare function shouldEnrichSnapshotWithCdpAx(snap: GeometrySnapshot): boolean;
9
+ export declare function createCdpAxSessionManager(): CdpAxSessionManager;
3
10
  /**
4
11
  * Use Chrome DevTools `Accessibility.getFullAXTree` to back-fill `semantic.ariaLabel` on nodes
5
12
  * whose center falls inside an AX bounds box (helps closed shadow + custom controls).
6
13
  */
7
- export declare function enrichSnapshotWithCdpAx(page: Page, snap: GeometrySnapshot): Promise<void>;
14
+ export declare function enrichSnapshotWithCdpAx(page: Page, snap: GeometrySnapshot, sessionManager?: CdpAxSessionManager): Promise<void>;
8
15
  //# sourceMappingURL=a11y-enrich.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"a11y-enrich.d.ts","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,IAAI,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAgC,MAAM,YAAY,CAAA;AAsPhF;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4F/F"}
1
+ {"version":3,"file":"a11y-enrich.d.ts","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAgC,MAAM,YAAY,CAAA;AAoBhF,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAiND,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAI7E;AA+BD,wBAAgB,yBAAyB,IAAI,mBAAmB,CAgC/D;AAkKD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,gBAAgB,EACtB,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -165,6 +165,119 @@ function countMeaningfulSnapshotNodes(node, isRoot = true) {
165
165
  }
166
166
  return count;
167
167
  }
168
+ function snapshotNodeLabel(node) {
169
+ const semantic = node.semantic ?? {};
170
+ const ariaLabel = typeof semantic.ariaLabel === 'string' ? semantic.ariaLabel.trim() : '';
171
+ if (ariaLabel)
172
+ return ariaLabel;
173
+ const text = typeof node.props.text === 'string' ? node.props.text.trim() : '';
174
+ if (text)
175
+ return text;
176
+ const valueText = typeof semantic.valueText === 'string' ? semantic.valueText.trim() : '';
177
+ return valueText || undefined;
178
+ }
179
+ function summarizeUnnamedInteractiveSnapshotNodes(tree, layout, isRoot = true) {
180
+ const summary = {
181
+ criticalCount: 0,
182
+ ignoredTinyLinkCount: 0,
183
+ };
184
+ if (!isRoot) {
185
+ const semantic = tree.semantic ?? {};
186
+ const role = typeof semantic.role === 'string' ? semantic.role : undefined;
187
+ const interactive = (role !== undefined && INTERACTIVE_AX_ROLES.has(role)) ||
188
+ !!tree.handlers?.onClick ||
189
+ !!tree.handlers?.onKeyDown ||
190
+ !!tree.handlers?.onKeyUp;
191
+ if (interactive && !snapshotNodeLabel(tree)) {
192
+ const isTinyLink = role === 'link' &&
193
+ layout.width > 0 &&
194
+ layout.height > 0 &&
195
+ layout.width <= 56 &&
196
+ layout.height <= 56 &&
197
+ layout.width * layout.height <= 2_500;
198
+ if (isTinyLink) {
199
+ summary.ignoredTinyLinkCount += 1;
200
+ }
201
+ else {
202
+ summary.criticalCount += 1;
203
+ }
204
+ }
205
+ }
206
+ const treeChildren = tree.children ?? [];
207
+ for (let i = 0; i < treeChildren.length; i++) {
208
+ const childSummary = summarizeUnnamedInteractiveSnapshotNodes(treeChildren[i], layout.children[i], false);
209
+ summary.criticalCount += childSummary.criticalCount;
210
+ summary.ignoredTinyLinkCount += childSummary.ignoredTinyLinkCount;
211
+ }
212
+ return summary;
213
+ }
214
+ export function shouldEnrichSnapshotWithCdpAx(snap) {
215
+ if (countMeaningfulSnapshotNodes(snap.tree) <= 1)
216
+ return true;
217
+ const unnamed = summarizeUnnamedInteractiveSnapshotNodes(snap.tree, snap.layout);
218
+ return unnamed.criticalCount > 0 || unnamed.ignoredTinyLinkCount > 1;
219
+ }
220
+ async function detachCdpSession(session) {
221
+ try {
222
+ await session?.detach();
223
+ }
224
+ catch {
225
+ /* ignore */
226
+ }
227
+ }
228
+ async function createEnabledCdpSession(page) {
229
+ const session = await page.context().newCDPSession(page);
230
+ try {
231
+ await session.send('Accessibility.enable');
232
+ try {
233
+ await session.send('DOM.enable');
234
+ }
235
+ catch {
236
+ /* optional */
237
+ }
238
+ return session;
239
+ }
240
+ catch (err) {
241
+ await detachCdpSession(session);
242
+ throw err;
243
+ }
244
+ }
245
+ function isRecoverableCdpSessionError(err) {
246
+ const message = err instanceof Error ? err.message : String(err);
247
+ return /Session closed|Target closed|Browser has been closed|page has been closed|Protocol error/i.test(message);
248
+ }
249
+ export function createCdpAxSessionManager() {
250
+ let activeSession;
251
+ let sessionPromise;
252
+ const clear = async () => {
253
+ const pending = sessionPromise;
254
+ sessionPromise = undefined;
255
+ const session = activeSession ?? await pending?.catch(() => undefined);
256
+ activeSession = undefined;
257
+ await detachCdpSession(session);
258
+ };
259
+ return {
260
+ async get(page) {
261
+ if (activeSession)
262
+ return activeSession;
263
+ if (!sessionPromise) {
264
+ sessionPromise = createEnabledCdpSession(page)
265
+ .then(session => {
266
+ activeSession = session;
267
+ return session;
268
+ })
269
+ .catch(err => {
270
+ activeSession = undefined;
271
+ sessionPromise = undefined;
272
+ throw err;
273
+ });
274
+ }
275
+ return sessionPromise;
276
+ },
277
+ reset: clear,
278
+ close: clear,
279
+ };
280
+ }
168
281
  function buildAxFallbackChildren(candidates) {
169
282
  const layoutChildren = [];
170
283
  const treeChildren = [];
@@ -238,100 +351,106 @@ async function boundsForBackendNode(session, backendDOMNodeId) {
238
351
  return null;
239
352
  }
240
353
  }
354
+ async function collectAxSnapshotCandidates(session, root) {
355
+ const res = (await session.send('Accessibility.getFullAXTree'));
356
+ const nodes = res.nodes ?? [];
357
+ const candidates = [];
358
+ for (const n of nodes) {
359
+ if (n.ignored)
360
+ continue;
361
+ const role = normalizeAxRole(n.role?.value);
362
+ if (!role || !INTERESTING_AX_ROLES.has(role))
363
+ continue;
364
+ const name = n.name?.value?.trim() || undefined;
365
+ const b = parseAxBounds(n.properties) ??
366
+ await boundsForBackendNode(session, n.backendDOMNodeId);
367
+ if (!b || b.width <= 0 || b.height <= 0)
368
+ continue;
369
+ if (!boundsIntersectsViewport(b, root))
370
+ continue;
371
+ if (!name && !INTERACTIVE_AX_ROLES.has(role) && role !== 'img')
372
+ continue;
373
+ candidates.push({
374
+ ...(name ? { name } : {}),
375
+ role,
376
+ bounds: b,
377
+ selected: parseAxBooleanProperty(n.properties, 'selected'),
378
+ expanded: parseAxBooleanProperty(n.properties, 'expanded'),
379
+ checked: parseAxCheckedProperty(n.properties),
380
+ disabled: parseAxBooleanProperty(n.properties, 'disabled'),
381
+ focused: parseAxBooleanProperty(n.properties, 'focused'),
382
+ });
383
+ }
384
+ return candidates;
385
+ }
386
+ function applyAxSnapshotCandidates(snap, candidates) {
387
+ const visit = (tNode, lNode) => {
388
+ const sem = tNode.semantic;
389
+ if (sem?.ariaLabel || sem?.a11yEnriched) {
390
+ /* skip */
391
+ }
392
+ else {
393
+ const cx = lNode.x + lNode.width / 2;
394
+ const cy = lNode.y + lNode.height / 2;
395
+ for (const c of candidates) {
396
+ const b = c.bounds;
397
+ if (cx >= b.left && cx <= b.left + b.width && cy >= b.top && cy <= b.top + b.height) {
398
+ tNode.semantic = {
399
+ ...(sem ?? {}),
400
+ ariaLabel: c.name,
401
+ a11yRoleHint: c.role,
402
+ a11yEnriched: true,
403
+ };
404
+ break;
405
+ }
406
+ }
407
+ }
408
+ const tch = tNode.children ?? [];
409
+ const lch = lNode.children;
410
+ for (let i = 0; i < tch.length; i++) {
411
+ visit(tch[i], lch[i]);
412
+ }
413
+ };
414
+ visit(snap.tree, snap.layout);
415
+ if (countMeaningfulSnapshotNodes(snap.tree) <= 1) {
416
+ const fallback = buildAxFallbackChildren(candidates);
417
+ if (fallback.treeChildren.length > 0) {
418
+ snap.layout.children = fallback.layoutChildren;
419
+ snap.tree.children = fallback.treeChildren;
420
+ snap.tree.semantic = {
421
+ ...(snap.tree.semantic ?? {}),
422
+ a11yFallbackUsed: true,
423
+ };
424
+ }
425
+ }
426
+ }
241
427
  /**
242
428
  * Use Chrome DevTools `Accessibility.getFullAXTree` to back-fill `semantic.ariaLabel` on nodes
243
429
  * whose center falls inside an AX bounds box (helps closed shadow + custom controls).
244
430
  */
245
- export async function enrichSnapshotWithCdpAx(page, snap) {
246
- let session;
247
- try {
248
- session = await page.context().newCDPSession(page);
249
- await session.send('Accessibility.enable');
431
+ export async function enrichSnapshotWithCdpAx(page, snap, sessionManager) {
432
+ let temporarySession;
433
+ for (let attempt = 0; attempt < 2; attempt++) {
250
434
  try {
251
- await session.send('DOM.enable');
252
- }
253
- catch {
254
- /* optional */
435
+ const session = sessionManager
436
+ ? await sessionManager.get(page)
437
+ : (temporarySession = await createEnabledCdpSession(page));
438
+ const candidates = await collectAxSnapshotCandidates(session, snap.layout);
439
+ applyAxSnapshotCandidates(snap, candidates);
440
+ return;
255
441
  }
256
- const res = (await session.send('Accessibility.getFullAXTree'));
257
- const nodes = res.nodes ?? [];
258
- const root = snap.layout;
259
- const candidates = [];
260
- for (const n of nodes) {
261
- if (n.ignored)
262
- continue;
263
- const role = normalizeAxRole(n.role?.value);
264
- if (!role || !INTERESTING_AX_ROLES.has(role))
265
- continue;
266
- const name = n.name?.value?.trim() || undefined;
267
- const b = parseAxBounds(n.properties) ??
268
- await boundsForBackendNode(session, n.backendDOMNodeId);
269
- if (!b || b.width <= 0 || b.height <= 0)
270
- continue;
271
- if (!boundsIntersectsViewport(b, root))
272
- continue;
273
- if (!name && !INTERACTIVE_AX_ROLES.has(role) && role !== 'img')
442
+ catch (err) {
443
+ if (sessionManager && attempt === 0 && !page.isClosed() && isRecoverableCdpSessionError(err)) {
444
+ await sessionManager.reset();
274
445
  continue;
275
- candidates.push({
276
- ...(name ? { name } : {}),
277
- role,
278
- bounds: b,
279
- selected: parseAxBooleanProperty(n.properties, 'selected'),
280
- expanded: parseAxBooleanProperty(n.properties, 'expanded'),
281
- checked: parseAxCheckedProperty(n.properties),
282
- disabled: parseAxBooleanProperty(n.properties, 'disabled'),
283
- focused: parseAxBooleanProperty(n.properties, 'focused'),
284
- });
285
- }
286
- const visit = (tNode, lNode) => {
287
- const sem = tNode.semantic;
288
- if (sem?.ariaLabel || sem?.a11yEnriched) {
289
- /* skip */
290
- }
291
- else {
292
- const cx = lNode.x + lNode.width / 2;
293
- const cy = lNode.y + lNode.height / 2;
294
- for (const c of candidates) {
295
- const b = c.bounds;
296
- if (cx >= b.left && cx <= b.left + b.width && cy >= b.top && cy <= b.top + b.height) {
297
- tNode.semantic = {
298
- ...(sem ?? {}),
299
- ariaLabel: c.name,
300
- a11yRoleHint: c.role,
301
- a11yEnriched: true,
302
- };
303
- break;
304
- }
305
- }
306
- }
307
- const tch = tNode.children ?? [];
308
- const lch = lNode.children;
309
- for (let i = 0; i < tch.length; i++) {
310
- visit(tch[i], lch[i]);
311
- }
312
- };
313
- visit(snap.tree, snap.layout);
314
- if (countMeaningfulSnapshotNodes(snap.tree) <= 1) {
315
- const fallback = buildAxFallbackChildren(candidates);
316
- if (fallback.treeChildren.length > 0) {
317
- snap.layout.children = fallback.layoutChildren;
318
- snap.tree.children = fallback.treeChildren;
319
- snap.tree.semantic = {
320
- ...(snap.tree.semantic ?? {}),
321
- a11yFallbackUsed: true,
322
- };
323
446
  }
447
+ return;
324
448
  }
325
- }
326
- catch {
327
- /* optional */
328
- }
329
- finally {
330
- try {
331
- await session?.detach();
332
- }
333
- catch {
334
- /* ignore */
449
+ finally {
450
+ if (!sessionManager && temporarySession) {
451
+ await detachCdpSession(temporarySession);
452
+ temporarySession = undefined;
453
+ }
335
454
  }
336
455
  }
337
456
  }
@@ -1 +1 @@
1
- {"version":3,"file":"a11y-enrich.js","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a11y-enrich.js","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom-actions.d.ts","sourceRoot":"","sources":["../src/dom-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom-actions.d.ts","sourceRoot":"","sources":["../src/dom-actions.ts"],"names":[],"mappings":"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"}
@@ -344,6 +344,7 @@ async function resolveMeaningfulClickTarget(locator) {
344
344
  async function findLabeledControl(frame, fieldLabel, exact, opts) {
345
345
  const directCandidates = [
346
346
  frame.getByLabel(fieldLabel, { exact }),
347
+ frame.getByPlaceholder(fieldLabel, { exact }),
347
348
  frame.getByRole('combobox', { name: fieldLabel, exact }),
348
349
  frame.getByRole('textbox', { name: fieldLabel, exact }),
349
350
  frame.getByRole('button', { name: fieldLabel, exact }),
@@ -379,12 +380,24 @@ async function findLabeledControl(frame, fieldLabel, exact, opts) {
379
380
  const style = getComputedStyle(el);
380
381
  return style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0';
381
382
  }
382
- function referencedText(ids) {
383
+ function referencedText(ids, visited) {
383
384
  if (!ids)
384
385
  return undefined;
386
+ const seen = visited ?? new Set();
385
387
  const text = ids
386
388
  .split(/\s+/)
387
- .map(id => document.getElementById(id)?.textContent?.trim() ?? '')
389
+ .map(id => {
390
+ if (seen.has(id))
391
+ return '';
392
+ seen.add(id);
393
+ const target = document.getElementById(id);
394
+ if (!target)
395
+ return '';
396
+ const chained = target.getAttribute('aria-labelledby');
397
+ if (chained)
398
+ return referencedText(chained, seen) ?? '';
399
+ return target.textContent?.trim() ?? '';
400
+ })
388
401
  .filter(Boolean)
389
402
  .join(' ')
390
403
  .trim();
@@ -408,6 +421,25 @@ async function findLabeledControl(frame, fieldLabel, exact, opts) {
408
421
  if (text)
409
422
  return text;
410
423
  }
424
+ if (el.parentElement?.tagName.toLowerCase() === 'label') {
425
+ const text = el.parentElement.textContent?.trim();
426
+ if (text)
427
+ return text;
428
+ }
429
+ if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) &&
430
+ !['checkbox', 'radio', 'file', 'button', 'submit', 'reset', 'hidden'].includes(el instanceof HTMLInputElement ? el.type : '')) {
431
+ const placeholder = el.getAttribute('aria-placeholder')?.trim() || el.getAttribute('placeholder')?.trim();
432
+ if (placeholder)
433
+ return placeholder;
434
+ }
435
+ if (el instanceof HTMLInputElement && ['button', 'submit', 'reset'].includes(el.type)) {
436
+ const value = el.value?.trim();
437
+ if (value)
438
+ return value;
439
+ }
440
+ const title = el.getAttribute('title')?.trim();
441
+ if (title)
442
+ return title;
411
443
  return undefined;
412
444
  }
413
445
  function controlPriority(el) {
@@ -1322,12 +1354,24 @@ async function findLabeledFileInput(frame, fieldLabel, exact) {
1322
1354
  return false;
1323
1355
  return payload.exact ? normalizedCandidate === normalizedExpected : normalizedCandidate.includes(normalizedExpected);
1324
1356
  }
1325
- function referencedText(ids) {
1357
+ function referencedText(ids, visited) {
1326
1358
  if (!ids)
1327
1359
  return undefined;
1360
+ const seen = visited ?? new Set();
1328
1361
  const text = ids
1329
1362
  .split(/\s+/)
1330
- .map(id => document.getElementById(id)?.textContent?.trim() ?? '')
1363
+ .map(id => {
1364
+ if (seen.has(id))
1365
+ return '';
1366
+ seen.add(id);
1367
+ const target = document.getElementById(id);
1368
+ if (!target)
1369
+ return '';
1370
+ const chained = target.getAttribute('aria-labelledby');
1371
+ if (chained)
1372
+ return referencedText(chained, seen) ?? '';
1373
+ return target.textContent?.trim() ?? '';
1374
+ })
1331
1375
  .filter(Boolean)
1332
1376
  .join(' ')
1333
1377
  .trim();
@@ -1349,6 +1393,14 @@ async function findLabeledFileInput(frame, fieldLabel, exact) {
1349
1393
  if (text)
1350
1394
  return text;
1351
1395
  }
1396
+ if (el.parentElement?.tagName.toLowerCase() === 'label') {
1397
+ const text = el.parentElement.textContent?.trim();
1398
+ if (text)
1399
+ return text;
1400
+ }
1401
+ const title = el.getAttribute('title')?.trim();
1402
+ if (title)
1403
+ return title;
1352
1404
  return undefined;
1353
1405
  }
1354
1406
  for (let i = 0; i < elements.length; i++) {
@@ -1500,6 +1552,7 @@ async function findLabeledEditableField(page, fieldLabel, exact, cache, fieldId)
1500
1552
  for (const frame of page.frames()) {
1501
1553
  const candidates = [
1502
1554
  frame.getByLabel(fieldLabel, { exact }),
1555
+ frame.getByPlaceholder(fieldLabel, { exact }),
1503
1556
  frame.getByRole('textbox', { name: fieldLabel, exact }),
1504
1557
  frame.getByRole('combobox', { name: fieldLabel, exact }),
1505
1558
  ];
@@ -1675,12 +1728,24 @@ async function attemptNativeBatchFill(page, fields) {
1675
1728
  const style = getComputedStyle(el);
1676
1729
  return style.display !== 'none' && style.visibility !== 'hidden';
1677
1730
  }
1678
- function referencedText(ids) {
1731
+ function referencedText(ids, visited) {
1679
1732
  if (!ids)
1680
1733
  return undefined;
1734
+ const seen = visited ?? new Set();
1681
1735
  const text = ids
1682
1736
  .split(/\s+/)
1683
- .map(id => document.getElementById(id)?.textContent?.trim() ?? '')
1737
+ .map(id => {
1738
+ if (seen.has(id))
1739
+ return '';
1740
+ seen.add(id);
1741
+ const target = document.getElementById(id);
1742
+ if (!target)
1743
+ return '';
1744
+ const chained = target.getAttribute('aria-labelledby');
1745
+ if (chained)
1746
+ return referencedText(chained, seen) ?? '';
1747
+ return target.textContent?.trim() ?? '';
1748
+ })
1684
1749
  .filter(Boolean)
1685
1750
  .join(' ')
1686
1751
  .trim();
@@ -1707,6 +1772,20 @@ async function attemptNativeBatchFill(page, fields) {
1707
1772
  if (el.parentElement?.tagName.toLowerCase() === 'label') {
1708
1773
  return el.parentElement.textContent?.trim() || undefined;
1709
1774
  }
1775
+ if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) &&
1776
+ !['checkbox', 'radio', 'file', 'button', 'submit', 'reset', 'hidden'].includes(el instanceof HTMLInputElement ? el.type : '')) {
1777
+ const placeholder = el.getAttribute('aria-placeholder')?.trim() || el.getAttribute('placeholder')?.trim();
1778
+ if (placeholder)
1779
+ return placeholder;
1780
+ }
1781
+ if (el instanceof HTMLInputElement && ['button', 'submit', 'reset'].includes(el.type)) {
1782
+ const value = el.value?.trim();
1783
+ if (value)
1784
+ return value;
1785
+ }
1786
+ const title = el.getAttribute('title')?.trim();
1787
+ if (title)
1788
+ return title;
1710
1789
  return undefined;
1711
1790
  }
1712
1791
  function dispatch(target) {
@@ -2005,12 +2084,24 @@ async function chooseValueFromLabeledGroup(page, fieldLabel, value, exact) {
2005
2084
  return false;
2006
2085
  return payload.exact ? normalizedCandidate === normalizedExpected : normalizedCandidate.includes(normalizedExpected);
2007
2086
  }
2008
- function referencedText(ids) {
2087
+ function referencedText(ids, visited) {
2009
2088
  if (!ids)
2010
2089
  return undefined;
2090
+ const seen = visited ?? new Set();
2011
2091
  const text = ids
2012
2092
  .split(/\s+/)
2013
- .map(id => document.getElementById(id)?.textContent?.trim() ?? '')
2093
+ .map(id => {
2094
+ if (seen.has(id))
2095
+ return '';
2096
+ seen.add(id);
2097
+ const target = document.getElementById(id);
2098
+ if (!target)
2099
+ return '';
2100
+ const chained = target.getAttribute('aria-labelledby');
2101
+ if (chained)
2102
+ return referencedText(chained, seen) ?? '';
2103
+ return target.textContent?.trim() ?? '';
2104
+ })
2014
2105
  .filter(Boolean)
2015
2106
  .join(' ')
2016
2107
  .trim();
@@ -2026,6 +2117,23 @@ async function chooseValueFromLabeledGroup(page, fieldLabel, value, exact) {
2026
2117
  if (el instanceof HTMLInputElement && el.labels && el.labels.length > 0) {
2027
2118
  return el.labels[0]?.textContent?.trim() || undefined;
2028
2119
  }
2120
+ if (el.parentElement?.tagName.toLowerCase() === 'label') {
2121
+ return el.parentElement.textContent?.trim() || undefined;
2122
+ }
2123
+ if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) &&
2124
+ !['checkbox', 'radio', 'file', 'button', 'submit', 'reset', 'hidden'].includes(el instanceof HTMLInputElement ? el.type : '')) {
2125
+ const placeholder = el.getAttribute('aria-placeholder')?.trim() || el.getAttribute('placeholder')?.trim();
2126
+ if (placeholder)
2127
+ return placeholder;
2128
+ }
2129
+ if (el instanceof HTMLInputElement && ['button', 'submit', 'reset'].includes(el.type)) {
2130
+ const value = el.value?.trim();
2131
+ if (value)
2132
+ return value;
2133
+ }
2134
+ const title = el.getAttribute('title')?.trim();
2135
+ if (title)
2136
+ return title;
2029
2137
  return undefined;
2030
2138
  }
2031
2139
  function choiceLabel(el) {
@@ -2432,12 +2540,24 @@ export async function setCheckedControl(page, label, opts) {
2432
2540
  const style = getComputedStyle(el);
2433
2541
  return style.display !== 'none' && style.visibility !== 'hidden';
2434
2542
  }
2435
- function referencedText(ids) {
2543
+ function referencedText(ids, visited) {
2436
2544
  if (!ids)
2437
2545
  return undefined;
2546
+ const seen = visited ?? new Set();
2438
2547
  const text = ids
2439
2548
  .split(/\s+/)
2440
- .map(id => document.getElementById(id)?.textContent?.trim() ?? '')
2549
+ .map(id => {
2550
+ if (seen.has(id))
2551
+ return '';
2552
+ seen.add(id);
2553
+ const target = document.getElementById(id);
2554
+ if (!target)
2555
+ return '';
2556
+ const chained = target.getAttribute('aria-labelledby');
2557
+ if (chained)
2558
+ return referencedText(chained, seen) ?? '';
2559
+ return target.textContent?.trim() ?? '';
2560
+ })
2441
2561
  .filter(Boolean)
2442
2562
  .join(' ')
2443
2563
  .trim();