@flighthq/accessibility 0.3.1-next.975.01aea94 → 0.4.0-edge.1908.751021c

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,9 +1,14 @@
1
1
  import type { AccessibilityBackend, AccessibilityLiveness, AccessibilityNode } from '@flighthq/types/contract';
2
+ import type { BackendExplanation } from '@flighthq/types/contract';
2
3
  export declare function announceAccessibility(message: string, liveness?: AccessibilityLiveness): void;
3
4
  export declare function clearAccessibilityTree(): void;
4
5
  export declare function createWebAccessibilityBackend(container?: HTMLElement): AccessibilityBackend;
6
+ export declare function explainAccessibilityBackend(): BackendExplanation;
5
7
  export declare function getAccessibilityBackend(): AccessibilityBackend;
8
+ export declare function installAccessibilityHostBackend(backend: AccessibilityBackend): void;
9
+ export declare function observeAccessibilityHostResult(operation: string, succeeded: boolean): void;
6
10
  export declare function removeAccessibilityNode(id: string): void;
11
+ export declare function resetAccessibilityBackendForTest(): void;
7
12
  export declare function setAccessibilityBackend(backend: AccessibilityBackend | null): void;
8
13
  export declare function setAccessibilityFocus(id: string): boolean;
9
14
  export declare function setAccessibilityNode(node: Readonly<AccessibilityNode>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,qBAAgC,GAAG,IAAI,CAEvG;AAID,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAQD,wBAAgB,6BAA6B,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,oBAAoB,CAgE3F;AAID,wBAAgB,uBAAuB,IAAI,oBAAoB,CAG9D;AAGD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExD;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAElF;AAID,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEzD;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAE5E"}
1
+ {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAKnE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,qBAAgC,GAAG,IAAI,CAEvG;AAID,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAQD,wBAAgB,6BAA6B,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,oBAAoB,CAgE3F;AAED,wBAAgB,2BAA2B,IAAI,kBAAkB,CAahE;AAGD,wBAAgB,uBAAuB,IAAI,oBAAoB,CAE9D;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAMnF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAK1F;AAGD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CAKvD;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAElF;AAID,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEzD;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAE5E"}
@@ -87,20 +87,51 @@ export function createWebAccessibilityBackend(container) {
87
87
  },
88
88
  };
89
89
  }
90
- // The active accessibility backend, lazily defaulting to the web ARIA overlay. There is always a
91
- // backend.
90
+ export function explainAccessibilityBackend() {
91
+ if (_custom !== null) {
92
+ return { conflict: _hostConflict, layer: 'custom', operation: null, viability: 'unobserved' };
93
+ }
94
+ if (_host !== null) {
95
+ return {
96
+ conflict: _hostConflict,
97
+ layer: 'host',
98
+ operation: _hostObservation !== null ? _hostObservation.operation : null,
99
+ viability: _hostObservation !== null ? _hostObservation.viability : 'unobserved',
100
+ };
101
+ }
102
+ return { conflict: false, layer: 'host-not-enabled', operation: null, viability: 'unobserved' };
103
+ }
104
+ // The active accessibility backend. Precedence: custom > host > sentinel.
92
105
  export function getAccessibilityBackend() {
93
- if (_backend === null)
94
- _backend = createWebAccessibilityBackend();
95
- return _backend;
106
+ return _custom ?? _host ?? _sentinel;
107
+ }
108
+ export function installAccessibilityHostBackend(backend) {
109
+ if (_host !== null) {
110
+ if (_host !== backend)
111
+ _hostConflict = true;
112
+ return;
113
+ }
114
+ _host = backend;
115
+ }
116
+ export function observeAccessibilityHostResult(operation, succeeded) {
117
+ _hostObservation = {
118
+ operation,
119
+ viability: succeeded ? 'available' : 'runtime-api-unavailable',
120
+ };
96
121
  }
97
122
  // Removes a node and its entire descendant subtree from the mirrored tree.
98
123
  export function removeAccessibilityNode(id) {
99
124
  getAccessibilityBackend().removeNode(id);
100
125
  }
