appium-ios-remotexpc 5.17.2 → 5.18.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [5.18.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.17.2...v5.18.0) (2026-09-01)
2
+
3
+ ### Features
4
+
5
+ * **accessibility-audit:** add focus traversal via `moveFocus` and `walkElements` ([#310](https://github.com/appium/appium-ios-remotexpc/issues/310)) ([df982a5](https://github.com/appium/appium-ios-remotexpc/commit/df982a52bbe2f136520569fab4f858942f465d6c))
6
+
1
7
  ## [5.17.2](https://github.com/appium/appium-ios-remotexpc/compare/v5.17.1...v5.17.2) (2026-08-31)
2
8
 
3
9
  ### Performance Improvements
@@ -36,6 +36,7 @@ export type { AxRect } from './services/ios/accessibility-audit/ax-values.js';
36
36
  export { serializeAxAttribute, serializeAxElement, toAxElement, toInspectedElement, } from './services/ios/accessibility-audit/ax-element.js';
37
37
  export type { AxElement, AxElementAttribute, AxInspectedElement, AxInspectorSection, } from './services/ios/accessibility-audit/ax-element.js';
38
38
  export { serializeAxSetting } from './services/ios/accessibility-audit/index.js';
39
+ export { AxFocusDirection } from './services/ios/accessibility-audit/index.js';
39
40
  export type { InspectOptions, RunAuditOptions, AxAuditIssue } from './services/ios/accessibility-audit/index.js';
40
41
  export { CoreDeviceInfoService } from './services/ios/device-info/index.js';
41
42
  export type { CoreDeviceAttributes, CoreDeviceDisplayInfo, CoreDeviceLockState, } from './services/ios/device-info/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export { AX_OBJECT_TYPE, deserializeAxObject } from './services/ios/accessibilit
18
18
  export { AxPoint, toAxRect } from './services/ios/accessibility-audit/ax-values.js';
19
19
  export { serializeAxAttribute, serializeAxElement, toAxElement, toInspectedElement, } from './services/ios/accessibility-audit/ax-element.js';
20
20
  export { serializeAxSetting } from './services/ios/accessibility-audit/index.js';
21
+ export { AxFocusDirection } from './services/ios/accessibility-audit/index.js';
21
22
  export { CoreDeviceInfoService } from './services/ios/device-info/index.js';
22
23
  export { DeviceControlService } from './services/ios/device-control/index.js';
23
24
  export { ConfigurationService } from './services/ios/configuration/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,13 @@ export interface AxInspectorSection {
45
45
  }
46
46
  /** The inspector panel the device pushes when the focused element changes. */
47
47
  export interface AxInspectedElement {
48
+ /**
49
+ * A handle to the focused element, when the daemon sends one.
50
+ *
51
+ * Present on focus pushes, which lets a walk both detect revisits and read
52
+ * attributes for each element it reaches.
53
+ */
54
+ element?: AxElement;
48
55
  /** What VoiceOver would announce, when the daemon provides it. */
49
56
  spokenDescription?: string;
50
57
  /** The caption shown above the panel, when present. */
@@ -1 +1 @@
1
- {"version":3,"file":"ax-element.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/ax-element.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAiBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAkBjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW9E;AA2BD,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ3F;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAwBrE"}
1
+ {"version":3,"file":"ax-element.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/ax-element.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAiBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAkBjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW9E;AA2BD,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ3F;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAyBrE"}
@@ -106,6 +106,7 @@ export function toInspectedElement(value) {
106
106
  });
107
107
  }
