axe-core 4.4.2-canary.94e75ac → 4.4.2-canary.cd5f8a6

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.4.2-canary.94e75ac
1
+ /*! axe v4.4.2-canary.cd5f8a6
2
2
  * Copyright (c) 2022 Deque Systems, Inc.
3
3
  *
4
4
  * Your use of this Source Code Form is subject to the terms of the Mozilla Public
@@ -22,7 +22,7 @@
22
22
  }, _typeof(obj);
23
23
  }
24
24
  var axe = axe || {};
25
- axe.version = '4.4.2-canary.94e75ac';
25
+ axe.version = '4.4.2-canary.cd5f8a6';
26
26
  if (typeof define === 'function' && define.amd) {
27
27
  define('axe-core', [], function() {
28
28
  return axe;
@@ -82,7 +82,7 @@
82
82
  }
83
83
  }
84
84
  function _setPrototypeOf(o, p) {
85
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
85
+ _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
86
86
  o.__proto__ = p;
87
87
  return o;
88
88
  };
@@ -133,7 +133,7 @@
133
133
  }
134
134
  }
135
135
  function _getPrototypeOf(o) {
136
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
136
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
137
137
  return o.__proto__ || Object.getPrototypeOf(o);
138
138
  };
139
139
  return _getPrototypeOf(o);
@@ -235,7 +235,7 @@
235
235
  }
236
236
  }
237
237
  function _extends() {
238
- _extends = Object.assign || function(target) {
238
+ _extends = Object.assign ? Object.assign.bind() : function(target) {
239
239
  for (var i = 1; i < arguments.length; i++) {
240
240
  var source = arguments[i];
241
241
  for (var key in source) {
@@ -4617,8 +4617,8 @@
4617
4617
  this.buffer._bytes[d] = tmp[i];
4618
4618
  }
4619
4619
  } else {
4620
- for (i = 0, s = array.byteOffset, d = byteOffset; i < byteLength; i += 1, s += 1,
4621
- d += 1) {
4620
+ for (i = 0, s = array.byteOffset, d = byteOffset; i < byteLength; i += 1,
4621
+ s += 1, d += 1) {
4622
4622
  this.buffer._bytes[d] = array.buffer._bytes[s];
4623
4623
  }
4624
4624
  }
@@ -6511,6 +6511,7 @@
6511
6511
  return {
6512
6512
  key: attributeKey,
6513
6513
  value: attributeValue,
6514
+ type: typeof att.value === 'undefined' ? 'attrExist' : 'attrValue',
6514
6515
  test: test
6515
6516
  };
6516
6517
  });
@@ -6569,20 +6570,23 @@
6569
6570
  return convertExpressions(expressions);
6570
6571
  }
6571
6572
  function optimizedMatchesExpression(vNode, expressions, index, matchAnyParent) {
6573
+ if (!vNode) {
6574
+ return false;
6575
+ }
6572
6576
  var isArray = Array.isArray(expressions);
6573
6577
  var expression = isArray ? expressions[index] : expressions;
6574
- var matches14 = matchExpression(vNode, expression);
6575
- while (!matches14 && matchAnyParent && vNode.parent) {
6578
+ var matches16 = matchExpression(vNode, expression);
6579
+ while (!matches16 && matchAnyParent && vNode.parent) {
6576
6580
  vNode = vNode.parent;
6577
- matches14 = matchExpression(vNode, expression);
6581
+ matches16 = matchExpression(vNode, expression);
6578
6582
  }
6579
6583
  if (index > 0) {
6580
6584
  if ([ ' ', '>' ].includes(expression.combinator) === false) {
6581
6585
  throw new Error('axe.utils.matchesExpression does not support the combinator: ' + expression.combinator);
6582
6586
  }
6583
- matches14 = matches14 && optimizedMatchesExpression(vNode.parent, expressions, index - 1, expression.combinator === ' ');
6587
+ matches16 = matches16 && optimizedMatchesExpression(vNode.parent, expressions, index - 1, expression.combinator === ' ');
6584
6588
  }
6585
- return matches14;
6589
+ return matches16;
6586
6590
  }
6587
6591
  function _matchesExpression(vNode, expressions, matchAnyParent) {
6588
6592
  return optimizedMatchesExpression(vNode, expressions, expressions.length - 1, matchAnyParent);
@@ -10600,6 +10604,126 @@
10600
10604
  return VirtualNode;
10601
10605
  }(abstract_virtual_node_default);
10602
10606
  var virtual_node_default = VirtualNode;
10607
+ function tokenList(str) {
10608
+ return (str || '').trim().replace(/\s{2,}/g, ' ').split(' ');
10609
+ }
10610
+ var token_list_default = tokenList;
10611
+ var idsKey = ' [idsMap]';
10612
+ function getNodesMatchingExpression(domTree, expressions, filter) {
10613
+ var selectorMap = domTree[0]._selectorMap;
10614
+ if (!selectorMap) {
10615
+ return;
10616
+ }
10617
+ var shadowId = domTree[0].shadowId;
10618
+ for (var _i8 = 0; _i8 < expressions.length; _i8++) {
10619
+ if (expressions[_i8].length > 1 && expressions[_i8].some(function(expression) {
10620
+ return isGlobalSelector(expression);
10621
+ })) {
10622
+ return;
10623
+ }
10624
+ }
10625
+ var nodeSet = new Set();
10626
+ expressions.forEach(function(expression) {
10627
+ var _matchingNodes$nodes;
10628
+ var matchingNodes = findMatchingNodes(expression, selectorMap, shadowId);
10629
+ matchingNodes === null || matchingNodes === void 0 ? void 0 : (_matchingNodes$nodes = matchingNodes.nodes) === null || _matchingNodes$nodes === void 0 ? void 0 : _matchingNodes$nodes.forEach(function(node) {
10630
+ if (matchingNodes.isComplexSelector && !_matchesExpression(node, expression)) {
10631
+ return;
10632
+ }
10633
+ nodeSet.add(node);
10634
+ });
10635
+ });
10636
+ var matchedNodes = [];
10637
+ nodeSet.forEach(function(node) {
10638
+ return matchedNodes.push(node);
10639
+ });
10640
+ if (filter) {
10641
+ matchedNodes = matchedNodes.filter(filter);
10642
+ }
10643
+ return matchedNodes.sort(function(a, b) {
10644
+ return a.nodeIndex - b.nodeIndex;
10645
+ });
10646
+ }
10647
+ function findMatchingNodes(expression, selectorMap, shadowId) {
10648
+ var exp = expression[expression.length - 1];
10649
+ var nodes = null;
10650
+ var isComplexSelector = expression.length > 1 || !!exp.pseudos || !!exp.classes;
10651
+ if (isGlobalSelector(exp)) {
10652
+ nodes = selectorMap['*'];
10653
+ } else {
10654
+ if (exp.id) {
10655
+ var _selectorMap$idsKey$e;
10656
+ if (!selectorMap[idsKey] || !((_selectorMap$idsKey$e = selectorMap[idsKey][exp.id]) !== null && _selectorMap$idsKey$e !== void 0 && _selectorMap$idsKey$e.length)) {
10657
+ return;
10658
+ }
10659
+ nodes = selectorMap[idsKey][exp.id].filter(function(node) {
10660
+ return node.shadowId === shadowId;
10661
+ });
10662
+ }
10663
+ if (exp.tag && exp.tag !== '*') {
10664
+ var _selectorMap$exp$tag;
10665
+ if (!((_selectorMap$exp$tag = selectorMap[exp.tag]) !== null && _selectorMap$exp$tag !== void 0 && _selectorMap$exp$tag.length)) {
10666
+ return;
10667
+ }
10668
+ var cachedNodes = selectorMap[exp.tag];
10669
+ nodes = nodes ? getSharedValues(cachedNodes, nodes) : cachedNodes;
10670
+ }
10671
+ if (exp.classes) {
10672
+ var _selectorMap$Class;
10673
+ if (!((_selectorMap$Class = selectorMap['[class]']) !== null && _selectorMap$Class !== void 0 && _selectorMap$Class.length)) {
10674
+ return;
10675
+ }
10676
+ var _cachedNodes = selectorMap['[class]'];
10677
+ nodes = nodes ? getSharedValues(_cachedNodes, nodes) : _cachedNodes;
10678
+ }
10679
+ if (exp.attributes) {
10680
+ for (var _i9 = 0; _i9 < exp.attributes.length; _i9++) {
10681
+ var _selectorMap$;
10682
+ var attr = exp.attributes[_i9];
10683
+ if (attr.type === 'attrValue') {
10684
+ isComplexSelector = true;
10685
+ }
10686
+ if (!((_selectorMap$ = selectorMap['['.concat(attr.key, ']')]) !== null && _selectorMap$ !== void 0 && _selectorMap$.length)) {
10687
+ return;
10688
+ }
10689
+ var _cachedNodes2 = selectorMap['['.concat(attr.key, ']')];
10690
+ nodes = nodes ? getSharedValues(_cachedNodes2, nodes) : _cachedNodes2;
10691
+ }
10692
+ }
10693
+ }
10694
+ return {
10695
+ nodes: nodes,
10696
+ isComplexSelector: isComplexSelector
10697
+ };
10698
+ }
10699
+ function isGlobalSelector(expression) {
10700
+ return expression.tag === '*' && !expression.attributes && !expression.id && !expression.classes;
10701
+ }
10702
+ function getSharedValues(a, b) {
10703
+ return a.filter(function(node) {
10704
+ return b.includes(node);
10705
+ });
10706
+ }
10707
+ function cacheSelector(key, vNode, map) {
10708
+ map[key] = map[key] || [];
10709
+ map[key].push(vNode);
10710
+ }
10711
+ function cacheNodeSelectors(vNode, selectorMap) {
10712
+ if (vNode.props.nodeType !== 1) {
10713
+ return;
10714
+ }
10715
+ cacheSelector(vNode.props.nodeName, vNode, selectorMap);
10716
+ cacheSelector('*', vNode, selectorMap);
10717
+ vNode.attrNames.forEach(function(attrName) {
10718
+ if (attrName === 'id') {
10719
+ selectorMap[idsKey] = selectorMap[idsKey] || {};
10720
+ token_list_default(vNode.attr(attrName)).forEach(function(value) {
10721
+ cacheSelector(value, vNode, selectorMap[idsKey]);
10722
+ });
10723
+ }
10724
+ cacheSelector('['.concat(attrName, ']'), vNode, selectorMap);
10725
+ });
10726
+ }
10603
10727
  var hasShadowRoot;
10604
10728
  function getSlotChildren(node) {
10605
10729
  var retVal = [];
@@ -10610,6 +10734,11 @@
10610
10734
  }
10611
10735
  return retVal;
10612
10736
  }
10737
+ function createNode(node, parent, shadowId) {
10738
+ var vNode = new virtual_node_default(node, parent, shadowId);
10739
+ cacheNodeSelectors(vNode, cache_default.get('selectorMap'));
10740
+ return vNode;
10741
+ }
10613
10742
  function flattenTree(node, shadowId, parent) {
10614
10743
  var retVal, realArray, nodeName2;
10615
10744
  function reduceShadowDOM(res, child, parent2) {
@@ -10625,7 +10754,7 @@
10625
10754
  nodeName2 = node.nodeName.toLowerCase();
10626
10755
  if (is_shadow_root_default(node)) {
10627
10756
  hasShadowRoot = true;
10628
- retVal = new virtual_node_default(node, parent, shadowId);
10757
+ retVal = createNode(node, parent, shadowId);
10629
10758
  shadowId = 'a' + Math.random().toString().substring(2);
10630
10759
  realArray = Array.from(node.shadowRoot.childNodes);
10631
10760
  retVal.children = realArray.reduce(function(res, child) {
@@ -10645,7 +10774,7 @@
10645
10774
  }
10646
10775
  var styl = window.getComputedStyle(node);
10647
10776
  if (false) {
10648
- retVal = new virtual_node_default(node, parent, shadowId);
10777
+ retVal = createNode(node, parent, shadowId);
10649
10778
  retVal.children = realArray.reduce(function(res, child) {
10650
10779
  return reduceShadowDOM(res, child, retVal);
10651
10780
  }, []);
@@ -10657,14 +10786,14 @@
10657
10786
  }
10658
10787
  } else {
10659
10788
  if (node.nodeType === 1) {
10660
- retVal = new virtual_node_default(node, parent, shadowId);
10789
+ retVal = createNode(node, parent, shadowId);
10661
10790
  realArray = Array.from(node.childNodes);
10662
10791
  retVal.children = realArray.reduce(function(res, child) {
10663
10792
  return reduceShadowDOM(res, child, retVal);
10664
10793
  }, []);
10665
10794
  return [ retVal ];
10666
10795
  } else if (node.nodeType === 3) {
10667
- return [ new virtual_node_default(node, parent) ];
10796
+ return [ createNode(node, parent) ];
10668
10797
  }
10669
10798
  return void 0;
10670
10799
  }
@@ -10674,8 +10803,11 @@
10674
10803
  var node = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;
10675
10804
  var shadowId = arguments.length > 1 ? arguments[1] : undefined;
10676
10805
  hasShadowRoot = false;
10806
+ var selectorMap = {};
10677
10807
  cache_default.set('nodeMap', new WeakMap());
10808
+ cache_default.set('selectorMap', selectorMap);
10678
10809
  var tree = flattenTree(node, shadowId, null);
10810
+ tree[0]._selectorMap = selectorMap;
10679
10811
  tree[0]._hasShadowRoot = hasShadowRoot;
10680
10812
  return tree;
10681
10813
  }
@@ -11756,9 +11888,9 @@
11756
11888
  var childAny = null;
11757
11889
  var combinedLength = (((_currentLevel$anyLeve = currentLevel.anyLevel) === null || _currentLevel$anyLeve === void 0 ? void 0 : _currentLevel$anyLeve.length) || 0) + (((_currentLevel$thisLev = currentLevel.thisLevel) === null || _currentLevel$thisLev === void 0 ? void 0 : _currentLevel$thisLev.length) || 0);
11758
11890
  var added = false;
11759
- for (var _i8 = 0; _i8 < combinedLength; _i8++) {
11891
+ for (var _i10 = 0; _i10 < combinedLength; _i10++) {
11760
11892
  var _currentLevel$anyLeve2, _currentLevel$anyLeve3, _currentLevel$anyLeve4;
11761
- var exp = _i8 < (((_currentLevel$anyLeve2 = currentLevel.anyLevel) === null || _currentLevel$anyLeve2 === void 0 ? void 0 : _currentLevel$anyLeve2.length) || 0) ? currentLevel.anyLevel[_i8] : currentLevel.thisLevel[_i8 - (((_currentLevel$anyLeve3 = currentLevel.anyLevel) === null || _currentLevel$anyLeve3 === void 0 ? void 0 : _currentLevel$anyLeve3.length) || 0)];
11893
+ var exp = _i10 < (((_currentLevel$anyLeve2 = currentLevel.anyLevel) === null || _currentLevel$anyLeve2 === void 0 ? void 0 : _currentLevel$anyLeve2.length) || 0) ? currentLevel.anyLevel[_i10] : currentLevel.thisLevel[_i10 - (((_currentLevel$anyLeve3 = currentLevel.anyLevel) === null || _currentLevel$anyLeve3 === void 0 ? void 0 : _currentLevel$anyLeve3.length) || 0)];
11762
11894
  if ((!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) && _matchesExpression(vNode, exp[0])) {
11763
11895
  if (exp.length === 1) {
11764
11896
  if (!added && (!filter || filter(vNode))) {
@@ -11795,6 +11927,10 @@
11795
11927
  function querySelectorAllFilter(domTree, selector, filter) {
11796
11928
  domTree = Array.isArray(domTree) ? domTree : [ domTree ];
11797
11929
  var expressions = _convertSelector(selector);
11930
+ var nodes = getNodesMatchingExpression(domTree, expressions, filter);
11931
+ if (nodes) {
11932
+ return nodes;
11933
+ }
11798
11934
  return matchExpressions(domTree, expressions, filter);
11799
11935
  }
11800
11936
  var query_selector_all_filter_default = querySelectorAllFilter;
@@ -12168,9 +12304,9 @@
12168
12304
  result = nodes;
12169
12305
  nodes = temp;
12170
12306
  }
12171
- for (var _i9 = 0, l = nodes.length; _i9 < l; _i9++) {
12172
- if (!result.includes(nodes[_i9])) {
12173
- result.push(nodes[_i9]);
12307
+ for (var _i11 = 0, l = nodes.length; _i11 < l; _i11++) {
12308
+ if (!result.includes(nodes[_i11])) {
12309
+ result.push(nodes[_i11]);
12174
12310
  }
12175
12311
  }
12176
12312
  return result;
@@ -12196,8 +12332,8 @@
12196
12332
  }
12197
12333
  var outerIncludes = getOuterIncludes(context5.include);
12198
12334
  var isInContext = getContextFilter(context5);
12199
- for (var _i10 = 0; _i10 < outerIncludes.length; _i10++) {
12200
- candidate = outerIncludes[_i10];
12335
+ for (var _i12 = 0; _i12 < outerIncludes.length; _i12++) {
12336
+ candidate = outerIncludes[_i12];
12201
12337
  var nodes = query_selector_all_filter_default(candidate, selector, isInContext);
12202
12338
  result = pushNode(result, nodes);
12203
12339
  }
@@ -12248,10 +12384,6 @@
12248
12384
  }
12249
12385
  return selectRecursive(selectors, elm.shadowRoot);
12250
12386
  }
12251
- function tokenList(str) {
12252
- return (str || '').trim().replace(/\s{2,}/g, ' ').split(' ');
12253
- }
12254
- var token_list_default = tokenList;
12255
12387
  function validInputTypes() {
12256
12388
  return [ 'hidden', 'text', 'search', 'tel', 'url', 'email', 'password', 'date', 'month', 'week', 'time', 'datetime-local', 'number', 'range', 'color', 'checkbox', 'radio', 'file', 'submit', 'image', 'reset', 'button' ];
12257
12389
  }
@@ -12262,8 +12394,8 @@
12262
12394
  while (lang.length < 3) {
12263
12395
  lang += '`';
12264
12396
  }
12265
- for (var _i11 = 0; _i11 <= lang.length - 1; _i11++) {
12266
- var index = lang.charCodeAt(_i11) - 96;
12397
+ for (var _i13 = 0; _i13 <= lang.length - 1; _i13++) {
12398
+ var index = lang.charCodeAt(_i13) - 96;
12267
12399
  array = array[index];
12268
12400
  if (!array) {
12269
12401
  return false;
@@ -12873,10 +13005,10 @@
12873
13005
  });
12874
13006
  }
12875
13007
  var from_definition_default = fromDefinition;
12876
- function matches5(vNode, definition) {
13008
+ function matches6(vNode, definition) {
12877
13009
  return from_definition_default(vNode, definition);
12878
13010
  }
12879
- var matches_default2 = matches5;
13011
+ var matches_default2 = matches6;
12880
13012
  matches_default2.hasAccessibleName = has_accessible_name_default;
12881
13013
  matches_default2.attributes = attributes_default;
12882
13014
  matches_default2.condition = condition_default;
@@ -12903,14 +13035,14 @@
12903
13035
  if (!variant.hasOwnProperty(variantName) || variantName === 'default') {
12904
13036
  continue;
12905
13037
  }
12906
- var _variant$variantName = variant[variantName], matches14 = _variant$variantName.matches, props = _objectWithoutProperties(_variant$variantName, _excluded4);
12907
- var matchProperties = Array.isArray(matches14) ? matches14 : [ matches14 ];
12908
- for (var _i12 = 0; _i12 < matchProperties.length && noMatchAccessibleName; _i12++) {
12909
- if (matchProperties[_i12].hasOwnProperty('hasAccessibleName')) {
13038
+ var _variant$variantName = variant[variantName], matches16 = _variant$variantName.matches, props = _objectWithoutProperties(_variant$variantName, _excluded4);
13039
+ var matchProperties = Array.isArray(matches16) ? matches16 : [ matches16 ];
13040
+ for (var _i14 = 0; _i14 < matchProperties.length && noMatchAccessibleName; _i14++) {
13041
+ if (matchProperties[_i14].hasOwnProperty('hasAccessibleName')) {
12910
13042
  return standard;
12911
13043
  }
12912
13044
  }
12913
- if (matches_default3(vNode, matches14)) {
13045
+ if (matches_default3(vNode, matches16)) {
12914
13046
  for (var propName in props) {
12915
13047
  if (props.hasOwnProperty(propName)) {
12916
13048
  spec[propName] = props[propName];
@@ -13839,8 +13971,8 @@
13839
13971
  idRefs[id] = idRefs[id] || [];
13840
13972
  idRefs[id].push(node);
13841
13973
  }
13842
- for (var _i13 = 0; _i13 < refAttrs.length; ++_i13) {
13843
- var attr = refAttrs[_i13];
13974
+ for (var _i15 = 0; _i15 < refAttrs.length; ++_i15) {
13975
+ var attr = refAttrs[_i15];
13844
13976
  var attrValue = sanitize_default(node.getAttribute(attr) || '');
13845
13977
  if (!attrValue) {
13846
13978
  continue;
@@ -13852,9 +13984,9 @@
13852
13984
  }
13853
13985
  }
13854
13986
  }
13855
- for (var _i14 = 0; _i14 < node.childNodes.length; _i14++) {
13856
- if (node.childNodes[_i14].nodeType === 1) {
13857
- cacheIdRefs(node.childNodes[_i14], idRefs, refAttrs);
13987
+ for (var _i16 = 0; _i16 < node.childNodes.length; _i16++) {
13988
+ if (node.childNodes[_i16].nodeType === 1) {
13989
+ cacheIdRefs(node.childNodes[_i16], idRefs, refAttrs);
13858
13990
  }
13859
13991
  }
13860
13992
  }
@@ -15859,7 +15991,7 @@
15859
15991
  var required_owned_default = requiredOwned;
15860
15992
  function validateAttrValue(vNode, attr) {
15861
15993
  vNode = vNode instanceof abstract_virtual_node_default ? vNode : get_node_from_tree_default(vNode);
15862
- var matches14;
15994
+ var matches16;
15863
15995
  var list;
15864
15996
  var value = vNode.attr(attr);
15865
15997
  var attrInfo = standards_default.ariaAttrs[attr];
@@ -15899,8 +16031,8 @@
15899
16031
  return value.trim() !== '';
15900
16032
 
15901
16033
  case 'decimal':
15902
- matches14 = value.match(/^[-+]?([0-9]*)\.?([0-9]*)$/);
15903
- return !!(matches14 && (matches14[1] || matches14[2]));
16034
+ matches16 = value.match(/^[-+]?([0-9]*)\.?([0-9]*)$/);
16035
+ return !!(matches16 && (matches16[1] || matches16[2]));
15904
16036
 
15905
16037
  case 'int':
15906
16038
  var minValue = typeof attrInfo.minValue !== 'undefined' ? attrInfo.minValue : -Infinity;
@@ -15956,9 +16088,9 @@
15956
16088
  preChecks[attr] = validateRowAttrs;
15957
16089
  });
15958
16090
  if (allowed) {
15959
- for (var _i15 = 0; _i15 < attrs.length; _i15++) {
16091
+ for (var _i17 = 0; _i17 < attrs.length; _i17++) {
15960
16092
  var _preChecks$attrName;
15961
- var attrName = attrs[_i15];
16093
+ var attrName = attrs[_i17];
15962
16094
  if (validate_attr_default(attrName) && (_preChecks$attrName = preChecks[attrName]) !== null && _preChecks$attrName !== void 0 && _preChecks$attrName.call(preChecks)) {
15963
16095
  invalid.push(attrName + '="' + virtualNode.attr(attrName) + '"');
15964
16096
  } else if (validate_attr_default(attrName) && !allowed.includes(attrName)) {
@@ -16130,8 +16262,8 @@
16130
16262
  required = unique_array_default(options[role], required);
16131
16263
  }
16132
16264
  if (role && required) {
16133
- for (var _i16 = 0, l = required.length; _i16 < l; _i16++) {
16134
- var attr = required[_i16];
16265
+ for (var _i18 = 0, l = required.length; _i18 < l; _i18++) {
16266
+ var attr = required[_i18];
16135
16267
  if (!virtualNode.attr(attr) && !(elmSpec.implicitAttrs && typeof elmSpec.implicitAttrs[attr] !== 'undefined')) {
16136
16268
  missing.push(attr);
16137
16269
  }
@@ -16152,8 +16284,8 @@
16152
16284
  function getOwnedRoles(virtualNode, required) {
16153
16285
  var ownedRoles = [];
16154
16286
  var ownedElements = get_owned_virtual_default(virtualNode);
16155
- var _loop4 = function _loop4(_i17) {
16156
- var ownedElement = ownedElements[_i17];
16287
+ var _loop4 = function _loop4(_i19) {
16288
+ var ownedElement = ownedElements[_i19];
16157
16289
  var role = get_role_default(ownedElement, {
16158
16290
  noPresentational: true
16159
16291
  });
@@ -16165,14 +16297,14 @@
16165
16297
  ownedRoles.push(role);
16166
16298
  }
16167
16299
  };
16168
- for (var _i17 = 0; _i17 < ownedElements.length; _i17++) {
16169
- _loop4(_i17);
16300
+ for (var _i19 = 0; _i19 < ownedElements.length; _i19++) {
16301
+ _loop4(_i19);
16170
16302
  }
16171
16303
  return ownedRoles;
16172
16304
  }
16173
16305
  function missingRequiredChildren(virtualNode, role, required, ownedRoles) {
16174
- for (var _i18 = 0; _i18 < ownedRoles.length; _i18++) {
16175
- var ownedRole = ownedRoles[_i18];
16306
+ for (var _i20 = 0; _i20 < ownedRoles.length; _i20++) {
16307
+ var ownedRole = ownedRoles[_i20];
16176
16308
  if (required.includes(ownedRole)) {
16177
16309
  required = required.filter(function(requiredRole) {
16178
16310
  return requiredRole !== ownedRole;
@@ -16261,8 +16393,8 @@
16261
16393
  }
16262
16394
  var owners = getAriaOwners(node);
16263
16395
  if (owners) {
16264
- for (var _i19 = 0, l = owners.length; _i19 < l; _i19++) {
16265
- missingParents = getMissingContext(get_node_from_tree_default(owners[_i19]), ownGroupRoles, missingParents, true);
16396
+ for (var _i21 = 0, l = owners.length; _i21 < l; _i21++) {
16397
+ missingParents = getMissingContext(get_node_from_tree_default(owners[_i21]), ownGroupRoles, missingParents, true);
16266
16398
  if (!missingParents) {
16267
16399
  return true;
16268
16400
  }
@@ -16737,11 +16869,11 @@
16737
16869
  return position === 'static';
16738
16870
  }
16739
16871
  function calculateObscuringElement(elmIndex, elmStack, originalElm) {
16740
- for (var _i20 = elmIndex - 1; _i20 >= 0; _i20--) {
16741
- if (!isInlineDescendant(originalElm, elmStack[_i20])) {
16872
+ for (var _i22 = elmIndex - 1; _i22 >= 0; _i22--) {
16873
+ if (!isInlineDescendant(originalElm, elmStack[_i22])) {
16742
16874
  return true;
16743
16875
  }
16744
- elmStack.splice(_i20, 1);
16876
+ elmStack.splice(_i22, 1);
16745
16877
  }
16746
16878
  return false;
16747
16879
  }
@@ -17315,6 +17447,9 @@
17315
17447
  if (!options || !options.selector || typeof options.selector !== 'string') {
17316
17448
  throw new TypeError('has-descendant requires options.selector to be a string');
17317
17449
  }
17450
+ if (options.passForModal && is_modal_open_default()) {
17451
+ return true;
17452
+ }
17318
17453
  var matchingElms = query_selector_all_filter_default(virtualNode, options.selector, function(vNode) {
17319
17454
  return is_visible_default(vNode.actualNode, true);
17320
17455
  });
@@ -18090,7 +18225,7 @@
18090
18225
  var relatedElements = [];
18091
18226
  var rulesGroupByDocumentFragment = groupCssomByDocument(cssom);
18092
18227
  var _loop5 = function _loop5() {
18093
- var key = _Object$keys2[_i21];
18228
+ var key = _Object$keys2[_i23];
18094
18229
  var _rulesGroupByDocument = rulesGroupByDocumentFragment[key], root = _rulesGroupByDocument.root, rules = _rulesGroupByDocument.rules;
18095
18230
  var orientationRules = rules.filter(isMediaRuleWithOrientation);
18096
18231
  if (!orientationRules.length) {
@@ -18108,7 +18243,7 @@
18108
18243
  });
18109
18244
  });
18110
18245
  };
18111
- for (var _i21 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i21 < _Object$keys2.length; _i21++) {
18246
+ for (var _i23 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i23 < _Object$keys2.length; _i23++) {
18112
18247
  var _ret2 = _loop5();
18113
18248
  if (_ret2 === 'continue') {
18114
18249
  continue;
@@ -18155,11 +18290,11 @@
18155
18290
  if (!transformStyle) {
18156
18291
  return false;
18157
18292
  }
18158
- var matches14 = transformStyle.match(/(rotate|rotateZ|rotate3d|matrix|matrix3d)\(([^)]+)\)(?!.*(rotate|rotateZ|rotate3d|matrix|matrix3d))/);
18159
- if (!matches14) {
18293
+ var matches16 = transformStyle.match(/(rotate|rotateZ|rotate3d|matrix|matrix3d)\(([^)]+)\)(?!.*(rotate|rotateZ|rotate3d|matrix|matrix3d))/);
18294
+ if (!matches16) {
18160
18295
  return false;
18161
18296
  }
18162
- var _matches = _slicedToArray(matches14, 3), transformFn = _matches[1], transformFnValue = _matches[2];
18297
+ var _matches = _slicedToArray(matches16, 3), transformFn = _matches[1], transformFnValue = _matches[2];
18163
18298
  var degrees = getRotationInDegrees(transformFn, transformFnValue);
18164
18299
  if (!degrees) {
18165
18300
  return false;
@@ -18422,7 +18557,7 @@
18422
18557
  if (_typeof(aValue) !== _typeof(bValue)) {
18423
18558
  return false;
18424
18559
  }
18425
- if (typeof aValue === 'object' || typeof bValue === 'object') {
18560
+ if (_typeof(aValue) === 'object' || _typeof(bValue) === 'object') {
18426
18561
  return isIdenticalObject(aValue, bValue);
18427
18562
  }
18428
18563
  return aValue === bValue;
@@ -18902,16 +19037,16 @@
18902
19037
  var outerText = elm.textContent.trim();
18903
19038
  var innerText = outerText;
18904
19039
  while (innerText === outerText && nextNode !== void 0) {
18905
- var _i22 = -1;
19040
+ var _i24 = -1;
18906
19041
  elm = nextNode;
18907
19042
  if (elm.children.length === 0) {
18908
19043
  return elm;
18909
19044
  }
18910
19045
  do {
18911
- _i22++;
18912
- innerText = elm.children[_i22].textContent.trim();
18913
- } while (innerText === '' && _i22 + 1 < elm.children.length);
18914
- nextNode = elm.children[_i22];
19046
+ _i24++;
19047
+ innerText = elm.children[_i24].textContent.trim();
19048
+ } while (innerText === '' && _i24 + 1 < elm.children.length);
19049
+ nextNode = elm.children[_i24];
18915
19050
  }
18916
19051
  return elm;
18917
19052
  }
@@ -19396,8 +19531,8 @@
19396
19531
  var aria49 = /^aria-/;
19397
19532
  var attrs = virtualNode.attrNames;
19398
19533
  if (attrs.length) {
19399
- for (var _i23 = 0, l = attrs.length; _i23 < l; _i23++) {
19400
- if (aria49.test(attrs[_i23])) {
19534
+ for (var _i25 = 0, l = attrs.length; _i25 < l; _i25++) {
19535
+ if (aria49.test(attrs[_i25])) {
19401
19536
  return true;
19402
19537
  }
19403
19538
  }
@@ -19802,6 +19937,11 @@
19802
19937
  return true;
19803
19938
  }
19804
19939
  var no_naming_method_matches_default = noNamingMethodMatches;
19940
+ function noNegativeTabindexMatches(node, virtualNode) {
19941
+ var tabindex = parseInt(virtualNode.attr('tabindex'), 10);
19942
+ return isNaN(tabindex) || tabindex >= 0;
19943
+ }
19944
+ var no_negative_tabindex_matches_default = noNegativeTabindexMatches;
19805
19945
  function noRoleMatches(node) {
19806
19946
  return !node.getAttribute('role');
19807
19947
  }
@@ -19987,6 +20127,7 @@
19987
20127
  'no-focusable-content-evaluate': noFocusableContentEvaluate,
19988
20128
  'no-implicit-explicit-label-evaluate': no_implicit_explicit_label_evaluate_default,
19989
20129
  'no-naming-method-matches': no_naming_method_matches_default,
20130
+ 'no-negative-tabindex-matches': no_negative_tabindex_matches_default,
19990
20131
  'no-role-matches': no_role_matches_default,
19991
20132
  'non-empty-if-present-evaluate': non_empty_if_present_evaluate_default,
19992
20133
  'not-html-matches': not_html_matches_default,
@@ -20166,7 +20307,7 @@
20166
20307
  this.matches = createExecutionContext(spec.matches);
20167
20308
  }
20168
20309
  }
20169
- Rule.prototype.matches = function matches13() {
20310
+ Rule.prototype.matches = function matches14() {
20170
20311
  return true;
20171
20312
  };
20172
20313
  Rule.prototype.gather = function gather(context5) {
@@ -20611,8 +20752,8 @@
20611
20752
  lang: this.lang
20612
20753
  };
20613
20754
  var checkIDs = Object.keys(this.data.checks);
20614
- for (var _i24 = 0; _i24 < checkIDs.length; _i24++) {
20615
- var id = checkIDs[_i24];
20755
+ for (var _i26 = 0; _i26 < checkIDs.length; _i26++) {
20756
+ var id = checkIDs[_i26];
20616
20757
  var check4 = this.data.checks[id];
20617
20758
  var _check4$messages = check4.messages, pass = _check4$messages.pass, fail = _check4$messages.fail, incomplete = _check4$messages.incomplete;
20618
20759
  locale.checks[id] = {
@@ -20622,8 +20763,8 @@
20622
20763
  };
20623
20764
  }
20624
20765
  var ruleIDs = Object.keys(this.data.rules);
20625
- for (var _i25 = 0; _i25 < ruleIDs.length; _i25++) {
20626
- var _id = ruleIDs[_i25];
20766
+ for (var _i27 = 0; _i27 < ruleIDs.length; _i27++) {
20767
+ var _id = ruleIDs[_i27];
20627
20768
  var rule3 = this.data.rules[_id];
20628
20769
  var description = rule3.description, help = rule3.help;
20629
20770
  locale.rules[_id] = {
@@ -20632,8 +20773,8 @@
20632
20773
  };
20633
20774
  }
20634
20775
  var failureSummaries = Object.keys(this.data.failureSummaries);
20635
- for (var _i26 = 0; _i26 < failureSummaries.length; _i26++) {
20636
- var type = failureSummaries[_i26];
20776
+ for (var _i28 = 0; _i28 < failureSummaries.length; _i28++) {
20777
+ var type = failureSummaries[_i28];
20637
20778
  var failureSummary2 = this.data.failureSummaries[type];
20638
20779
  var failureMessage = failureSummary2.failureMessage;
20639
20780
  locale.failureSummaries[type] = {
@@ -20656,8 +20797,8 @@
20656
20797
  key: '_applyCheckLocale',
20657
20798
  value: function _applyCheckLocale(checks) {
20658
20799
  var keys = Object.keys(checks);
20659
- for (var _i27 = 0; _i27 < keys.length; _i27++) {
20660
- var id = keys[_i27];
20800
+ for (var _i29 = 0; _i29 < keys.length; _i29++) {
20801
+ var id = keys[_i29];
20661
20802
  if (!this.data.checks[id]) {
20662
20803
  throw new Error('Locale provided for unknown check: "'.concat(id, '"'));
20663
20804
  }
@@ -20668,8 +20809,8 @@
20668
20809
  key: '_applyRuleLocale',
20669
20810
  value: function _applyRuleLocale(rules) {
20670
20811
  var keys = Object.keys(rules);
20671
- for (var _i28 = 0; _i28 < keys.length; _i28++) {
20672
- var id = keys[_i28];
20812
+ for (var _i30 = 0; _i30 < keys.length; _i30++) {
20813
+ var id = keys[_i30];
20673
20814
  if (!this.data.rules[id]) {
20674
20815
  throw new Error('Locale provided for unknown rule: "'.concat(id, '"'));
20675
20816
  }
@@ -20680,8 +20821,8 @@
20680
20821
  key: '_applyFailureSummaries',
20681
20822
  value: function _applyFailureSummaries(messages) {
20682
20823
  var keys = Object.keys(messages);
20683
- for (var _i29 = 0; _i29 < keys.length; _i29++) {
20684
- var key = keys[_i29];
20824
+ for (var _i31 = 0; _i31 < keys.length; _i31++) {
20825
+ var key = keys[_i31];
20685
20826
  if (!this.data.failureSummaries[key]) {
20686
20827
  throw new Error('Locale provided for unknown failureMessage: "'.concat(key, '"'));
20687
20828
  }
@@ -21624,8 +21765,8 @@
21624
21765
  function serializeNode(_ref92) {
21625
21766
  var node = _ref92.node, nodeResult = _objectWithoutProperties(_ref92, _excluded9);
21626
21767
  nodeResult.node = node.toJSON();
21627
- for (var _i30 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i30 < _arr2.length; _i30++) {
21628
- var type = _arr2[_i30];
21768
+ for (var _i32 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i32 < _arr2.length; _i32++) {
21769
+ var type = _arr2[_i32];
21629
21770
  nodeResult[type] = nodeResult[type].map(function(_ref93) {
21630
21771
  var relatedNodes = _ref93.relatedNodes, checkResult = _objectWithoutProperties(_ref93, _excluded10);
21631
21772
  return _extends({}, checkResult, {
@@ -21736,8 +21877,8 @@
21736
21877
  var transformedResults = results.map(function(result) {
21737
21878
  var transformedResult = _extends({}, result);
21738
21879
  var types = [ 'passes', 'violations', 'incomplete', 'inapplicable' ];
21739
- for (var _i31 = 0, _types = types; _i31 < _types.length; _i31++) {
21740
- var type = _types[_i31];
21880
+ for (var _i33 = 0, _types = types; _i33 < _types.length; _i33++) {
21881
+ var type = _types[_i33];
21741
21882
  if (transformedResult[type] && Array.isArray(transformedResult[type])) {
21742
21883
  transformedResult[type] = transformedResult[type].map(function(_ref97) {
21743
21884
  var _node;
@@ -21819,6 +21960,10 @@
21819
21960
  axe._thisWillBeDeletedDoNotUse['public'] = {
21820
21961
  reporters: reporters
21821
21962
  };
21963
+ axe._thisWillBeDeletedDoNotUse.utils = axe._thisWillBeDeletedDoNotUse.utils || {};
21964
+ axe._thisWillBeDeletedDoNotUse.utils.cacheNodeSelectors = cacheNodeSelectors;
21965
+ axe._thisWillBeDeletedDoNotUse.utils.getNodesMatchingExpression = getNodesMatchingExpression;
21966
+ axe._thisWillBeDeletedDoNotUse.utils.convertSelector = _convertSelector;
21822
21967
  axe.imports = imports_exports;
21823
21968
  axe.cleanup = cleanup_default;
21824
21969
  axe.configure = configure_default;
@@ -23757,6 +23902,7 @@
23757
23902
  }, {
23758
23903
  id: 'frame-title',
23759
23904
  selector: 'frame, iframe',
23905
+ matches: 'no-negative-tabindex-matches',
23760
23906
  tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag241', 'wcag412', 'section508', 'section508.22.i' ],
23761
23907
  actIds: [ 'cae760' ],
23762
23908
  all: [],
@@ -24008,7 +24154,8 @@
24008
24154
  tags: [ 'cat.semantics', 'best-practice' ],
24009
24155
  all: [ {
24010
24156
  options: {
24011
- selector: 'main:not([role]), [role=\'main\']'
24157
+ selector: 'main:not([role]), [role=\'main\']',
24158
+ passForModal: true
24012
24159
  },
24013
24160
  id: 'page-has-main'
24014
24161
  } ],
@@ -24177,7 +24324,8 @@
24177
24324
  tags: [ 'cat.semantics', 'best-practice' ],
24178
24325
  all: [ {
24179
24326
  options: {
24180
- selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]'
24327
+ selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]',
24328
+ passForModal: true
24181
24329
  },
24182
24330
  id: 'page-has-heading-one'
24183
24331
  } ],
@@ -24536,14 +24684,16 @@
24536
24684
  evaluate: 'has-descendant-evaluate',
24537
24685
  after: 'has-descendant-after',
24538
24686
  options: {
24539
- selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]'
24687
+ selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]',
24688
+ passForModal: true
24540
24689
  }
24541
24690
  }, {
24542
24691
  id: 'page-has-main',
24543
24692
  evaluate: 'has-descendant-evaluate',
24544
24693
  after: 'has-descendant-after',
24545
24694
  options: {
24546
- selector: 'main:not([role]), [role=\'main\']'
24695
+ selector: 'main:not([role]), [role=\'main\']',
24696
+ passForModal: true
24547
24697
  }
24548
24698
  }, {
24549
24699
  id: 'page-no-duplicate-banner',