axe-core 4.3.3 → 4.3.5-canary.034a846

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/axe.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! axe v4.3.3
1
+ /*! axe v4.3.5-canary.034a846
2
2
  * Copyright (c) 2021 Deque Systems, Inc.
3
3
  *
4
4
  * Your use of this Source Code Form is subject to the terms of the Mozilla Public
@@ -27,7 +27,7 @@
27
27
  return _typeof(obj);
28
28
  }
29
29
  var axe = axe || {};
30
- axe.version = '4.3.3';
30
+ axe.version = '4.3.5-canary.034a846';
31
31
  if (typeof define === 'function' && define.amd) {
32
32
  define('axe-core', [], function() {
33
33
  return axe;
@@ -1393,11 +1393,11 @@
1393
1393
  } else {
1394
1394
  mixin = require_mixin();
1395
1395
  generate = function() {
1396
- var cache20 = [];
1396
+ var cache21 = [];
1397
1397
  return function(length) {
1398
1398
  var args, i = 0;
1399
- if (cache20[length]) {
1400
- return cache20[length];
1399
+ if (cache21[length]) {
1400
+ return cache21[length];
1401
1401
  }
1402
1402
  args = [];
1403
1403
  while (length--) {
@@ -2216,7 +2216,7 @@
2216
2216
  var _on = ee.on;
2217
2217
  var emit = ee.emit;
2218
2218
  module.exports = function(original, length, options) {
2219
- var cache20 = create(null), conf, memLength, _get, set, del, _clear, extDel, extGet, extHas, normalizer, getListeners, setListeners, deleteListeners, memoized, resolve;
2219
+ var cache21 = create(null), conf, memLength, _get, set, del, _clear, extDel, extGet, extHas, normalizer, getListeners, setListeners, deleteListeners, memoized, resolve;
2220
2220
  if (length !== false) {
2221
2221
  memLength = length;
2222
2222
  } else if (isNaN(original.length)) {
@@ -2242,11 +2242,11 @@
2242
2242
  }
2243
2243
  id = _get(args);
2244
2244
  if (id !== null) {
2245
- if (hasOwnProperty.call(cache20, id)) {
2245
+ if (hasOwnProperty.call(cache21, id)) {
2246
2246
  if (getListeners) {
2247
2247
  conf.emit('get', id, args, this);
2248
2248
  }
2249
- return cache20[id];
2249
+ return cache21[id];
2250
2250
  }
2251
2251
  }
2252
2252
  if (args.length === 1) {
@@ -2260,10 +2260,10 @@
2260
2260
  throw customError('Circular invocation', 'CIRCULAR_INVOCATION');
2261
2261
  }
2262
2262
  id = set(args);
2263
- } else if (hasOwnProperty.call(cache20, id)) {
2263
+ } else if (hasOwnProperty.call(cache21, id)) {
2264
2264
  throw customError('Circular invocation', 'CIRCULAR_INVOCATION');
2265
2265
  }
2266
- cache20[id] = result;
2266
+ cache21[id] = result;
2267
2267
  if (setListeners) {
2268
2268
  conf.emit('set', id, null, result);
2269
2269
  }
@@ -2272,21 +2272,21 @@
2272
2272
  } else if (length === 0) {
2273
2273
  memoized = function memoized() {
2274
2274
  var result;
2275
- if (hasOwnProperty.call(cache20, 'data')) {
2275
+ if (hasOwnProperty.call(cache21, 'data')) {
2276
2276
  if (getListeners) {
2277
2277
  conf.emit('get', 'data', arguments, this);
2278
2278
  }
2279
- return cache20.data;
2279
+ return cache21.data;
2280
2280
  }
2281
2281
  if (arguments.length) {
2282
2282
  result = apply.call(original, this, arguments);
2283
2283
  } else {
2284
2284
  result = call.call(original, this);
2285
2285
  }
2286
- if (hasOwnProperty.call(cache20, 'data')) {
2286
+ if (hasOwnProperty.call(cache21, 'data')) {
2287
2287
  throw customError('Circular invocation', 'CIRCULAR_INVOCATION');
2288
2288
  }
2289
- cache20.data = result;
2289
+ cache21.data = result;
2290
2290
  if (setListeners) {
2291
2291
  conf.emit('set', 'data', null, result);
2292
2292
  }
@@ -2299,21 +2299,21 @@
2299
2299
  args = resolve(arguments);
2300
2300
  }
2301
2301
  id = String(args[0]);
2302
- if (hasOwnProperty.call(cache20, id)) {
2302
+ if (hasOwnProperty.call(cache21, id)) {
2303
2303
  if (getListeners) {
2304
2304
  conf.emit('get', id, args, this);
2305
2305
  }
2306
- return cache20[id];
2306
+ return cache21[id];
2307
2307
  }
2308
2308
  if (args.length === 1) {
2309
2309
  result = call.call(original, this, args[0]);
2310
2310
  } else {
2311
2311
  result = apply.call(original, this, args);
2312
2312
  }
2313
- if (hasOwnProperty.call(cache20, id)) {
2313
+ if (hasOwnProperty.call(cache21, id)) {
2314
2314
  throw customError('Circular invocation', 'CIRCULAR_INVOCATION');
2315
2315
  }
2316
- cache20[id] = result;
2316
+ cache21[id] = result;
2317
2317
  if (setListeners) {
2318
2318
  conf.emit('set', id, null, result);
2319
2319
  }
@@ -2334,28 +2334,28 @@
2334
2334
  return String(args[0]);
2335
2335
  },
2336
2336
  has: function has(id) {
2337
- return hasOwnProperty.call(cache20, id);
2337
+ return hasOwnProperty.call(cache21, id);
2338
2338
  },
2339
2339
  delete: function _delete(id) {
2340
2340
  var result;
2341
- if (!hasOwnProperty.call(cache20, id)) {
2341
+ if (!hasOwnProperty.call(cache21, id)) {
2342
2342
  return;
2343
2343
  }
2344
2344
  if (del) {
2345
2345
  del(id);
2346
2346
  }
2347
- result = cache20[id];
2348
- delete cache20[id];
2347
+ result = cache21[id];
2348
+ delete cache21[id];
2349
2349
  if (deleteListeners) {
2350
2350
  conf.emit('delete', id, result);
2351
2351
  }
2352
2352
  },
2353
2353
  clear: function clear() {
2354
- var oldCache = cache20;
2354
+ var oldCache = cache21;
2355
2355
  if (_clear) {
2356
2356
  _clear();
2357
2357
  }
2358
- cache20 = create(null);
2358
+ cache21 = create(null);
2359
2359
  conf.emit('clear', oldCache);
2360
2360
  },
2361
2361
  on: function on(type, listener) {
@@ -2400,7 +2400,7 @@
2400
2400
  extGet = defineLength(function() {
2401
2401
  var id, args = arguments;
2402
2402
  if (length === 0) {
2403
- return cache20.data;
2403
+ return cache21.data;
2404
2404
  }
2405
2405
  if (resolve) {
2406
2406
  args = resolve(args);
@@ -2410,7 +2410,7 @@
2410
2410
  } else {
2411
2411
  id = String(args[0]);
2412
2412
  }
2413
- return cache20[id];
2413
+ return cache21[id];
2414
2414
  });
2415
2415
  extHas = defineLength(function() {
2416
2416
  var id, args = arguments;
@@ -2561,7 +2561,7 @@
2561
2561
  var indexOf = require_e_index_of();
2562
2562
  var create = Object.create;
2563
2563
  module.exports = function() {
2564
- var lastId = 0, map = [], cache20 = create(null);
2564
+ var lastId = 0, map = [], cache21 = create(null);
2565
2565
  return {
2566
2566
  get: function get(args) {
2567
2567
  var index = 0, set = map, i, length = args.length;
@@ -2609,11 +2609,11 @@
2609
2609
  }
2610
2610
  set[1][i] = ++lastId;
2611
2611
  }
2612
- cache20[lastId] = args;
2612
+ cache21[lastId] = args;
2613
2613
  return lastId;
2614
2614
  },
2615
2615
  delete: function _delete(id) {
2616
- var index = 0, set = map, i, args = cache20[id], length = args.length, path = [];
2616
+ var index = 0, set = map, i, args = cache21[id], length = args.length, path = [];
2617
2617
  if (length === 0) {
2618
2618
  delete set[length];
2619
2619
  } else if (set = set[length]) {
@@ -2640,11 +2640,11 @@
2640
2640
  set[1].splice(i, 1);
2641
2641
  }
2642
2642
  }
2643
- delete cache20[id];
2643
+ delete cache21[id];
2644
2644
  },
2645
2645
  clear: function clear() {
2646
2646
  map = [];
2647
- cache20 = create(null);
2647
+ cache21 = create(null);
2648
2648
  }
2649
2649
  };
2650
2650
  };
@@ -2653,27 +2653,27 @@
2653
2653
  'use strict';
2654
2654
  var indexOf = require_e_index_of();
2655
2655
  module.exports = function() {
2656
- var lastId = 0, argsMap = [], cache20 = [];
2656
+ var lastId = 0, argsMap = [], cache21 = [];
2657
2657
  return {
2658
2658
  get: function get(args) {
2659
2659
  var index = indexOf.call(argsMap, args[0]);
2660
- return index === -1 ? null : cache20[index];
2660
+ return index === -1 ? null : cache21[index];
2661
2661
  },
2662
2662
  set: function set(args) {
2663
2663
  argsMap.push(args[0]);
2664
- cache20.push(++lastId);
2664
+ cache21.push(++lastId);
2665
2665
  return lastId;
2666
2666
  },
2667
2667
  delete: function _delete(id) {
2668
- var index = indexOf.call(cache20, id);
2668
+ var index = indexOf.call(cache21, id);
2669
2669
  if (index !== -1) {
2670
2670
  argsMap.splice(index, 1);
2671
- cache20.splice(index, 1);
2671
+ cache21.splice(index, 1);
2672
2672
  }
2673
2673
  },
2674
2674
  clear: function clear() {
2675
2675
  argsMap = [];
2676
- cache20 = [];
2676
+ cache21 = [];
2677
2677
  }
2678
2678
  };
2679
2679
  };
@@ -2683,7 +2683,7 @@
2683
2683
  var indexOf = require_e_index_of();
2684
2684
  var create = Object.create;
2685
2685
  module.exports = function(length) {
2686
- var lastId = 0, map = [ [], [] ], cache20 = create(null);
2686
+ var lastId = 0, map = [ [], [] ], cache21 = create(null);
2687
2687
  return {
2688
2688
  get: function get(args) {
2689
2689
  var index = 0, set = map, i;
@@ -2717,11 +2717,11 @@
2717
2717
  i = set[0].push(args[index]) - 1;
2718
2718
  }
2719
2719
  set[1][i] = ++lastId;
2720
- cache20[lastId] = args;
2720
+ cache21[lastId] = args;
2721
2721
  return lastId;
2722
2722
  },
2723
2723
  delete: function _delete(id) {
2724
- var index = 0, set = map, i, path = [], args = cache20[id];
2724
+ var index = 0, set = map, i, path = [], args = cache21[id];
2725
2725
  while (index < length - 1) {
2726
2726
  i = indexOf.call(set[0], args[index]);
2727
2727
  if (i === -1) {
@@ -2744,11 +2744,11 @@
2744
2744
  set[0].splice(i, 1);
2745
2745
  set[1].splice(i, 1);
2746
2746
  }
2747
- delete cache20[id];
2747
+ delete cache21[id];
2748
2748
  },
2749
2749
  clear: function clear() {
2750
2750
  map = [ [], [] ];
2751
- cache20 = create(null);
2751
+ cache21 = create(null);
2752
2752
  }
2753
2753
  };
2754
2754
  };
@@ -2861,7 +2861,7 @@
2861
2861
  var apply = Function.prototype.apply;
2862
2862
  var create = Object.create;
2863
2863
  require_registered_extensions().async = function(tbi, conf) {
2864
- var waiting = create(null), cache20 = create(null), base = conf.memoized, original = conf.original, currentCallback, currentContext, currentArgs;
2864
+ var waiting = create(null), cache21 = create(null), base = conf.memoized, original = conf.original, currentCallback, currentContext, currentArgs;
2865
2865
  conf.memoized = defineLength(function(arg) {
2866
2866
  var args = arguments, last = args[args.length - 1];
2867
2867
  if (typeof last === 'function') {
@@ -2893,8 +2893,8 @@
2893
2893
  currentCallback = currentContext = currentArgs = null;
2894
2894
  nextTick(function() {
2895
2895
  var data2;
2896
- if (hasOwnProperty.call(cache20, id)) {
2897
- data2 = cache20[id];
2896
+ if (hasOwnProperty.call(cache21, id)) {
2897
+ data2 = cache21[id];
2898
2898
  conf.emit('getasync', id, args, context5);
2899
2899
  apply.call(cb, data2.context, data2.args);
2900
2900
  } else {
@@ -2928,7 +2928,7 @@
2928
2928
  if (err2) {
2929
2929
  conf['delete'](id);
2930
2930
  } else {
2931
- cache20[id] = {
2931
+ cache21[id] = {
2932
2932
  context: this,
2933
2933
  args: args2
2934
2934
  };
@@ -2975,16 +2975,16 @@
2975
2975
  if (hasOwnProperty.call(waiting, id)) {
2976
2976
  return;
2977
2977
  }
2978
- if (!cache20[id]) {
2978
+ if (!cache21[id]) {
2979
2979
  return;
2980
2980
  }
2981
- result = cache20[id];
2982
- delete cache20[id];
2981
+ result = cache21[id];
2982
+ delete cache21[id];
2983
2983
  conf.emit('deleteasync', id, slice.call(result.args, 1));
2984
2984
  });
2985
2985
  conf.on('clear', function() {
2986
- var oldCache = cache20;
2987
- cache20 = create(null);
2986
+ var oldCache = cache21;
2987
+ cache21 = create(null);
2988
2988
  conf.emit('clearasync', objectMap(oldCache, function(data2) {
2989
2989
  return slice.call(data2.args, 1);
2990
2990
  }));
@@ -3078,7 +3078,7 @@
3078
3078
  var create = Object.create;
3079
3079
  var supportedModes = primitiveSet('then', 'then:finally', 'done', 'done:finally');
3080
3080
  require_registered_extensions().promise = function(mode, conf) {
3081
- var waiting = create(null), cache20 = create(null), promises = create(null);
3081
+ var waiting = create(null), cache21 = create(null), promises = create(null);
3082
3082
  if (mode === true) {
3083
3083
  mode = null;
3084
3084
  } else {
@@ -3090,7 +3090,7 @@
3090
3090
  conf.on('set', function(id, ignore, promise) {
3091
3091
  var isFailed = false;
3092
3092
  if (!isPromise(promise)) {
3093
- cache20[id] = promise;
3093
+ cache21[id] = promise;
3094
3094
  conf.emit('setasync', id, 1);
3095
3095
  return;
3096
3096
  }
@@ -3105,7 +3105,7 @@
3105
3105
  return;
3106
3106
  }
3107
3107
  delete waiting[id];
3108
- cache20[id] = result;
3108
+ cache21[id] = result;
3109
3109
  conf.emit('setasync', id, count);
3110
3110
  };
3111
3111
  var onFailure = function onFailure() {
@@ -3175,16 +3175,16 @@
3175
3175
  delete waiting[id];
3176
3176
  return;
3177
3177
  }
3178
- if (!hasOwnProperty.call(cache20, id)) {
3178
+ if (!hasOwnProperty.call(cache21, id)) {
3179
3179
  return;
3180
3180
  }
3181
- var result = cache20[id];
3182
- delete cache20[id];
3181
+ var result = cache21[id];
3182
+ delete cache21[id];
3183
3183
  conf.emit('deleteasync', id, [ result ]);
3184
3184
  });
3185
3185
  conf.on('clear', function() {
3186
- var oldCache = cache20;
3187
- cache20 = create(null);
3186
+ var oldCache = cache21;
3187
+ cache21 = create(null);
3188
3188
  waiting = create(null);
3189
3189
  promises = create(null);
3190
3190
  conf.emit('clearasync', objectMap(oldCache, function(data2) {
@@ -3206,8 +3206,8 @@
3206
3206
  conf.on('deleteasync', del = function del(id, resultArray) {
3207
3207
  apply.call(dispose, null, resultArray);
3208
3208
  });
3209
- conf.on('clearasync', function(cache20) {
3210
- forEach(cache20, function(result, id) {
3209
+ conf.on('clearasync', function(cache21) {
3210
+ forEach(cache21, function(result, id) {
3211
3211
  del(id, result);
3212
3212
  });
3213
3213
  });
@@ -3216,8 +3216,8 @@
3216
3216
  conf.on('delete', del = function del(id, result) {
3217
3217
  dispose(result);
3218
3218
  });
3219
- conf.on('clear', function(cache20) {
3220
- forEach(cache20, function(result, id) {
3219
+ conf.on('clear', function(cache21) {
3220
+ forEach(cache21, function(result, id) {
3221
3221
  del(id, result);
3222
3222
  });
3223
3223
  });
@@ -3438,20 +3438,20 @@
3438
3438
  var create = Object.create;
3439
3439
  var defineProperties = Object.defineProperties;
3440
3440
  extensions.refCounter = function(ignore, conf, options) {
3441
- var cache20, postfix;
3442
- cache20 = create(null);
3441
+ var cache21, postfix;
3442
+ cache21 = create(null);
3443
3443
  postfix = options.async && extensions.async || options.promise && extensions.promise ? 'async' : '';
3444
3444
  conf.on('set' + postfix, function(id, length) {
3445
- cache20[id] = length || 1;
3445
+ cache21[id] = length || 1;
3446
3446
  });
3447
3447
  conf.on('get' + postfix, function(id) {
3448
- ++cache20[id];
3448
+ ++cache21[id];
3449
3449
  });
3450
3450
  conf.on('delete' + postfix, function(id) {
3451
- delete cache20[id];
3451
+ delete cache21[id];
3452
3452
  });
3453
3453
  conf.on('clear' + postfix, function() {
3454
- cache20 = {};
3454
+ cache21 = {};
3455
3455
  });
3456
3456
  defineProperties(conf.memoized, {
3457
3457
  deleteRef: d(function() {
@@ -3459,10 +3459,10 @@
3459
3459
  if (id === null) {
3460
3460
  return null;
3461
3461
  }
3462
- if (!cache20[id]) {
3462
+ if (!cache21[id]) {
3463
3463
  return null;
3464
3464
  }
3465
- if (!--cache20[id]) {
3465
+ if (!--cache21[id]) {
3466
3466
  conf['delete'](id);
3467
3467
  return true;
3468
3468
  }
@@ -3473,10 +3473,10 @@
3473
3473
  if (id === null) {
3474
3474
  return 0;
3475
3475
  }
3476
- if (!cache20[id]) {
3476
+ if (!cache21[id]) {
3477
3477
  return 0;
3478
3478
  }
3479
- return cache20[id];
3479
+ return cache21[id];
3480
3480
  })
3481
3481
  });
3482
3482
  };
@@ -4255,7 +4255,7 @@
4255
4255
  var LN2 = Math.LN2;
4256
4256
  var abs = Math.abs;
4257
4257
  var floor = Math.floor;
4258
- var log10 = Math.log;
4258
+ var log9 = Math.log;
4259
4259
  var min = Math.min;
4260
4260
  var pow = Math.pow;
4261
4261
  var round = Math.round;
@@ -4411,7 +4411,7 @@
4411
4411
  s = v < 0;
4412
4412
  v = abs(v);
4413
4413
  if (v >= pow(2, 1 - bias)) {
4414
- e = min(floor(log10(v) / LN2), 1023);
4414
+ e = min(floor(log9(v) / LN2), 1023);
4415
4415
  f = roundToEven(v / pow(2, e) * pow(2, fbits));
4416
4416
  if (f / pow(2, fbits) >= 2) {
4417
4417
  e = e + 1;
@@ -5185,7 +5185,7 @@
5185
5185
  return select_default;
5186
5186
  },
5187
5187
  sendCommandToFrame: function sendCommandToFrame() {
5188
- return send_command_to_frame_default;
5188
+ return _sendCommandToFrame;
5189
5189
  },
5190
5190
  setScrollState: function setScrollState() {
5191
5191
  return set_scroll_state_default;
@@ -5257,7 +5257,7 @@
5257
5257
  };
5258
5258
  }
5259
5259
  function isRespondableMessage(postedMessage) {
5260
- return _typeof(postedMessage) === 'object' && typeof postedMessage.channelId === 'string' && postedMessage.source === getSource();
5260
+ return postedMessage !== null && _typeof(postedMessage) === 'object' && typeof postedMessage.channelId === 'string' && postedMessage.source === getSource();
5261
5261
  }
5262
5262
  function buildErrorObject(error) {
5263
5263
  var msg = error.message || 'Unknown error occurred';
@@ -5511,25 +5511,30 @@
5511
5511
  }
5512
5512
  function messageHandler(_ref2, topicHandler) {
5513
5513
  var origin = _ref2.origin, dataString = _ref2.data, win = _ref2.source;
5514
- var data2 = parseMessage(dataString) || {};
5515
- var channelId = data2.channelId, message = data2.message, messageId = data2.messageId;
5516
- if (!originIsAllowed(origin) || !isNewMessage(messageId)) {
5517
- return;
5518
- }
5519
- if (message instanceof Error && win.parent !== window) {
5520
- axe.log(message);
5521
- return false;
5522
- }
5523
5514
  try {
5524
- if (data2.topic) {
5525
- var responder = createResponder(win, channelId);
5526
- assertIsParentWindow(win);
5527
- topicHandler(data2, responder);
5528
- } else {
5529
- callReplyHandler(win, data2);
5515
+ var data2 = parseMessage(dataString) || {};
5516
+ var channelId = data2.channelId, message = data2.message, messageId = data2.messageId;
5517
+ if (!originIsAllowed(origin) || !isNewMessage(messageId)) {
5518
+ return;
5519
+ }
5520
+ if (message instanceof Error && win.parent !== window) {
5521
+ axe.log(message);
5522
+ return false;
5523
+ }
5524
+ try {
5525
+ if (data2.topic) {
5526
+ var responder = createResponder(win, channelId);
5527
+ assertIsParentWindow(win);
5528
+ topicHandler(data2, responder);
5529
+ } else {
5530
+ callReplyHandler(win, data2);
5531
+ }
5532
+ } catch (error) {
5533
+ processError(win, error, channelId);
5530
5534
  }
5531
5535
  } catch (error) {
5532
- processError(win, error, channelId);
5536
+ axe.log(error);
5537
+ return false;
5533
5538
  }
5534
5539
  }
5535
5540
  function callReplyHandler(win, data2) {
@@ -5945,23 +5950,23 @@
5945
5950
  var xhtml;
5946
5951
  var ignoredAttributes = [ 'class', 'style', 'id', 'selected', 'checked', 'disabled', 'tabindex', 'aria-checked', 'aria-selected', 'aria-invalid', 'aria-activedescendant', 'aria-busy', 'aria-disabled', 'aria-expanded', 'aria-grabbed', 'aria-pressed', 'aria-valuenow' ];
5947
5952
  var MAXATTRIBUTELENGTH = 31;
5953
+ var attrCharsRegex = /([\\"])/g;
5954
+ var newlineChars = /(\r\n|\r|\n)/g;
5955
+ function escapeAttribute(str) {
5956
+ return str.replace(attrCharsRegex, '\\$1').replace(newlineChars, '\\a ');
5957
+ }
5948
5958
  function getAttributeNameValue(node, at) {
5949
5959
  var name = at.name;
5950
5960
  var atnv;
5951
5961
  if (name.indexOf('href') !== -1 || name.indexOf('src') !== -1) {
5952
5962
  var friendly = get_friendly_uri_end_default(node.getAttribute(name));
5953
5963
  if (friendly) {
5954
- var value = encodeURI(friendly);
5955
- if (value) {
5956
- atnv = escape_selector_default(at.name) + '$="' + escape_selector_default(value) + '"';
5957
- } else {
5958
- return;
5959
- }
5964
+ atnv = escape_selector_default(at.name) + '$="' + escapeAttribute(friendly) + '"';
5960
5965
  } else {
5961
- atnv = escape_selector_default(at.name) + '="' + escape_selector_default(node.getAttribute(name)) + '"';
5966
+ atnv = escape_selector_default(at.name) + '="' + escapeAttribute(node.getAttribute(name)) + '"';
5962
5967
  }
5963
5968
  } else {
5964
- atnv = escape_selector_default(name) + '="' + escape_selector_default(at.value) + '"';
5969
+ atnv = escape_selector_default(name) + '="' + escapeAttribute(at.value) + '"';
5965
5970
  }
5966
5971
  return atnv;
5967
5972
  }
@@ -6365,7 +6370,15 @@
6365
6370
  checkResult.data = data2;
6366
6371
  },
6367
6372
  relatedNodes: function relatedNodes(nodes) {
6373
+ if (!window.Node) {
6374
+ return;
6375
+ }
6368
6376
  nodes = nodes instanceof window.Node ? [ nodes ] : to_array_default(nodes);
6377
+ if (!nodes.every(function(node) {
6378
+ return node instanceof window.Node || node.actualNode;
6379
+ })) {
6380
+ return;
6381
+ }
6369
6382
  checkResult.relatedNodes = nodes.map(function(element) {
6370
6383
  return new dq_element_default(element, options);
6371
6384
  });
@@ -6754,20 +6767,19 @@
6754
6767
  return !!win.frameElement;
6755
6768
  };
6756
6769
  setDefaultFrameMessenger(_respondable);
6757
- function err(message, node) {
6758
- var selector;
6759
- if (axe._tree) {
6760
- selector = _getSelector(node);
6761
- }
6762
- return new Error(message + ': ' + (selector || node));
6763
- }
6764
- function sendCommandToFrame(node, parameters, resolve, reject) {
6770
+ function _sendCommandToFrame(node, parameters, resolve, reject) {
6771
+ var _parameters$options$p, _parameters$options;
6765
6772
  var win = node.contentWindow;
6773
+ var pingWaitTime = (_parameters$options$p = (_parameters$options = parameters.options) === null || _parameters$options === void 0 ? void 0 : _parameters$options.pingWaitTime) !== null && _parameters$options$p !== void 0 ? _parameters$options$p : 500;
6766
6774
  if (!win) {
6767
6775
  log_default('Frame does not have a content window', node);
6768
6776
  resolve(null);
6769
6777
  return;
6770
6778
  }
6779
+ if (pingWaitTime === 0) {
6780
+ callAxeStart(node, parameters, resolve, reject);
6781
+ return;
6782
+ }
6771
6783
  var timeout = setTimeout(function() {
6772
6784
  timeout = setTimeout(function() {
6773
6785
  if (!parameters.debug) {
@@ -6776,24 +6788,35 @@
6776
6788
  reject(err('No response from frame', node));
6777
6789
  }
6778
6790
  }, 0);
6779
- }, 500);
6791
+ }, pingWaitTime);
6780
6792
  _respondable(win, 'axe.ping', null, void 0, function() {
6781
6793
  clearTimeout(timeout);
6782
- var frameWaitTime = parameters.options && parameters.options.frameWaitTime || 6e4;
6783
- timeout = setTimeout(function collectResultFramesTimeout() {
6784
- reject(err('Axe in frame timed out', node));
6785
- }, frameWaitTime);
6786
- _respondable(win, 'axe.start', parameters, void 0, function(data2) {
6787
- clearTimeout(timeout);
6788
- if (data2 instanceof Error === false) {
6789
- resolve(data2);
6790
- } else {
6791
- reject(data2);
6792
- }
6793
- });
6794
+ callAxeStart(node, parameters, resolve, reject);
6795
+ });
6796
+ }
6797
+ function callAxeStart(node, parameters, resolve, reject) {
6798
+ var _parameters$options$f, _parameters$options2;
6799
+ var frameWaitTime = (_parameters$options$f = (_parameters$options2 = parameters.options) === null || _parameters$options2 === void 0 ? void 0 : _parameters$options2.frameWaitTime) !== null && _parameters$options$f !== void 0 ? _parameters$options$f : 6e4;
6800
+ var win = node.contentWindow;
6801
+ var timeout = setTimeout(function collectResultFramesTimeout() {
6802
+ reject(err('Axe in frame timed out', node));
6803
+ }, frameWaitTime);
6804
+ _respondable(win, 'axe.start', parameters, void 0, function(data2) {
6805
+ clearTimeout(timeout);
6806
+ if (data2 instanceof Error === false) {
6807
+ resolve(data2);
6808
+ } else {
6809
+ reject(data2);
6810
+ }
6794
6811
  });
6795
6812
  }
6796
- var send_command_to_frame_default = sendCommandToFrame;
6813
+ function err(message, node) {
6814
+ var selector;
6815
+ if (axe._tree) {
6816
+ selector = _getSelector(node);
6817
+ }
6818
+ return new Error(message + ': ' + (selector || node));
6819
+ }
6797
6820
  function getAllChecks(object) {
6798
6821
  var result = [];
6799
6822
  return result.concat(object.any || []).concat(object.all || []).concat(object.none || []);
@@ -6922,7 +6945,7 @@
6922
6945
  frameElement: frameElement
6923
6946
  });
6924
6947
  }
6925
- send_command_to_frame_default(frameElement, params, callback, rej);
6948
+ _sendCommandToFrame(frameElement, params, callback, rej);
6926
6949
  });
6927
6950
  });
6928
6951
  q.then(function(data2) {
@@ -7096,7 +7119,7 @@
7096
7119
  return url_props_from_attribute_default;
7097
7120
  },
7098
7121
  visuallyContains: function visuallyContains() {
7099
- return visually_contains_default;
7122
+ return _visuallyContains;
7100
7123
  },
7101
7124
  visuallyOverlaps: function visuallyOverlaps() {
7102
7125
  return visually_overlaps_default;
@@ -7325,13 +7348,14 @@
7325
7348
  });
7326
7349
  }
7327
7350
  function isVisible(el, screenReader, recursed) {
7351
+ var _window$Node;
7328
7352
  if (!el) {
7329
7353
  throw new TypeError('Cannot determine if element is visible for non-DOM nodes');
7330
7354
  }
7331
7355
  var vNode = el instanceof abstract_virtual_node_default ? el : get_node_from_tree_default(el);
7332
7356
  el = vNode ? vNode.actualNode : el;
7333
7357
  var cacheName = '_isVisible' + (screenReader ? 'ScreenReader' : '');
7334
- var _window$Node = window.Node, DOCUMENT_NODE = _window$Node.DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE = _window$Node.DOCUMENT_FRAGMENT_NODE;
7358
+ var _ref9 = (_window$Node = window.Node) !== null && _window$Node !== void 0 ? _window$Node : {}, DOCUMENT_NODE = _ref9.DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE = _ref9.DOCUMENT_FRAGMENT_NODE;
7335
7359
  var nodeType = vNode ? vNode.props.nodeType : el.nodeType;
7336
7360
  var nodeName2 = vNode ? vNode.props.nodeName : el.nodeName.toLowerCase();
7337
7361
  if (vNode && typeof vNode[cacheName] !== 'undefined') {
@@ -7374,9 +7398,12 @@
7374
7398
  return false;
7375
7399
  }
7376
7400
  var elHeight = parseInt(style.getPropertyValue('height'));
7377
- var scrollableWithZeroHeight = get_scroll_default(el) && elHeight === 0;
7378
- var posAbsoluteOverflowHiddenAndSmall = style.getPropertyValue('position') === 'absolute' && elHeight < 2 && style.getPropertyValue('overflow') === 'hidden';
7379
- if (!screenReader && (isClipped(style) || style.getPropertyValue('opacity') === '0' || scrollableWithZeroHeight || posAbsoluteOverflowHiddenAndSmall)) {
7401
+ var elWidth = parseInt(style.getPropertyValue('width'));
7402
+ var scroll = get_scroll_default(el);
7403
+ var scrollableWithZeroHeight = scroll && elHeight === 0;
7404
+ var scrollableWithZeroWidth = scroll && elWidth === 0;
7405
+ var posAbsoluteOverflowHiddenAndSmall = style.getPropertyValue('position') === 'absolute' && (elHeight < 2 || elWidth < 2) && style.getPropertyValue('overflow') === 'hidden';
7406
+ if (!screenReader && (isClipped(style) || style.getPropertyValue('opacity') === '0' || scrollableWithZeroHeight || scrollableWithZeroWidth || posAbsoluteOverflowHiddenAndSmall)) {
7380
7407
  return false;
7381
7408
  }
7382
7409
  if (!recursed && (style.getPropertyValue('visibility') === 'hidden' || !screenReader && is_offscreen_default(el))) {
@@ -7394,6 +7421,90 @@
7394
7421
  }
7395
7422
  var is_visible_default = isVisible;
7396
7423
  var gridSize = 200;
7424
+ function createGrid() {
7425
+ var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.body;
7426
+ var rootGrid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
7427
+ container: null,
7428
+ cells: []
7429
+ };
7430
+ var parentVNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
7431
+ if (!parentVNode) {
7432
+ var vNode = get_node_from_tree_default(document.documentElement);
7433
+ if (!vNode) {
7434
+ vNode = new virtual_node_default(document.documentElement);
7435
+ }
7436
+ vNode._stackingOrder = [ 0 ];
7437
+ addNodeToGrid(rootGrid, vNode);
7438
+ if (get_scroll_default(vNode.actualNode)) {
7439
+ var subGrid = {
7440
+ container: vNode,
7441
+ cells: []
7442
+ };
7443
+ vNode._subGrid = subGrid;
7444
+ }
7445
+ }
7446
+ var treeWalker = document.createTreeWalker(root, window.NodeFilter.SHOW_ELEMENT, null, false);
7447
+ var node = parentVNode ? treeWalker.nextNode() : treeWalker.currentNode;
7448
+ while (node) {
7449
+ var _vNode = get_node_from_tree_default(node);
7450
+ if (node.parentElement) {
7451
+ parentVNode = get_node_from_tree_default(node.parentElement);
7452
+ } else if (node.parentNode && get_node_from_tree_default(node.parentNode)) {
7453
+ parentVNode = get_node_from_tree_default(node.parentNode);
7454
+ }
7455
+ if (!_vNode) {
7456
+ _vNode = new axe.VirtualNode(node, parentVNode);
7457
+ }
7458
+ _vNode._stackingOrder = getStackingOrder(_vNode, parentVNode);
7459
+ var scrollRegionParent = findScrollRegionParent(_vNode, parentVNode);
7460
+ var grid = scrollRegionParent ? scrollRegionParent._subGrid : rootGrid;
7461
+ if (get_scroll_default(_vNode.actualNode)) {
7462
+ var _subGrid = {
7463
+ container: _vNode,
7464
+ cells: []
7465
+ };
7466
+ _vNode._subGrid = _subGrid;
7467
+ }
7468
+ var rect = _vNode.boundingClientRect;
7469
+ if (rect.width !== 0 && rect.height !== 0 && is_visible_default(node)) {
7470
+ addNodeToGrid(grid, _vNode);
7471
+ }
7472
+ if (is_shadow_root_default(node)) {
7473
+ createGrid(node.shadowRoot, grid, _vNode);
7474
+ }
7475
+ node = treeWalker.nextNode();
7476
+ }
7477
+ }
7478
+ function getRectStack(grid, rect) {
7479
+ var _grid$cells$row$col$f, _grid$cells$row$col;
7480
+ var recursed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7481
+ var x = rect.left + rect.width / 2;
7482
+ var y = rect.top + rect.height / 2;
7483
+ var row = y / gridSize | 0;
7484
+ var col = x / gridSize | 0;
7485
+ if (row > grid.cells.length || col > grid.numCols) {
7486
+ throw new Error('Element midpoint exceeds the grid bounds');
7487
+ }
7488
+ var stack = (_grid$cells$row$col$f = (_grid$cells$row$col = grid.cells[row][col]) === null || _grid$cells$row$col === void 0 ? void 0 : _grid$cells$row$col.filter(function(gridCellNode) {
7489
+ return gridCellNode.clientRects.find(function(clientRect) {
7490
+ var rectX = clientRect.left;
7491
+ var rectY = clientRect.top;
7492
+ return x <= rectX + clientRect.width && x >= rectX && y <= rectY + clientRect.height && y >= rectY;
7493
+ });
7494
+ })) !== null && _grid$cells$row$col$f !== void 0 ? _grid$cells$row$col$f : [];
7495
+ var gridContainer = grid.container;
7496
+ if (gridContainer) {
7497
+ stack = getRectStack(gridContainer._grid, gridContainer.boundingClientRect, true).concat(stack);
7498
+ }
7499
+ if (!recursed) {
7500
+ stack = stack.sort(visuallySort).map(function(vNode) {
7501
+ return vNode.actualNode;
7502
+ }).concat(document.documentElement).filter(function(node, index, array) {
7503
+ return array.indexOf(node) === index;
7504
+ });
7505
+ }
7506
+ return stack;
7507
+ }
7397
7508
  function isStackingContext(vNode, parentVNode) {
7398
7509
  var position = vNode.getComputedStylePropertyValue('position');
7399
7510
  var zIndex = vNode.getComputedStylePropertyValue('z-index');
@@ -7477,21 +7588,21 @@
7477
7588
  return floated;
7478
7589
  }
7479
7590
  function getPositionOrder(vNode) {
7480
- if (vNode.getComputedStylePropertyValue('position') === 'static') {
7481
- if (vNode.getComputedStylePropertyValue('display').indexOf('inline') !== -1) {
7482
- return 2;
7483
- }
7484
- if (isFloated(vNode)) {
7485
- return 1;
7486
- }
7487
- return 0;
7591
+ if (vNode.getComputedStylePropertyValue('display').indexOf('inline') !== -1) {
7592
+ return 2;
7593
+ }
7594
+ if (isFloated(vNode)) {
7595
+ return 1;
7488
7596
  }
7489
- return 3;
7597
+ return 0;
7490
7598
  }
7491
7599
  function visuallySort(a, b) {
7492
- for (var _i5 = 0; _i5 < a._stackingOrder.length; _i5++) {
7600
+ var length = Math.max(a._stackingOrder.length, b._stackingOrder.length);
7601
+ for (var _i5 = 0; _i5 < length; _i5++) {
7493
7602
  if (typeof b._stackingOrder[_i5] === 'undefined') {
7494
7603
  return -1;
7604
+ } else if (typeof a._stackingOrder[_i5] === 'undefined') {
7605
+ return 1;
7495
7606
  }
7496
7607
  if (b._stackingOrder[_i5] > a._stackingOrder[_i5]) {
7497
7608
  return 1;
@@ -7537,11 +7648,25 @@
7537
7648
  function getStackingOrder(vNode, parentVNode) {
7538
7649
  var stackingOrder = parentVNode._stackingOrder.slice();
7539
7650
  var zIndex = vNode.getComputedStylePropertyValue('z-index');
7540
- if (zIndex !== 'auto') {
7651
+ var positioned = vNode.getComputedStylePropertyValue('position') !== 'static';
7652
+ var floated = vNode.getComputedStylePropertyValue('float') !== 'none';
7653
+ if (positioned && ![ 'auto', '0' ].includes(zIndex)) {
7654
+ while (stackingOrder.find(function(value) {
7655
+ return value % 1 !== 0;
7656
+ })) {
7657
+ var index = stackingOrder.findIndex(function(value) {
7658
+ return value % 1 !== 0;
7659
+ });
7660
+ stackingOrder.splice(index, 1);
7661
+ }
7541
7662
  stackingOrder[stackingOrder.length - 1] = parseInt(zIndex);
7542
7663
  }
7543
7664
  if (isStackingContext(vNode, parentVNode)) {
7544
7665
  stackingOrder.push(0);
7666
+ } else if (positioned) {
7667
+ stackingOrder.push(.5);
7668
+ } else if (floated) {
7669
+ stackingOrder.push(.25);
7545
7670
  }
7546
7671
  return stackingOrder;
7547
7672
  }
@@ -7549,14 +7674,14 @@
7549
7674
  var scrollRegionParent = null;
7550
7675
  var checkedNodes = [ vNode ];
7551
7676
  while (parentVNode) {
7552
- if (parentVNode._scrollRegionParent) {
7553
- scrollRegionParent = parentVNode._scrollRegionParent;
7554
- break;
7555
- }
7556
7677
  if (get_scroll_default(parentVNode.actualNode)) {
7557
7678
  scrollRegionParent = parentVNode;
7558
7679
  break;
7559
7680
  }
7681
+ if (parentVNode._scrollRegionParent) {
7682
+ scrollRegionParent = parentVNode._scrollRegionParent;
7683
+ break;
7684
+ }
7560
7685
  checkedNodes.push(parentVNode);
7561
7686
  parentVNode = get_node_from_tree_default(parentVNode.actualNode.parentElement || parentVNode.actualNode.parentNode);
7562
7687
  }
@@ -7568,12 +7693,14 @@
7568
7693
  function addNodeToGrid(grid, vNode) {
7569
7694
  vNode._grid = grid;
7570
7695
  vNode.clientRects.forEach(function(rect) {
7696
+ var _grid$numCols;
7571
7697
  var x = rect.left;
7572
7698
  var y = rect.top;
7573
7699
  var startRow = y / gridSize | 0;
7574
7700
  var startCol = x / gridSize | 0;
7575
7701
  var endRow = (y + rect.height) / gridSize | 0;
7576
7702
  var endCol = (x + rect.width) / gridSize | 0;
7703
+ grid.numCols = Math.max((_grid$numCols = grid.numCols) !== null && _grid$numCols !== void 0 ? _grid$numCols : 0, endCol);
7577
7704
  for (var row = startRow; row <= endRow; row++) {
7578
7705
  grid.cells[row] = grid.cells[row] || [];
7579
7706
  for (var col = startCol; col <= endCol; col++) {
@@ -7585,86 +7712,6 @@
7585
7712
  }
7586
7713
  });
7587
7714
  }
7588
- function createGrid() {
7589
- var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.body;
7590
- var rootGrid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
7591
- container: null,
7592
- cells: []
7593
- };
7594
- var parentVNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
7595
- if (!parentVNode) {
7596
- var vNode = get_node_from_tree_default(document.documentElement);
7597
- if (!vNode) {
7598
- vNode = new virtual_node_default(document.documentElement);
7599
- }
7600
- vNode._stackingOrder = [ 0 ];
7601
- addNodeToGrid(rootGrid, vNode);
7602
- if (get_scroll_default(vNode.actualNode)) {
7603
- var subGrid = {
7604
- container: vNode,
7605
- cells: []
7606
- };
7607
- vNode._subGrid = subGrid;
7608
- }
7609
- }
7610
- var treeWalker = document.createTreeWalker(root, window.NodeFilter.SHOW_ELEMENT, null, false);
7611
- var node = parentVNode ? treeWalker.nextNode() : treeWalker.currentNode;
7612
- while (node) {
7613
- var _vNode = get_node_from_tree_default(node);
7614
- if (node.parentElement) {
7615
- parentVNode = get_node_from_tree_default(node.parentElement);
7616
- } else if (node.parentNode && get_node_from_tree_default(node.parentNode)) {
7617
- parentVNode = get_node_from_tree_default(node.parentNode);
7618
- }
7619
- if (!_vNode) {
7620
- _vNode = new axe.VirtualNode(node, parentVNode);
7621
- }
7622
- _vNode._stackingOrder = getStackingOrder(_vNode, parentVNode);
7623
- var scrollRegionParent = findScrollRegionParent(_vNode, parentVNode);
7624
- var grid = scrollRegionParent ? scrollRegionParent._subGrid : rootGrid;
7625
- if (get_scroll_default(_vNode.actualNode)) {
7626
- var _subGrid = {
7627
- container: _vNode,
7628
- cells: []
7629
- };
7630
- _vNode._subGrid = _subGrid;
7631
- }
7632
- var rect = _vNode.boundingClientRect;
7633
- if (rect.width !== 0 && rect.height !== 0 && is_visible_default(node)) {
7634
- addNodeToGrid(grid, _vNode);
7635
- }
7636
- if (is_shadow_root_default(node)) {
7637
- createGrid(node.shadowRoot, grid, _vNode);
7638
- }
7639
- node = treeWalker.nextNode();
7640
- }
7641
- }
7642
- function getRectStack(grid, rect) {
7643
- var recursed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7644
- var x = rect.left + rect.width / 2;
7645
- var y = rect.top + rect.height / 2;
7646
- var row = y / gridSize | 0;
7647
- var col = x / gridSize | 0;
7648
- var stack = grid.cells[row][col].filter(function(gridCellNode) {
7649
- return gridCellNode.clientRects.find(function(clientRect) {
7650
- var rectX = clientRect.left;
7651
- var rectY = clientRect.top;
7652
- return x <= rectX + clientRect.width && x >= rectX && y <= rectY + clientRect.height && y >= rectY;
7653
- });
7654
- });
7655
- var gridContainer = grid.container;
7656
- if (gridContainer) {
7657
- stack = getRectStack(gridContainer._grid, gridContainer.boundingClientRect, true).concat(stack);
7658
- }
7659
- if (!recursed) {
7660
- stack = stack.sort(visuallySort).map(function(vNode) {
7661
- return vNode.actualNode;
7662
- }).concat(document.documentElement).filter(function(node, index, array) {
7663
- return array.indexOf(node) === index;
7664
- });
7665
- }
7666
- return stack;
7667
- }
7668
7715
  function getElementStack(node) {
7669
7716
  if (!cache_default.get('gridCreated')) {
7670
7717
  createGrid();
@@ -7808,7 +7855,7 @@
7808
7855
  ref = idrefs_default(virtualNode.actualNode, 'aria-labelledby');
7809
7856
  candidate = ref.map(function(thing) {
7810
7857
  var vNode = get_node_from_tree_default(thing);
7811
- return vNode ? visible_virtual_default(vNode, true) : '';
7858
+ return vNode ? visible_virtual_default(vNode) : '';
7812
7859
  }).join(' ').trim();
7813
7860
  if (candidate) {
7814
7861
  return candidate;
@@ -7827,8 +7874,8 @@
7827
7874
  var hiddenTextElms = [ 'HEAD', 'TITLE', 'TEMPLATE', 'SCRIPT', 'STYLE', 'IFRAME', 'OBJECT', 'VIDEO', 'AUDIO', 'NOSCRIPT' ];
7828
7875
  function hasChildTextNodes(elm) {
7829
7876
  if (!hiddenTextElms.includes(elm.actualNode.nodeName.toUpperCase())) {
7830
- return elm.children.some(function(_ref9) {
7831
- var actualNode = _ref9.actualNode;
7877
+ return elm.children.some(function(_ref10) {
7878
+ var actualNode = _ref10.actualNode;
7832
7879
  return actualNode.nodeType === 3 && actualNode.nodeValue.trim();
7833
7880
  });
7834
7881
  }
@@ -8449,6 +8496,11 @@
8449
8496
  allowedAttrs: [ 'aria-expanded' ],
8450
8497
  superclassRole: [ 'landmark' ]
8451
8498
  },
8499
+ comment: {
8500
+ type: 'structure',
8501
+ allowedAttrs: [ 'aria-level', 'aria-posinset', 'aria-setsize' ],
8502
+ superclassRole: [ 'article' ]
8503
+ },
8452
8504
  definition: {
8453
8505
  type: 'structure',
8454
8506
  allowedAttrs: [ 'aria-expanded' ],
@@ -8560,7 +8612,7 @@
8560
8612
  },
8561
8613
  listbox: {
8562
8614
  type: 'composite',
8563
- requiredOwned: [ 'option' ],
8615
+ requiredOwned: [ 'group', 'option' ],
8564
8616
  allowedAttrs: [ 'aria-multiselectable', 'aria-readonly', 'aria-required', 'aria-activedescendant', 'aria-expanded', 'aria-orientation' ],
8565
8617
  superclassRole: [ 'select' ],
8566
8618
  accessibleNameRequired: true
@@ -8639,6 +8691,11 @@
8639
8691
  accessibleNameRequired: true,
8640
8692
  childrenPresentational: true
8641
8693
  },
8694
+ mark: {
8695
+ type: 'structure',
8696
+ superclassRole: [ 'section' ],
8697
+ prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]
8698
+ },
8642
8699
  navigation: {
8643
8700
  type: 'landmark',
8644
8701
  allowedAttrs: [ 'aria-expanded' ],
@@ -8656,7 +8713,7 @@
8656
8713
  },
8657
8714
  option: {
8658
8715
  type: 'widget',
8659
- requiredContext: [ 'listbox' ],
8716
+ requiredContext: [ 'group', 'listbox' ],
8660
8717
  allowedAttrs: [ 'aria-selected', 'aria-checked', 'aria-posinset', 'aria-setsize' ],
8661
8718
  superclassRole: [ 'input' ],
8662
8719
  accessibleNameRequired: true,
@@ -8818,6 +8875,12 @@
8818
8875
  nameFromContent: true,
8819
8876
  childrenPresentational: true
8820
8877
  },
8878
+ suggestion: {
8879
+ type: 'structure',
8880
+ requiredOwned: [ 'insertion', 'deletion' ],
8881
+ superclassRole: [ 'section' ],
8882
+ prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]
8883
+ },
8821
8884
  tab: {
8822
8885
  type: 'widget',
8823
8886
  requiredContext: [ 'tablist' ],
@@ -8945,13 +9008,12 @@
8945
9008
  },
8946
9009
  'doc-biblioentry': {
8947
9010
  type: 'listitem',
8948
- requiredContext: [ 'doc-bibliography' ],
8949
9011
  allowedAttrs: [ 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize' ],
8950
- superclassRole: [ 'listitem' ]
9012
+ superclassRole: [ 'listitem' ],
9013
+ deprecated: true
8951
9014
  },
8952
9015
  'doc-bibliography': {
8953
9016
  type: 'landmark',
8954
- requiredOwned: [ 'doc-biblioentry' ],
8955
9017
  allowedAttrs: [ 'aria-expanded' ],
8956
9018
  superclassRole: [ 'landmark' ]
8957
9019
  },
@@ -8998,15 +9060,14 @@
8998
9060
  },
8999
9061
  'doc-endnote': {
9000
9062
  type: 'listitem',
9001
- requiredContext: [ 'doc-endnotes' ],
9002
9063
  allowedAttrs: [ 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize' ],
9003
9064
  superclassRole: [ 'listitem' ]
9004
9065
  },
9005
9066
  'doc-endnotes': {
9006
9067
  type: 'landmark',
9007
- requiredOwned: [ 'doc-endnote' ],
9008
9068
  allowedAttrs: [ 'aria-expanded' ],
9009
- superclassRole: [ 'landmark' ]
9069
+ superclassRole: [ 'landmark' ],
9070
+ deprecated: true
9010
9071
  },
9011
9072
  'doc-epigraph': {
9012
9073
  type: 'section',
@@ -9040,7 +9101,6 @@
9040
9101
  },
9041
9102
  'doc-glossary': {
9042
9103
  type: 'landmark',
9043
- requiredOwned: [ 'definition', 'term' ],
9044
9104
  allowedAttrs: [ 'aria-expanded' ],
9045
9105
  superclassRole: [ 'landmark' ]
9046
9106
  },
@@ -9166,8 +9226,16 @@
9166
9226
  allowedRoles: true
9167
9227
  },
9168
9228
  area: {
9229
+ variant: {
9230
+ href: {
9231
+ matches: '[href]',
9232
+ allowedRoles: false
9233
+ },
9234
+ default: {
9235
+ allowedRoles: [ 'button', 'link' ]
9236
+ }
9237
+ },
9169
9238
  contentTypes: [ 'phrasing', 'flow' ],
9170
- allowedRoles: false,
9171
9239
  namingMethods: [ 'altText' ]
9172
9240
  },
9173
9241
  article: {
@@ -9407,11 +9475,13 @@
9407
9475
  img: {
9408
9476
  variant: {
9409
9477
  nonEmptyAlt: {
9410
- matches: {
9478
+ matches: [ {
9411
9479
  attributes: {
9412
9480
  alt: '/.+/'
9413
9481
  }
9414
- },
9482
+ }, {
9483
+ hasAccessibleName: true
9484
+ } ],
9415
9485
  allowedRoles: [ 'button', 'checkbox', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'progressbar', 'scrollbar', 'separator', 'slider', 'switch', 'tab', 'treeitem', 'doc-cover' ]
9416
9486
  },
9417
9487
  usemap: {
@@ -9692,7 +9762,7 @@
9692
9762
  },
9693
9763
  section: {
9694
9764
  contentTypes: [ 'sectioning', 'flow' ],
9695
- allowedRoles: [ 'alert', 'alertdialog', 'application', 'banner', 'complementary', 'contentinfo', 'dialog', 'document', 'feed', 'log', 'main', 'marquee', 'navigation', 'none', 'note', 'presentation', 'search', 'status', 'tabpanel', 'doc-abstract', 'doc-acknowledgments', 'doc-afterword', 'doc-appendix', 'doc-bibliography', 'doc-chapter', 'doc-colophon', 'doc-conclusion', 'doc-credit', 'doc-credits', 'doc-dedication', 'doc-endnotes', 'doc-epigraph', 'doc-epilogue', 'doc-errata', 'doc-example', 'doc-foreword', 'doc-glossary', 'doc-index', 'doc-introduction', 'doc-notice', 'doc-pagelist', 'doc-part', 'doc-preface', 'doc-prologue', 'doc-pullquote', 'doc-qna', 'doc-toc' ],
9765
+ allowedRoles: [ 'alert', 'alertdialog', 'application', 'banner', 'complementary', 'contentinfo', 'dialog', 'document', 'feed', 'group', 'log', 'main', 'marquee', 'navigation', 'none', 'note', 'presentation', 'search', 'status', 'tabpanel', 'doc-abstract', 'doc-acknowledgments', 'doc-afterword', 'doc-appendix', 'doc-bibliography', 'doc-chapter', 'doc-colophon', 'doc-conclusion', 'doc-credit', 'doc-credits', 'doc-dedication', 'doc-endnotes', 'doc-epigraph', 'doc-epilogue', 'doc-errata', 'doc-example', 'doc-foreword', 'doc-glossary', 'doc-index', 'doc-introduction', 'doc-notice', 'doc-pagelist', 'doc-part', 'doc-preface', 'doc-prologue', 'doc-pullquote', 'doc-qna', 'doc-toc' ],
9696
9766
  shadowRoot: true
9697
9767
  },
9698
9768
  select: {
@@ -9836,7 +9906,7 @@
9836
9906
  },
9837
9907
  wbr: {
9838
9908
  contentTypes: [ 'phrasing', 'flow' ],
9839
- allowedRoles: true
9909
+ allowedRoles: [ 'presentation', 'none' ]
9840
9910
  }
9841
9911
  };
9842
9912
  var html_elms_default = htmlElms;
@@ -10028,8 +10098,8 @@
10028
10098
  }
10029
10099
  return parseFloat(value);
10030
10100
  }
10031
- function hslToRgb(_ref10) {
10032
- var _ref11 = _slicedToArray(_ref10, 4), hue = _ref11[0], saturation = _ref11[1], lightness = _ref11[2], alpha = _ref11[3];
10101
+ function hslToRgb(_ref11) {
10102
+ var _ref12 = _slicedToArray(_ref11, 4), hue = _ref12[0], saturation = _ref12[1], lightness = _ref12[2], alpha = _ref12[3];
10033
10103
  saturation /= 255;
10034
10104
  lightness /= 255;
10035
10105
  var high = (1 - Math.abs(2 * lightness - 1)) * saturation;
@@ -10049,8 +10119,8 @@
10049
10119
  } else {
10050
10120
  colors = [ high, 0, low ];
10051
10121
  }
10052
- return colors.map(function(color10) {
10053
- return Math.round((color10 + base) * 255);
10122
+ return colors.map(function(color11) {
10123
+ return Math.round((color11 + base) * 255);
10054
10124
  }).concat(alpha);
10055
10125
  }
10056
10126
  function Color(red, green, blue, alpha) {
@@ -10068,7 +10138,7 @@
10068
10138
  var colorFnRegex = /^((?:rgb|hsl)a?)\s*\(([^\)]*)\)/i;
10069
10139
  this.parseString = function parseString(colorString) {
10070
10140
  if (standards_default.cssColors[colorString] || colorString === 'transparent') {
10071
- var _ref12 = standards_default.cssColors[colorString] || [ 0, 0, 0 ], _ref13 = _slicedToArray(_ref12, 3), red2 = _ref13[0], green2 = _ref13[1], blue2 = _ref13[2];
10141
+ var _ref13 = standards_default.cssColors[colorString] || [ 0, 0, 0 ], _ref14 = _slicedToArray(_ref13, 3), red2 = _ref14[0], green2 = _ref14[1], blue2 = _ref14[2];
10072
10142
  this.red = red2;
10073
10143
  this.green = green2;
10074
10144
  this.blue = blue2;
@@ -10118,7 +10188,7 @@
10118
10188
  }
10119
10189
  };
10120
10190
  this.parseColorFnString = function parseColorFnString(colorString) {
10121
- var _ref14 = colorString.match(colorFnRegex) || [], _ref15 = _slicedToArray(_ref14, 3), colorFunc = _ref15[1], colorValStr = _ref15[2];
10191
+ var _ref15 = colorString.match(colorFnRegex) || [], _ref16 = _slicedToArray(_ref15, 3), colorFunc = _ref16[1], colorValStr = _ref16[2];
10122
10192
  if (!colorFunc || !colorValStr) {
10123
10193
  return;
10124
10194
  }
@@ -10201,6 +10271,17 @@
10201
10271
  return finalElements;
10202
10272
  }
10203
10273
  var reduce_to_elements_below_floating_default = reduceToElementsBelowFloating;
10274
+ function _visuallyContains(node, parent) {
10275
+ var parentScrollAncestor = getScrollAncestor(parent);
10276
+ do {
10277
+ var nextScrollAncestor = getScrollAncestor(node);
10278
+ if (nextScrollAncestor === parentScrollAncestor || nextScrollAncestor === parent) {
10279
+ return contains2(node, parent);
10280
+ }
10281
+ node = nextScrollAncestor;
10282
+ } while (node);
10283
+ return false;
10284
+ }
10204
10285
  function getScrollAncestor(node) {
10205
10286
  var vNode = get_node_from_tree_default(node);
10206
10287
  var ancestor = vNode.parent;
@@ -10212,47 +10293,30 @@
10212
10293
  }
10213
10294
  }
10214
10295
  function contains2(node, parent) {
10215
- var rectBound = node.getBoundingClientRect();
10216
- var margin = .01;
10217
- var rect = {
10218
- top: rectBound.top + margin,
10219
- bottom: rectBound.bottom - margin,
10220
- left: rectBound.left + margin,
10221
- right: rectBound.right - margin
10222
- };
10223
- var parentRect = parent.getBoundingClientRect();
10224
- var parentTop = parentRect.top;
10225
- var parentLeft = parentRect.left;
10226
- var parentScrollArea = {
10227
- top: parentTop - parent.scrollTop,
10228
- bottom: parentTop - parent.scrollTop + parent.scrollHeight,
10229
- left: parentLeft - parent.scrollLeft,
10230
- right: parentLeft - parent.scrollLeft + parent.scrollWidth
10231
- };
10232
10296
  var style = window.getComputedStyle(parent);
10297
+ var overflow = style.getPropertyValue('overflow');
10233
10298
  if (style.getPropertyValue('display') === 'inline') {
10234
10299
  return true;
10235
10300
  }
10236
- if (rect.left < parentScrollArea.left && rect.left < parentRect.left || rect.top < parentScrollArea.top && rect.top < parentRect.top || rect.right > parentScrollArea.right && rect.right > parentRect.right || rect.bottom > parentScrollArea.bottom && rect.bottom > parentRect.bottom) {
10237
- return false;
10301
+ var clientRects = Array.from(node.getClientRects());
10302
+ var boundingRect = parent.getBoundingClientRect();
10303
+ var rect = {
10304
+ left: boundingRect.left,
10305
+ top: boundingRect.top,
10306
+ width: boundingRect.width,
10307
+ height: boundingRect.height
10308
+ };
10309
+ if ([ 'scroll', 'auto' ].includes(overflow) || parent instanceof window.HTMLHtmlElement) {
10310
+ rect.width = parent.scrollWidth;
10311
+ rect.height = parent.scrollHeight;
10238
10312
  }
10239
- if (rect.right > parentRect.right || rect.bottom > parentRect.bottom) {
10240
- return style.overflow === 'scroll' || style.overflow === 'auto' || style.overflow === 'hidden' || parent instanceof window.HTMLBodyElement || parent instanceof window.HTMLHtmlElement;
10313
+ if (clientRects.length === 1 && overflow === 'hidden' && style.getPropertyValue('white-space') === 'nowrap') {
10314
+ clientRects[0] = rect;
10241
10315
  }
10242
- return true;
10243
- }
10244
- function visuallyContains(node, parent) {
10245
- var parentScrollAncestor = getScrollAncestor(parent);
10246
- do {
10247
- var nextScrollAncestor = getScrollAncestor(node);
10248
- if (nextScrollAncestor === parentScrollAncestor || nextScrollAncestor === parent) {
10249
- return contains2(node, parent);
10250
- }
10251
- node = nextScrollAncestor;
10252
- } while (node);
10253
- return false;
10316
+ return clientRects.some(function(clientRect) {
10317
+ return !(Math.ceil(clientRect.left) < Math.floor(rect.left) || Math.ceil(clientRect.top) < Math.floor(rect.top) || Math.floor(clientRect.left + clientRect.width) > Math.ceil(rect.left + rect.width) || Math.floor(clientRect.top + clientRect.height) > Math.ceil(rect.top + rect.height));
10318
+ });
10254
10319
  }
10255
- var visually_contains_default = visuallyContains;
10256
10320
  function shadowElementsFromPoint(nodeX, nodeY) {
10257
10321
  var root = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;
10258
10322
  var i = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
@@ -10265,7 +10329,7 @@
10265
10329
  if (is_shadow_root_default(elm)) {
10266
10330
  var shadowStack = shadowElementsFromPoint(nodeX, nodeY, elm.shadowRoot, i + 1);
10267
10331
  stack = stack.concat(shadowStack);
10268
- if (stack.length && visually_contains_default(stack[0], elm)) {
10332
+ if (stack.length && _visuallyContains(stack[0], elm)) {
10269
10333
  stack.push(elm);
10270
10334
  }
10271
10335
  } else {
@@ -10407,7 +10471,7 @@
10407
10471
  key: 'props',
10408
10472
  get: function get() {
10409
10473
  if (!this._cache.hasOwnProperty('props')) {
10410
- var _this$actualNode = this.actualNode, nodeType = _this$actualNode.nodeType, nodeName2 = _this$actualNode.nodeName, id = _this$actualNode.id, multiple = _this$actualNode.multiple, nodeValue = _this$actualNode.nodeValue, value = _this$actualNode.value;
10474
+ var _this$actualNode = this.actualNode, nodeType = _this$actualNode.nodeType, nodeName2 = _this$actualNode.nodeName, id = _this$actualNode.id, multiple = _this$actualNode.multiple, nodeValue = _this$actualNode.nodeValue, value = _this$actualNode.value, selected = _this$actualNode.selected;
10411
10475
  this._cache.props = {
10412
10476
  nodeType: nodeType,
10413
10477
  nodeName: this._isXHTML ? nodeName2 : nodeName2.toLowerCase(),
@@ -10415,7 +10479,8 @@
10415
10479
  type: this._type,
10416
10480
  multiple: multiple,
10417
10481
  nodeValue: nodeValue,
10418
- value: value
10482
+ value: value,
10483
+ selected: selected
10419
10484
  };
10420
10485
  }
10421
10486
  return this._cache.props;
@@ -10795,7 +10860,7 @@
10795
10860
  return {};
10796
10861
  }
10797
10862
  var navigator = win.navigator, innerHeight = win.innerHeight, innerWidth = win.innerWidth;
10798
- var _ref16 = getOrientation(win) || {}, angle = _ref16.angle, type = _ref16.type;
10863
+ var _ref17 = getOrientation(win) || {}, angle = _ref17.angle, type = _ref17.type;
10799
10864
  return {
10800
10865
  userAgent: navigator.userAgent,
10801
10866
  windowWidth: innerWidth,
@@ -10804,12 +10869,12 @@
10804
10869
  orientationType: type
10805
10870
  };
10806
10871
  }
10807
- function getOrientation(_ref17) {
10808
- var screen = _ref17.screen;
10872
+ function getOrientation(_ref18) {
10873
+ var screen = _ref18.screen;
10809
10874
  return screen.orientation || screen.msOrientation || screen.mozOrientation;
10810
10875
  }
10811
- function createFrameContext(frame, _ref18) {
10812
- var focusable = _ref18.focusable, page = _ref18.page;
10876
+ function createFrameContext(frame, _ref19) {
10877
+ var focusable = _ref19.focusable, page = _ref19.page;
10813
10878
  return {
10814
10879
  node: frame,
10815
10880
  include: [],
@@ -10847,8 +10912,8 @@
10847
10912
  }
10848
10913
  context5.frames.push(createFrameContext(frame, context5));
10849
10914
  }
10850
- function isPageContext(_ref19) {
10851
- var include = _ref19.include;
10915
+ function isPageContext(_ref20) {
10916
+ var include = _ref20.include;
10852
10917
  return include.length === 1 && include[0].actualNode === document.documentElement;
10853
10918
  }
10854
10919
  function pushUniqueFrameSelector(context5, type, selectorArray) {
@@ -10948,8 +11013,8 @@
10948
11013
  });
10949
11014
  }
10950
11015
  }
10951
- function getRootNode2(_ref20) {
10952
- var include = _ref20.include, exclude = _ref20.exclude;
11016
+ function getRootNode2(_ref21) {
11017
+ var include = _ref21.include, exclude = _ref21.exclude;
10953
11018
  var selectors = Array.from(include).concat(Array.from(exclude));
10954
11019
  for (var i = 0; i < selectors.length; ++i) {
10955
11020
  var item = selectors[i];
@@ -10997,9 +11062,13 @@
10997
11062
  this.include.sort(node_sorter_default);
10998
11063
  }
10999
11064
  function _getFrameContexts(context5) {
11065
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
11066
+ if (options.iframes === false) {
11067
+ return [];
11068
+ }
11000
11069
  var _Context = new Context(context5), frames = _Context.frames;
11001
- return frames.map(function(_ref21) {
11002
- var node = _ref21.node, frameContext = _objectWithoutProperties(_ref21, _excluded2);
11070
+ return frames.map(function(_ref22) {
11071
+ var node = _ref22.node, frameContext = _objectWithoutProperties(_ref22, _excluded2);
11003
11072
  frameContext.initiator = false;
11004
11073
  var frameSelector = _getAncestry(node);
11005
11074
  return {
@@ -11684,8 +11753,8 @@
11684
11753
  return matchExpressions(domTree, expressions, filter);
11685
11754
  }
11686
11755
  var query_selector_all_filter_default = querySelectorAllFilter;
11687
- function preloadCssom(_ref22) {
11688
- var _ref22$treeRoot = _ref22.treeRoot, treeRoot = _ref22$treeRoot === void 0 ? axe._tree[0] : _ref22$treeRoot;
11756
+ function preloadCssom(_ref23) {
11757
+ var _ref23$treeRoot = _ref23.treeRoot, treeRoot = _ref23$treeRoot === void 0 ? axe._tree[0] : _ref23$treeRoot;
11689
11758
  var rootNodes = getAllRootNodesInTree(treeRoot);
11690
11759
  if (!rootNodes.length) {
11691
11760
  return Promise.resolve();
@@ -11715,8 +11784,8 @@
11715
11784
  }
11716
11785
  function getCssomForAllRootNodes(rootNodes, convertDataToStylesheet) {
11717
11786
  var promises = [];
11718
- rootNodes.forEach(function(_ref23, index) {
11719
- var rootNode = _ref23.rootNode, shadowId = _ref23.shadowId;
11787
+ rootNodes.forEach(function(_ref24, index) {
11788
+ var rootNode = _ref24.rootNode, shadowId = _ref24.shadowId;
11720
11789
  var sheets = getStylesheetsOfRootNode(rootNode, shadowId, convertDataToStylesheet);
11721
11790
  if (!sheets) {
11722
11791
  return Promise.all(promises);
@@ -11797,10 +11866,10 @@
11797
11866
  return true;
11798
11867
  });
11799
11868
  }
11800
- function preloadMedia(_ref24) {
11801
- var _ref24$treeRoot = _ref24.treeRoot, treeRoot = _ref24$treeRoot === void 0 ? axe._tree[0] : _ref24$treeRoot;
11802
- var mediaVirtualNodes = query_selector_all_filter_default(treeRoot, 'video, audio', function(_ref25) {
11803
- var actualNode = _ref25.actualNode;
11869
+ function preloadMedia(_ref25) {
11870
+ var _ref25$treeRoot = _ref25.treeRoot, treeRoot = _ref25$treeRoot === void 0 ? axe._tree[0] : _ref25$treeRoot;
11871
+ var mediaVirtualNodes = query_selector_all_filter_default(treeRoot, 'video, audio', function(_ref26) {
11872
+ var actualNode = _ref26.actualNode;
11804
11873
  if (actualNode.hasAttribute('src')) {
11805
11874
  return !!actualNode.getAttribute('src');
11806
11875
  }
@@ -11812,8 +11881,8 @@
11812
11881
  }
11813
11882
  return true;
11814
11883
  });
11815
- return Promise.all(mediaVirtualNodes.map(function(_ref26) {
11816
- var actualNode = _ref26.actualNode;
11884
+ return Promise.all(mediaVirtualNodes.map(function(_ref27) {
11885
+ var actualNode = _ref27.actualNode;
11817
11886
  return isMediaElementReady(actualNode);
11818
11887
  }));
11819
11888
  }
@@ -12108,8 +12177,8 @@
12108
12177
  }
12109
12178
  }
12110
12179
  function setScrollState(scrollState) {
12111
- scrollState.forEach(function(_ref28) {
12112
- var elm = _ref28.elm, top = _ref28.top, left = _ref28.left;
12180
+ scrollState.forEach(function(_ref29) {
12181
+ var elm = _ref29.elm, top = _ref29.top, left = _ref29.left;
12113
12182
  return setScroll(elm, top, left);
12114
12183
  });
12115
12184
  }
@@ -12220,9 +12289,9 @@
12220
12289
  nodeTypeToName[nodeNamesToTypes[nodeName2]] = nodeName2;
12221
12290
  });
12222
12291
  function normaliseProps(serialNode) {
12223
- var _serialNode$nodeName, _ref29, _serialNode$nodeType;
12292
+ var _serialNode$nodeName, _ref30, _serialNode$nodeType;
12224
12293
  var nodeName2 = (_serialNode$nodeName = serialNode.nodeName) !== null && _serialNode$nodeName !== void 0 ? _serialNode$nodeName : nodeTypeToName[serialNode.nodeType];
12225
- var nodeType = (_ref29 = (_serialNode$nodeType = serialNode.nodeType) !== null && _serialNode$nodeType !== void 0 ? _serialNode$nodeType : nodeNamesToTypes[serialNode.nodeName]) !== null && _ref29 !== void 0 ? _ref29 : 1;
12294
+ var nodeType = (_ref30 = (_serialNode$nodeType = serialNode.nodeType) !== null && _serialNode$nodeType !== void 0 ? _serialNode$nodeType : nodeNamesToTypes[serialNode.nodeName]) !== null && _ref30 !== void 0 ? _ref30 : 1;
12226
12295
  assert_default(typeof nodeType === 'number', 'nodeType has to be a number, got \''.concat(nodeType, '\''));
12227
12296
  assert_default(typeof nodeName2 === 'string', 'nodeName has to be a string, got \''.concat(nodeName2, '\''));
12228
12297
  nodeName2 = nodeName2.toLowerCase();
@@ -12243,8 +12312,8 @@
12243
12312
  delete props.attributes;
12244
12313
  return Object.freeze(props);
12245
12314
  }
12246
- function normaliseAttrs(_ref30) {
12247
- var _ref30$attributes = _ref30.attributes, attributes4 = _ref30$attributes === void 0 ? {} : _ref30$attributes;
12315
+ function normaliseAttrs(_ref31) {
12316
+ var _ref31$attributes = _ref31.attributes, attributes4 = _ref31$attributes === void 0 ? {} : _ref31$attributes;
12248
12317
  var attrMap = {
12249
12318
  htmlFor: 'for',
12250
12319
  className: 'class'
@@ -12386,7 +12455,7 @@
12386
12455
  }
12387
12456
  var is_unsupported_role_default = isUnsupportedRole;
12388
12457
  function isValidRole(role) {
12389
- var _ref31 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, allowAbstract = _ref31.allowAbstract, _ref31$flagUnsupporte = _ref31.flagUnsupported, flagUnsupported = _ref31$flagUnsupporte === void 0 ? false : _ref31$flagUnsupporte;
12458
+ var _ref32 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, allowAbstract = _ref32.allowAbstract, _ref32$flagUnsupporte = _ref32.flagUnsupported, flagUnsupported = _ref32$flagUnsupporte === void 0 ? false : _ref32$flagUnsupporte;
12390
12459
  var roleDefinition = standards_default.ariaRoles[role];
12391
12460
  var isRoleUnsupported = is_unsupported_role_default(role);
12392
12461
  if (!roleDefinition || flagUnsupported && isRoleUnsupported) {
@@ -12396,7 +12465,7 @@
12396
12465
  }
12397
12466
  var is_valid_role_default = isValidRole;
12398
12467
  function getExplicitRole(vNode) {
12399
- var _ref32 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, fallback = _ref32.fallback, abstracts = _ref32.abstracts, dpub = _ref32.dpub;
12468
+ var _ref33 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, fallback = _ref33.fallback, abstracts = _ref33.abstracts, dpub = _ref33.dpub;
12400
12469
  vNode = vNode instanceof abstract_virtual_node_default ? vNode : get_node_from_tree_default(vNode);
12401
12470
  if (vNode.props.nodeType !== 1) {
12402
12471
  return null;
@@ -12667,6 +12736,10 @@
12667
12736
  return matcher === someString;
12668
12737
  }
12669
12738
  var from_primative_default = fromPrimative;
12739
+ function hasAccessibleName2(vNode, matcher) {
12740
+ return from_primative_default(!!accessible_text_virtual_default(vNode), matcher);
12741
+ }
12742
+ var has_accessible_name_default = hasAccessibleName2;
12670
12743
  function fromFunction(getValue, matcher) {
12671
12744
  var matcherType = _typeof(matcher);
12672
12745
  if (matcherType !== 'object' || Array.isArray(matcher) || matcher instanceof RegExp) {
@@ -12719,6 +12792,7 @@
12719
12792
  }
12720
12793
  var semantic_role_default = semanticRole;
12721
12794
  var matchers = {
12795
+ hasAccessibleName: has_accessible_name_default,
12722
12796
  attributes: attributes_default,
12723
12797
  condition: condition_default,
12724
12798
  explicitRole: explicit_role_default,
@@ -12753,6 +12827,7 @@
12753
12827
  return from_definition_default(vNode, definition);
12754
12828
  }
12755
12829
  var matches_default2 = matches5;
12830
+ matches_default2.hasAccessibleName = has_accessible_name_default;
12756
12831
  matches_default2.attributes = attributes_default;
12757
12832
  matches_default2.condition = condition_default;
12758
12833
  matches_default2.explicitRole = explicit_role_default;
@@ -12765,6 +12840,7 @@
12765
12840
  matches_default2.semanticRole = semantic_role_default;
12766
12841
  var matches_default3 = matches_default2;
12767
12842
  function getElementSpec(vNode) {
12843
+ var _ref34 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref34$noMatchAccessi = _ref34.noMatchAccessibleName, noMatchAccessibleName = _ref34$noMatchAccessi === void 0 ? false : _ref34$noMatchAccessi;
12768
12844
  var standard = standards_default.htmlElms[vNode.props.nodeName];
12769
12845
  if (!standard) {
12770
12846
  return {};
@@ -12778,6 +12854,12 @@
12778
12854
  continue;
12779
12855
  }
12780
12856
  var _variant$variantName = variant[variantName], matches14 = _variant$variantName.matches, props = _objectWithoutProperties(_variant$variantName, _excluded4);
12857
+ var matchProperties = Array.isArray(matches14) ? matches14 : [ matches14 ];
12858
+ for (var _i12 = 0; _i12 < matchProperties.length && noMatchAccessibleName; _i12++) {
12859
+ if (matchProperties[_i12].hasOwnProperty('hasAccessibleName')) {
12860
+ return standard;
12861
+ }
12862
+ }
12781
12863
  if (matches_default3(vNode, matches14)) {
12782
12864
  for (var propName in props) {
12783
12865
  if (props.hasOwnProperty(propName)) {
@@ -12795,7 +12877,7 @@
12795
12877
  }
12796
12878
  var get_element_spec_default = getElementSpec;
12797
12879
  function implicitRole2(node) {
12798
- var _ref33 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, chromium = _ref33.chromium;
12880
+ var _ref35 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, chromium = _ref35.chromium;
12799
12881
  var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);
12800
12882
  node = vNode.actualNode;
12801
12883
  if (!vNode) {
@@ -12845,8 +12927,8 @@
12845
12927
  }
12846
12928
  return getInheritedRole(vNode.parent, explicitRoleOptions);
12847
12929
  }
12848
- function resolveImplicitRole(vNode, _ref34) {
12849
- var chromium = _ref34.chromium, explicitRoleOptions = _objectWithoutProperties(_ref34, _excluded5);
12930
+ function resolveImplicitRole(vNode, _ref36) {
12931
+ var chromium = _ref36.chromium, explicitRoleOptions = _objectWithoutProperties(_ref36, _excluded5);
12850
12932
  var implicitRole3 = implicit_role_default(vNode, {
12851
12933
  chromium: chromium
12852
12934
  });
@@ -12866,8 +12948,8 @@
12866
12948
  return hasGlobalAria || is_focusable_default(vNode);
12867
12949
  }
12868
12950
  function resolveRole(node) {
12869
- var _ref35 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12870
- var noImplicit = _ref35.noImplicit, roleOptions = _objectWithoutProperties(_ref35, _excluded6);
12951
+ var _ref37 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12952
+ var noImplicit = _ref37.noImplicit, roleOptions = _objectWithoutProperties(_ref37, _excluded6);
12871
12953
  var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);
12872
12954
  if (vNode.props.nodeType !== 1) {
12873
12955
  return null;
@@ -12885,8 +12967,8 @@
12885
12967
  return explicitRole2;
12886
12968
  }
12887
12969
  function getRole(node) {
12888
- var _ref36 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12889
- var noPresentational = _ref36.noPresentational, options = _objectWithoutProperties(_ref36, _excluded7);
12970
+ var _ref38 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12971
+ var noPresentational = _ref38.noPresentational, options = _objectWithoutProperties(_ref38, _excluded7);
12890
12972
  var role = resolveRole(node, options);
12891
12973
  if (noPresentational && [ 'presentation', 'none' ].includes(role)) {
12892
12974
  return null;
@@ -12907,7 +12989,7 @@
12907
12989
  }
12908
12990
  var title_text_default = titleText;
12909
12991
  function namedFromContents(vNode) {
12910
- var _ref37 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, strict = _ref37.strict;
12992
+ var _ref39 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, strict = _ref39.strict;
12911
12993
  vNode = vNode instanceof abstract_virtual_node_default ? vNode : get_node_from_tree_default(vNode);
12912
12994
  if (vNode.props.nodeType !== 1) {
12913
12995
  return false;
@@ -12944,7 +13026,9 @@
12944
13026
  var alreadyProcessed2 = accessible_text_virtual_default.alreadyProcessed;
12945
13027
  context5.startNode = context5.startNode || virtualNode;
12946
13028
  var _context = context5, strict = _context.strict, inControlContext = _context.inControlContext, inLabelledByContext = _context.inLabelledByContext;
12947
- var _get_element_spec_def2 = get_element_spec_default(virtualNode), contentTypes = _get_element_spec_def2.contentTypes;
13029
+ var _get_element_spec_def2 = get_element_spec_default(virtualNode, {
13030
+ noMatchAccessibleName: true
13031
+ }), contentTypes = _get_element_spec_def2.contentTypes;
12948
13032
  if (alreadyProcessed2(virtualNode, context5) || virtualNode.props.nodeType !== 1 || contentTypes !== null && contentTypes !== void 0 && contentTypes.includes('embedded')) {
12949
13033
  return '';
12950
13034
  }
@@ -13030,12 +13114,12 @@
13030
13114
  button: ''
13031
13115
  };
13032
13116
  var nativeTextMethods = {
13033
- valueText: function valueText(_ref38) {
13034
- var actualNode = _ref38.actualNode;
13117
+ valueText: function valueText(_ref40) {
13118
+ var actualNode = _ref40.actualNode;
13035
13119
  return actualNode.value || '';
13036
13120
  },
13037
- buttonDefaultText: function buttonDefaultText(_ref39) {
13038
- var actualNode = _ref39.actualNode;
13121
+ buttonDefaultText: function buttonDefaultText(_ref41) {
13122
+ var actualNode = _ref41.actualNode;
13039
13123
  return defaultButtonValues[actualNode.type] || '';
13040
13124
  },
13041
13125
  tableCaptionText: descendantText.bind(null, 'caption'),
@@ -13055,8 +13139,8 @@
13055
13139
  function attrText(attr, vNode) {
13056
13140
  return vNode.attr(attr) || '';
13057
13141
  }
13058
- function descendantText(nodeName2, _ref40, context5) {
13059
- var actualNode = _ref40.actualNode;
13142
+ function descendantText(nodeName2, _ref42, context5) {
13143
+ var actualNode = _ref42.actualNode;
13060
13144
  nodeName2 = nodeName2.toLowerCase();
13061
13145
  var nodeNames2 = [ nodeName2, actualNode.nodeName.toLowerCase() ].join(',');
13062
13146
  var candidate = actualNode.querySelector(nodeNames2);
@@ -13082,7 +13166,9 @@
13082
13166
  return accName;
13083
13167
  }
13084
13168
  function findTextMethods(virtualNode) {
13085
- var elmSpec = get_element_spec_default(virtualNode);
13169
+ var elmSpec = get_element_spec_default(virtualNode, {
13170
+ noMatchAccessibleName: true
13171
+ });
13086
13172
  var methods = elmSpec.namingMethods || [];
13087
13173
  return methods.map(function(methodName) {
13088
13174
  return native_text_methods_default[methodName];
@@ -13169,7 +13255,7 @@
13169
13255
  }
13170
13256
  var options = query_selector_all_default(vNode, 'option');
13171
13257
  var selectedOptions = options.filter(function(option) {
13172
- return option.hasAttr('selected');
13258
+ return option.props.selected;
13173
13259
  });
13174
13260
  if (!selectedOptions.length) {
13175
13261
  selectedOptions.push(options[0]);
@@ -13250,8 +13336,8 @@
13250
13336
  }
13251
13337
  return virtualNode.props.nodeValue;
13252
13338
  }
13253
- function shouldIgnoreHidden(_ref41, context5) {
13254
- var actualNode = _ref41.actualNode;
13339
+ function shouldIgnoreHidden(_ref43, context5) {
13340
+ var actualNode = _ref43.actualNode;
13255
13341
  if (!actualNode) {
13256
13342
  return false;
13257
13343
  }
@@ -13542,7 +13628,7 @@
13542
13628
  locations: [ 'billing', 'shipping' ]
13543
13629
  };
13544
13630
  function isValidAutocomplete(autocompleteValue) {
13545
- var _ref42 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref42$looseTyped = _ref42.looseTyped, looseTyped = _ref42$looseTyped === void 0 ? false : _ref42$looseTyped, _ref42$stateTerms = _ref42.stateTerms, stateTerms = _ref42$stateTerms === void 0 ? [] : _ref42$stateTerms, _ref42$locations = _ref42.locations, locations = _ref42$locations === void 0 ? [] : _ref42$locations, _ref42$qualifiers = _ref42.qualifiers, qualifiers = _ref42$qualifiers === void 0 ? [] : _ref42$qualifiers, _ref42$standaloneTerm = _ref42.standaloneTerms, standaloneTerms = _ref42$standaloneTerm === void 0 ? [] : _ref42$standaloneTerm, _ref42$qualifiedTerms = _ref42.qualifiedTerms, qualifiedTerms = _ref42$qualifiedTerms === void 0 ? [] : _ref42$qualifiedTerms;
13631
+ var _ref44 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref44$looseTyped = _ref44.looseTyped, looseTyped = _ref44$looseTyped === void 0 ? false : _ref44$looseTyped, _ref44$stateTerms = _ref44.stateTerms, stateTerms = _ref44$stateTerms === void 0 ? [] : _ref44$stateTerms, _ref44$locations = _ref44.locations, locations = _ref44$locations === void 0 ? [] : _ref44$locations, _ref44$qualifiers = _ref44.qualifiers, qualifiers = _ref44$qualifiers === void 0 ? [] : _ref44$qualifiers, _ref44$standaloneTerm = _ref44.standaloneTerms, standaloneTerms = _ref44$standaloneTerm === void 0 ? [] : _ref44$standaloneTerm, _ref44$qualifiedTerms = _ref44.qualifiedTerms, qualifiedTerms = _ref44$qualifiedTerms === void 0 ? [] : _ref44$qualifiedTerms;
13546
13632
  autocompleteValue = autocompleteValue.toLowerCase().trim();
13547
13633
  stateTerms = stateTerms.concat(_autocomplete.stateTerms);
13548
13634
  if (stateTerms.includes(autocompleteValue) || autocompleteValue === '') {
@@ -13693,8 +13779,8 @@
13693
13779
  idRefs[id] = idRefs[id] || [];
13694
13780
  idRefs[id].push(node);
13695
13781
  }
13696
- for (var _i12 = 0; _i12 < refAttrs.length; ++_i12) {
13697
- var attr = refAttrs[_i12];
13782
+ for (var _i13 = 0; _i13 < refAttrs.length; ++_i13) {
13783
+ var attr = refAttrs[_i13];
13698
13784
  var attrValue = sanitize_default(node.getAttribute(attr) || '');
13699
13785
  if (!attrValue) {
13700
13786
  continue;
@@ -13706,8 +13792,8 @@
13706
13792
  }
13707
13793
  }
13708
13794
  }
13709
- for (var _i13 = 0; _i13 < node.children.length; _i13++) {
13710
- cacheIdRefs(node.children[_i13], idRefs, refAttrs);
13795
+ for (var _i14 = 0; _i14 < node.children.length; _i14++) {
13796
+ cacheIdRefs(node.children[_i14], idRefs, refAttrs);
13711
13797
  }
13712
13798
  }
13713
13799
  function getAccessibleRefs(node) {
@@ -15567,8 +15653,8 @@
15567
15653
  nodeName: [ 'abbr', 'address', 'canvas', 'div', 'p', 'pre', 'blockquote', 'ins', 'del', 'output', 'span', 'table', 'tbody', 'thead', 'tfoot', 'td', 'em', 'strong', 'small', 's', 'cite', 'q', 'dfn', 'abbr', 'time', 'code', 'var', 'samp', 'kbd', 'sub', 'sup', 'i', 'b', 'u', 'mark', 'ruby', 'rt', 'rp', 'bdi', 'bdo', 'br', 'wbr', 'th', 'tr' ]
15568
15654
  } ];
15569
15655
  lookupTable.evaluateRoleForElement = {
15570
- A: function A(_ref43) {
15571
- var node = _ref43.node, out = _ref43.out;
15656
+ A: function A(_ref45) {
15657
+ var node = _ref45.node, out = _ref45.out;
15572
15658
  if (node.namespaceURI === 'http://www.w3.org/2000/svg') {
15573
15659
  return true;
15574
15660
  }
@@ -15577,19 +15663,19 @@
15577
15663
  }
15578
15664
  return true;
15579
15665
  },
15580
- AREA: function AREA(_ref44) {
15581
- var node = _ref44.node;
15666
+ AREA: function AREA(_ref46) {
15667
+ var node = _ref46.node;
15582
15668
  return !node.href;
15583
15669
  },
15584
- BUTTON: function BUTTON(_ref45) {
15585
- var node = _ref45.node, role = _ref45.role, out = _ref45.out;
15670
+ BUTTON: function BUTTON(_ref47) {
15671
+ var node = _ref47.node, role = _ref47.role, out = _ref47.out;
15586
15672
  if (node.getAttribute('type') === 'menu') {
15587
15673
  return role === 'menuitem';
15588
15674
  }
15589
15675
  return out;
15590
15676
  },
15591
- IMG: function IMG(_ref46) {
15592
- var node = _ref46.node, role = _ref46.role, out = _ref46.out;
15677
+ IMG: function IMG(_ref48) {
15678
+ var node = _ref48.node, role = _ref48.role, out = _ref48.out;
15593
15679
  switch (node.alt) {
15594
15680
  case null:
15595
15681
  return out;
@@ -15601,8 +15687,8 @@
15601
15687
  return role !== 'presentation' && role !== 'none';
15602
15688
  }
15603
15689
  },
15604
- INPUT: function INPUT(_ref47) {
15605
- var node = _ref47.node, role = _ref47.role, out = _ref47.out;
15690
+ INPUT: function INPUT(_ref49) {
15691
+ var node = _ref49.node, role = _ref49.role, out = _ref49.out;
15606
15692
  switch (node.type) {
15607
15693
  case 'button':
15608
15694
  case 'image':
@@ -15632,32 +15718,32 @@
15632
15718
  return false;
15633
15719
  }
15634
15720
  },
15635
- LI: function LI(_ref48) {
15636
- var node = _ref48.node, out = _ref48.out;
15721
+ LI: function LI(_ref50) {
15722
+ var node = _ref50.node, out = _ref50.out;
15637
15723
  var hasImplicitListitemRole = axe.utils.matchesSelector(node, 'ol li, ul li');
15638
15724
  if (hasImplicitListitemRole) {
15639
15725
  return out;
15640
15726
  }
15641
15727
  return true;
15642
15728
  },
15643
- MENU: function MENU(_ref49) {
15644
- var node = _ref49.node;
15729
+ MENU: function MENU(_ref51) {
15730
+ var node = _ref51.node;
15645
15731
  if (node.getAttribute('type') === 'context') {
15646
15732
  return false;
15647
15733
  }
15648
15734
  return true;
15649
15735
  },
15650
- OPTION: function OPTION(_ref50) {
15651
- var node = _ref50.node;
15736
+ OPTION: function OPTION(_ref52) {
15737
+ var node = _ref52.node;
15652
15738
  var withinOptionList = axe.utils.matchesSelector(node, 'select > option, datalist > option, optgroup > option');
15653
15739
  return !withinOptionList;
15654
15740
  },
15655
- SELECT: function SELECT(_ref51) {
15656
- var node = _ref51.node, role = _ref51.role;
15741
+ SELECT: function SELECT(_ref53) {
15742
+ var node = _ref53.node, role = _ref53.role;
15657
15743
  return !node.multiple && node.size <= 1 && role === 'menu';
15658
15744
  },
15659
- SVG: function SVG(_ref52) {
15660
- var node = _ref52.node, out = _ref52.out;
15745
+ SVG: function SVG(_ref54) {
15746
+ var node = _ref54.node, out = _ref54.out;
15661
15747
  if (node.parentNode && node.parentNode.namespaceURI === 'http://www.w3.org/2000/svg') {
15662
15748
  return true;
15663
15749
  }
@@ -15785,10 +15871,36 @@
15785
15871
  if (Array.isArray(options[role])) {
15786
15872
  allowed = unique_array_default(options[role].concat(allowed));
15787
15873
  }
15874
+ var tableMap = cache_default.get('aria-allowed-attr-table');
15875
+ if (!tableMap) {
15876
+ tableMap = new WeakMap();
15877
+ cache_default.set('aria-allowed-attr-table', tableMap);
15878
+ }
15879
+ function validateRowAttrs() {
15880
+ if (virtualNode.parent && role === 'row') {
15881
+ var table5 = closest_default(virtualNode, 'table, [role="treegrid"], [role="table"], [role="grid"]');
15882
+ var tableRole = tableMap.get(table5);
15883
+ if (table5 && !tableRole) {
15884
+ tableRole = get_role_default(table5);
15885
+ tableMap.set(table5, tableRole);
15886
+ }
15887
+ if ([ 'table', 'grid' ].includes(tableRole) && role === 'row') {
15888
+ return true;
15889
+ }
15890
+ }
15891
+ }
15892
+ var ariaAttr = Array.isArray(options.validTreeRowAttrs) ? options.validTreeRowAttrs : [];
15893
+ var preChecks = {};
15894
+ ariaAttr.forEach(function(attr) {
15895
+ preChecks[attr] = validateRowAttrs;
15896
+ });
15788
15897
  if (role && allowed) {
15789
- for (var _i14 = 0; _i14 < attrs.length; _i14++) {
15790
- var attrName = attrs[_i14];
15791
- if (validate_attr_default(attrName) && !allowed.includes(attrName)) {
15898
+ for (var _i15 = 0; _i15 < attrs.length; _i15++) {
15899
+ var _preChecks$attrName;
15900
+ var attrName = attrs[_i15];
15901
+ if (validate_attr_default(attrName) && (_preChecks$attrName = preChecks[attrName]) !== null && _preChecks$attrName !== void 0 && _preChecks$attrName.call(preChecks)) {
15902
+ invalid.push(attrName + '="' + virtualNode.attr(attrName) + '"');
15903
+ } else if (validate_attr_default(attrName) && !allowed.includes(attrName)) {
15792
15904
  invalid.push(attrName + '="' + virtualNode.attr(attrName) + '"');
15793
15905
  }
15794
15906
  }
@@ -15845,6 +15957,13 @@
15845
15957
  return void 0;
15846
15958
  }
15847
15959
  if (idref) {
15960
+ if (!is_visible_default(idref, true)) {
15961
+ this.data({
15962
+ messageKey: 'hidden',
15963
+ values: token_list_default(attr2)
15964
+ });
15965
+ return false;
15966
+ }
15848
15967
  return idref.getAttribute('role') === 'alert' || idref.getAttribute('aria-live') === 'assertive' || idref.getAttribute('aria-live') === 'polite' || token_list_default(virtualNode.attr('aria-describedby')).indexOf(attr2) > -1;
15849
15968
  }
15850
15969
  return;
@@ -15936,8 +16055,8 @@
15936
16055
  required = unique_array_default(options[role], required);
15937
16056
  }
15938
16057
  if (role && required) {
15939
- for (var _i15 = 0, l = required.length; _i15 < l; _i15++) {
15940
- var attr = required[_i15];
16058
+ for (var _i16 = 0, l = required.length; _i16 < l; _i16++) {
16059
+ var attr = required[_i16];
15941
16060
  if (!virtualNode.attr(attr) && !(elmSpec.implicitAttrs && typeof elmSpec.implicitAttrs[attr] !== 'undefined')) {
15942
16061
  missing.push(attr);
15943
16062
  }
@@ -15958,8 +16077,8 @@
15958
16077
  function getOwnedRoles(virtualNode, required) {
15959
16078
  var ownedRoles = [];
15960
16079
  var ownedElements = get_owned_virtual_default(virtualNode);
15961
- var _loop4 = function _loop4(_i16) {
15962
- var ownedElement = ownedElements[_i16];
16080
+ var _loop4 = function _loop4(_i17) {
16081
+ var ownedElement = ownedElements[_i17];
15963
16082
  var role = get_role_default(ownedElement, {
15964
16083
  noPresentational: true
15965
16084
  });
@@ -15971,14 +16090,14 @@
15971
16090
  ownedRoles.push(role);
15972
16091
  }
15973
16092
  };
15974
- for (var _i16 = 0; _i16 < ownedElements.length; _i16++) {
15975
- _loop4(_i16);
16093
+ for (var _i17 = 0; _i17 < ownedElements.length; _i17++) {
16094
+ _loop4(_i17);
15976
16095
  }
15977
16096
  return ownedRoles;
15978
16097
  }
15979
16098
  function missingRequiredChildren(virtualNode, role, required, ownedRoles) {
15980
- for (var _i17 = 0; _i17 < ownedRoles.length; _i17++) {
15981
- var ownedRole = ownedRoles[_i17];
16099
+ for (var _i18 = 0; _i18 < ownedRoles.length; _i18++) {
16100
+ var ownedRole = ownedRoles[_i18];
15982
16101
  if (required.includes(ownedRole)) {
15983
16102
  required = required.filter(function(requiredRole) {
15984
16103
  return requiredRole !== ownedRole;
@@ -16065,8 +16184,8 @@
16065
16184
  }
16066
16185
  var owners = getAriaOwners(node);
16067
16186
  if (owners) {
16068
- for (var _i18 = 0, l = owners.length; _i18 < l; _i18++) {
16069
- missingParents = getMissingContext(get_node_from_tree_default(owners[_i18]), ownGroupRoles, missingParents, true);
16187
+ for (var _i19 = 0, l = owners.length; _i19 < l; _i19++) {
16188
+ missingParents = getMissingContext(get_node_from_tree_default(owners[_i19]), ownGroupRoles, missingParents, true);
16070
16189
  if (!missingParents) {
16071
16190
  return true;
16072
16191
  }
@@ -16111,9 +16230,9 @@
16111
16230
  function ariaValidAttrEvaluate(node, options, virtualNode) {
16112
16231
  options = Array.isArray(options.value) ? options.value : [];
16113
16232
  var invalid = [];
16114
- var aria46 = /^aria-/;
16233
+ var aria47 = /^aria-/;
16115
16234
  virtualNode.attrNames.forEach(function(attr) {
16116
- if (options.indexOf(attr) === -1 && aria46.test(attr) && !validate_attr_default(attr)) {
16235
+ if (options.indexOf(attr) === -1 && aria47.test(attr) && !validate_attr_default(attr)) {
16117
16236
  invalid.push(attr);
16118
16237
  }
16119
16238
  });
@@ -16129,7 +16248,7 @@
16129
16248
  var needsReview = '';
16130
16249
  var messageKey = '';
16131
16250
  var invalid = [];
16132
- var aria46 = /^aria-/;
16251
+ var aria47 = /^aria-/;
16133
16252
  var skipAttrs = [ 'aria-errormessage' ];
16134
16253
  var preChecks = {
16135
16254
  'aria-controls': function ariaControls() {
@@ -16160,7 +16279,7 @@
16160
16279
  }
16161
16280
  };
16162
16281
  virtualNode.attrNames.forEach(function(attrName) {
16163
- if (skipAttrs.includes(attrName) || options.includes(attrName) || !aria46.test(attrName)) {
16282
+ if (skipAttrs.includes(attrName) || options.includes(attrName) || !aria47.test(attrName)) {
16164
16283
  return;
16165
16284
  }
16166
16285
  var validValue;
@@ -16189,6 +16308,18 @@
16189
16308
  return true;
16190
16309
  }
16191
16310
  var aria_valid_attr_value_evaluate_default = ariaValidAttrValueEvaluate;
16311
+ function deprecatedroleEvaluate(node, options, virtualNode) {
16312
+ var role = get_role_default(virtualNode, {
16313
+ dpub: true,
16314
+ fallback: true
16315
+ });
16316
+ var roleDefinition = standards_default.ariaRoles[role];
16317
+ if (!(roleDefinition !== null && roleDefinition !== void 0 && roleDefinition.deprecated)) {
16318
+ return false;
16319
+ }
16320
+ this.data(role);
16321
+ return true;
16322
+ }
16192
16323
  function nonePresentationOnElementWithNoImplicitRole(virtualNode, explicitRoles) {
16193
16324
  var hasImplicitRole = implicit_role_default(virtualNode);
16194
16325
  return !hasImplicitRole && explicitRoles.length === 2 && explicitRoles.includes('none') && explicitRoles.includes('presentation');
@@ -16774,8 +16905,11 @@
16774
16905
  flattenColors: function flattenColors() {
16775
16906
  return flatten_colors_default;
16776
16907
  },
16908
+ flattenShadowColors: function flattenShadowColors() {
16909
+ return flatten_shadow_colors_default;
16910
+ },
16777
16911
  getBackgroundColor: function getBackgroundColor() {
16778
- return get_background_color_default;
16912
+ return _getBackgroundColor;
16779
16913
  },
16780
16914
  getBackgroundStack: function getBackgroundStack() {
16781
16915
  return get_background_stack_default;
@@ -16891,7 +17025,24 @@
16891
17025
  return null;
16892
17026
  }
16893
17027
  var filtered_rect_stack_default = filteredRectStack;
17028
+ var blendFunctions = {
17029
+ normal: function normal(Cb, Cs) {
17030
+ return Cs;
17031
+ }
17032
+ };
17033
+ function simpleAlphaCompositing(Cs, \u03b1s, Cb, \u03b1b, blendMode) {
17034
+ return Math.round(\u03b1s * (1 - \u03b1b) * Cs + \u03b1s * \u03b1b * blendFunctions[blendMode](Cb, Cs) + (1 - \u03b1s) * \u03b1b * Cb);
17035
+ }
16894
17036
  function flattenColors(fgColor, bgColor) {
17037
+ var blendMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'normal';
17038
+ var r = simpleAlphaCompositing(fgColor.red, fgColor.alpha, bgColor.red, bgColor.alpha, blendMode);
17039
+ var g = simpleAlphaCompositing(fgColor.green, fgColor.alpha, bgColor.green, bgColor.alpha, blendMode);
17040
+ var b = simpleAlphaCompositing(fgColor.blue, fgColor.alpha, bgColor.blue, bgColor.alpha, blendMode);
17041
+ var a = Math.max(0, Math.min(fgColor.alpha + bgColor.alpha * (1 - fgColor.alpha), 1));
17042
+ return new color_default(r, g, b, a);
17043
+ }
17044
+ var flatten_colors_default = flattenColors;
17045
+ function flattenColors2(fgColor, bgColor) {
16895
17046
  var alpha = fgColor.alpha;
16896
17047
  var r = (1 - alpha) * bgColor.red + alpha * fgColor.red;
16897
17048
  var g = (1 - alpha) * bgColor.green + alpha * fgColor.green;
@@ -16899,7 +17050,7 @@
16899
17050
  var a = fgColor.alpha + bgColor.alpha * (1 - fgColor.alpha);
16900
17051
  return new color_default(r, g, b, a);
16901
17052
  }
16902
- var flatten_colors_default = flattenColors;
17053
+ var flatten_shadow_colors_default = flattenColors2;
16903
17054
  function contentOverlapping(targetElement, bgNode) {
16904
17055
  var targetRect = targetElement.getClientRects()[0];
16905
17056
  var obscuringElements = shadow_elements_from_point_default(targetRect.left, targetRect.top);
@@ -16928,13 +17079,17 @@
16928
17079
  function sortPageBackground(elmStack) {
16929
17080
  var bodyIndex = elmStack.indexOf(document.body);
16930
17081
  var bgNodes = elmStack;
16931
- var sortBodyElement = bodyIndex > 1 || bodyIndex === -1;
16932
- if (sortBodyElement && !element_has_image_default(document.documentElement) && get_own_background_color_default(window.getComputedStyle(document.documentElement)).alpha === 0) {
17082
+ var htmlBgColor = get_own_background_color_default(window.getComputedStyle(document.documentElement));
17083
+ if (bodyIndex > 1 && htmlBgColor.alpha === 0 && !element_has_image_default(document.documentElement)) {
16933
17084
  if (bodyIndex > 1) {
16934
17085
  bgNodes.splice(bodyIndex, 1);
17086
+ bgNodes.push(document.body);
17087
+ }
17088
+ var htmlIndex = bgNodes.indexOf(document.documentElement);
17089
+ if (htmlIndex > 0) {
17090
+ bgNodes.splice(htmlIndex, 1);
17091
+ bgNodes.push(document.documentElement);
16935
17092
  }
16936
- bgNodes.splice(elmStack.indexOf(document.documentElement), 1);
16937
- bgNodes.push(document.body);
16938
17093
  }
16939
17094
  return bgNodes;
16940
17095
  }
@@ -16954,7 +17109,7 @@
16954
17109
  }
16955
17110
  var get_background_stack_default = getBackgroundStack;
16956
17111
  function getTextShadowColors(node) {
16957
- var _ref53 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, minRatio = _ref53.minRatio, maxRatio = _ref53.maxRatio;
17112
+ var _ref55 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, minRatio = _ref55.minRatio, maxRatio = _ref55.maxRatio;
16958
17113
  var style = window.getComputedStyle(node);
16959
17114
  var textShadow = style.getPropertyValue('text-shadow');
16960
17115
  if (textShadow === 'none') {
@@ -16965,19 +17120,19 @@
16965
17120
  assert_default(isNaN(fontSize) === false, 'Unable to determine font-size value '.concat(fontSizeStr));
16966
17121
  var shadowColors = [];
16967
17122
  var shadows = parseTextShadows(textShadow);
16968
- shadows.forEach(function(_ref54) {
16969
- var colorStr = _ref54.colorStr, pixels = _ref54.pixels;
17123
+ shadows.forEach(function(_ref56) {
17124
+ var colorStr = _ref56.colorStr, pixels = _ref56.pixels;
16970
17125
  colorStr = colorStr || style.getPropertyValue('color');
16971
17126
  var _pixels = _slicedToArray(pixels, 3), offsetY = _pixels[0], offsetX = _pixels[1], _pixels$ = _pixels[2], blurRadius = _pixels$ === void 0 ? 0 : _pixels$;
16972
17127
  if ((!minRatio || blurRadius >= fontSize * minRatio) && (!maxRatio || blurRadius < fontSize * maxRatio)) {
16973
- var color10 = textShadowColor({
17128
+ var color11 = textShadowColor({
16974
17129
  colorStr: colorStr,
16975
17130
  offsetY: offsetY,
16976
17131
  offsetX: offsetX,
16977
17132
  blurRadius: blurRadius,
16978
17133
  fontSize: fontSize
16979
17134
  });
16980
- shadowColors.push(color10);
17135
+ shadowColors.push(color11);
16981
17136
  }
16982
17137
  });
16983
17138
  return shadowColors;
@@ -17016,8 +17171,8 @@
17016
17171
  }
17017
17172
  return shadows;
17018
17173
  }
17019
- function textShadowColor(_ref55) {
17020
- var colorStr = _ref55.colorStr, offsetX = _ref55.offsetX, offsetY = _ref55.offsetY, blurRadius = _ref55.blurRadius, fontSize = _ref55.fontSize;
17174
+ function textShadowColor(_ref57) {
17175
+ var colorStr = _ref57.colorStr, offsetX = _ref57.offsetX, offsetY = _ref57.offsetY, blurRadius = _ref57.blurRadius, fontSize = _ref57.fontSize;
17021
17176
  if (offsetX > blurRadius || offsetY > blurRadius) {
17022
17177
  return new color_default(0, 0, 0, 0);
17023
17178
  }
@@ -17034,19 +17189,16 @@
17034
17189
  return .185 / (relativeBlur + .4);
17035
17190
  }
17036
17191
  var get_text_shadow_colors_default = getTextShadowColors;
17037
- function elmPartiallyObscured(elm, bgElm, bgColor) {
17038
- var obscured = elm !== bgElm && !visually_contains_default(elm, bgElm) && bgColor.alpha !== 0;
17039
- if (obscured) {
17040
- incomplete_data_default.set('bgColor', 'elmPartiallyObscured');
17041
- }
17042
- return obscured;
17043
- }
17044
- function getBackgroundColor(elm) {
17192
+ function _getBackgroundColor(elm) {
17193
+ var _bgColors;
17045
17194
  var bgElms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
17046
17195
  var shadowOutlineEmMax = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : .1;
17047
17196
  var bgColors = get_text_shadow_colors_default(elm, {
17048
17197
  minRatio: shadowOutlineEmMax
17049
17198
  });
17199
+ if (bgColors.length) {
17200
+ bgColors = [ bgColors.reduce(flatten_shadow_colors_default) ];
17201
+ }
17050
17202
  var elmStack = get_background_stack_default(elm);
17051
17203
  (elmStack || []).some(function(bgElm) {
17052
17204
  var bgElmStyle = window.getComputedStyle(bgElm);
@@ -17058,7 +17210,7 @@
17058
17210
  }
17059
17211
  if (bgColor.alpha !== 0) {
17060
17212
  bgElms.push(bgElm);
17061
- bgColors.push(bgColor);
17213
+ bgColors.unshift(bgColor);
17062
17214
  return bgColor.alpha === 1;
17063
17215
  } else {
17064
17216
  return false;
@@ -17067,11 +17219,40 @@
17067
17219
  if (bgColors === null || elmStack === null) {
17068
17220
  return null;
17069
17221
  }
17070
- bgColors.push(new color_default(255, 255, 255, 1));
17071
- var colors = bgColors.reduce(flatten_colors_default);
17222
+ var pageBgs = getPageBackgroundColors(elm, elmStack.includes(document.body));
17223
+ (_bgColors = bgColors).unshift.apply(_bgColors, _toConsumableArray(pageBgs));
17224
+ var colors = bgColors.reduce(function(bgColor, fgColor) {
17225
+ return flatten_colors_default(fgColor, bgColor);
17226
+ });
17072
17227
  return colors;
17073
17228
  }
17074
- var get_background_color_default = getBackgroundColor;
17229
+ function elmPartiallyObscured(elm, bgElm, bgColor) {
17230
+ var obscured = elm !== bgElm && !_visuallyContains(elm, bgElm) && bgColor.alpha !== 0;
17231
+ if (obscured) {
17232
+ incomplete_data_default.set('bgColor', 'elmPartiallyObscured');
17233
+ }
17234
+ return obscured;
17235
+ }
17236
+ function getPageBackgroundColors(elm, stackContainsBody) {
17237
+ var pageColors = [];
17238
+ if (!stackContainsBody) {
17239
+ var html = document.documentElement;
17240
+ var body = document.body;
17241
+ var htmlStyle = window.getComputedStyle(html);
17242
+ var bodyStyle = window.getComputedStyle(body);
17243
+ var htmlBgColor = get_own_background_color_default(htmlStyle);
17244
+ var bodyBgColor = get_own_background_color_default(bodyStyle);
17245
+ var bodyBgColorApplies = bodyBgColor.alpha !== 0 && _visuallyContains(elm, body);
17246
+ if (bodyBgColor.alpha !== 0 && htmlBgColor.alpha === 0 || bodyBgColorApplies && bodyBgColor.alpha !== 1) {
17247
+ pageColors.unshift(bodyBgColor);
17248
+ }
17249
+ if (htmlBgColor.alpha !== 0 && (!bodyBgColorApplies || bodyBgColorApplies && bodyBgColor.alpha !== 1)) {
17250
+ pageColors.unshift(htmlBgColor);
17251
+ }
17252
+ }
17253
+ pageColors.unshift(new color_default(255, 255, 255, 1));
17254
+ return pageColors;
17255
+ }
17075
17256
  function getContrast(bgColor, fgColor) {
17076
17257
  if (!fgColor || !bgColor) {
17077
17258
  return null;
@@ -17110,7 +17291,7 @@
17110
17291
  return fgColor;
17111
17292
  }
17112
17293
  if (!bgColor) {
17113
- bgColor = get_background_color_default(node, []);
17294
+ bgColor = _getBackgroundColor(node, []);
17114
17295
  }
17115
17296
  if (bgColor === null) {
17116
17297
  var reason = incomplete_data_default.get('bgColor');
@@ -17121,7 +17302,7 @@
17121
17302
  var textShadowColors = get_text_shadow_colors_default(node, {
17122
17303
  minRatio: 0
17123
17304
  });
17124
- return [ fgColor ].concat(_toConsumableArray(textShadowColors), [ bgColor ]).reduce(flatten_colors_default);
17305
+ return [ fgColor ].concat(_toConsumableArray(textShadowColors), [ bgColor ]).reduce(flatten_shadow_colors_default);
17125
17306
  }
17126
17307
  return flatten_colors_default(fgColor, bgColor);
17127
17308
  }
@@ -17161,7 +17342,7 @@
17161
17342
  return void 0;
17162
17343
  }
17163
17344
  var bgNodes = [];
17164
- var bgColor = get_background_color_default(node, bgNodes, shadowOutlineEmMax);
17345
+ var bgColor = _getBackgroundColor(node, bgNodes, shadowOutlineEmMax);
17165
17346
  var fgColor = get_foreground_color_default(node, false, bgColor);
17166
17347
  var shadowColors = get_text_shadow_colors_default(node, {
17167
17348
  minRatio: .001,
@@ -17177,7 +17358,7 @@
17177
17358
  if (shadowColors.length === 0) {
17178
17359
  contrast = get_contrast_default(bgColor, fgColor);
17179
17360
  } else if (fgColor && bgColor) {
17180
- shadowColor = [].concat(_toConsumableArray(shadowColors), [ bgColor ]).reduce(flatten_colors_default);
17361
+ shadowColor = [].concat(_toConsumableArray(shadowColors), [ bgColor ]).reduce(flatten_shadow_colors_default);
17181
17362
  var bgContrast = get_contrast_default(bgColor, shadowColor);
17182
17363
  var fgContrast = get_contrast_default(shadowColor, fgColor);
17183
17364
  contrast = Math.max(bgContrast, fgContrast);
@@ -17185,7 +17366,7 @@
17185
17366
  }
17186
17367
  var ptSize = Math.ceil(fontSize * 72) / 96;
17187
17368
  var isSmallFont = bold && ptSize < boldTextPt || !bold && ptSize < largeTextPt;
17188
- var _ref56 = isSmallFont ? contrastRatio.normal : contrastRatio.large, expected = _ref56.expected, minThreshold = _ref56.minThreshold, maxThreshold = _ref56.maxThreshold;
17369
+ var _ref58 = isSmallFont ? contrastRatio.normal : contrastRatio.large, expected = _ref58.expected, minThreshold = _ref58.minThreshold, maxThreshold = _ref58.maxThreshold;
17189
17370
  var isValid = contrast > expected;
17190
17371
  if (typeof minThreshold === 'number' && contrast < minThreshold || typeof maxThreshold === 'number' && contrast > maxThreshold) {
17191
17372
  return true;
@@ -17194,14 +17375,14 @@
17194
17375
  var missing;
17195
17376
  if (bgColor === null) {
17196
17377
  missing = incomplete_data_default.get('bgColor');
17197
- } else {
17378
+ } else if (!isValid) {
17198
17379
  missing = contrastContributor;
17199
17380
  }
17200
17381
  var equalRatio = truncatedResult === 1;
17201
17382
  var shortTextContent = visibleText.length === 1;
17202
17383
  if (equalRatio) {
17203
17384
  missing = incomplete_data_default.set('bgColor', 'equalRatio');
17204
- } else if (shortTextContent && !ignoreLength) {
17385
+ } else if (!isValid && shortTextContent && !ignoreLength) {
17205
17386
  missing = 'shortTextContent';
17206
17387
  }
17207
17388
  this.data({
@@ -17225,8 +17406,8 @@
17225
17406
  }
17226
17407
  return isValid;
17227
17408
  }
17228
- function findPseudoElement(vNode, _ref57) {
17229
- var _ref57$pseudoSizeThre = _ref57.pseudoSizeThreshold, pseudoSizeThreshold = _ref57$pseudoSizeThre === void 0 ? .25 : _ref57$pseudoSizeThre, _ref57$ignorePseudo = _ref57.ignorePseudo, ignorePseudo = _ref57$ignorePseudo === void 0 ? false : _ref57$ignorePseudo;
17409
+ function findPseudoElement(vNode, _ref59) {
17410
+ var _ref59$pseudoSizeThre = _ref59.pseudoSizeThreshold, pseudoSizeThreshold = _ref59$pseudoSizeThre === void 0 ? .25 : _ref59$pseudoSizeThre, _ref59$ignorePseudo = _ref59.ignorePseudo, ignorePseudo = _ref59$ignorePseudo === void 0 ? false : _ref59$ignorePseudo;
17230
17411
  if (ignorePseudo) {
17231
17412
  return;
17232
17413
  }
@@ -17268,7 +17449,7 @@
17268
17449
  }
17269
17450
  function parseUnit(str) {
17270
17451
  var unitRegex = /^([0-9.]+)([a-z]+)$/i;
17271
- var _ref58 = str.match(unitRegex) || [], _ref59 = _slicedToArray(_ref58, 3), _ref59$ = _ref59[1], value = _ref59$ === void 0 ? '' : _ref59$, _ref59$2 = _ref59[2], unit = _ref59$2 === void 0 ? '' : _ref59$2;
17452
+ var _ref60 = str.match(unitRegex) || [], _ref61 = _slicedToArray(_ref60, 3), _ref61$ = _ref61[1], value = _ref61$ === void 0 ? '' : _ref61$, _ref61$2 = _ref61[2], unit = _ref61$2 === void 0 ? '' : _ref61$2;
17272
17453
  return {
17273
17454
  value: parseFloat(value),
17274
17455
  unit: unit.toLowerCase()
@@ -17313,8 +17494,8 @@
17313
17494
  incomplete_data_default.clear();
17314
17495
  return void 0;
17315
17496
  }
17316
- nodeColor = get_background_color_default(node);
17317
- parentColor = get_background_color_default(parentBlock);
17497
+ nodeColor = _getBackgroundColor(node);
17498
+ parentColor = _getBackgroundColor(parentBlock);
17318
17499
  if (!nodeColor || !parentColor || getContrast2(nodeColor, parentColor) >= 3) {
17319
17500
  var reason;
17320
17501
  if (!nodeColor || !parentColor) {
@@ -17511,14 +17692,14 @@
17511
17692
  }
17512
17693
  function getHeadingOrder(results) {
17513
17694
  results = _toConsumableArray(results);
17514
- results.sort(function(_ref60, _ref61) {
17515
- var nodeA = _ref60.node;
17516
- var nodeB = _ref61.node;
17695
+ results.sort(function(_ref62, _ref63) {
17696
+ var nodeA = _ref62.node;
17697
+ var nodeB = _ref63.node;
17517
17698
  return nodeA.ancestry.length - nodeB.ancestry.length;
17518
17699
  });
17519
17700
  var headingOrder = results.reduce(mergeHeadingOrder, []);
17520
- return headingOrder.filter(function(_ref62) {
17521
- var level = _ref62.level;
17701
+ return headingOrder.filter(function(_ref64) {
17702
+ var level = _ref64.level;
17522
17703
  return level !== -1;
17523
17704
  });
17524
17705
  }
@@ -17569,7 +17750,7 @@
17569
17750
  var headingRole = role && role.includes('heading');
17570
17751
  var ariaHeadingLevel = vNode.attr('aria-level');
17571
17752
  var ariaLevel = parseInt(ariaHeadingLevel, 10);
17572
- var _ref63 = vNode.props.nodeName.match(/h(\d)/) || [], _ref64 = _slicedToArray(_ref63, 2), headingLevel = _ref64[1];
17753
+ var _ref65 = vNode.props.nodeName.match(/h(\d)/) || [], _ref66 = _slicedToArray(_ref65, 2), headingLevel = _ref66[1];
17573
17754
  if (!headingRole) {
17574
17755
  return -1;
17575
17756
  }
@@ -17635,8 +17816,8 @@
17635
17816
  if (results.length < 2) {
17636
17817
  return results;
17637
17818
  }
17638
- var incompleteResults = results.filter(function(_ref65) {
17639
- var result = _ref65.result;
17819
+ var incompleteResults = results.filter(function(_ref67) {
17820
+ var result = _ref67.result;
17640
17821
  return result !== void 0;
17641
17822
  });
17642
17823
  var uniqueResults = [];
@@ -17648,12 +17829,12 @@
17648
17829
  if (nameMap[name]) {
17649
17830
  return 'continue';
17650
17831
  }
17651
- var sameNameResults = incompleteResults.filter(function(_ref66, resultNum) {
17652
- var data2 = _ref66.data;
17832
+ var sameNameResults = incompleteResults.filter(function(_ref68, resultNum) {
17833
+ var data2 = _ref68.data;
17653
17834
  return data2.name === name && resultNum !== index;
17654
17835
  });
17655
- var isSameUrl = sameNameResults.every(function(_ref67) {
17656
- var data2 = _ref67.data;
17836
+ var isSameUrl = sameNameResults.every(function(_ref69) {
17837
+ var data2 = _ref69.data;
17657
17838
  return isIdenticalObject(data2.urlProps, urlProps);
17658
17839
  });
17659
17840
  if (sameNameResults.length && !isSameUrl) {
@@ -17783,7 +17964,7 @@
17783
17964
  function internalLinkPresentEvaluate(node, options, virtualNode) {
17784
17965
  var links = query_selector_all_default(virtualNode, 'a[href]');
17785
17966
  return links.some(function(vLink) {
17786
- return /^#[^/!]/.test(vLink.actualNode.getAttribute('href'));
17967
+ return /^#[^/!]/.test(vLink.attr('href'));
17787
17968
  });
17788
17969
  }
17789
17970
  var internal_link_present_evaluate_default = internalLinkPresentEvaluate;
@@ -17814,16 +17995,16 @@
17814
17995
  var outerText = elm.textContent.trim();
17815
17996
  var innerText = outerText;
17816
17997
  while (innerText === outerText && nextNode !== void 0) {
17817
- var _i19 = -1;
17998
+ var _i20 = -1;
17818
17999
  elm = nextNode;
17819
18000
  if (elm.children.length === 0) {
17820
18001
  return elm;
17821
18002
  }
17822
18003
  do {
17823
- _i19++;
17824
- innerText = elm.children[_i19].textContent.trim();
17825
- } while (innerText === '' && _i19 + 1 < elm.children.length);
17826
- nextNode = elm.children[_i19];
18004
+ _i20++;
18005
+ innerText = elm.children[_i20].textContent.trim();
18006
+ } while (innerText === '' && _i20 + 1 < elm.children.length);
18007
+ nextNode = elm.children[_i20];
17827
18008
  }
17828
18009
  return elm;
17829
18010
  }
@@ -17854,6 +18035,13 @@
17854
18035
  var currStyle = getStyleValues(node);
17855
18036
  var nextStyle = nextSibling ? getStyleValues(nextSibling) : null;
17856
18037
  var prevStyle = prevSibling ? getStyleValues(prevSibling) : null;
18038
+ var optionsPassLength = options.passLength;
18039
+ var optionsFailLength = options.failLength;
18040
+ var headingLength = node.textContent.trim().length;
18041
+ var paragraphLength = nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.textContent.trim().length;
18042
+ if (headingLength > paragraphLength * optionsPassLength) {
18043
+ return true;
18044
+ }
17857
18045
  if (!nextStyle || !isHeaderStyle(currStyle, nextStyle, margins)) {
17858
18046
  return true;
17859
18047
  }
@@ -17864,6 +18052,9 @@
17864
18052
  if (prevStyle && !isHeaderStyle(currStyle, prevStyle, margins)) {
17865
18053
  return void 0;
17866
18054
  }
18055
+ if (headingLength > paragraphLength * optionsFailLength) {
18056
+ return void 0;
18057
+ }
17867
18058
  return false;
17868
18059
  }
17869
18060
  var p_as_heading_evaluate_default = pAsHeadingEvaluate;
@@ -17899,8 +18090,8 @@
17899
18090
  } else if (node !== document.body && has_content_default(node, true)) {
17900
18091
  return [ virtualNode ];
17901
18092
  } else {
17902
- return virtualNode.children.filter(function(_ref68) {
17903
- var actualNode = _ref68.actualNode;
18093
+ return virtualNode.children.filter(function(_ref70) {
18094
+ var actualNode = _ref70.actualNode;
17904
18095
  return actualNode.nodeType === 1;
17905
18096
  }).map(function(vNode) {
17906
18097
  return findRegionlessElms(vNode, options);
@@ -18083,8 +18274,8 @@
18083
18274
  if (!virtualNode.children) {
18084
18275
  return void 0;
18085
18276
  }
18086
- var titleNode = virtualNode.children.find(function(_ref69) {
18087
- var props = _ref69.props;
18277
+ var titleNode = virtualNode.children.find(function(_ref71) {
18278
+ var props = _ref71.props;
18088
18279
  return props.nodeName === 'title';
18089
18280
  });
18090
18281
  if (!titleNode) {
@@ -18107,8 +18298,8 @@
18107
18298
  }
18108
18299
  var svg_non_empty_title_evaluate_default = svgNonEmptyTitleEvaluate;
18109
18300
  function cssOrientationLockEvaluate(node, options, virtualNode, context5) {
18110
- var _ref70 = context5 || {}, _ref70$cssom = _ref70.cssom, cssom = _ref70$cssom === void 0 ? void 0 : _ref70$cssom;
18111
- var _ref71 = options || {}, _ref71$degreeThreshol = _ref71.degreeThreshold, degreeThreshold = _ref71$degreeThreshol === void 0 ? 0 : _ref71$degreeThreshol;
18301
+ var _ref72 = context5 || {}, _ref72$cssom = _ref72.cssom, cssom = _ref72$cssom === void 0 ? void 0 : _ref72$cssom;
18302
+ var _ref73 = options || {}, _ref73$degreeThreshol = _ref73.degreeThreshold, degreeThreshold = _ref73$degreeThreshol === void 0 ? 0 : _ref73$degreeThreshol;
18112
18303
  if (!cssom || !cssom.length) {
18113
18304
  return void 0;
18114
18305
  }
@@ -18116,14 +18307,14 @@
18116
18307
  var relatedElements = [];
18117
18308
  var rulesGroupByDocumentFragment = groupCssomByDocument(cssom);
18118
18309
  var _loop6 = function _loop6() {
18119
- var key = _Object$keys2[_i20];
18310
+ var key = _Object$keys2[_i21];
18120
18311
  var _rulesGroupByDocument = rulesGroupByDocumentFragment[key], root = _rulesGroupByDocument.root, rules = _rulesGroupByDocument.rules;
18121
18312
  var orientationRules = rules.filter(isMediaRuleWithOrientation);
18122
18313
  if (!orientationRules.length) {
18123
18314
  return 'continue';
18124
18315
  }
18125
- orientationRules.forEach(function(_ref72) {
18126
- var cssRules = _ref72.cssRules;
18316
+ orientationRules.forEach(function(_ref74) {
18317
+ var cssRules = _ref74.cssRules;
18127
18318
  Array.from(cssRules).forEach(function(cssRule) {
18128
18319
  var locked = getIsOrientationLocked(cssRule);
18129
18320
  if (locked && cssRule.selectorText.toUpperCase() !== 'HTML') {
@@ -18134,7 +18325,7 @@
18134
18325
  });
18135
18326
  });
18136
18327
  };
18137
- for (var _i20 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i20 < _Object$keys2.length; _i20++) {
18328
+ for (var _i21 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i21 < _Object$keys2.length; _i21++) {
18138
18329
  var _ret3 = _loop6();
18139
18330
  if (_ret3 === 'continue') {
18140
18331
  continue;
@@ -18148,8 +18339,8 @@
18148
18339
  }
18149
18340
  return false;
18150
18341
  function groupCssomByDocument(cssObjectModel) {
18151
- return cssObjectModel.reduce(function(out, _ref73) {
18152
- var sheet = _ref73.sheet, root = _ref73.root, shadowId = _ref73.shadowId;
18342
+ return cssObjectModel.reduce(function(out, _ref75) {
18343
+ var sheet = _ref75.sheet, root = _ref75.root, shadowId = _ref75.shadowId;
18153
18344
  var key = shadowId ? shadowId : 'topDocument';
18154
18345
  if (!out[key]) {
18155
18346
  out[key] = {
@@ -18165,15 +18356,15 @@
18165
18356
  return out;
18166
18357
  }, {});
18167
18358
  }
18168
- function isMediaRuleWithOrientation(_ref74) {
18169
- var type = _ref74.type, cssText = _ref74.cssText;
18359
+ function isMediaRuleWithOrientation(_ref76) {
18360
+ var type = _ref76.type, cssText = _ref76.cssText;
18170
18361
  if (type !== 4) {
18171
18362
  return false;
18172
18363
  }
18173
18364
  return /orientation:\s*landscape/i.test(cssText) || /orientation:\s*portrait/i.test(cssText);
18174
18365
  }
18175
- function getIsOrientationLocked(_ref75) {
18176
- var selectorText = _ref75.selectorText, style = _ref75.style;
18366
+ function getIsOrientationLocked(_ref77) {
18367
+ var selectorText = _ref77.selectorText, style = _ref77.style;
18177
18368
  if (!selectorText || style.length <= 0) {
18178
18369
  return false;
18179
18370
  }
@@ -18220,7 +18411,7 @@
18220
18411
  }
18221
18412
  }
18222
18413
  function getAngleInDegrees(angleWithUnit) {
18223
- var _ref76 = angleWithUnit.match(/(deg|grad|rad|turn)/) || [], _ref77 = _slicedToArray(_ref76, 1), unit = _ref77[0];
18414
+ var _ref78 = angleWithUnit.match(/(deg|grad|rad|turn)/) || [], _ref79 = _slicedToArray(_ref78, 1), unit = _ref79[0];
18224
18415
  if (!unit) {
18225
18416
  return;
18226
18417
  }
@@ -18269,7 +18460,7 @@
18269
18460
  }
18270
18461
  var css_orientation_lock_evaluate_default = cssOrientationLockEvaluate;
18271
18462
  function metaViewportScaleEvaluate(node, options, virtualNode) {
18272
- var _ref78 = options || {}, _ref78$scaleMinimum = _ref78.scaleMinimum, scaleMinimum = _ref78$scaleMinimum === void 0 ? 2 : _ref78$scaleMinimum, _ref78$lowerBound = _ref78.lowerBound, lowerBound = _ref78$lowerBound === void 0 ? false : _ref78$lowerBound;
18463
+ var _ref80 = options || {}, _ref80$scaleMinimum = _ref80.scaleMinimum, scaleMinimum = _ref80$scaleMinimum === void 0 ? 2 : _ref80$scaleMinimum, _ref80$lowerBound = _ref80.lowerBound, lowerBound = _ref80$lowerBound === void 0 ? false : _ref80$lowerBound;
18273
18464
  var content = virtualNode.attr('content') || '';
18274
18465
  if (!content) {
18275
18466
  return true;
@@ -18385,8 +18576,8 @@
18385
18576
  if (!tabbableElements || !tabbableElements.length) {
18386
18577
  return true;
18387
18578
  }
18388
- var relatedNodes = tabbableElements.reduce(function(out, _ref79) {
18389
- var el = _ref79.actualNode;
18579
+ var relatedNodes = tabbableElements.reduce(function(out, _ref81) {
18580
+ var el = _ref81.actualNode;
18390
18581
  var nodeName2 = el.nodeName.toUpperCase();
18391
18582
  if (elementsThatCanBeDisabled.includes(nodeName2)) {
18392
18583
  out.push(el);
@@ -18425,8 +18616,8 @@
18425
18616
  }
18426
18617
  var focusable_element_evaluate_default = focusableElementEvaluate;
18427
18618
  function focusableModalOpenEvaluate(node, options, virtualNode) {
18428
- var tabbableElements = virtualNode.tabbableElements.map(function(_ref80) {
18429
- var actualNode = _ref80.actualNode;
18619
+ var tabbableElements = virtualNode.tabbableElements.map(function(_ref82) {
18620
+ var actualNode = _ref82.actualNode;
18430
18621
  return actualNode;
18431
18622
  });
18432
18623
  if (!tabbableElements || !tabbableElements.length) {
@@ -18458,8 +18649,8 @@
18458
18649
  if (!tabbableElements || !tabbableElements.length) {
18459
18650
  return true;
18460
18651
  }
18461
- var relatedNodes = tabbableElements.reduce(function(out, _ref81) {
18462
- var el = _ref81.actualNode;
18652
+ var relatedNodes = tabbableElements.reduce(function(out, _ref83) {
18653
+ var el = _ref83.actualNode;
18463
18654
  var nodeName2 = el.nodeName.toUpperCase();
18464
18655
  if (!elementsThatCanBeDisabled.includes(nodeName2)) {
18465
18656
  out.push(el);
@@ -18507,7 +18698,7 @@
18507
18698
  return focusableDescendants(child);
18508
18699
  });
18509
18700
  }
18510
- function noFocusbleContentEvaluate(node, options, virtualNode) {
18701
+ function frameFocusableContentEvaluate(node, options, virtualNode) {
18511
18702
  if (!virtualNode.children) {
18512
18703
  return void 0;
18513
18704
  }
@@ -18519,7 +18710,51 @@
18519
18710
  return void 0;
18520
18711
  }
18521
18712
  }
18522
- var no_focusable_content_evaluate_default = noFocusbleContentEvaluate;
18713
+ var frame_focusable_content_evaluate_default = frameFocusableContentEvaluate;
18714
+ function noFocusableContentEvaluate(node, options, virtualNode) {
18715
+ if (!virtualNode.children) {
18716
+ return void 0;
18717
+ }
18718
+ try {
18719
+ var focusableDescendants2 = getFocusableDescendants(virtualNode);
18720
+ if (!focusableDescendants2.length) {
18721
+ return true;
18722
+ }
18723
+ var notHiddenElements = focusableDescendants2.filter(usesUnreliableHidingStrategy);
18724
+ if (notHiddenElements.length > 0) {
18725
+ this.data({
18726
+ messageKey: 'notHidden'
18727
+ });
18728
+ this.relatedNodes(notHiddenElements);
18729
+ } else {
18730
+ this.relatedNodes(focusableDescendants2);
18731
+ }
18732
+ return false;
18733
+ } catch (e) {
18734
+ return void 0;
18735
+ }
18736
+ }
18737
+ function getFocusableDescendants(vNode) {
18738
+ if (!vNode.children) {
18739
+ if (vNode.props.nodeType === 1) {
18740
+ throw new Error('Cannot determine children');
18741
+ }
18742
+ return [];
18743
+ }
18744
+ var retVal = [];
18745
+ vNode.children.forEach(function(child) {
18746
+ if (is_focusable_default(child)) {
18747
+ retVal.push(child);
18748
+ } else {
18749
+ retVal.push.apply(retVal, _toConsumableArray(getFocusableDescendants(child)));
18750
+ }
18751
+ });
18752
+ return retVal;
18753
+ }
18754
+ function usesUnreliableHidingStrategy(vNode) {
18755
+ var tabIndex = parseInt(vNode.attr('tabindex'), 10);
18756
+ return !isNaN(tabIndex) && tabIndex < 0;
18757
+ }
18523
18758
  function tabindexEvaluate(node, options, virtualNode) {
18524
18759
  var tabIndex = parseInt(virtualNode.attr('tabindex'), 10);
18525
18760
  return isNaN(tabIndex) ? true : tabIndex <= 0;
@@ -18641,7 +18876,7 @@
18641
18876
  return sanitize_default(noUnicodeStr);
18642
18877
  }
18643
18878
  function labelContentNameMismatchEvaluate(node, options, virtualNode) {
18644
- var _ref82 = options || {}, pixelThreshold = _ref82.pixelThreshold, occuranceThreshold = _ref82.occuranceThreshold;
18879
+ var _ref84 = options || {}, pixelThreshold = _ref84.pixelThreshold, occuranceThreshold = _ref84.occuranceThreshold;
18645
18880
  var accText = accessible_text_default(node).toLowerCase();
18646
18881
  if (is_human_interpretable_default(accText) < 1) {
18647
18882
  return void 0;
@@ -19006,11 +19241,11 @@
19006
19241
  }
19007
19242
  var no_autoplay_audio_evaluate_default = noAutoplayAudioEvaluate;
19008
19243
  function ariaAllowedAttrMatches(node, virtualNode) {
19009
- var aria46 = /^aria-/;
19244
+ var aria47 = /^aria-/;
19010
19245
  var attrs = virtualNode.attrNames;
19011
19246
  if (attrs.length) {
19012
- for (var _i21 = 0, l = attrs.length; _i21 < l; _i21++) {
19013
- if (aria46.test(attrs[_i21])) {
19247
+ for (var _i22 = 0, l = attrs.length; _i22 < l; _i22++) {
19248
+ if (aria47.test(attrs[_i22])) {
19014
19249
  return true;
19015
19250
  }
19016
19251
  }
@@ -19026,9 +19261,9 @@
19026
19261
  }
19027
19262
  var aria_allowed_role_matches_default = ariaAllowedRoleMatches;
19028
19263
  function ariaHasAttrMatches(node, virtualNode) {
19029
- var aria46 = /^aria-/;
19264
+ var aria47 = /^aria-/;
19030
19265
  return virtualNode.attrNames.some(function(attr) {
19031
- return aria46.test(attr);
19266
+ return aria47.test(attr);
19032
19267
  });
19033
19268
  }
19034
19269
  var aria_has_attr_matches_default = ariaHasAttrMatches;
@@ -19391,7 +19626,7 @@
19391
19626
  if (!role || [ 'none', 'presentation' ].includes(role)) {
19392
19627
  return true;
19393
19628
  }
19394
- var _ref83 = aria_roles_default[role] || {}, accessibleNameRequired = _ref83.accessibleNameRequired;
19629
+ var _ref85 = aria_roles_default[role] || {}, accessibleNameRequired = _ref85.accessibleNameRequired;
19395
19630
  if (accessibleNameRequired || is_focusable_default(virtualNode)) {
19396
19631
  return true;
19397
19632
  }
@@ -19491,6 +19726,7 @@
19491
19726
  'aria-unsupported-attr-evaluate': aria_unsupported_attr_evaluate_default,
19492
19727
  'aria-valid-attr-evaluate': aria_valid_attr_evaluate_default,
19493
19728
  'aria-valid-attr-value-evaluate': aria_valid_attr_value_evaluate_default,
19729
+ 'deprecatedrole-evaluate': deprecatedroleEvaluate,
19494
19730
  'fallbackrole-evaluate': fallbackrole_evaluate_default,
19495
19731
  'has-global-aria-attribute-evaluate': has_global_aria_attribute_evaluate_default,
19496
19732
  'has-implicit-chromium-role-matches': has_implicit_chromium_role_matches_default,
@@ -19554,7 +19790,8 @@
19554
19790
  'focusable-no-name-evaluate': focusable_no_name_evaluate_default,
19555
19791
  'focusable-not-tabbable-evaluate': focusable_not_tabbable_evaluate_default,
19556
19792
  'landmark-is-top-level-evaluate': landmark_is_top_level_evaluate_default,
19557
- 'no-focusable-content-evaluate': no_focusable_content_evaluate_default,
19793
+ 'frame-focusable-content-evaluate': frame_focusable_content_evaluate_default,
19794
+ 'no-focusable-content-evaluate': noFocusableContentEvaluate,
19558
19795
  'tabindex-evaluate': tabindex_evaluate_default,
19559
19796
  'alt-space-value-evaluate': alt_space_value_evaluate_default,
19560
19797
  'duplicate-img-label-evaluate': duplicate_img_label_evaluate_default,
@@ -20206,8 +20443,8 @@
20206
20443
  lang: this.lang
20207
20444
  };
20208
20445
  var checkIDs = Object.keys(this.data.checks);
20209
- for (var _i22 = 0; _i22 < checkIDs.length; _i22++) {
20210
- var id = checkIDs[_i22];
20446
+ for (var _i23 = 0; _i23 < checkIDs.length; _i23++) {
20447
+ var id = checkIDs[_i23];
20211
20448
  var check4 = this.data.checks[id];
20212
20449
  var _check4$messages = check4.messages, pass = _check4$messages.pass, fail = _check4$messages.fail, incomplete = _check4$messages.incomplete;
20213
20450
  locale.checks[id] = {
@@ -20217,8 +20454,8 @@
20217
20454
  };
20218
20455
  }
20219
20456
  var ruleIDs = Object.keys(this.data.rules);
20220
- for (var _i23 = 0; _i23 < ruleIDs.length; _i23++) {
20221
- var _id = ruleIDs[_i23];
20457
+ for (var _i24 = 0; _i24 < ruleIDs.length; _i24++) {
20458
+ var _id = ruleIDs[_i24];
20222
20459
  var rule3 = this.data.rules[_id];
20223
20460
  var description = rule3.description, help = rule3.help;
20224
20461
  locale.rules[_id] = {
@@ -20227,8 +20464,8 @@
20227
20464
  };
20228
20465
  }
20229
20466
  var failureSummaries = Object.keys(this.data.failureSummaries);
20230
- for (var _i24 = 0; _i24 < failureSummaries.length; _i24++) {
20231
- var type = failureSummaries[_i24];
20467
+ for (var _i25 = 0; _i25 < failureSummaries.length; _i25++) {
20468
+ var type = failureSummaries[_i25];
20232
20469
  var failureSummary2 = this.data.failureSummaries[type];
20233
20470
  var failureMessage = failureSummary2.failureMessage;
20234
20471
  locale.failureSummaries[type] = {
@@ -20251,8 +20488,8 @@
20251
20488
  key: '_applyCheckLocale',
20252
20489
  value: function _applyCheckLocale(checks) {
20253
20490
  var keys = Object.keys(checks);
20254
- for (var _i25 = 0; _i25 < keys.length; _i25++) {
20255
- var id = keys[_i25];
20491
+ for (var _i26 = 0; _i26 < keys.length; _i26++) {
20492
+ var id = keys[_i26];
20256
20493
  if (!this.data.checks[id]) {
20257
20494
  throw new Error('Locale provided for unknown check: "'.concat(id, '"'));
20258
20495
  }
@@ -20263,8 +20500,8 @@
20263
20500
  key: '_applyRuleLocale',
20264
20501
  value: function _applyRuleLocale(rules) {
20265
20502
  var keys = Object.keys(rules);
20266
- for (var _i26 = 0; _i26 < keys.length; _i26++) {
20267
- var id = keys[_i26];
20503
+ for (var _i27 = 0; _i27 < keys.length; _i27++) {
20504
+ var id = keys[_i27];
20268
20505
  if (!this.data.rules[id]) {
20269
20506
  throw new Error('Locale provided for unknown rule: "'.concat(id, '"'));
20270
20507
  }
@@ -20275,8 +20512,8 @@
20275
20512
  key: '_applyFailureSummaries',
20276
20513
  value: function _applyFailureSummaries(messages) {
20277
20514
  var keys = Object.keys(messages);
20278
- for (var _i27 = 0; _i27 < keys.length; _i27++) {
20279
- var key = keys[_i27];
20515
+ for (var _i28 = 0; _i28 < keys.length; _i28++) {
20516
+ var key = keys[_i28];
20280
20517
  if (!this.data.failureSummaries[key]) {
20281
20518
  throw new Error('Locale provided for unknown failureMessage: "'.concat(key, '"'));
20282
20519
  }
@@ -20522,10 +20759,10 @@
20522
20759
  } else if ([ 'tag', 'tags', void 0 ].includes(only.type)) {
20523
20760
  only.type = 'tag';
20524
20761
  var unmatchedTags = only.values.filter(function(tag) {
20525
- return !tags.includes(tag);
20762
+ return !tags.includes(tag) && !/wcag2[1-3]a{1,3}/.test(tag);
20526
20763
  });
20527
20764
  if (unmatchedTags.length !== 0) {
20528
- log_default('Could not find tags `' + unmatchedTags.join('`, `') + '`');
20765
+ axe.log('Could not find tags `' + unmatchedTags.join('`, `') + '`');
20529
20766
  }
20530
20767
  } else {
20531
20768
  throw new Error('Unknown runOnly type \''.concat(only.type, '\''));
@@ -20547,6 +20784,9 @@
20547
20784
  brand: this.brand,
20548
20785
  application: this.application
20549
20786
  };
20787
+ if (typeof branding === 'string') {
20788
+ this.application = branding;
20789
+ }
20550
20790
  if (branding && branding.hasOwnProperty('brand') && branding.brand && typeof branding.brand === 'string') {
20551
20791
  this.brand = branding.brand;
20552
20792
  }
@@ -20622,8 +20862,8 @@
20622
20862
  });
20623
20863
  };
20624
20864
  }
20625
- function getHelpUrl(_ref84, ruleId, version) {
20626
- var brand = _ref84.brand, application = _ref84.application, lang = _ref84.lang;
20865
+ function getHelpUrl(_ref86, ruleId, version) {
20866
+ var brand = _ref86.brand, application = _ref86.application, lang = _ref86.lang;
20627
20867
  return constants_default.helpUrlBase + brand + '/' + (version || axe.version.substring(0, axe.version.lastIndexOf('.'))) + '/' + ruleId + '?application=' + encodeURIComponent(application) + (lang && lang !== 'en' ? '&lang=' + encodeURIComponent(lang) : '');
20628
20868
  }
20629
20869
  var audit_default = Audit;
@@ -20649,6 +20889,7 @@
20649
20889
  var es6_promise = __toModule(require_es6_promise());
20650
20890
  var typedarray = __toModule(require_typedarray());
20651
20891
  var weakmap_polyfill = __toModule(require_weakmap_polyfill());
20892
+ dot2['default'].templateSettings.strip = false;
20652
20893
  if (!('Promise' in window)) {
20653
20894
  es6_promise['default'].polyfill();
20654
20895
  }
@@ -21036,9 +21277,9 @@
21036
21277
  });
21037
21278
  }
21038
21279
  var run_virtual_rule_default = runVirtualRule;
21039
- function normalizeRunParams(_ref85) {
21040
- var _ref87, _options$reporter, _axe$_audit;
21041
- var _ref86 = _slicedToArray(_ref85, 3), context5 = _ref86[0], options = _ref86[1], callback = _ref86[2];
21280
+ function normalizeRunParams(_ref87) {
21281
+ var _ref89, _options$reporter, _axe$_audit;
21282
+ var _ref88 = _slicedToArray(_ref87, 3), context5 = _ref88[0], options = _ref88[1], callback = _ref88[2];
21042
21283
  var typeErr = new TypeError('axe.run arguments are invalid');
21043
21284
  if (!isContext(context5)) {
21044
21285
  if (callback !== void 0) {
@@ -21059,7 +21300,7 @@
21059
21300
  throw typeErr;
21060
21301
  }
21061
21302
  options = clone_default(options);
21062
- options.reporter = (_ref87 = (_options$reporter = options.reporter) !== null && _options$reporter !== void 0 ? _options$reporter : (_axe$_audit = axe._audit) === null || _axe$_audit === void 0 ? void 0 : _axe$_audit.reporter) !== null && _ref87 !== void 0 ? _ref87 : 'v1';
21303
+ options.reporter = (_ref89 = (_options$reporter = options.reporter) !== null && _options$reporter !== void 0 ? _options$reporter : (_axe$_audit = axe._audit) === null || _axe$_audit === void 0 ? void 0 : _axe$_audit.reporter) !== null && _ref89 !== void 0 ? _ref89 : 'v1';
21063
21304
  return {
21064
21305
  context: context5,
21065
21306
  options: options,
@@ -21184,14 +21425,14 @@
21184
21425
  return new Promise(function(res, rej) {
21185
21426
  axe._audit.run(contextObj, options, res, rej);
21186
21427
  }).then(function(results) {
21187
- results = results.map(function(_ref88) {
21188
- var nodes = _ref88.nodes, result = _objectWithoutProperties(_ref88, _excluded8);
21428
+ results = results.map(function(_ref90) {
21429
+ var nodes = _ref90.nodes, result = _objectWithoutProperties(_ref90, _excluded8);
21189
21430
  return _extends({
21190
21431
  nodes: nodes.map(serializeNode)
21191
21432
  }, result);
21192
21433
  });
21193
- var frames = contextObj.frames.map(function(_ref89) {
21194
- var node = _ref89.node;
21434
+ var frames = contextObj.frames.map(function(_ref91) {
21435
+ var node = _ref91.node;
21195
21436
  return new dq_element_default(node, options).toJSON();
21196
21437
  });
21197
21438
  var environmentData;
@@ -21208,13 +21449,13 @@
21208
21449
  teardown_default();
21209
21450
  });
21210
21451
  }
21211
- function serializeNode(_ref90) {
21212
- var node = _ref90.node, nodeResult = _objectWithoutProperties(_ref90, _excluded9);
21452
+ function serializeNode(_ref92) {
21453
+ var node = _ref92.node, nodeResult = _objectWithoutProperties(_ref92, _excluded9);
21213
21454
  nodeResult.node = node.toJSON();
21214
- for (var _i28 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i28 < _arr2.length; _i28++) {
21215
- var type = _arr2[_i28];
21216
- nodeResult[type] = nodeResult[type].map(function(_ref91) {
21217
- var relatedNodes = _ref91.relatedNodes, checkResult = _objectWithoutProperties(_ref91, _excluded10);
21455
+ for (var _i29 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i29 < _arr2.length; _i29++) {
21456
+ var type = _arr2[_i29];
21457
+ nodeResult[type] = nodeResult[type].map(function(_ref93) {
21458
+ var relatedNodes = _ref93.relatedNodes, checkResult = _objectWithoutProperties(_ref93, _excluded10);
21218
21459
  return _extends({}, checkResult, {
21219
21460
  relatedNodes: relatedNodes.map(function(node2) {
21220
21461
  return node2.toJSON();
@@ -21225,14 +21466,14 @@
21225
21466
  return nodeResult;
21226
21467
  }
21227
21468
  function finishRun(partialResults) {
21228
- var _ref93, _options$reporter2, _axe$_audit2;
21469
+ var _ref95, _options$reporter2, _axe$_audit2;
21229
21470
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21230
21471
  options = clone_default(options);
21231
- var _ref92 = partialResults.find(function(r) {
21472
+ var _ref94 = partialResults.find(function(r) {
21232
21473
  return r.environmentData;
21233
- }) || {}, environmentData = _ref92.environmentData;
21474
+ }) || {}, environmentData = _ref94.environmentData;
21234
21475
  axe._audit.normalizeOptions(options);
21235
- options.reporter = (_ref93 = (_options$reporter2 = options.reporter) !== null && _options$reporter2 !== void 0 ? _options$reporter2 : (_axe$_audit2 = axe._audit) === null || _axe$_audit2 === void 0 ? void 0 : _axe$_audit2.reporter) !== null && _ref93 !== void 0 ? _ref93 : 'v1';
21476
+ options.reporter = (_ref95 = (_options$reporter2 = options.reporter) !== null && _options$reporter2 !== void 0 ? _options$reporter2 : (_axe$_audit2 = axe._audit) === null || _axe$_audit2 === void 0 ? void 0 : _axe$_audit2.reporter) !== null && _ref95 !== void 0 ? _ref95 : 'v1';
21236
21477
  setFrameSpec(partialResults);
21237
21478
  var results = merge_results_default(partialResults);
21238
21479
  results = axe._audit.after(results, options);
@@ -21262,8 +21503,8 @@
21262
21503
  _iterator4.f();
21263
21504
  }
21264
21505
  }
21265
- function getMergedFrameSpecs(_ref94) {
21266
- var childFrameSpecs = _ref94.frames, parentFrameSpec = _ref94.frameSpec;
21506
+ function getMergedFrameSpecs(_ref96) {
21507
+ var childFrameSpecs = _ref96.frames, parentFrameSpec = _ref96.frameSpec;
21267
21508
  if (!parentFrameSpec) {
21268
21509
  return childFrameSpecs;
21269
21510
  }
@@ -21323,12 +21564,12 @@
21323
21564
  var transformedResults = results.map(function(result) {
21324
21565
  var transformedResult = _extends({}, result);
21325
21566
  var types = [ 'passes', 'violations', 'incomplete', 'inapplicable' ];
21326
- for (var _i29 = 0, _types = types; _i29 < _types.length; _i29++) {
21327
- var type = _types[_i29];
21567
+ for (var _i30 = 0, _types = types; _i30 < _types.length; _i30++) {
21568
+ var type = _types[_i30];
21328
21569
  if (transformedResult[type] && Array.isArray(transformedResult[type])) {
21329
- transformedResult[type] = transformedResult[type].map(function(_ref95) {
21570
+ transformedResult[type] = transformedResult[type].map(function(_ref97) {
21330
21571
  var _node;
21331
- var node = _ref95.node, typeResult = _objectWithoutProperties(_ref95, _excluded13);
21572
+ var node = _ref97.node, typeResult = _objectWithoutProperties(_ref97, _excluded13);
21332
21573
  node = typeof ((_node = node) === null || _node === void 0 ? void 0 : _node.toJSON) === 'function' ? node.toJSON() : node;
21333
21574
  return _extends({
21334
21575
  node: node
@@ -21403,6 +21644,9 @@
21403
21644
  Rule: rule_default,
21404
21645
  metadataFunctionMap: metadata_function_map_default
21405
21646
  };
21647
+ axe._thisWillBeDeletedDoNotUse['public'] = {
21648
+ reporters: reporters
21649
+ };
21406
21650
  axe.imports = imports_exports;
21407
21651
  axe.cleanup = cleanup_default;
21408
21652
  axe.configure = configure_default;
@@ -21494,7 +21738,7 @@
21494
21738
  },
21495
21739
  'aria-roledescription': {
21496
21740
  description: 'Ensure aria-roledescription is only used on elements with an implicit or explicit role',
21497
- help: 'Use aria-roledescription on elements with a semantic role'
21741
+ help: 'aria-roledescription must be on elements with a semantic role'
21498
21742
  },
21499
21743
  'aria-roles': {
21500
21744
  description: 'Ensures all elements with a role attribute use a valid value',
@@ -21506,7 +21750,7 @@
21506
21750
  },
21507
21751
  'aria-toggle-field-name': {
21508
21752
  description: 'Ensures every ARIA toggle field has an accessible name',
21509
- help: 'ARIA toggle fields have an accessible name'
21753
+ help: 'ARIA toggle fields must have an accessible name'
21510
21754
  },
21511
21755
  'aria-tooltip-name': {
21512
21756
  description: 'Ensures every ARIA tooltip node has an accessible name',
@@ -21554,7 +21798,7 @@
21554
21798
  },
21555
21799
  'css-orientation-lock': {
21556
21800
  description: 'Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations',
21557
- help: 'CSS Media queries are not used to lock display orientation'
21801
+ help: 'CSS Media queries must not lock display orientation'
21558
21802
  },
21559
21803
  'definition-list': {
21560
21804
  description: 'Ensures <dl> elements are structured correctly',
@@ -21589,8 +21833,8 @@
21589
21833
  help: 'Table header text must not be empty'
21590
21834
  },
21591
21835
  'focus-order-semantics': {
21592
- description: 'Ensures elements in the focus order have an appropriate role',
21593
- help: 'Elements in the focus order need a role appropriate for interactive content'
21836
+ description: 'Ensures elements in the focus order have a role appropriate for interactive content',
21837
+ help: 'Elements in the focus order should have an appropriate role'
21594
21838
  },
21595
21839
  'form-field-multiple-labels': {
21596
21840
  description: 'Ensures form field does not have multiple label elements',
@@ -21618,7 +21862,7 @@
21618
21862
  },
21619
21863
  'hidden-content': {
21620
21864
  description: 'Informs users about hidden content.',
21621
- help: 'Hidden content on the page cannot be analyzed'
21865
+ help: 'Hidden content on the page should be analyzed'
21622
21866
  },
21623
21867
  'html-has-lang': {
21624
21868
  description: 'Ensures every HTML document has a lang attribute',
@@ -21634,7 +21878,7 @@
21634
21878
  },
21635
21879
  'identical-links-same-purpose': {
21636
21880
  description: 'Ensure that links with the same accessible name serve a similar purpose',
21637
- help: 'Links with the same name have a similar purpose'
21881
+ help: 'Links with the same name must have a similar purpose'
21638
21882
  },
21639
21883
  'image-alt': {
21640
21884
  description: 'Ensures <img> elements have alternate text or a role of none or presentation',
@@ -21657,7 +21901,7 @@
21657
21901
  help: 'Elements must have their visible text as part of their accessible name'
21658
21902
  },
21659
21903
  'label-title-only': {
21660
- description: 'Ensures that every form element is not solely labeled using the title or aria-describedby attributes',
21904
+ description: 'Ensures that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes',
21661
21905
  help: 'Form elements should have a visible label'
21662
21906
  },
21663
21907
  label: {
@@ -21701,8 +21945,8 @@
21701
21945
  description: 'Landmarks should have a unique role or role/label/title (i.e. accessible name) combination'
21702
21946
  },
21703
21947
  'link-in-text-block': {
21704
- description: 'Links can be distinguished without relying on color',
21705
- help: 'Links must be distinguished from surrounding text in a way that does not rely on color'
21948
+ description: 'Ensure links are distinguished from surrounding text in a way that does not rely on color',
21949
+ help: 'Links must be distinguishable without relying on color'
21706
21950
  },
21707
21951
  'link-name': {
21708
21952
  description: 'Ensures links have discernible text',
@@ -21733,20 +21977,20 @@
21733
21977
  help: 'Zooming and scaling should not be disabled'
21734
21978
  },
21735
21979
  'nested-interactive': {
21736
- description: 'Nested interactive controls are not announced by screen readers',
21737
- help: 'Ensure interactive controls are not nested'
21980
+ description: 'Ensures interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies',
21981
+ help: 'Interactive controls must not be nested'
21738
21982
  },
21739
21983
  'no-autoplay-audio': {
21740
21984
  description: 'Ensures <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio',
21741
- help: '<video> or <audio> elements do not autoplay audio'
21985
+ help: '<video> or <audio> elements must not play automatically'
21742
21986
  },
21743
21987
  'object-alt': {
21744
21988
  description: 'Ensures <object> elements have alternate text',
21745
21989
  help: '<object> elements must have alternate text'
21746
21990
  },
21747
21991
  'p-as-heading': {
21748
- description: 'Ensure p elements are not used to style headings',
21749
- help: 'Bold, italic text and font-size are not used to style p elements as a heading'
21992
+ description: 'Ensure bold, italic text and font-size is not used to style <p> elements as a heading',
21993
+ help: 'Styled <p> elements must not be used as headings'
21750
21994
  },
21751
21995
  'page-has-heading-one': {
21752
21996
  description: 'Ensure that the page, or at least one of its frames contains a level-one heading',
@@ -21762,15 +22006,15 @@
21762
22006
  },
21763
22007
  'role-img-alt': {
21764
22008
  description: 'Ensures [role=\'img\'] elements have alternate text',
21765
- help: '[role=\'img\'] elements have an alternative text'
22009
+ help: '[role=\'img\'] elements must have an alternative text'
21766
22010
  },
21767
22011
  'scope-attr-valid': {
21768
22012
  description: 'Ensures the scope attribute is used correctly on tables',
21769
22013
  help: 'scope attribute should be used correctly'
21770
22014
  },
21771
22015
  'scrollable-region-focusable': {
21772
- description: 'Elements that have scrollable content must be accessible by keyboard',
21773
- help: 'Ensure that scrollable region has keyboard access'
22016
+ description: 'Ensure elements that have scrollable content are accessible by keyboard',
22017
+ help: 'Scrollable region must have keyboard access'
21774
22018
  },
21775
22019
  'select-name': {
21776
22020
  description: 'Ensures select element has an accessible name',
@@ -21785,32 +22029,32 @@
21785
22029
  help: 'The skip-link target should exist and be focusable'
21786
22030
  },
21787
22031
  'svg-img-alt': {
21788
- description: 'Ensures svg elements with an img, graphics-document or graphics-symbol role have an accessible text',
21789
- help: 'svg elements with an img role have an alternative text'
22032
+ description: 'Ensures <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text',
22033
+ help: '<svg> elements with an img role must have an alternative text'
21790
22034
  },
21791
22035
  tabindex: {
21792
22036
  description: 'Ensures tabindex attribute values are not greater than 0',
21793
22037
  help: 'Elements should not have tabindex greater than zero'
21794
22038
  },
21795
22039
  'table-duplicate-name': {
21796
- description: 'Ensure that tables do not have the same summary and caption',
21797
- help: 'The <caption> element should not contain the same text as the summary attribute'
22040
+ description: 'Ensure the <caption> element does not contain the same text as the summary attribute',
22041
+ help: 'tables should not have the same summary and caption'
21798
22042
  },
21799
22043
  'table-fake-caption': {
21800
22044
  description: 'Ensure that tables with a caption use the <caption> element.',
21801
22045
  help: 'Data or header cells must not be used to give caption to a data table.'
21802
22046
  },
21803
22047
  'td-has-header': {
21804
- description: 'Ensure that each non-empty data cell in a large table has one or more table headers',
21805
- help: 'All non-empty td element in table larger than 3 by 3 must have an associated table header'
22048
+ description: 'Ensure that each non-empty data cell in a <table> larger than 3 by 3 has one or more table headers',
22049
+ help: 'Non-empty <td> elements in larger <table> must have an associated table header'
21806
22050
  },
21807
22051
  'td-headers-attr': {
21808
- description: 'Ensure that each cell in a table using the headers refers to another cell in that table',
21809
- help: 'All cells in a table element that use the headers attribute must only refer to other cells of that same table'
22052
+ description: 'Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table',
22053
+ help: 'Table cells that use the headers attribute must only refer to cells in the same table'
21810
22054
  },
21811
22055
  'th-has-data-cells': {
21812
- description: 'Ensure that each table header in a data table refers to data cells',
21813
- help: 'All th elements and elements with role=columnheader/rowheader must have data cells they describe'
22056
+ description: 'Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe',
22057
+ help: 'Table headers in a data table must refer to data cells'
21814
22058
  },
21815
22059
  'valid-lang': {
21816
22060
  description: 'Ensures lang attributes have valid values',
@@ -21862,7 +22106,8 @@
21862
22106
  pass: 'aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique',
21863
22107
  fail: {
21864
22108
  singular: 'aria-errormessage value `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)',
21865
- plural: 'aria-errormessage values `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)'
22109
+ plural: 'aria-errormessage values `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)',
22110
+ hidden: 'aria-errormessage value `${data.values}` cannot reference a hidden element'
21866
22111
  },
21867
22112
  incomplete: {
21868
22113
  singular: 'ensure aria-errormessage value `${data.values}` references an existing element',
@@ -21889,8 +22134,8 @@
21889
22134
  impact: 'serious',
21890
22135
  messages: {
21891
22136
  pass: 'ARIA attribute is allowed',
21892
- fail: 'ARIA attribute cannot be used, add a role attribute or use a different element: ${data.values}',
21893
- incomplete: 'ARIA attribute is not well supported on the element and the text content will be used instead: ${data.values}'
22137
+ fail: 'ARIA attribute: ${data.values} is not allowed. Use a different role attribute or element.',
22138
+ incomplete: 'ARIA attribute: ${data.values} is not well supported. Use a different role attribute or element.'
21894
22139
  }
21895
22140
  },
21896
22141
  'aria-required-attr': {
@@ -21967,6 +22212,13 @@
21967
22212
  }
21968
22213
  }
21969
22214
  },
22215
+ deprecatedrole: {
22216
+ impact: 'minor',
22217
+ messages: {
22218
+ pass: 'ARIA role is not deprecated',
22219
+ fail: 'The role used is deprecated: ${data.values}'
22220
+ }
22221
+ },
21970
22222
  fallbackrole: {
21971
22223
  impact: 'serious',
21972
22224
  messages: {
@@ -22154,7 +22406,10 @@
22154
22406
  impact: 'serious',
22155
22407
  messages: {
22156
22408
  pass: 'Element does not have focusable descendants',
22157
- fail: 'Element has focusable descendants',
22409
+ fail: {
22410
+ default: 'Element has focusable descendants',
22411
+ notHidden: 'Using a negative tabindex on an element inside an interactive control does not prevent assistive technologies from focusing the element (even with \'aria-hidden=true\')'
22412
+ },
22158
22413
  incomplete: 'Could not determine if element has descendants'
22159
22414
  }
22160
22415
  },
@@ -22430,7 +22685,8 @@
22430
22685
  impact: 'serious',
22431
22686
  messages: {
22432
22687
  pass: '<p> elements are not styled as headings',
22433
- fail: 'Heading elements should be used instead of styled p elements'
22688
+ fail: 'Heading elements should be used instead of styled <p> elements',
22689
+ incomplete: 'Unable to determine if <p> elements are styled as headings'
22434
22690
  }
22435
22691
  },
22436
22692
  region: {
@@ -22757,7 +23013,12 @@
22757
23013
  tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
22758
23014
  actIds: [ '5c01ea' ],
22759
23015
  all: [],
22760
- any: [ 'aria-allowed-attr' ],
23016
+ any: [ {
23017
+ options: {
23018
+ validTreeRowAttrs: [ 'aria-posinset', 'aria-setsize', 'aria-expanded', 'aria-level' ]
23019
+ },
23020
+ id: 'aria-allowed-attr'
23021
+ } ],
22761
23022
  none: [ 'aria-unsupported-attr', {
22762
23023
  options: {
22763
23024
  elementsAllowedAriaLabel: [ 'applet', 'input' ]
@@ -22919,7 +23180,7 @@
22919
23180
  tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
22920
23181
  all: [],
22921
23182
  any: [],
22922
- none: [ 'fallbackrole', 'invalidrole', 'abstractrole', 'unsupportedrole' ]
23183
+ none: [ 'fallbackrole', 'invalidrole', 'abstractrole', 'unsupportedrole', 'deprecatedrole' ]
22923
23184
  }, {
22924
23185
  id: 'aria-text',
22925
23186
  selector: '[role=text]',
@@ -23002,7 +23263,12 @@
23002
23263
  matches: 'autocomplete-matches',
23003
23264
  tags: [ 'cat.forms', 'wcag21aa', 'wcag135' ],
23004
23265
  actIds: [ '73f2c2' ],
23005
- all: [ 'autocomplete-valid' ],
23266
+ all: [ {
23267
+ options: {
23268
+ stateTerms: [ 'none', 'false', 'true', 'disabled', 'enabled', 'undefined', 'null' ]
23269
+ },
23270
+ id: 'autocomplete-valid'
23271
+ } ],
23006
23272
  any: [],
23007
23273
  none: []
23008
23274
  }, {
@@ -23297,7 +23563,7 @@
23297
23563
  selector: 'a[href], area[href], [role="link"]',
23298
23564
  excludeHidden: false,
23299
23565
  matches: 'identical-links-same-purpose-matches',
23300
- tags: [ 'cat.semantics', 'wcag2aaa', 'wcag249', 'best-practice' ],
23566
+ tags: [ 'cat.semantics', 'wcag2aaa', 'wcag249' ],
23301
23567
  actIds: [ 'b20e66', 'fd3a94' ],
23302
23568
  all: [ 'identical-links-same-purpose' ],
23303
23569
  any: [],
@@ -23544,7 +23810,7 @@
23544
23810
  id: 'meta-refresh',
23545
23811
  selector: 'meta[http-equiv="refresh"]',
23546
23812
  excludeHidden: false,
23547
- tags: [ 'cat.time-and-media', 'wcag2a', 'wcag2aaa', 'wcag221', 'wcag224', 'wcag325' ],
23813
+ tags: [ 'cat.time-and-media', 'wcag2a', 'wcag221', 'wcag224', 'wcag325' ],
23548
23814
  all: [],
23549
23815
  any: [ 'meta-refresh' ],
23550
23816
  none: []
@@ -23634,7 +23900,9 @@
23634
23900
  size: 1.15
23635
23901
  }, {
23636
23902
  size: 1.4
23637
- } ]
23903
+ } ],
23904
+ passLength: 1,
23905
+ failLength: .5
23638
23906
  },
23639
23907
  id: 'p-as-heading'
23640
23908
  } ],
@@ -23823,7 +24091,10 @@
23823
24091
  evaluate: 'abstractrole-evaluate'
23824
24092
  }, {
23825
24093
  id: 'aria-allowed-attr',
23826
- evaluate: 'aria-allowed-attr-evaluate'
24094
+ evaluate: 'aria-allowed-attr-evaluate',
24095
+ options: {
24096
+ validTreeRowAttrs: [ 'aria-posinset', 'aria-setsize', 'aria-expanded', 'aria-level' ]
24097
+ }
23827
24098
  }, {
23828
24099
  id: 'aria-allowed-role',
23829
24100
  evaluate: 'aria-allowed-role-evaluate',
@@ -23878,6 +24149,9 @@
23878
24149
  id: 'aria-valid-attr',
23879
24150
  evaluate: 'aria-valid-attr-evaluate',
23880
24151
  options: []
24152
+ }, {
24153
+ id: 'deprecatedrole',
24154
+ evaluate: 'deprecatedrole-evaluate'
23881
24155
  }, {
23882
24156
  id: 'fallbackrole',
23883
24157
  evaluate: 'fallbackrole-evaluate'
@@ -23936,7 +24210,10 @@
23936
24210
  deprecated: true
23937
24211
  }, {
23938
24212
  id: 'autocomplete-valid',
23939
- evaluate: 'autocomplete-valid-evaluate'
24213
+ evaluate: 'autocomplete-valid-evaluate',
24214
+ options: {
24215
+ stateTerms: [ 'none', 'false', 'true', 'disabled', 'enabled', 'undefined', 'null' ]
24216
+ }
23940
24217
  }, {
23941
24218
  id: 'accesskeys',
23942
24219
  evaluate: 'accesskeys-evaluate',
@@ -23961,7 +24238,7 @@
23961
24238
  evaluate: 'focusable-not-tabbable-evaluate'
23962
24239
  }, {
23963
24240
  id: 'frame-focusable-content',
23964
- evaluate: 'no-focusable-content-evaluate'
24241
+ evaluate: 'frame-focusable-content-evaluate'
23965
24242
  }, {
23966
24243
  id: 'landmark-is-top-level',
23967
24244
  evaluate: 'landmark-is-top-level-evaluate'
@@ -24154,7 +24431,9 @@
24154
24431
  size: 1.15
24155
24432
  }, {
24156
24433
  size: 1.4
24157
- } ]
24434
+ } ],
24435
+ passLength: 1,
24436
+ failLength: .5
24158
24437
  }
24159
24438
  }, {
24160
24439
  id: 'region',