axe-core 4.5.2 → 4.6.0-canary.36ed242

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.
Files changed (5) hide show
  1. package/axe.d.ts +76 -24
  2. package/axe.js +4765 -4555
  3. package/axe.min.js +2 -2
  4. package/package.json +2 -2
  5. package/sri-history.json +333 -325
package/axe.d.ts CHANGED
@@ -45,23 +45,66 @@ declare namespace axe {
45
45
  | 'embedded'
46
46
  | 'interactive';
47
47
 
48
+ // Array of length 2 or greater
49
+ type MultiArray<T> = [T, T, ...T[]];
50
+
51
+ // Selectors within a frame
48
52
  type BaseSelector = string;
49
- type CrossTreeSelector = BaseSelector | BaseSelector[];
50
- type CrossFrameSelector = CrossTreeSelector[];
51
53
 
52
- type ContextObject = {
53
- include?: Node | BaseSelector | Array<Node | BaseSelector | BaseSelector[]>;
54
- exclude?: Node | BaseSelector | Array<Node | BaseSelector | BaseSelector[]>;
55
- };
54
+ type ShadowDomSelector = MultiArray<BaseSelector>;
55
+ type CrossTreeSelector = BaseSelector | ShadowDomSelector;
56
+ type LabelledShadowDomSelector = { fromShadowDom: ShadowDomSelector };
56
57
 
57
- type SerialContextObject = {
58
- include?: BaseSelector | Array<BaseSelector | BaseSelector[]>;
59
- exclude?: BaseSelector | Array<BaseSelector | BaseSelector[]>;
60
- };
58
+ // Cross-frame selectors
59
+ type FramesSelector = Array<CrossTreeSelector | LabelledShadowDomSelector>;
60
+ type UnlabelledFrameSelector = CrossTreeSelector[];
61
+ type LabelledFramesSelector = { fromFrames: MultiArray<FramesSelector[0]> };
62
+ /**
63
+ * @deprecated Use UnlabelledFrameSelector instead
64
+ */
65
+ type CrossFrameSelector = UnlabelledFrameSelector;
66
+
67
+ // Context options
68
+ type Selector =
69
+ | Node
70
+ | BaseSelector
71
+ | LabelledShadowDomSelector
72
+ | LabelledFramesSelector;
73
+ type SelectorList = Array<Selector | FramesSelector> | NodeList;
74
+ type ContextObject =
75
+ | {
76
+ include: Selector | SelectorList;
77
+ exclude?: Selector | SelectorList;
78
+ }
79
+ | {
80
+ exclude: Selector | SelectorList;
81
+ include?: Selector | SelectorList;
82
+ };
83
+ type ElementContext = Selector | SelectorList | ContextObject;
61
84
 
62
- type RunCallback = (error: Error, results: AxeResults) => void;
85
+ type SerialSelector =
86
+ | BaseSelector
87
+ | LabelledShadowDomSelector
88
+ | LabelledFramesSelector;
89
+ type SerialFrameSelector = SerialSelector | FramesSelector;
90
+ type SerialSelectorList = Array<SerialFrameSelector>;
63
91
 
64
- type ElementContext = Node | NodeList | string | ContextObject;
92
+ type SerialContextObject =
93
+ | {
94
+ include: SerialSelector | SerialSelectorList;
95
+ exclude?: SerialSelector | SerialSelectorList;
96
+ }
97
+ | {
98
+ exclude: SerialSelector | SerialSelectorList;
99
+ include?: SerialSelector | SerialSelectorList;
100
+ };
101
+
102
+ interface FrameContextObject {
103
+ include: UnlabelledFrameSelector[];
104
+ exclude: UnlabelledFrameSelector[];
105
+ }
106
+
107
+ type RunCallback<T = AxeResults> = (error: Error, results: T) => void;
65
108
 
66
109
  interface TestEngine {
67
110
  name: string;
@@ -255,9 +298,9 @@ declare namespace axe {
255
298
  interface SerialDqElement {
256
299
  source: string;
257
300
  nodeIndexes: number[];
258
- selector: CrossFrameSelector;
301
+ selector: UnlabelledFrameSelector;
259
302
  xpath: string[];
260
- ancestry: CrossFrameSelector;
303
+ ancestry: UnlabelledFrameSelector;
261
304
  }
262
305
  interface PartialRuleResult {
263
306
  id: string;
@@ -274,7 +317,7 @@ declare namespace axe {
274
317
  type PartialResults = Array<PartialResult | null>;
275
318
  interface FrameContext {
276
319
  frameSelector: CrossTreeSelector;
277
- frameContext: SerialContextObject;
320
+ frameContext: FrameContextObject;
278
321
  }
279
322
  interface Utils {
280
323
  getFrameContexts: (
@@ -282,6 +325,7 @@ declare namespace axe {
282
325
  options?: RunOptions
283
326
  ) => FrameContext[];
284
327
  shadowSelect: (selector: CrossTreeSelector) => Element | null;
328
+ shadowSelectAll: (selector: CrossTreeSelector) => Element[];
285
329
  }
286
330
  interface EnvironmentData {
287
331
  testEngine: TestEngine;
@@ -313,19 +357,27 @@ declare namespace axe {
313
357
  * @param {RunCallback} callback Optional The function to invoke when analysis is complete.
314
358
  * @returns {Promise<AxeResults>|void} If the callback was not defined, axe will return a Promise.
315
359
  */
316
- function run(context?: ElementContext): Promise<AxeResults>;
317
- function run(options: RunOptions): Promise<AxeResults>;
318
- function run(callback: (error: Error, results: AxeResults) => void): void;
319
- function run(context: ElementContext, callback: RunCallback): void;
320
- function run(options: RunOptions, callback: RunCallback): void;
321
- function run(
360
+ function run<T = AxeResults>(context?: ElementContext): Promise<T>;
361
+ function run<T = AxeResults>(options: RunOptions): Promise<T>;
362
+ function run<T = AxeResults>(
363
+ callback: (error: Error, results: T) => void
364
+ ): void;
365
+ function run<T = AxeResults>(
366
+ context: ElementContext,
367
+ callback: RunCallback<T>
368
+ ): void;
369
+ function run<T = AxeResults>(
370
+ options: RunOptions,
371
+ callback: RunCallback<T>
372
+ ): void;
373
+ function run<T = AxeResults>(
322
374
  context: ElementContext,
323
375
  options: RunOptions
324
- ): Promise<AxeResults>;
325
- function run(
376
+ ): Promise<T>;
377
+ function run<T = AxeResults>(
326
378
  context: ElementContext,
327
379
  options: RunOptions,
328
- callback: RunCallback
380
+ callback: RunCallback<T>
329
381
  ): void;
330
382
 
331
383
  /**