108
108
  return {
109
+ element: toAxElement(fields.ElementValue_v1),
109
110
  spokenDescription: typeof fields.SpokenDescriptionValue_v1 === 'string' ? fields.SpokenDescriptionValue_v1 : undefined,
110
111
  caption: typeof fields.CaptionTextValue_v1 === 'string' ? fields.CaptionTextValue_v1 : undefined,
111
112
  sections,
@@ -1 +1 @@
1
- {"version":3,"file":"ax-element.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/ax-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ax-element.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/ax-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAmEnD,yDAAyD;AACzD,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,0DAA0D;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QAChH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QACjD,CAAC,CAAC,CAAE,aAAyC,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,eAAe;QACf,uBAAuB,EACrB,OAAO,MAAM,CAAC,0BAA0B,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS;KACxG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAkB;IACnD,MAAM,KAAK,GAA4B;QACrC,uBAAuB,EAAE,EAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAC;KACrF,CAAC;IACF,IAAI,OAAO,CAAC,uBAAuB,KAAK,SAAS,EAAE,CAAC;QAClD,KAAK,CAAC,0BAA0B,GAAG,EAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,uBAAuB,EAAC,CAAC;IACzG,CAAC;IACD,OAAO;QACL,UAAU,EAAE,mBAAmB;QAC/B,KAAK,EAAE,EAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAC;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,IAAI;QACJ,iBAAiB,EAAE,OAAO,MAAM,CAAC,yBAAyB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI;QACjH,QAAQ,EAAE,MAAM,CAAC,gBAAgB,KAAK,IAAI;QAC1C,cAAc,EAAE,MAAM,CAAC,sBAAsB,KAAK,IAAI;QACtD,UAAU,EAAE,MAAM,CAAC,aAAa,KAAK,IAAI;QACzC,SAAS,EAAE,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;QAC9F,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,SAAS,QAAQ,CAAC,MAA+B;IAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC,CACtG,CAAC;IACF,OAAO;QACL,UAAU,EAAE,4BAA4B;QACxC,KAAK,EAAE,EAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAC;KACjD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACnF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,UAAqC,CAAC;QACtD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;QAChH,QAAQ,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;YAC5F,KAAK,EAAE,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAC7E,UAAU,EAAE,aAAa;iBACtB,GAAG,CAAC,WAAW,CAAC;iBAChB,MAAM,CAAC,CAAC,SAAS,EAAmC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC;QAC5C,iBAAiB,EACf,OAAO,MAAM,CAAC,yBAAyB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS;QACrG,OAAO,EAAE,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;QAChG,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -2,6 +2,16 @@ import { MessageAux } from '../dvt/dtx-message.js';
2
2
  import { AX_OBJECT_TYPE } from './ax-deserialize.js';
3
3
  import { type AxElement, type AxElementAttribute, type AxInspectedElement } from './ax-element.js';
4
4
  import { AxAuditDtxTransport, type InvokeOptions } from './dtx-transport.js';
5
+ /**
6
+ * Where {@link AccessibilityAuditService.moveFocus} sends the accessibility
7
+ * focus. These are the daemon's own `direction` values, verified live.
8
+ */
9
+ export declare enum AxFocusDirection {
10
+ Previous = 3,
11
+ Next = 4,
12
+ First = 5,
13
+ Last = 6
14
+ }
5
15
  /**
6
16
  * One accessibility setting reported by
7
17
  * {@link AccessibilityAuditService.getAccessibilitySettings}.
@@ -48,6 +58,7 @@ export declare class AccessibilityAuditService {
48
58
  static readonly RSD_SERVICE_NAME = "com.apple.accessibility.axAuditDaemon.remoteserver.shim.remote";
49
59
  /** Live {@link observeFocusedElement} subscriptions; monitoring stays armed while > 0. */
50
60
  private observerCount;
61
+ private focusMoveInFlight;
51
62
  /** Guards {@link runAudit} against overlapping calls on one instance. */
52
63
  private auditInFlight;
53
64
  /**
@@ -162,6 +173,91 @@ export declare class AccessibilityAuditService {
162
173
  observeFocusedElement(listener: (element: AxInspectedElement) => void, options?: {
163
174
  showVisuals?: boolean;
164
175
  }): () => void;
176
+ /**
177
+ * Moves the device's accessibility focus and resolves with the element it
178
+ * lands on — the same panel {@link getFocusedElement} returns, plus a handle
179
+ * in `element`.
180
+ *
181
+ * The daemon only reports focus that actually *changed*, so a move with
182
+ * nowhere to go — `First` when focus is already on the first element —
183
+ * emits nothing and rejects on timeout. Focus does wrap: `Next` from the last
184
+ * element returns to the first.
185
+ *
186
+ * Only one focus move may be in flight per instance — a second concurrent call
187
+ * rejects, since both would be resolved by the same push.
188
+ *
189
+ * On timeout the move has already been sent, and nothing ties the daemon's
190
+ * push back to the move that caused it. A push landing after the wait gave up
191
+ * is delivered to the next caller, which then sees a stale element — so treat
192
+ * a timeout as "this connection is briefly out of step" and let it settle.
193
+ * Draining blindly does not work: a move that changes nothing is answered with
194
+ * silence, so the event discarded would as often be a real one.
195
+ *
196
+ * @param direction Where to move; see {@link AxFocusDirection}.
197
+ * @param options Timeout, and whether to draw the on-device highlight.
198
+ */
199
+ moveFocus(direction: AxFocusDirection, options?: InspectOptions): Promise<AxInspectedElement>;
200
+ /**
201
+ * Sends one move and waits for the focus event it produces.
202
+ *
203
+ * Assumes monitoring is already armed, so a walk can arm once instead of once
204
+ * per step.
205
+ */
206
+ private requestFocusMove;
207
+ /** Arms monitoring for focus work and rejects a second concurrent caller. */
208
+ private beginFocusWork;
209
+ /** Undoes {@link beginFocusWork}, leaving monitoring armed for any observer. */
210
+ private endFocusWork;
211
+ /**
212
+ * Walks the focusable elements of whatever is on screen, in focus order.
213
+ *
214
+ * Moves focus forward, yielding each element, and stops once the sequence
215
+ * starts repeating — the daemon cycles rather than reporting an end.
216
+ *
217
+ * What counts as a repeat is the step *between* two elements, not an element,
218
+ * because nothing the daemon sends identifies one. {@link
219
+ * AxElement.platformElement} is a fresh handle per focus event, and
220
+ * `accessibilityIdentifier` is absent on most elements, so a screen of
221
+ * lookalikes — a photo grid announcing "Photo, Image" over and over — offers
222
+ * nothing to tell its elements apart. Runs of identical announcements are
223
+ * therefore collapsed for repeat detection and still yielded individually,
224
+ * and the walk stops only when a *pair* of announcements recurs.
225
+ *
226
+ * A repeated step is treated as a hypothesis rather than proof: the walk keeps
227
+ * going and only stops once the announcements have kept matching one period
228
+ * back for several more elements. A screen that happens to take the same step
229
+ * twice is therefore walked in full, where believing the first repeat would
230
+ * have cut it short.
231
+ *
232
+ * The consequence worth knowing: a screen whose announcements repeat over a
233
+ * long enough stretch to satisfy that check still ends early, and one where
234
+ * every element announces alike runs to the safety limit.
235
+ *
236
+ * A screen with nothing focusable yields nothing. Note the daemon reports what
237
+ * is actually drawn, so an app that has not rendered looks empty.
238
+ *
239
+ * Moving focus is a device-wide action: it leaves the focus wherever the walk
240
+ * finished.
241
+ *
242
+ * Read an element's attributes **inside** the loop. `element` is only valid
243
+ * while it holds focus — {@link getElementAttributeValue} returns real values
244
+ * for the element being yielded and `null` for one the walk has moved past.
245
+ *
246
+ * @example
247
+ * ```ts
248
+ * for await (const focused of audit.walkElements()) {
249
+ * const basic = focused.sections.find((section) => section.title === 'Basic');
250
+ * const label = basic?.attributes.find((attribute) => attribute.name === 'Label');
251
+ * // Read now: after the next iteration this element is no longer focused.
252
+ * const value = label && focused.element
253
+ * ? await audit.getElementAttributeValue(focused.element, label)
254
+ * : undefined;
255
+ * }
256
+ * ```
257
+ *
258
+ * @param options Timeout per step, and whether to draw the on-device highlight.
259
+ */
260
+ walkElements(options?: InspectOptions): AsyncGenerator<AxInspectedElement, void, unknown>;
165
261
  /**
166
262
  * Reads one attribute's value for an element.
167
263
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,36 @@ const SETTING_VALIDATORS = new Map([
42
42
  const MONITORED_EVENT_FOCUS = 2;
43
43
  /** Value that disarms monitoring. */
44
44
  const MONITORED_EVENT_OFF = 0;
45
+ /**
46
+ * Where {@link AccessibilityAuditService.moveFocus} sends the accessibility
47
+ * focus. These are the daemon's own `direction` values, verified live.
48
+ */
49
+ export var AxFocusDirection;
50
+ (function (AxFocusDirection) {
51
+ AxFocusDirection[AxFocusDirection["Previous"] = 3] = "Previous";
52
+ AxFocusDirection[AxFocusDirection["Next"] = 4] = "Next";
53
+ AxFocusDirection[AxFocusDirection["First"] = 5] = "First";
54
+ AxFocusDirection[AxFocusDirection["Last"] = 6] = "Last";
55
+ })(AxFocusDirection || (AxFocusDirection = {}));
56
+ /** Default wait for the focus event a move produces. */
57
+ const DEFAULT_FOCUS_TIMEOUT_MS = 15000;
58
+ /**
59
+ * How many further elements must keep matching before a repeated step is taken
60
+ * as proof the walk has come round again.
61
+ */
62
+ const WALK_PERIOD_CONFIRM_STEPS = 6;
63
+ /** Safety valve for {@link AccessibilityAuditService.walkElements}. */
64
+ const MAX_WALK_ELEMENTS = 1000;
65
+ /**
66
+ * How long to wait for the move onto the first element that opens a walk.
67
+ *
68
+ * When focus already sits there the daemon stays silent rather than answering,
69
+ * so this wait is what the walk pays to find that out. A move that is going to
70
+ * be answered is answered in tens of milliseconds, so this stays well clear of
71
+ * the caller's own budget, which would otherwise be spent in full before the
72
+ * walk could start.
73
+ */
74
+ const FOCUS_FIRST_PROBE_TIMEOUT_MS = 2000;
45
75
  /**
46
76
  * CoreDevice accessibility audit service
47
77
  * (`com.apple.accessibility.axAuditDaemon.remoteserver`) — the backend behind
@@ -67,6 +97,7 @@ export class AccessibilityAuditService {
67
97
  static RSD_SERVICE_NAME = AxAuditDtxTransport.RSD_SERVICE_NAME;
68
98
  /** Live {@link observeFocusedElement} subscriptions; monitoring stays armed while > 0. */
69
99
  observerCount = 0;
100
+ focusMoveInFlight = false;
70
101
  /** Guards {@link runAudit} against overlapping calls on one instance. */
71
102
  auditInFlight = false;
72
103
  /**
@@ -343,6 +374,234 @@ export class AccessibilityAuditService {
343
374
  }
344
375
  };
345
376
  }
377
+ /**
378
+ * Moves the device's accessibility focus and resolves with the element it
379
+ * lands on — the same panel {@link getFocusedElement} returns, plus a handle
380
+ * in `element`.
381
+ *
382
+ * The daemon only reports focus that actually *changed*, so a move with
383
+ * nowhere to go — `First` when focus is already on the first element —
384
+ * emits nothing and rejects on timeout. Focus does wrap: `Next` from the last
385
+ * element returns to the first.
386
+ *
387
+ * Only one focus move may be in flight per instance — a second concurrent call
388
+ * rejects, since both would be resolved by the same push.
389
+ *
390
+ * On timeout the move has already been sent, and nothing ties the daemon's
391
+ * push back to the move that caused it. A push landing after the wait gave up
392
+ * is delivered to the next caller, which then sees a stale element — so treat
393
+ * a timeout as "this connection is briefly out of step" and let it settle.
394
+ * Draining blindly does not work: a move that changes nothing is answered with
395
+ * silence, so the event discarded would as often be a real one.
396
+ *
397
+ * @param direction Where to move; see {@link AxFocusDirection}.
398
+ * @param options Timeout, and whether to draw the on-device highlight.
399
+ */
400
+ async moveFocus(direction, options = {}) {
401
+ const { timeoutMs = DEFAULT_FOCUS_TIMEOUT_MS, showVisuals = false } = options;
402
+ this.beginFocusWork(showVisuals);
403
+ try {
404
+ return await this.requestFocusMove(direction, timeoutMs);
405
+ }
406
+ finally {
407
+ this.endFocusWork(showVisuals);
408
+ }
409
+ }
410
+ /**
411
+ * Sends one move and waits for the focus event it produces.
412
+ *
413
+ * Assumes monitoring is already armed, so a walk can arm once instead of once
414
+ * per step.
415
+ */
416
+ async requestFocusMove(direction, timeoutMs) {
417
+ // Registered before the move is sent so the push cannot be missed, and
418
+ // awaited unconditionally: an abandoned waiter rejects with nothing
419
+ // listening once the connection closes, which is an unhandled rejection
420
+ // rather than an error the caller can catch.
421
+ const pushed = this.transport.waitForInbound('hostInspectorCurrentElementChanged:', timeoutMs);
422
+ const aux = new MessageAux();
423
+ // Every value is envelope-wrapped: a bare `{direction: n}` is accepted on
424
+ // the wire but moves nothing.
425
+ aux.appendObj({
426
+ ObjectType: 'passthrough',
427
+ Value: {
428
+ allowNonAX: { ObjectType: 'passthrough', Value: 0 },
429
+ direction: { ObjectType: 'passthrough', Value: direction },
430
+ includeContainers: { ObjectType: 'passthrough', Value: 1 },
431
+ },
432
+ });
433
+ this.transport.invokeOneway('deviceInspectorMoveWithOptions:', aux);
434
+ const [payload] = await pushed;
435
+ return toInspectedElement(deserializeAxObject(payload));
436
+ }
437
+ /** Arms monitoring for focus work and rejects a second concurrent caller. */
438
+ beginFocusWork(showVisuals) {
439
+ if (this.focusMoveInFlight) {
440
+ throw new Error('A focus move is already running on this service instance; await it or use a second instance');
441
+ }
442
+ this.focusMoveInFlight = true;
443
+ this.setMonitoredEventType(MONITORED_EVENT_FOCUS);
444
+ if (showVisuals) {
445
+ this.setShowVisuals(true);
446
+ }
447
+ }
448
+ /** Undoes {@link beginFocusWork}, leaving monitoring armed for any observer. */
449
+ endFocusWork(showVisuals) {
450
+ this.focusMoveInFlight = false;
451
+ if (showVisuals) {
452
+ this.setShowVisuals(false);
453
+ }
454
+ if (this.observerCount === 0) {
455
+ this.setMonitoredEventType(MONITORED_EVENT_OFF);
456
+ }
457
+ }
458
+ /**
459
+ * Walks the focusable elements of whatever is on screen, in focus order.
460
+ *
461
+ * Moves focus forward, yielding each element, and stops once the sequence
462
+ * starts repeating — the daemon cycles rather than reporting an end.
463
+ *
464
+ * What counts as a repeat is the step *between* two elements, not an element,
465
+ * because nothing the daemon sends identifies one. {@link
466
+ * AxElement.platformElement} is a fresh handle per focus event, and
467
+ * `accessibilityIdentifier` is absent on most elements, so a screen of
468
+ * lookalikes — a photo grid announcing "Photo, Image" over and over — offers
469
+ * nothing to tell its elements apart. Runs of identical announcements are
470
+ * therefore collapsed for repeat detection and still yielded individually,
471
+ * and the walk stops only when a *pair* of announcements recurs.
472
+ *
473
+ * A repeated step is treated as a hypothesis rather than proof: the walk keeps
474
+ * going and only stops once the announcements have kept matching one period
475
+ * back for several more elements. A screen that happens to take the same step
476
+ * twice is therefore walked in full, where believing the first repeat would
477
+ * have cut it short.
478
+ *
479
+ * The consequence worth knowing: a screen whose announcements repeat over a
480
+ * long enough stretch to satisfy that check still ends early, and one where
481
+ * every element announces alike runs to the safety limit.
482
+ *
483
+ * A screen with nothing focusable yields nothing. Note the daemon reports what
484
+ * is actually drawn, so an app that has not rendered looks empty.
485
+ *
486
+ * Moving focus is a device-wide action: it leaves the focus wherever the walk
487
+ * finished.
488
+ *
489
+ * Read an element's attributes **inside** the loop. `element` is only valid
490
+ * while it holds focus — {@link getElementAttributeValue} returns real values
491
+ * for the element being yielded and `null` for one the walk has moved past.
492
+ *
493
+ * @example
494
+ * ```ts
495
+ * for await (const focused of audit.walkElements()) {
496
+ * const basic = focused.sections.find((section) => section.title === 'Basic');
497
+ * const label = basic?.attributes.find((attribute) => attribute.name === 'Label');
498
+ * // Read now: after the next iteration this element is no longer focused.
499
+ * const value = label && focused.element
500
+ * ? await audit.getElementAttributeValue(focused.element, label)
501
+ * : undefined;
502
+ * }
503
+ * ```
504
+ *
505
+ * @param options Timeout per step, and whether to draw the on-device highlight.
506
+ */
507
+ async *walkElements(options = {}) {
508
+ const { timeoutMs = DEFAULT_FOCUS_TIMEOUT_MS, showVisuals = false } = options;
509
+ /** Every announcement seen so far, so a candidate period can be checked against it. */
510
+ const history = [];
511
+ /** Where each step between two announcements was first seen. */
512
+ const firstSeen = new Map();
513
+ /** Elements not yet known to be new; dropped if the walk turns out to be repeating. */
514
+ let held = [];
515
+ let candidate;
516
+ this.beginFocusWork(showVisuals);
517
+ try {
518
+ for (let step = 0; step < MAX_WALK_ELEMENTS; step += 1) {
519
+ let element;
520
+ try {
521
+ element =
522
+ step === 0
523
+ ? await this.requestFocusMove(AxFocusDirection.First, Math.min(timeoutMs, FOCUS_FIRST_PROBE_TIMEOUT_MS))
524
+ : await this.requestFocusMove(AxFocusDirection.Next, timeoutMs);
525
+ }
526
+ catch {
527
+ if (step > 0) {
528
+ // Focus stopped moving. That is how a screen with a single focusable
529
+ // element ends, so the walk finishes with what it has rather than
530
+ // discarding it and rejecting.
531
+ log.debug('Focus stopped moving; ending the walk');
532
+ break;
533
+ }
534
+ // The opening move changed nothing, so focus already sits where the
535
+ // walk would have put it. `deviceInspectorFocusOnElement:` cannot be
536
+ // used to pick it up — it answers with a panel carrying no element
537
+ // handle — so the walk simply advances from here. Focus cycles, so
538
+ // every element is still reached, just starting one along.
539
+ log.debug('Opening move changed nothing; walking on from where focus is');
540
+ continue;
541
+ }
542
+ const announcement = element.element?.platformElement
543
+ ? (element.caption ?? element.spokenDescription)
544
+ : undefined;
545
+ if (announcement === undefined) {
546
+ // Nothing focusable, or nothing said about it: an empty or undrawn screen.
547
+ log.debug('Focus returned nothing to identify; ending the walk');
548
+ break;
549
+ }
550
+ const index = history.length;
551
+ history.push(announcement);
552
+ if (index > 0 && announcement !== history[index - 1]) {
553
+ const transition = `${history[index - 1]}\u0000${announcement}`;
554
+ // Kept at its earliest index: the distance back to the *first* time a
555
+ // step was taken is what gives the true period.
556
+ const seenAt = firstSeen.get(transition);
557
+ if (seenAt === undefined) {
558
+ firstSeen.set(transition, index);
559
+ }
560
+ else if (!candidate) {
561
+ // A repeated step only *suggests* the walk has come round again.
562
+ // Confirm it before believing it, by checking the announcements keep
563
+ // matching one period back.
564
+ candidate = { period: index - seenAt, confirmed: 0 };
565
+ }
566
+ }
567
+ if (candidate) {
568
+ const matches = history[index] === history[index - candidate.period];
569
+ if (matches) {
570
+ candidate.confirmed += 1;
571
+ held.push(element);
572
+ if (candidate.confirmed >= WALK_PERIOD_CONFIRM_STEPS) {
573
+ // The sequence really is repeating, so everything held back is a
574
+ // revisit and goes with it.
575
+ log.debug(`Walk came full circle after ${candidate.period} element(s)`);
576
+ return;
577
+ }
578
+ continue;
579
+ }
580
+ // The repeat was a coincidence — a screen may well take the same step
581
+ // twice without having come round. Nothing held was a revisit.
582
+ log.debug('A repeated step did not hold up; continuing the walk');
583
+ candidate = undefined;
584
+ yield* held;
585
+ held = [];
586
+ }
587
+ // Held back only to see whether it was the wrap; it was not.
588
+ yield* held;
589
+ held = [];
590
+ if (index > 0 && announcement === history[0]) {
591
+ // Possibly the wrap. Decided on the next step, so that the element the
592
+ // walk opened on is not yielded twice.
593
+ held.push(element);
594
+ }
595
+ else {
596
+ yield element;
597
+ }
598
+ }
599
+ yield* held;
600
+ }
601
+ finally {
602
+ this.endFocusWork(showVisuals);
603
+ }
604
+ }
346
605
  /**
347
606
  * Reads one attribute's value for an element.
348
607
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "5.17.2",
3
+ "version": "5.18.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "bugs": {
package/src/index.ts CHANGED
@@ -79,6 +79,7 @@ export type {
79
79
  AxInspectorSection,
80
80
  } from './services/ios/accessibility-audit/ax-element.js';
81
81
  export {serializeAxSetting} from './services/ios/accessibility-audit/index.js';
82
+ export {AxFocusDirection} from './services/ios/accessibility-audit/index.js';
82
83
  export type {InspectOptions, RunAuditOptions, AxAuditIssue} from './services/ios/accessibility-audit/index.js';
83
84
  export {CoreDeviceInfoService} from './services/ios/device-info/index.js';
84
85
  export type {
@@ -52,6 +52,13 @@ export interface AxInspectorSection {
52
52
 
53
53
  /** The inspector panel the device pushes when the focused element changes. */
54
54
  export interface AxInspectedElement {
55
+ /**
56
+ * A handle to the focused element, when the daemon sends one.
57
+ *
58
+ * Present on focus pushes, which lets a walk both detect revisits and read
59
+ * attributes for each element it reaches.
60
+ */
61
+ element?: AxElement;
55
62
  /** What VoiceOver would announce, when the daemon provides it. */
56
63
  spokenDescription?: string;
57
64
  /** The caption shown above the panel, when present. */
@@ -175,6 +182,7 @@ export function toInspectedElement(value: unknown): AxInspectedElement {
175
182
  });
176
183
  }
177
184
  return {
185
+ element: toAxElement(fields.ElementValue_v1),
178
186
  spokenDescription:
179
187
  typeof fields.SpokenDescriptionValue_v1 === 'string' ? fields.SpokenDescriptionValue_v1 : undefined,
180
188
  caption: typeof fields.CaptionTextValue_v1 === 'string' ? fields.CaptionTextValue_v1 : undefined,
@@ -58,6 +58,40 @@ const MONITORED_EVENT_FOCUS = 2;
58
58
  /** Value that disarms monitoring. */
59
59
  const MONITORED_EVENT_OFF = 0;
60
60
 
61
+ /**
62
+ * Where {@link AccessibilityAuditService.moveFocus} sends the accessibility
63
+ * focus. These are the daemon's own `direction` values, verified live.
64
+ */
65
+ export enum AxFocusDirection {
66
+ Previous = 3,
67
+ Next = 4,
68
+ First = 5,
69
+ Last = 6,
70
+ }
71
+
72
+ /** Default wait for the focus event a move produces. */
73
+ const DEFAULT_FOCUS_TIMEOUT_MS = 15000;
74
+
75
+ /**
76
+ * How many further elements must keep matching before a repeated step is taken
77
+ * as proof the walk has come round again.
78
+ */
79
+ const WALK_PERIOD_CONFIRM_STEPS = 6;
80
+
81
+ /** Safety valve for {@link AccessibilityAuditService.walkElements}. */
82
+ const MAX_WALK_ELEMENTS = 1000;
83
+
84
+ /**
85
+ * How long to wait for the move onto the first element that opens a walk.
86
+ *
87
+ * When focus already sits there the daemon stays silent rather than answering,
88
+ * so this wait is what the walk pays to find that out. A move that is going to
89
+ * be answered is answered in tens of milliseconds, so this stays well clear of
90
+ * the caller's own budget, which would otherwise be spent in full before the
91
+ * walk could start.
92
+ */
93
+ const FOCUS_FIRST_PROBE_TIMEOUT_MS = 2000;
94
+
61
95
  /**
62
96
  * One accessibility setting reported by
63
97
  * {@link AccessibilityAuditService.getAccessibilitySettings}.
@@ -105,6 +139,7 @@ export class AccessibilityAuditService {
105
139
 
106
140
  /** Live {@link observeFocusedElement} subscriptions; monitoring stays armed while > 0. */
107
141
  private observerCount = 0;
142
+ private focusMoveInFlight = false;
108
143
 
109
144
  /** Guards {@link runAudit} against overlapping calls on one instance. */
110
145
  private auditInFlight = false;
@@ -410,6 +445,241 @@ export class AccessibilityAuditService {
410
445
  };
411
446
  }
412
447
 
448
+ /**
449
+ * Moves the device's accessibility focus and resolves with the element it
450
+ * lands on — the same panel {@link getFocusedElement} returns, plus a handle
451
+ * in `element`.
452
+ *
453
+ * The daemon only reports focus that actually *changed*, so a move with
454
+ * nowhere to go — `First` when focus is already on the first element —
455
+ * emits nothing and rejects on timeout. Focus does wrap: `Next` from the last
456
+ * element returns to the first.
457
+ *
458
+ * Only one focus move may be in flight per instance — a second concurrent call
459
+ * rejects, since both would be resolved by the same push.
460
+ *
461
+ * On timeout the move has already been sent, and nothing ties the daemon's
462
+ * push back to the move that caused it. A push landing after the wait gave up
463
+ * is delivered to the next caller, which then sees a stale element — so treat
464
+ * a timeout as "this connection is briefly out of step" and let it settle.
465
+ * Draining blindly does not work: a move that changes nothing is answered with
466
+ * silence, so the event discarded would as often be a real one.
467
+ *
468
+ * @param direction Where to move; see {@link AxFocusDirection}.
469
+ * @param options Timeout, and whether to draw the on-device highlight.
470
+ */
471
+ async moveFocus(direction: AxFocusDirection, options: InspectOptions = {}): Promise<AxInspectedElement> {
472
+ const {timeoutMs = DEFAULT_FOCUS_TIMEOUT_MS, showVisuals = false} = options;
473
+ this.beginFocusWork(showVisuals);
474
+ try {
475
+ return await this.requestFocusMove(direction, timeoutMs);
476
+ } finally {
477
+ this.endFocusWork(showVisuals);
478
+ }
479
+ }
480
+
481
+ /**
482
+ * Sends one move and waits for the focus event it produces.
483
+ *
484
+ * Assumes monitoring is already armed, so a walk can arm once instead of once
485
+ * per step.
486
+ */
487
+ private async requestFocusMove(direction: AxFocusDirection, timeoutMs: number): Promise<AxInspectedElement> {
488
+ // Registered before the move is sent so the push cannot be missed, and
489
+ // awaited unconditionally: an abandoned waiter rejects with nothing
490
+ // listening once the connection closes, which is an unhandled rejection
491
+ // rather than an error the caller can catch.
492
+ const pushed = this.transport.waitForInbound('hostInspectorCurrentElementChanged:', timeoutMs);
493
+ const aux = new MessageAux();
494
+ // Every value is envelope-wrapped: a bare `{direction: n}` is accepted on
495
+ // the wire but moves nothing.
496
+ aux.appendObj({
497
+ ObjectType: 'passthrough',
498
+ Value: {
499
+ allowNonAX: {ObjectType: 'passthrough', Value: 0},
500
+ direction: {ObjectType: 'passthrough', Value: direction},
501
+ includeContainers: {ObjectType: 'passthrough', Value: 1},
502
+ },
503
+ });
504
+ this.transport.invokeOneway('deviceInspectorMoveWithOptions:', aux);
505
+ const [payload] = await pushed;
506
+ return toInspectedElement(deserializeAxObject(payload));
507
+ }
508
+
509
+ /** Arms monitoring for focus work and rejects a second concurrent caller. */
510
+ private beginFocusWork(showVisuals: boolean): void {
511
+ if (this.focusMoveInFlight) {
512
+ throw new Error('A focus move is already running on this service instance; await it or use a second instance');
513
+ }
514
+ this.focusMoveInFlight = true;
515
+ this.setMonitoredEventType(MONITORED_EVENT_FOCUS);
516
+ if (showVisuals) {
517
+ this.setShowVisuals(true);
518
+ }
519
+ }
520
+
521
+ /** Undoes {@link beginFocusWork}, leaving monitoring armed for any observer. */
522
+ private endFocusWork(showVisuals: boolean): void {
523
+ this.focusMoveInFlight = false;
524
+ if (showVisuals) {
525
+ this.setShowVisuals(false);
526
+ }
527
+ if (this.observerCount === 0) {
528
+ this.setMonitoredEventType(MONITORED_EVENT_OFF);
529
+ }
530
+ }
531
+
532
+ /**
533
+ * Walks the focusable elements of whatever is on screen, in focus order.
534
+ *
535
+ * Moves focus forward, yielding each element, and stops once the sequence
536
+ * starts repeating — the daemon cycles rather than reporting an end.
537
+ *
538
+ * What counts as a repeat is the step *between* two elements, not an element,
539
+ * because nothing the daemon sends identifies one. {@link
540
+ * AxElement.platformElement} is a fresh handle per focus event, and
541
+ * `accessibilityIdentifier` is absent on most elements, so a screen of
542
+ * lookalikes — a photo grid announcing "Photo, Image" over and over — offers
543
+ * nothing to tell its elements apart. Runs of identical announcements are
544
+ * therefore collapsed for repeat detection and still yielded individually,
545
+ * and the walk stops only when a *pair* of announcements recurs.
546
+ *
547
+ * A repeated step is treated as a hypothesis rather than proof: the walk keeps
548
+ * going and only stops once the announcements have kept matching one period
549
+ * back for several more elements. A screen that happens to take the same step
550
+ * twice is therefore walked in full, where believing the first repeat would
551
+ * have cut it short.
552
+ *
553
+ * The consequence worth knowing: a screen whose announcements repeat over a
554
+ * long enough stretch to satisfy that check still ends early, and one where
555
+ * every element announces alike runs to the safety limit.
556
+ *
557
+ * A screen with nothing focusable yields nothing. Note the daemon reports what
558
+ * is actually drawn, so an app that has not rendered looks empty.
559
+ *
560
+ * Moving focus is a device-wide action: it leaves the focus wherever the walk
561
+ * finished.
562
+ *
563
+ * Read an element's attributes **inside** the loop. `element` is only valid
564
+ * while it holds focus — {@link getElementAttributeValue} returns real values
565
+ * for the element being yielded and `null` for one the walk has moved past.
566
+ *
567
+ * @example
568
+ * ```ts
569
+ * for await (const focused of audit.walkElements()) {
570
+ * const basic = focused.sections.find((section) => section.title === 'Basic');
571
+ * const label = basic?.attributes.find((attribute) => attribute.name === 'Label');
572
+ * // Read now: after the next iteration this element is no longer focused.
573
+ * const value = label && focused.element
574
+ * ? await audit.getElementAttributeValue(focused.element, label)
575
+ * : undefined;
576
+ * }
577
+ * ```
578
+ *
579
+ * @param options Timeout per step, and whether to draw the on-device highlight.
580
+ */
581
+ async *walkElements(options: InspectOptions = {}): AsyncGenerator<AxInspectedElement, void, unknown> {
582
+ const {timeoutMs = DEFAULT_FOCUS_TIMEOUT_MS, showVisuals = false} = options;
583
+ /** Every announcement seen so far, so a candidate period can be checked against it. */
584
+ const history: string[] = [];
585
+ /** Where each step between two announcements was first seen. */
586
+ const firstSeen = new Map<string, number>();
587
+ /** Elements not yet known to be new; dropped if the walk turns out to be repeating. */
588
+ let held: AxInspectedElement[] = [];
589
+ let candidate: {period: number; confirmed: number} | undefined;
590
+
591
+ this.beginFocusWork(showVisuals);
592
+ try {
593
+ for (let step = 0; step < MAX_WALK_ELEMENTS; step += 1) {
594
+ let element: AxInspectedElement;
595
+ try {
596
+ element =
597
+ step === 0
598
+ ? await this.requestFocusMove(AxFocusDirection.First, Math.min(timeoutMs, FOCUS_FIRST_PROBE_TIMEOUT_MS))
599
+ : await this.requestFocusMove(AxFocusDirection.Next, timeoutMs);
600
+ } catch {
601
+ if (step > 0) {
602
+ // Focus stopped moving. That is how a screen with a single focusable
603
+ // element ends, so the walk finishes with what it has rather than
604
+ // discarding it and rejecting.
605
+ log.debug('Focus stopped moving; ending the walk');
606
+ break;
607
+ }
608
+ // The opening move changed nothing, so focus already sits where the
609
+ // walk would have put it. `deviceInspectorFocusOnElement:` cannot be
610
+ // used to pick it up — it answers with a panel carrying no element
611
+ // handle — so the walk simply advances from here. Focus cycles, so
612
+ // every element is still reached, just starting one along.
613
+ log.debug('Opening move changed nothing; walking on from where focus is');
614
+ continue;
615
+ }
616
+
617
+ const announcement = element.element?.platformElement
618
+ ? (element.caption ?? element.spokenDescription)
619
+ : undefined;
620
+ if (announcement === undefined) {
621
+ // Nothing focusable, or nothing said about it: an empty or undrawn screen.
622
+ log.debug('Focus returned nothing to identify; ending the walk');
623
+ break;
624
+ }
625
+
626
+ const index = history.length;
627
+ history.push(announcement);
628
+ if (index > 0 && announcement !== history[index - 1]) {
629
+ const transition = `${history[index - 1]}\u0000${announcement}`;
630
+ // Kept at its earliest index: the distance back to the *first* time a
631
+ // step was taken is what gives the true period.
632
+ const seenAt = firstSeen.get(transition);
633
+ if (seenAt === undefined) {
634
+ firstSeen.set(transition, index);
635
+ } else if (!candidate) {
636
+ // A repeated step only *suggests* the walk has come round again.
637
+ // Confirm it before believing it, by checking the announcements keep
638
+ // matching one period back.
639
+ candidate = {period: index - seenAt, confirmed: 0};
640
+ }
641
+ }
642
+
643
+ if (candidate) {
644
+ const matches = history[index] === history[index - candidate.period];
645
+ if (matches) {
646
+ candidate.confirmed += 1;
647
+ held.push(element);
648
+ if (candidate.confirmed >= WALK_PERIOD_CONFIRM_STEPS) {
649
+ // The sequence really is repeating, so everything held back is a
650
+ // revisit and goes with it.
651
+ log.debug(`Walk came full circle after ${candidate.period} element(s)`);
652
+ return;
653
+ }
654
+ continue;
655
+ }
656
+ // The repeat was a coincidence — a screen may well take the same step
657
+ // twice without having come round. Nothing held was a revisit.
658
+ log.debug('A repeated step did not hold up; continuing the walk');
659
+ candidate = undefined;
660
+ yield* held;
661
+ held = [];
662
+ }
663
+
664
+ // Held back only to see whether it was the wrap; it was not.
665
+ yield* held;
666
+ held = [];
667
+
668
+ if (index > 0 && announcement === history[0]) {
669
+ // Possibly the wrap. Decided on the next step, so that the element the
670
+ // walk opened on is not yielded twice.
671
+ held.push(element);
672
+ } else {
673
+ yield element;
674
+ }
675
+ }
676
+
677
+ yield* held;
678
+ } finally {
679
+ this.endFocusWork(showVisuals);
680
+ }
681
+ }
682
+
413
683
  /**
414
684
  * Reads one attribute's value for an element.
415
685
  *