101
- // Installs a native host accessibility backend; pass null to fall back to a fresh lazy web default.
126
+ export function resetAccessibilityBackendForTest() {
127
+ _custom = null;
128
+ _host = null;
129
+ _hostConflict = false;
130
+ _hostObservation = null;
131
+ }
132
+ // Installs a custom accessibility backend; pass null to revert to precedence fallback.
102
133
  export function setAccessibilityBackend(backend) {
103
- _backend = backend;
134
+ _custom = backend;
104
135
  }
105
136
  // Moves platform focus to the published node. Returns false when the node is missing or the platform
106
137
  // could not focus it — a sentinel, never a throw.
@@ -112,7 +143,19 @@ export function setAccessibilityFocus(id) {
112
143
  export function setAccessibilityNode(node) {
113
144
  getAccessibilityBackend().setNode(node);
114
145
  }
115
- let _backend = null;
146
+ let _custom = null;
147
+ let _host = null;
148
+ let _hostConflict = false;
149
+ let _hostObservation = null;
150
+ const _sentinel = {
151
+ setNode() { },
152
+ removeNode() { },
153
+ clear() { },
154
+ setFocus() {
155
+ return false;
156
+ },
157
+ announce() { },
158
+ };
116
159
  const _TEXT_NODE = 3;
117
160
  // Reflects a node's semantics onto its overlay element: role, the label/description/value text and
118
161
  // their ARIA attributes, focusability, and the mapped state attributes. Attributes are cleared when
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"AAOA,oGAAoG;AACpG,oGAAoG;AACpG,SAAS;AACT,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,WAAkC,QAAQ;IAC/F,uBAAuB,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,oGAAoG;AACpG,6CAA6C;AAC7C,MAAM,UAAU,sBAAsB;IACpC,uBAAuB,EAAE,CAAC,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,wFAAwF;AACxF,oGAAoG;AACpG,oGAAoG;AACpG,oGAAoG;AACpG,qGAAqG;AACrG,kFAAkF;AAClF,MAAM,UAAU,6BAA6B,CAAC,SAAuB;IACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;IAClE,IAAI,IAAI,GAAuB,SAAS,IAAI,IAAI,CAAC;IACjD,IAAI,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC;IAE3C,oGAAoG;IACpG,wEAAwE;IACxE,SAAS,OAAO;QACd,IAAI,YAAY;YAAE,OAAO,IAAI,CAAC;QAC9B,YAAY,GAAG,IAAI,CAAC;QACpB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9D,IAAI,GAAG,IAAI,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,CAAC,IAAI;YACV,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO;YACjC,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO,CAAC,YAAY,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9D,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,oCAAoC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/E,CAAC;QACD,UAAU,CAAC,EAAE;YACX,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,yFAAyF;YACzF,wEAAwE;YACxE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI;gBAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK;YACH,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,WAAW,KAAK,IAAI;gBAAE,WAAW,CAAC,eAAe,EAAE,CAAC;QAC1D,CAAC;QACD,QAAQ,CAAC,EAAE;YACT,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACxC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,aAAa,CAAC,aAAa,KAAK,OAAO,CAAC;QAC7D,CAAC;QACD,QAAQ,CAAC,OAAO,EAAE,QAAQ;YACxB,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO;YACjC,MAAM,MAAM,GAAG,2BAA2B,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/E,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,WAAW;AACX,MAAM,UAAU,uBAAuB;IACrC,IAAI,QAAQ,KAAK,IAAI;QAAE,QAAQ,GAAG,6BAA6B,EAAE,CAAC;IAClE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,uBAAuB,CAAC,EAAU;IAChD,uBAAuB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,uBAAuB,CAAC,OAAoC;IAC1E,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED,qGAAqG;AACrG,kDAAkD;AAClD,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,OAAO,uBAAuB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,uFAAuF;AACvF,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAAC,IAAiC;IACpE,uBAAuB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,IAAI,QAAQ,GAAgC,IAAI,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,mGAAmG;AACnG,oGAAoG;AACpG,4FAA4F;AAC5F,SAAS,oCAAoC,CAAC,OAAoB,EAAE,IAAiC;IACnG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,8BAA8B,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,8BAA8B,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,8BAA8B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,iCAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,uFAAuF;IACvF,uFAAuF;IACvF,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,kCAAkC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;AAC3E,CAAC;AAED,mGAAmG;AACnG,mDAAmD;AACnD,SAAS,kCAAkC,CAAC,OAAoB,EAAE,KAAmC;IACnG,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrE,4BAA4B,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,4BAA4B,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,2BAA2B,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAChE,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC;AAED,oGAAoG;AACpG,kFAAkF;AAClF,SAAS,mCAAmC,CAAC,GAAa;IACxD,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,SAAS,CAAC,YAAY,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC5B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IACpB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACnB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;IAC7B,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC5B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kGAAkG;AAClG,iEAAiE;AACjE,SAAS,2BAA2B,CAClC,IAAiB,EACjB,WAAoD,EACpD,QAA+B;IAE/B,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;QAChE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,SAAS,8BAA8B,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAyB;IACxG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,sFAAsF;AACtF,SAAS,4BAA4B,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAA0B;IACvG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,0FAA0F;AAC1F,SAAS,2BAA2B,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAyB;IACrG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,sGAAsG;AACtG,oGAAoG;AACpG,+BAA+B;AAC/B,SAAS,6BAA6B,CACpC,OAAoB,EACpB,QAA4B,EAC5B,QAA0C,EAC1C,IAAiB;IAEjB,IAAI,MAAM,GAAgB,IAAI,CAAC;IAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,GAAG,KAAK,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM;QAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,mGAAmG;AACnG,qEAAqE;AACrE,SAAS,iCAAiC,CAAC,OAAoB,EAAE,KAAyB;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,YAAY,GAAiC,EAAE,CAAC"}
1
+ {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"AAQA,oGAAoG;AACpG,oGAAoG;AACpG,SAAS;AACT,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,WAAkC,QAAQ;IAC/F,uBAAuB,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,oGAAoG;AACpG,6CAA6C;AAC7C,MAAM,UAAU,sBAAsB;IACpC,uBAAuB,EAAE,CAAC,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,wFAAwF;AACxF,oGAAoG;AACpG,oGAAoG;AACpG,oGAAoG;AACpG,qGAAqG;AACrG,kFAAkF;AAClF,MAAM,UAAU,6BAA6B,CAAC,SAAuB;IACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;IAClE,IAAI,IAAI,GAAuB,SAAS,IAAI,IAAI,CAAC;IACjD,IAAI,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC;IAE3C,oGAAoG;IACpG,wEAAwE;IACxE,SAAS,OAAO;QACd,IAAI,YAAY;YAAE,OAAO,IAAI,CAAC;QAC9B,YAAY,GAAG,IAAI,CAAC;QACpB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9D,IAAI,GAAG,IAAI,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,CAAC,IAAI;YACV,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO;YACjC,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO,CAAC,YAAY,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9D,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,oCAAoC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/E,CAAC;QACD,UAAU,CAAC,EAAE;YACX,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,yFAAyF;YACzF,wEAAwE;YACxE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI;gBAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK;YACH,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,WAAW,KAAK,IAAI;gBAAE,WAAW,CAAC,eAAe,EAAE,CAAC;QAC1D,CAAC;QACD,QAAQ,CAAC,EAAE;YACT,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACxC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,aAAa,CAAC,aAAa,KAAK,OAAO,CAAC;QAC7D,CAAC;QACD,QAAQ,CAAC,OAAO,EAAE,QAAQ;YACxB,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO;YACjC,MAAM,MAAM,GAAG,2BAA2B,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/E,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACxE,SAAS,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;SACjF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAClG,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,uBAAuB;IACrC,OAAO,OAAO,IAAI,KAAK,IAAI,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAA6B;IAC3E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,IAAI,KAAK,KAAK,OAAO;YAAE,aAAa,GAAG,IAAI,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,KAAK,GAAG,OAAO,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,SAAiB,EAAE,SAAkB;IAClF,gBAAgB,GAAG;QACjB,SAAS;QACT,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB;KAC/D,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,uBAAuB,CAAC,EAAU;IAChD,uBAAuB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAG,IAAI,CAAC;IACb,aAAa,GAAG,KAAK,CAAC;IACtB,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,uBAAuB,CAAC,OAAoC;IAC1E,OAAO,GAAG,OAAO,CAAC;AACpB,CAAC;AAED,qGAAqG;AACrG,kDAAkD;AAClD,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,OAAO,uBAAuB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,uFAAuF;AACvF,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAAC,IAAiC;IACpE,uBAAuB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,IAAI,OAAO,GAAgC,IAAI,CAAC;AAChD,IAAI,KAAK,GAAgC,IAAI,CAAC;AAC9C,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,IAAI,gBAAgB,GAAqF,IAAI,CAAC;AAE9G,MAAM,SAAS,GAAyB;IACtC,OAAO,KAAI,CAAC;IACZ,UAAU,KAAI,CAAC;IACf,KAAK,KAAI,CAAC;IACV,QAAQ;QACN,OAAO,KAAK,CAAC;IACf,CAAC;IACD,QAAQ,KAAI,CAAC;CACd,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,mGAAmG;AACnG,oGAAoG;AACpG,4FAA4F;AAC5F,SAAS,oCAAoC,CAAC,OAAoB,EAAE,IAAiC;IACnG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,8BAA8B,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,8BAA8B,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,8BAA8B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,iCAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,uFAAuF;IACvF,uFAAuF;IACvF,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,kCAAkC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;AAC3E,CAAC;AAED,mGAAmG;AACnG,mDAAmD;AACnD,SAAS,kCAAkC,CAAC,OAAoB,EAAE,KAAmC;IACnG,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrE,4BAA4B,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,4BAA4B,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,2BAA2B,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAChE,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC;AAED,oGAAoG;AACpG,kFAAkF;AAClF,SAAS,mCAAmC,CAAC,GAAa;IACxD,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,SAAS,CAAC,YAAY,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC5B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IACpB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACnB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;IAC7B,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC5B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kGAAkG;AAClG,iEAAiE;AACjE,SAAS,2BAA2B,CAClC,IAAiB,EACjB,WAAoD,EACpD,QAA+B;IAE/B,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;QAChE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,SAAS,8BAA8B,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAyB;IACxG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,sFAAsF;AACtF,SAAS,4BAA4B,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAA0B;IACvG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,0FAA0F;AAC1F,SAAS,2BAA2B,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAyB;IACrG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,sGAAsG;AACtG,oGAAoG;AACpG,+BAA+B;AAC/B,SAAS,6BAA6B,CACpC,OAAoB,EACpB,QAA4B,EAC5B,QAA0C,EAC1C,IAAiB;IAEjB,IAAI,MAAM,GAAgB,IAAI,CAAC;IAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,GAAG,KAAK,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM;QAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,mGAAmG;AACnG,qEAAqE;AACrE,SAAS,iCAAiC,CAAC,OAAoB,EAAE,KAAyB;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,YAAY,GAAiC,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { announceAccessibility, clearAccessibilityTree, removeAccessibilityNode, setAccessibilityFocus, setAccessibilityNode, } from './contract';
1
+ export { explainAccessibilityBackend, announceAccessibility, clearAccessibilityTree, removeAccessibilityNode, setAccessibilityFocus, setAccessibilityNode, } from './contract';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { announceAccessibility, clearAccessibilityTree, removeAccessibilityNode, setAccessibilityFocus, setAccessibilityNode, } from './contract';
1
+ export { explainAccessibilityBackend, announceAccessibility, clearAccessibilityTree, removeAccessibilityNode, setAccessibilityFocus, setAccessibilityNode, } from './contract';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/accessibility",
3
- "version": "0.3.1-next.975.01aea94",
3
+ "version": "0.4.0-edge.1908.751021c",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,7 +38,7 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/types": "0.3.1-next.975.01aea94"
41
+ "@flighthq/types": "0.4.0-edge.1908.751021c"
42
42
  },
43
43
  "devDependencies": {
44
44
  "typescript": "^5.3.0"
@@ -10,6 +10,10 @@ import {
10
10
  setAccessibilityBackend,
11
11
  setAccessibilityFocus,
12
12
  setAccessibilityNode,
13
+ explainAccessibilityBackend,
14
+ installAccessibilityHostBackend,
15
+ observeAccessibilityHostResult,
16
+ resetAccessibilityBackendForTest,
13
17
  } from './accessibility';
14
18
 
15
19
  afterEach(() => {
@@ -187,6 +191,34 @@ describe('createWebAccessibilityBackend', () => {
187
191
  });
188
192
  });
189
193
 
194
+ describe('explainAccessibilityBackend', () => {
195
+ afterEach(() => resetAccessibilityBackendForTest());
196
+
197
+ it('reports host-not-enabled when no backend is installed', () => {
198
+ resetAccessibilityBackendForTest();
199
+ const explanation = explainAccessibilityBackend();
200
+ expect(explanation.layer).toBe('host-not-enabled');
201
+ expect(explanation.conflict).toBe(false);
202
+ expect(explanation.viability).toBe('unobserved');
203
+ });
204
+
205
+ it('reports custom layer when a custom backend is set', () => {
206
+ setAccessibilityBackend(getAccessibilityBackend());
207
+ expect(explainAccessibilityBackend().layer).toBe('custom');
208
+ });
209
+
210
+ it('reports host layer when a host backend is installed', () => {
211
+ installAccessibilityHostBackend(getAccessibilityBackend());
212
+ expect(explainAccessibilityBackend().layer).toBe('host');
213
+ });
214
+
215
+ it('reports conflict when two different host backends are installed', () => {
216
+ installAccessibilityHostBackend({ ...getAccessibilityBackend() });
217
+ installAccessibilityHostBackend({ ...getAccessibilityBackend() });
218
+ expect(explainAccessibilityBackend().conflict).toBe(true);
219
+ });
220
+ });
221
+
190
222
  describe('getAccessibilityBackend', () => {
191
223
  it('lazily returns a stable web default', () => {
192
224
  const first = getAccessibilityBackend();
@@ -200,48 +232,49 @@ describe('getAccessibilityBackend', () => {
200
232
  });
201
233
  });
202
234
 
203
- describe('removeAccessibilityNode', () => {
204
- it('dispatches the id to the backend', () => {
205
- const mock = createMockAccessibilityBackend();
206
- setAccessibilityBackend(mock.backend);
207
- removeAccessibilityNode('gone');
208
- expect(mock.calls.removeNode).toEqual(['gone']);
209
- });
210
- });
235
+ describe('installAccessibilityHostBackend', () => {
236
+ afterEach(() => resetAccessibilityBackendForTest());
211
237
 
212
- describe('setAccessibilityBackend', () => {
213
- it('installs a backend that later commands dispatch through', () => {
214
- const mock = createMockAccessibilityBackend();
215
- setAccessibilityBackend(mock.backend);
216
- setAccessibilityNode(node('a', 'button', {}));
217
- expect(mock.calls.setNode.length).toBe(1);
238
+ it('installs a host backend that getAccessibilityBackend returns', () => {
239
+ const backend = getAccessibilityBackend();
240
+ installAccessibilityHostBackend(backend);
241
+ expect(getAccessibilityBackend()).toBe(backend);
218
242
  });
219
243
 
220
- it('restores a fresh, distinct web default when passed null', () => {
221
- const original = getAccessibilityBackend();
222
- setAccessibilityBackend(null);
223
- const restored = getAccessibilityBackend();
224
- expect(restored).not.toBe(original);
244
+ it('is first-host-wins: a second different backend sets conflict', () => {
245
+ const first = { ...getAccessibilityBackend() };
246
+ const second = { ...getAccessibilityBackend() };
247
+ installAccessibilityHostBackend(first);
248
+ installAccessibilityHostBackend(second);
249
+ expect(getAccessibilityBackend()).toBe(first);
250
+ expect(explainAccessibilityBackend().conflict).toBe(true);
225
251
  });
226
252
  });
227
253
 
228
- describe('setAccessibilityFocus', () => {
229
- it('dispatches the id and returns the backend result', () => {
230
- const mock = createMockAccessibilityBackend();
231
- setAccessibilityBackend(mock.backend);
232
- expect(setAccessibilityFocus('ok')).toBe(true);
233
- expect(setAccessibilityFocus('nope')).toBe(false);
234
- expect(mock.calls.setFocus).toEqual(['ok', 'nope']);
254
+ describe('observeAccessibilityHostResult', () => {
255
+ afterEach(() => resetAccessibilityBackendForTest());
256
+
257
+ it('records a successful observation', () => {
258
+ installAccessibilityHostBackend(getAccessibilityBackend());
259
+ observeAccessibilityHostResult('setNode', true);
260
+ const explanation = explainAccessibilityBackend();
261
+ expect(explanation.operation).toBe('setNode');
262
+ expect(explanation.viability).toBe('available');
263
+ });
264
+
265
+ it('records a failed observation', () => {
266
+ installAccessibilityHostBackend(getAccessibilityBackend());
267
+ observeAccessibilityHostResult('setNode', false);
268
+ expect(explainAccessibilityBackend().viability).toBe('runtime-api-unavailable');
235
269
  });
236
270
  });
237
271
 
238
- describe('setAccessibilityNode', () => {
239
- it('dispatches the node to the backend', () => {
272
+ describe('removeAccessibilityNode', () => {
273
+ it('dispatches the id to the backend', () => {
240
274
  const mock = createMockAccessibilityBackend();
241
275
  setAccessibilityBackend(mock.backend);
242
- const target = node('a', 'button', { label: 'Go' });
243
- setAccessibilityNode(target);
244
- expect(mock.calls.setNode).toEqual([target]);
276
+ removeAccessibilityNode('gone');
277
+ expect(mock.calls.removeNode).toEqual(['gone']);
245
278
  });
246
279
  });
247
280
 
@@ -283,3 +316,53 @@ function createMockAccessibilityBackend(): { backend: AccessibilityBackend; call
283
316
  };
284
317
  return { backend, calls };
285
318
  }
319
+
320
+ describe('resetAccessibilityBackendForTest', () => {
321
+ it('clears all backend slots', () => {
322
+ setAccessibilityBackend(getAccessibilityBackend());
323
+ installAccessibilityHostBackend(getAccessibilityBackend());
324
+ observeAccessibilityHostResult('setNode', true);
325
+ resetAccessibilityBackendForTest();
326
+ expect(explainAccessibilityBackend().layer).toBe('host-not-enabled');
327
+ expect(explainAccessibilityBackend().conflict).toBe(false);
328
+ expect(explainAccessibilityBackend().viability).toBe('unobserved');
329
+ });
330
+ });
331
+
332
+ describe('setAccessibilityBackend', () => {
333
+ it('installs a backend that later commands dispatch through', () => {
334
+ const mock = createMockAccessibilityBackend();
335
+ setAccessibilityBackend(mock.backend);
336
+ setAccessibilityNode(node('a', 'button', {}));
337
+ expect(mock.calls.setNode.length).toBe(1);
338
+ });
339
+
340
+ it('reverts to the sentinel when passed null', () => {
341
+ const sentinel = getAccessibilityBackend();
342
+ const mock = createMockAccessibilityBackend();
343
+ setAccessibilityBackend(mock.backend);
344
+ expect(getAccessibilityBackend()).toBe(mock.backend);
345
+ setAccessibilityBackend(null);
346
+ expect(getAccessibilityBackend()).toBe(sentinel);
347
+ });
348
+ });
349
+
350
+ describe('setAccessibilityFocus', () => {
351
+ it('dispatches the id and returns the backend result', () => {
352
+ const mock = createMockAccessibilityBackend();
353
+ setAccessibilityBackend(mock.backend);
354
+ expect(setAccessibilityFocus('ok')).toBe(true);
355
+ expect(setAccessibilityFocus('nope')).toBe(false);
356
+ expect(mock.calls.setFocus).toEqual(['ok', 'nope']);
357
+ });
358
+ });
359
+
360
+ describe('setAccessibilityNode', () => {
361
+ it('dispatches the node to the backend', () => {
362
+ const mock = createMockAccessibilityBackend();
363
+ setAccessibilityBackend(mock.backend);
364
+ const target = node('a', 'button', { label: 'Go' });
365
+ setAccessibilityNode(target);
366
+ expect(mock.calls.setNode).toEqual([target]);
367
+ });
368
+ });