axe-core 4.4.2 → 4.4.3-canary.a3e4bbe

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
1
+ /*! axe v4.4.3-canary.a3e4bbe
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';
25
+ axe.version = '4.4.3-canary.a3e4bbe';
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);
@@ -7054,6 +7058,9 @@
7054
7058
  hasContentVirtual: function hasContentVirtual() {
7055
7059
  return has_content_virtual_default;
7056
7060
  },
7061
+ hasLangText: function hasLangText() {
7062
+ return _hasLangText;
7063
+ },
7057
7064
  idrefs: function idrefs() {
7058
7065
  return idrefs_default;
7059
7066
  },
@@ -7064,7 +7071,7 @@
7064
7071
  return _isCurrentPageLink;
7065
7072
  },
7066
7073
  isFocusable: function isFocusable() {
7067
- return is_focusable_default;
7074
+ return _isFocusable;
7068
7075
  },
7069
7076
  isHTML5: function isHTML5() {
7070
7077
  return is_html5_default;
@@ -7810,31 +7817,32 @@
7810
7817
  });
7811
7818
  }
7812
7819
  var get_text_element_stack_default = getTextElementStack;
7813
- var visualRoles = [ 'checkbox', 'img', 'radio', 'range', 'slider', 'spinbutton', 'textbox' ];
7814
- function isVisualContent(element) {
7815
- var role = element.getAttribute('role');
7820
+ var visualRoles = [ 'checkbox', 'img', 'meter', 'progressbar', 'scrollbar', 'radio', 'slider', 'spinbutton', 'textbox' ];
7821
+ function isVisualContent(el) {
7822
+ var vNode = el instanceof abstract_virtual_node_default ? el : get_node_from_tree_default(el);
7823
+ var role = axe.commons.aria.getExplicitRole(vNode);
7816
7824
  if (role) {
7817
7825
  return visualRoles.indexOf(role) !== -1;
7818
7826
  }
7819
- switch (element.nodeName.toUpperCase()) {
7820
- case 'IMG':
7821
- case 'IFRAME':
7822
- case 'OBJECT':
7823
- case 'VIDEO':
7824
- case 'AUDIO':
7825
- case 'CANVAS':
7826
- case 'SVG':
7827
- case 'MATH':
7828
- case 'BUTTON':
7829
- case 'SELECT':
7830
- case 'TEXTAREA':
7831
- case 'KEYGEN':
7832
- case 'PROGRESS':
7833
- case 'METER':
7827
+ switch (vNode.props.nodeName) {
7828
+ case 'img':
7829
+ case 'iframe':
7830
+ case 'object':
7831
+ case 'video':
7832
+ case 'audio':
7833
+ case 'canvas':
7834
+ case 'svg':
7835
+ case 'math':
7836
+ case 'button':
7837
+ case 'select':
7838
+ case 'textarea':
7839
+ case 'keygen':
7840
+ case 'progress':
7841
+ case 'meter':
7834
7842
  return true;
7835
7843
 
7836
- case 'INPUT':
7837
- return element.type !== 'hidden';
7844
+ case 'input':
7845
+ return vNode.props.type !== 'hidden';
7838
7846
 
7839
7847
  default:
7840
7848
  return false;
@@ -7897,14 +7905,15 @@
7897
7905
  return null;
7898
7906
  }
7899
7907
  var label_virtual_default = labelVirtual;
7900
- var hiddenTextElms = [ 'HEAD', 'TITLE', 'TEMPLATE', 'SCRIPT', 'STYLE', 'IFRAME', 'OBJECT', 'VIDEO', 'AUDIO', 'NOSCRIPT' ];
7908
+ var hiddenTextElms = [ 'head', 'title', 'template', 'script', 'style', 'iframe', 'object', 'video', 'audio', 'noscript' ];
7901
7909
  function hasChildTextNodes(elm) {
7902
- if (!hiddenTextElms.includes(elm.actualNode.nodeName.toUpperCase())) {
7903
- return elm.children.some(function(_ref10) {
7904
- var actualNode = _ref10.actualNode;
7905
- return actualNode.nodeType === 3 && actualNode.nodeValue.trim();
7906
- });
7910
+ if (hiddenTextElms.includes(elm.props.nodeName)) {
7911
+ return false;
7907
7912
  }
7913
+ return elm.children.some(function(_ref10) {
7914
+ var props = _ref10.props;
7915
+ return props.nodeType === 3 && props.nodeValue.trim();
7916
+ });
7908
7917
  }
7909
7918
  function hasContentVirtual(elm, noRecursion, ignoreAria) {
7910
7919
  return hasChildTextNodes(elm) || is_visual_content_default(elm.actualNode) || !ignoreAria && !!label_virtual_default(elm) || !noRecursion && elm.children.some(function(child) {
@@ -7917,6 +7926,17 @@
7917
7926
  return has_content_virtual_default(elm, noRecursion, ignoreAria);
7918
7927
  }
7919
7928
  var has_content_default = hasContent;
7929
+ function _hasLangText(virtualNode) {
7930
+ if (typeof virtualNode.children === 'undefined' || hasChildTextNodes(virtualNode)) {
7931
+ return true;
7932
+ }
7933
+ if (virtualNode.props.nodeType === 1 && is_visual_content_default(virtualNode)) {
7934
+ return !!axe.commons.text.accessibleTextVirtual(virtualNode);
7935
+ }
7936
+ return virtualNode.children.some(function(child) {
7937
+ return !child.attr('lang') && _hasLangText(child) && is_visible_default(child, true);
7938
+ });
7939
+ }
7920
7940
  function isHiddenWithCSS(el, descendentVisibilityValue) {
7921
7941
  var vNode = get_node_from_tree_default(el);
7922
7942
  if (!vNode) {
@@ -7960,9 +7980,13 @@
7960
7980
  return false;
7961
7981
  }
7962
7982
  var is_hidden_with_css_default = isHiddenWithCSS;
7983
+ var allowedDisabledNodeNames = [ 'button', 'command', 'fieldset', 'keygen', 'optgroup', 'option', 'select', 'textarea', 'input' ];
7984
+ function isDisabledAttrAllowed(nodeName2) {
7985
+ return allowedDisabledNodeNames.includes(nodeName2);
7986
+ }
7963
7987
  function focusDisabled(el) {
7964
7988
  var vNode = el instanceof abstract_virtual_node_default ? el : get_node_from_tree_default(el);
7965
- if (vNode.hasAttr('disabled')) {
7989
+ if (isDisabledAttrAllowed(vNode.props.nodeName) && vNode.hasAttr('disabled')) {
7966
7990
  return true;
7967
7991
  }
7968
7992
  var parentNode = vNode.parent;
@@ -8025,7 +8049,7 @@
8025
8049
  return false;
8026
8050
  }
8027
8051
  var is_natively_focusable_default = isNativelyFocusable;
8028
- function isFocusable(el) {
8052
+ function _isFocusable(el) {
8029
8053
  var vNode = el instanceof abstract_virtual_node_default ? el : get_node_from_tree_default(el);
8030
8054
  if (vNode.props.nodeType !== 1) {
8031
8055
  return false;
@@ -8041,10 +8065,9 @@
8041
8065
  }
8042
8066
  return false;
8043
8067
  }
8044
- var is_focusable_default = isFocusable;
8045
8068
  function insertedIntoFocusOrder(el) {
8046
8069
  var tabIndex = parseInt(el.getAttribute('tabindex'), 10);
8047
- return tabIndex > -1 && is_focusable_default(el) && !is_natively_focusable_default(el);
8070
+ return tabIndex > -1 && _isFocusable(el) && !is_natively_focusable_default(el);
8048
8071
  }
8049
8072
  var inserted_into_focus_order_default = insertedIntoFocusOrder;
8050
8073
  function isHTML5(doc) {
@@ -8863,8 +8886,7 @@
8863
8886
  },
8864
8887
  spinbutton: {
8865
8888
  type: 'widget',
8866
- requiredAttrs: [ 'aria-valuenow' ],
8867
- allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-readonly', 'aria-required', 'aria-activedescendant', 'aria-valuetext' ],
8889
+ allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-readonly', 'aria-required', 'aria-activedescendant', 'aria-valuetext', 'aria-valuenow' ],
8868
8890
  superclassRole: [ 'composite', 'input', 'range' ],
8869
8891
  accessibleNameRequired: true
8870
8892
  },
@@ -10563,7 +10585,7 @@
10563
10585
  key: 'isFocusable',
10564
10586
  get: function get() {
10565
10587
  if (!this._cache.hasOwnProperty('isFocusable')) {
10566
- this._cache.isFocusable = is_focusable_default(this.actualNode);
10588
+ this._cache.isFocusable = _isFocusable(this.actualNode);
10567
10589
  }
10568
10590
  return this._cache.isFocusable;
10569
10591
  }
@@ -10597,6 +10619,126 @@
10597
10619
  return VirtualNode;
10598
10620
  }(abstract_virtual_node_default);
10599
10621
  var virtual_node_default = VirtualNode;
10622
+ function tokenList(str) {
10623
+ return (str || '').trim().replace(/\s{2,}/g, ' ').split(' ');
10624
+ }
10625
+ var token_list_default = tokenList;
10626
+ var idsKey = ' [idsMap]';
10627
+ function getNodesMatchingExpression(domTree, expressions, filter) {
10628
+ var selectorMap = domTree[0]._selectorMap;
10629
+ if (!selectorMap) {
10630
+ return;
10631
+ }
10632
+ var shadowId = domTree[0].shadowId;
10633
+ for (var _i8 = 0; _i8 < expressions.length; _i8++) {
10634
+ if (expressions[_i8].length > 1 && expressions[_i8].some(function(expression) {
10635
+ return isGlobalSelector(expression);
10636
+ })) {
10637
+ return;
10638
+ }
10639
+ }
10640
+ var nodeSet = new Set();
10641
+ expressions.forEach(function(expression) {
10642
+ var _matchingNodes$nodes;
10643
+ var matchingNodes = findMatchingNodes(expression, selectorMap, shadowId);
10644
+ matchingNodes === null || matchingNodes === void 0 ? void 0 : (_matchingNodes$nodes = matchingNodes.nodes) === null || _matchingNodes$nodes === void 0 ? void 0 : _matchingNodes$nodes.forEach(function(node) {
10645
+ if (matchingNodes.isComplexSelector && !_matchesExpression(node, expression)) {
10646
+ return;
10647
+ }
10648
+ nodeSet.add(node);
10649
+ });
10650
+ });
10651
+ var matchedNodes = [];
10652
+ nodeSet.forEach(function(node) {
10653
+ return matchedNodes.push(node);
10654
+ });
10655
+ if (filter) {
10656
+ matchedNodes = matchedNodes.filter(filter);
10657
+ }
10658
+ return matchedNodes.sort(function(a, b) {
10659
+ return a.nodeIndex - b.nodeIndex;
10660
+ });
10661
+ }
10662
+ function findMatchingNodes(expression, selectorMap, shadowId) {
10663
+ var exp = expression[expression.length - 1];
10664
+ var nodes = null;
10665
+ var isComplexSelector = expression.length > 1 || !!exp.pseudos || !!exp.classes;
10666
+ if (isGlobalSelector(exp)) {
10667
+ nodes = selectorMap['*'];
10668
+ } else {
10669
+ if (exp.id) {
10670
+ var _selectorMap$idsKey$e;
10671
+ if (!selectorMap[idsKey] || !((_selectorMap$idsKey$e = selectorMap[idsKey][exp.id]) !== null && _selectorMap$idsKey$e !== void 0 && _selectorMap$idsKey$e.length)) {
10672
+ return;
10673
+ }
10674
+ nodes = selectorMap[idsKey][exp.id].filter(function(node) {
10675
+ return node.shadowId === shadowId;
10676
+ });
10677
+ }
10678
+ if (exp.tag && exp.tag !== '*') {
10679
+ var _selectorMap$exp$tag;
10680
+ if (!((_selectorMap$exp$tag = selectorMap[exp.tag]) !== null && _selectorMap$exp$tag !== void 0 && _selectorMap$exp$tag.length)) {
10681
+ return;
10682
+ }
10683
+ var cachedNodes = selectorMap[exp.tag];
10684
+ nodes = nodes ? getSharedValues(cachedNodes, nodes) : cachedNodes;
10685
+ }
10686
+ if (exp.classes) {
10687
+ var _selectorMap$Class;
10688
+ if (!((_selectorMap$Class = selectorMap['[class]']) !== null && _selectorMap$Class !== void 0 && _selectorMap$Class.length)) {
10689
+ return;
10690
+ }
10691
+ var _cachedNodes = selectorMap['[class]'];
10692
+ nodes = nodes ? getSharedValues(_cachedNodes, nodes) : _cachedNodes;
10693
+ }
10694
+ if (exp.attributes) {
10695
+ for (var _i9 = 0; _i9 < exp.attributes.length; _i9++) {
10696
+ var _selectorMap;
10697
+ var attr = exp.attributes[_i9];
10698
+ if (attr.type === 'attrValue') {
10699
+ isComplexSelector = true;
10700
+ }
10701
+ if (!((_selectorMap = selectorMap['['.concat(attr.key, ']')]) !== null && _selectorMap !== void 0 && _selectorMap.length)) {
10702
+ return;
10703
+ }
10704
+ var _cachedNodes2 = selectorMap['['.concat(attr.key, ']')];
10705
+ nodes = nodes ? getSharedValues(_cachedNodes2, nodes) : _cachedNodes2;
10706
+ }
10707
+ }
10708
+ }
10709
+ return {
10710
+ nodes: nodes,
10711
+ isComplexSelector: isComplexSelector
10712
+ };
10713
+ }
10714
+ function isGlobalSelector(expression) {
10715
+ return expression.tag === '*' && !expression.attributes && !expression.id && !expression.classes;
10716
+ }
10717
+ function getSharedValues(a, b) {
10718
+ return a.filter(function(node) {
10719
+ return b.includes(node);
10720
+ });
10721
+ }
10722
+ function cacheSelector(key, vNode, map) {
10723
+ map[key] = map[key] || [];
10724
+ map[key].push(vNode);
10725
+ }
10726
+ function cacheNodeSelectors(vNode, selectorMap) {
10727
+ if (vNode.props.nodeType !== 1) {
10728
+ return;
10729
+ }
10730
+ cacheSelector(vNode.props.nodeName, vNode, selectorMap);
10731
+ cacheSelector('*', vNode, selectorMap);
10732
+ vNode.attrNames.forEach(function(attrName) {
10733
+ if (attrName === 'id') {
10734
+ selectorMap[idsKey] = selectorMap[idsKey] || {};
10735
+ token_list_default(vNode.attr(attrName)).forEach(function(value) {
10736
+ cacheSelector(value, vNode, selectorMap[idsKey]);
10737
+ });
10738
+ }
10739
+ cacheSelector('['.concat(attrName, ']'), vNode, selectorMap);
10740
+ });
10741
+ }
10600
10742
  var hasShadowRoot;
10601
10743
  function getSlotChildren(node) {
10602
10744
  var retVal = [];
@@ -10607,6 +10749,11 @@
10607
10749
  }
10608
10750
  return retVal;
10609
10751
  }
10752
+ function createNode(node, parent, shadowId) {
10753
+ var vNode = new virtual_node_default(node, parent, shadowId);
10754
+ cacheNodeSelectors(vNode, cache_default.get('selectorMap'));
10755
+ return vNode;
10756
+ }
10610
10757
  function flattenTree(node, shadowId, parent) {
10611
10758
  var retVal, realArray, nodeName2;
10612
10759
  function reduceShadowDOM(res, child, parent2) {
@@ -10622,7 +10769,7 @@
10622
10769
  nodeName2 = node.nodeName.toLowerCase();
10623
10770
  if (is_shadow_root_default(node)) {
10624
10771
  hasShadowRoot = true;
10625
- retVal = new virtual_node_default(node, parent, shadowId);
10772
+ retVal = createNode(node, parent, shadowId);
10626
10773
  shadowId = 'a' + Math.random().toString().substring(2);
10627
10774
  realArray = Array.from(node.shadowRoot.childNodes);
10628
10775
  retVal.children = realArray.reduce(function(res, child) {
@@ -10642,7 +10789,7 @@
10642
10789
  }
10643
10790
  var styl = window.getComputedStyle(node);
10644
10791
  if (false) {
10645
- retVal = new virtual_node_default(node, parent, shadowId);
10792
+ retVal = createNode(node, parent, shadowId);
10646
10793
  retVal.children = realArray.reduce(function(res, child) {
10647
10794
  return reduceShadowDOM(res, child, retVal);
10648
10795
  }, []);
@@ -10654,14 +10801,14 @@
10654
10801
  }
10655
10802
  } else {
10656
10803
  if (node.nodeType === 1) {
10657
- retVal = new virtual_node_default(node, parent, shadowId);
10804
+ retVal = createNode(node, parent, shadowId);
10658
10805
  realArray = Array.from(node.childNodes);
10659
10806
  retVal.children = realArray.reduce(function(res, child) {
10660
10807
  return reduceShadowDOM(res, child, retVal);
10661
10808
  }, []);
10662
10809
  return [ retVal ];
10663
10810
  } else if (node.nodeType === 3) {
10664
- return [ new virtual_node_default(node, parent) ];
10811
+ return [ createNode(node, parent) ];
10665
10812
  }
10666
10813
  return void 0;
10667
10814
  }
@@ -10671,8 +10818,11 @@
10671
10818
  var node = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;
10672
10819
  var shadowId = arguments.length > 1 ? arguments[1] : undefined;
10673
10820
  hasShadowRoot = false;
10821
+ var selectorMap = {};
10674
10822
  cache_default.set('nodeMap', new WeakMap());
10823
+ cache_default.set('selectorMap', selectorMap);
10675
10824
  var tree = flattenTree(node, shadowId, null);
10825
+ tree[0]._selectorMap = selectorMap;
10676
10826
  tree[0]._hasShadowRoot = hasShadowRoot;
10677
10827
  return tree;
10678
10828
  }
@@ -11753,9 +11903,9 @@
11753
11903
  var childAny = null;
11754
11904
  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);
11755
11905
  var added = false;
11756
- for (var _i8 = 0; _i8 < combinedLength; _i8++) {
11906
+ for (var _i10 = 0; _i10 < combinedLength; _i10++) {
11757
11907
  var _currentLevel$anyLeve2, _currentLevel$anyLeve3, _currentLevel$anyLeve4;
11758
- 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)];
11908
+ 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)];
11759
11909
  if ((!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) && _matchesExpression(vNode, exp[0])) {
11760
11910
  if (exp.length === 1) {
11761
11911
  if (!added && (!filter || filter(vNode))) {
@@ -11792,6 +11942,10 @@
11792
11942
  function querySelectorAllFilter(domTree, selector, filter) {
11793
11943
  domTree = Array.isArray(domTree) ? domTree : [ domTree ];
11794
11944
  var expressions = _convertSelector(selector);
11945
+ var nodes = getNodesMatchingExpression(domTree, expressions, filter);
11946
+ if (nodes) {
11947
+ return nodes;
11948
+ }
11795
11949
  return matchExpressions(domTree, expressions, filter);
11796
11950
  }
11797
11951
  var query_selector_all_filter_default = querySelectorAllFilter;
@@ -12165,9 +12319,9 @@
12165
12319
  result = nodes;
12166
12320
  nodes = temp;
12167
12321
  }
12168
- for (var _i9 = 0, l = nodes.length; _i9 < l; _i9++) {
12169
- if (!result.includes(nodes[_i9])) {
12170
- result.push(nodes[_i9]);
12322
+ for (var _i11 = 0, l = nodes.length; _i11 < l; _i11++) {
12323
+ if (!result.includes(nodes[_i11])) {
12324
+ result.push(nodes[_i11]);
12171
12325
  }
12172
12326
  }
12173
12327
  return result;
@@ -12193,8 +12347,8 @@
12193
12347
  }
12194
12348
  var outerIncludes = getOuterIncludes(context5.include);
12195
12349
  var isInContext = getContextFilter(context5);
12196
- for (var _i10 = 0; _i10 < outerIncludes.length; _i10++) {
12197
- candidate = outerIncludes[_i10];
12350
+ for (var _i12 = 0; _i12 < outerIncludes.length; _i12++) {
12351
+ candidate = outerIncludes[_i12];
12198
12352
  var nodes = query_selector_all_filter_default(candidate, selector, isInContext);
12199
12353
  result = pushNode(result, nodes);
12200
12354
  }
@@ -12245,10 +12399,6 @@
12245
12399
  }
12246
12400
  return selectRecursive(selectors, elm.shadowRoot);
12247
12401
  }
12248
- function tokenList(str) {
12249
- return (str || '').trim().replace(/\s{2,}/g, ' ').split(' ');
12250
- }
12251
- var token_list_default = tokenList;
12252
12402
  function validInputTypes() {
12253
12403
  return [ 'hidden', 'text', 'search', 'tel', 'url', 'email', 'password', 'date', 'month', 'week', 'time', 'datetime-local', 'number', 'range', 'color', 'checkbox', 'radio', 'file', 'submit', 'image', 'reset', 'button' ];
12254
12404
  }
@@ -12259,8 +12409,8 @@
12259
12409
  while (lang.length < 3) {
12260
12410
  lang += '`';
12261
12411
  }
12262
- for (var _i11 = 0; _i11 <= lang.length - 1; _i11++) {
12263
- var index = lang.charCodeAt(_i11) - 96;
12412
+ for (var _i13 = 0; _i13 <= lang.length - 1; _i13++) {
12413
+ var index = lang.charCodeAt(_i13) - 96;
12264
12414
  array = array[index];
12265
12415
  if (!array) {
12266
12416
  return false;
@@ -12681,7 +12831,7 @@
12681
12831
  var hasGlobalAria = get_global_aria_attrs_default().find(function(attr) {
12682
12832
  return vNode.hasAttr(attr);
12683
12833
  });
12684
- return emptyAlt && !hasGlobalAria && !is_focusable_default(vNode) ? 'presentation' : 'img';
12834
+ return emptyAlt && !hasGlobalAria && !_isFocusable(vNode) ? 'presentation' : 'img';
12685
12835
  },
12686
12836
  input: function input(vNode) {
12687
12837
  var suggestionsSourceElement;
@@ -12870,10 +13020,10 @@
12870
13020
  });
12871
13021
  }
12872
13022
  var from_definition_default = fromDefinition;
12873
- function matches5(vNode, definition) {
13023
+ function matches6(vNode, definition) {
12874
13024
  return from_definition_default(vNode, definition);
12875
13025
  }
12876
- var matches_default2 = matches5;
13026
+ var matches_default2 = matches6;
12877
13027
  matches_default2.hasAccessibleName = has_accessible_name_default;
12878
13028
  matches_default2.attributes = attributes_default;
12879
13029
  matches_default2.condition = condition_default;
@@ -12900,14 +13050,14 @@
12900
13050
  if (!variant.hasOwnProperty(variantName) || variantName === 'default') {
12901
13051
  continue;
12902
13052
  }
12903
- var _variant$variantName = variant[variantName], matches14 = _variant$variantName.matches, props = _objectWithoutProperties(_variant$variantName, _excluded4);
12904
- var matchProperties = Array.isArray(matches14) ? matches14 : [ matches14 ];
12905
- for (var _i12 = 0; _i12 < matchProperties.length && noMatchAccessibleName; _i12++) {
12906
- if (matchProperties[_i12].hasOwnProperty('hasAccessibleName')) {
13053
+ var _variant$variantName = variant[variantName], matches16 = _variant$variantName.matches, props = _objectWithoutProperties(_variant$variantName, _excluded4);
13054
+ var matchProperties = Array.isArray(matches16) ? matches16 : [ matches16 ];
13055
+ for (var _i14 = 0; _i14 < matchProperties.length && noMatchAccessibleName; _i14++) {
13056
+ if (matchProperties[_i14].hasOwnProperty('hasAccessibleName')) {
12907
13057
  return standard;
12908
13058
  }
12909
13059
  }
12910
- if (matches_default3(vNode, matches14)) {
13060
+ if (matches_default3(vNode, matches16)) {
12911
13061
  for (var propName in props) {
12912
13062
  if (props.hasOwnProperty(propName)) {
12913
13063
  spec[propName] = props[propName];
@@ -12992,7 +13142,7 @@
12992
13142
  var hasGlobalAria = get_global_aria_attrs_default().some(function(attr) {
12993
13143
  return vNode.hasAttr(attr);
12994
13144
  });
12995
- return hasGlobalAria || is_focusable_default(vNode);
13145
+ return hasGlobalAria || _isFocusable(vNode);
12996
13146
  }
12997
13147
  function resolveRole(node) {
12998
13148
  var _ref37 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -13836,8 +13986,8 @@
13836
13986
  idRefs[id] = idRefs[id] || [];
13837
13987
  idRefs[id].push(node);
13838
13988
  }
13839
- for (var _i13 = 0; _i13 < refAttrs.length; ++_i13) {
13840
- var attr = refAttrs[_i13];
13989
+ for (var _i15 = 0; _i15 < refAttrs.length; ++_i15) {
13990
+ var attr = refAttrs[_i15];
13841
13991
  var attrValue = sanitize_default(node.getAttribute(attr) || '');
13842
13992
  if (!attrValue) {
13843
13993
  continue;
@@ -13849,9 +13999,9 @@
13849
13999
  }
13850
14000
  }
13851
14001
  }
13852
- for (var _i14 = 0; _i14 < node.childNodes.length; _i14++) {
13853
- if (node.childNodes[_i14].nodeType === 1) {
13854
- cacheIdRefs(node.childNodes[_i14], idRefs, refAttrs);
14002
+ for (var _i16 = 0; _i16 < node.childNodes.length; _i16++) {
14003
+ if (node.childNodes[_i16].nodeType === 1) {
14004
+ cacheIdRefs(node.childNodes[_i16], idRefs, refAttrs);
13855
14005
  }
13856
14006
  }
13857
14007
  }
@@ -15856,7 +16006,7 @@
15856
16006
  var required_owned_default = requiredOwned;
15857
16007
  function validateAttrValue(vNode, attr) {
15858
16008
  vNode = vNode instanceof abstract_virtual_node_default ? vNode : get_node_from_tree_default(vNode);
15859
- var matches14;
16009
+ var matches16;
15860
16010
  var list;
15861
16011
  var value = vNode.attr(attr);
15862
16012
  var attrInfo = standards_default.ariaAttrs[attr];
@@ -15896,8 +16046,8 @@
15896
16046
  return value.trim() !== '';
15897
16047
 
15898
16048
  case 'decimal':
15899
- matches14 = value.match(/^[-+]?([0-9]*)\.?([0-9]*)$/);
15900
- return !!(matches14 && (matches14[1] || matches14[2]));
16049
+ matches16 = value.match(/^[-+]?([0-9]*)\.?([0-9]*)$/);
16050
+ return !!(matches16 && (matches16[1] || matches16[2]));
15901
16051
 
15902
16052
  case 'int':
15903
16053
  var minValue = typeof attrInfo.minValue !== 'undefined' ? attrInfo.minValue : -Infinity;
@@ -15953,9 +16103,9 @@
15953
16103
  preChecks[attr] = validateRowAttrs;
15954
16104
  });
15955
16105
  if (allowed) {
15956
- for (var _i15 = 0; _i15 < attrs.length; _i15++) {
16106
+ for (var _i17 = 0; _i17 < attrs.length; _i17++) {
15957
16107
  var _preChecks$attrName;
15958
- var attrName = attrs[_i15];
16108
+ var attrName = attrs[_i17];
15959
16109
  if (validate_attr_default(attrName) && (_preChecks$attrName = preChecks[attrName]) !== null && _preChecks$attrName !== void 0 && _preChecks$attrName.call(preChecks)) {
15960
16110
  invalid.push(attrName + '="' + virtualNode.attr(attrName) + '"');
15961
16111
  } else if (validate_attr_default(attrName) && !allowed.includes(attrName)) {
@@ -15965,7 +16115,7 @@
15965
16115
  }
15966
16116
  if (invalid.length) {
15967
16117
  this.data(invalid);
15968
- if (!is_html_element_default(virtualNode) && !role && !is_focusable_default(virtualNode)) {
16118
+ if (!is_html_element_default(virtualNode) && !role && !_isFocusable(virtualNode)) {
15969
16119
  return void 0;
15970
16120
  }
15971
16121
  return false;
@@ -16127,8 +16277,8 @@
16127
16277
  required = unique_array_default(options[role], required);
16128
16278
  }
16129
16279
  if (role && required) {
16130
- for (var _i16 = 0, l = required.length; _i16 < l; _i16++) {
16131
- var attr = required[_i16];
16280
+ for (var _i18 = 0, l = required.length; _i18 < l; _i18++) {
16281
+ var attr = required[_i18];
16132
16282
  if (!virtualNode.attr(attr) && !(elmSpec.implicitAttrs && typeof elmSpec.implicitAttrs[attr] !== 'undefined')) {
16133
16283
  missing.push(attr);
16134
16284
  }
@@ -16149,8 +16299,8 @@
16149
16299
  function getOwnedRoles(virtualNode, required) {
16150
16300
  var ownedRoles = [];
16151
16301
  var ownedElements = get_owned_virtual_default(virtualNode);
16152
- var _loop4 = function _loop4(_i17) {
16153
- var ownedElement = ownedElements[_i17];
16302
+ var _loop4 = function _loop4(_i19) {
16303
+ var ownedElement = ownedElements[_i19];
16154
16304
  var role = get_role_default(ownedElement, {
16155
16305
  noPresentational: true
16156
16306
  });
@@ -16162,14 +16312,14 @@
16162
16312
  ownedRoles.push(role);
16163
16313
  }
16164
16314
  };
16165
- for (var _i17 = 0; _i17 < ownedElements.length; _i17++) {
16166
- _loop4(_i17);
16315
+ for (var _i19 = 0; _i19 < ownedElements.length; _i19++) {
16316
+ _loop4(_i19);
16167
16317
  }
16168
16318
  return ownedRoles;
16169
16319
  }
16170
16320
  function missingRequiredChildren(virtualNode, role, required, ownedRoles) {
16171
- for (var _i18 = 0; _i18 < ownedRoles.length; _i18++) {
16172
- var ownedRole = ownedRoles[_i18];
16321
+ for (var _i20 = 0; _i20 < ownedRoles.length; _i20++) {
16322
+ var ownedRole = ownedRoles[_i20];
16173
16323
  if (required.includes(ownedRole)) {
16174
16324
  required = required.filter(function(requiredRole) {
16175
16325
  return requiredRole !== ownedRole;
@@ -16211,10 +16361,15 @@
16211
16361
  if (!reqContext) {
16212
16362
  return null;
16213
16363
  }
16364
+ var allowsGroup = reqContext.includes('group');
16214
16365
  var vNode = includeElement ? virtualNode : virtualNode.parent;
16215
16366
  while (vNode) {
16216
- var parentRole = get_role_default(vNode);
16217
- if (reqContext.includes('group') && parentRole === 'group') {
16367
+ var role = get_role_default(vNode, {
16368
+ noPresentational: true
16369
+ });
16370
+ if (!role) {
16371
+ vNode = vNode.parent;
16372
+ } else if (role === 'group' && allowsGroup) {
16218
16373
  if (ownGroupRoles.includes(explicitRole2)) {
16219
16374
  reqContext.push(explicitRole2);
16220
16375
  }
@@ -16222,14 +16377,11 @@
16222
16377
  return r !== 'group';
16223
16378
  });
16224
16379
  vNode = vNode.parent;
16225
- continue;
16226
- }
16227
- if (reqContext.includes(parentRole)) {
16380
+ } else if (reqContext.includes(role)) {
16228
16381
  return null;
16229
- } else if (parentRole && ![ 'presentation', 'none' ].includes(parentRole)) {
16382
+ } else {
16230
16383
  return reqContext;
16231
16384
  }
16232
- vNode = vNode.parent;
16233
16385
  }
16234
16386
  return reqContext;
16235
16387
  }
@@ -16256,8 +16408,8 @@
16256
16408
  }
16257
16409
  var owners = getAriaOwners(node);
16258
16410
  if (owners) {
16259
- for (var _i19 = 0, l = owners.length; _i19 < l; _i19++) {
16260
- missingParents = getMissingContext(get_node_from_tree_default(owners[_i19]), ownGroupRoles, missingParents, true);
16411
+ for (var _i21 = 0, l = owners.length; _i21 < l; _i21++) {
16412
+ missingParents = getMissingContext(get_node_from_tree_default(owners[_i21]), ownGroupRoles, missingParents, true);
16261
16413
  if (!missingParents) {
16262
16414
  return true;
16263
16415
  }
@@ -16436,7 +16588,7 @@
16436
16588
  }
16437
16589
  var invalidrole_evaluate_default = invalidroleEvaluate;
16438
16590
  function isElementFocusableEvaluate(node, options, virtualNode) {
16439
- return is_focusable_default(virtualNode);
16591
+ return _isFocusable(virtualNode);
16440
16592
  }
16441
16593
  var is_element_focusable_evaluate_default = isElementFocusableEvaluate;
16442
16594
  function noImplicitExplicitLabelEvaluate(node, options, virtualNode) {
@@ -16465,7 +16617,15 @@
16465
16617
  }
16466
16618
  var no_implicit_explicit_label_evaluate_default = noImplicitExplicitLabelEvaluate;
16467
16619
  function unsupportedroleEvaluate(node, options, virtualNode) {
16468
- return is_unsupported_role_default(get_role_default(virtualNode));
16620
+ var role = get_role_default(virtualNode, {
16621
+ dpub: true,
16622
+ fallback: true
16623
+ });
16624
+ var isUnsupported = is_unsupported_role_default(role);
16625
+ if (isUnsupported) {
16626
+ this.data(role);
16627
+ }
16628
+ return isUnsupported;
16469
16629
  }
16470
16630
  var unsupportedrole_evaluate_default = unsupportedroleEvaluate;
16471
16631
  var VALID_TAG_NAMES_FOR_SCROLLABLE_REGIONS = {
@@ -16724,11 +16884,11 @@
16724
16884
  return position === 'static';
16725
16885
  }
16726
16886
  function calculateObscuringElement(elmIndex, elmStack, originalElm) {
16727
- for (var _i20 = elmIndex - 1; _i20 >= 0; _i20--) {
16728
- if (!isInlineDescendant(originalElm, elmStack[_i20])) {
16887
+ for (var _i22 = elmIndex - 1; _i22 >= 0; _i22--) {
16888
+ if (!isInlineDescendant(originalElm, elmStack[_i22])) {
16729
16889
  return true;
16730
16890
  }
16731
- elmStack.splice(_i20, 1);
16891
+ elmStack.splice(_i22, 1);
16732
16892
  }
16733
16893
  return false;
16734
16894
  }
@@ -17302,6 +17462,9 @@
17302
17462
  if (!options || !options.selector || typeof options.selector !== 'string') {
17303
17463
  throw new TypeError('has-descendant requires options.selector to be a string');
17304
17464
  }
17465
+ if (options.passForModal && is_modal_open_default()) {
17466
+ return true;
17467
+ }
17305
17468
  var matchingElms = query_selector_all_filter_default(virtualNode, options.selector, function(vNode) {
17306
17469
  return is_visible_default(vNode.actualNode, true);
17307
17470
  });
@@ -17458,7 +17621,7 @@
17458
17621
  var focusable_modal_open_evaluate_default = focusableModalOpenEvaluate;
17459
17622
  function focusableNoNameEvaluate(node, options, virtualNode) {
17460
17623
  var tabIndex = virtualNode.attr('tabindex');
17461
- var inFocusOrder = is_focusable_default(virtualNode) && tabIndex > -1;
17624
+ var inFocusOrder = _isFocusable(virtualNode) && tabIndex > -1;
17462
17625
  if (!inFocusOrder) {
17463
17626
  return false;
17464
17627
  }
@@ -17492,8 +17655,21 @@
17492
17655
  }) ? void 0 : false;
17493
17656
  }
17494
17657
  var focusable_not_tabbable_evaluate_default = focusableNotTabbableEvaluate;
17658
+ function frameFocusableContentEvaluate(node, options, virtualNode) {
17659
+ if (!virtualNode.children) {
17660
+ return void 0;
17661
+ }
17662
+ try {
17663
+ return !virtualNode.children.some(function(child) {
17664
+ return focusableDescendants(child);
17665
+ });
17666
+ } catch (e) {
17667
+ return void 0;
17668
+ }
17669
+ }
17495
17670
  function focusableDescendants(vNode) {
17496
- if (is_focusable_default(vNode)) {
17671
+ var tabIndex = parseInt(vNode.attr('tabindex'), 10);
17672
+ if ((isNaN(tabIndex) || tabIndex > -1) && _isFocusable(vNode)) {
17497
17673
  return true;
17498
17674
  }
17499
17675
  if (!vNode.children) {
@@ -17506,19 +17682,6 @@
17506
17682
  return focusableDescendants(child);
17507
17683
  });
17508
17684
  }
17509
- function frameFocusableContentEvaluate(node, options, virtualNode) {
17510
- if (!virtualNode.children) {
17511
- return void 0;
17512
- }
17513
- try {
17514
- return !virtualNode.children.some(function(child) {
17515
- return focusableDescendants(child);
17516
- });
17517
- } catch (e) {
17518
- return void 0;
17519
- }
17520
- }
17521
- var frame_focusable_content_evaluate_default = frameFocusableContentEvaluate;
17522
17685
  function landmarkIsTopLevelEvaluate(node) {
17523
17686
  var landmarks = get_aria_roles_by_type_default('landmark');
17524
17687
  var parent = get_composed_parent_default(node);
@@ -17572,7 +17735,7 @@
17572
17735
  var retVal = [];
17573
17736
  vNode.children.forEach(function(child) {
17574
17737
  var role = get_role_default(child);
17575
- if (get_role_type_default(role) === 'widget' && is_focusable_default(child)) {
17738
+ if (get_role_type_default(role) === 'widget' && _isFocusable(child)) {
17576
17739
  retVal.push(child);
17577
17740
  } else {
17578
17741
  retVal.push.apply(retVal, _toConsumableArray(getFocusableDescendants(child)));
@@ -17832,11 +17995,14 @@
17832
17995
  invalid.push(langAttr + '="' + virtualNode.attr(langAttr) + '"');
17833
17996
  }
17834
17997
  });
17835
- if (invalid.length) {
17836
- this.data(invalid);
17837
- return true;
17998
+ if (!invalid.length) {
17999
+ return false;
17838
18000
  }
17839
- return false;
18001
+ if (virtualNode.props.nodeName !== 'html' && !_hasLangText(virtualNode)) {
18002
+ return false;
18003
+ }
18004
+ this.data(invalid);
18005
+ return true;
17840
18006
  }
17841
18007
  var valid_lang_evaluate_default = validLangEvaluate;
17842
18008
  function xmlLangMismatchEvaluate(node, options, vNode) {
@@ -18077,7 +18243,7 @@
18077
18243
  var relatedElements = [];
18078
18244
  var rulesGroupByDocumentFragment = groupCssomByDocument(cssom);
18079
18245
  var _loop5 = function _loop5() {
18080
- var key = _Object$keys2[_i21];
18246
+ var key = _Object$keys2[_i23];
18081
18247
  var _rulesGroupByDocument = rulesGroupByDocumentFragment[key], root = _rulesGroupByDocument.root, rules = _rulesGroupByDocument.rules;
18082
18248
  var orientationRules = rules.filter(isMediaRuleWithOrientation);
18083
18249
  if (!orientationRules.length) {
@@ -18095,7 +18261,7 @@
18095
18261
  });
18096
18262
  });
18097
18263
  };
18098
- for (var _i21 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i21 < _Object$keys2.length; _i21++) {
18264
+ for (var _i23 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i23 < _Object$keys2.length; _i23++) {
18099
18265
  var _ret2 = _loop5();
18100
18266
  if (_ret2 === 'continue') {
18101
18267
  continue;
@@ -18142,11 +18308,11 @@
18142
18308
  if (!transformStyle) {
18143
18309
  return false;
18144
18310
  }
18145
- var matches14 = transformStyle.match(/(rotate|rotateZ|rotate3d|matrix|matrix3d)\(([^)]+)\)(?!.*(rotate|rotateZ|rotate3d|matrix|matrix3d))/);
18146
- if (!matches14) {
18311
+ var matches16 = transformStyle.match(/(rotate|rotateZ|rotate3d|matrix|matrix3d)\(([^)]+)\)(?!.*(rotate|rotateZ|rotate3d|matrix|matrix3d))/);
18312
+ if (!matches16) {
18147
18313
  return false;
18148
18314
  }
18149
- var _matches = _slicedToArray(matches14, 3), transformFn = _matches[1], transformFnValue = _matches[2];
18315
+ var _matches = _slicedToArray(matches16, 3), transformFn = _matches[1], transformFnValue = _matches[2];
18150
18316
  var degrees = getRotationInDegrees(transformFn, transformFnValue);
18151
18317
  if (!degrees) {
18152
18318
  return false;
@@ -18409,7 +18575,7 @@
18409
18575
  if (_typeof(aValue) !== _typeof(bValue)) {
18410
18576
  return false;
18411
18577
  }
18412
- if (typeof aValue === 'object' || typeof bValue === 'object') {
18578
+ if (_typeof(aValue) === 'object' || _typeof(bValue) === 'object') {
18413
18579
  return isIdenticalObject(aValue, bValue);
18414
18580
  }
18415
18581
  return aValue === bValue;
@@ -18652,7 +18818,7 @@
18652
18818
  var is_data_cell_default = isDataCell;
18653
18819
  function isDataTable(node) {
18654
18820
  var role = (node.getAttribute('role') || '').toLowerCase();
18655
- if ((role === 'presentation' || role === 'none') && !is_focusable_default(node)) {
18821
+ if ((role === 'presentation' || role === 'none') && !_isFocusable(node)) {
18656
18822
  return false;
18657
18823
  }
18658
18824
  if (node.getAttribute('contenteditable') === 'true' || find_up_default(node, '[contenteditable="true"]')) {
@@ -18862,11 +19028,27 @@
18862
19028
  });
18863
19029
  }
18864
19030
  var internal_link_present_evaluate_default = internalLinkPresentEvaluate;
19031
+ var separatorRegex = /[;,\s]/;
19032
+ var validRedirectNumRegex = /^[0-9.]+$/;
18865
19033
  function metaRefreshEvaluate(node, options, virtualNode) {
18866
- var content = virtualNode.attr('content') || '', parsedParams = content.split(/[;,]/);
18867
- return content === '' || parsedParams[0] === '0';
19034
+ var _ref83 = options || {}, minDelay = _ref83.minDelay, maxDelay = _ref83.maxDelay;
19035
+ var content = (virtualNode.attr('content') || '').trim();
19036
+ var _content$split = content.split(separatorRegex), _content$split2 = _slicedToArray(_content$split, 1), redirectStr = _content$split2[0];
19037
+ if (!redirectStr.match(validRedirectNumRegex)) {
19038
+ return true;
19039
+ }
19040
+ var redirectDelay = parseFloat(redirectStr);
19041
+ this.data({
19042
+ redirectDelay: redirectDelay
19043
+ });
19044
+ if (typeof minDelay === 'number' && redirectDelay <= options.minDelay) {
19045
+ return true;
19046
+ }
19047
+ if (typeof maxDelay === 'number' && redirectDelay > options.maxDelay) {
19048
+ return true;
19049
+ }
19050
+ return false;
18868
19051
  }
18869
- var meta_refresh_evaluate_default = metaRefreshEvaluate;
18870
19052
  function normalizeFontWeight(weight) {
18871
19053
  switch (weight) {
18872
19054
  case 'lighter':
@@ -18889,16 +19071,16 @@
18889
19071
  var outerText = elm.textContent.trim();
18890
19072
  var innerText = outerText;
18891
19073
  while (innerText === outerText && nextNode !== void 0) {
18892
- var _i22 = -1;
19074
+ var _i24 = -1;
18893
19075
  elm = nextNode;
18894
19076
  if (elm.children.length === 0) {
18895
19077
  return elm;
18896
19078
  }
18897
19079
  do {
18898
- _i22++;
18899
- innerText = elm.children[_i22].textContent.trim();
18900
- } while (innerText === '' && _i22 + 1 < elm.children.length);
18901
- nextNode = elm.children[_i22];
19080
+ _i24++;
19081
+ innerText = elm.children[_i24].textContent.trim();
19082
+ } while (innerText === '' && _i24 + 1 < elm.children.length);
19083
+ nextNode = elm.children[_i24];
18902
19084
  }
18903
19085
  return elm;
18904
19086
  }
@@ -19016,8 +19198,8 @@
19016
19198
  } else if (node !== document.body && has_content_default(node, true)) {
19017
19199
  return [ virtualNode ];
19018
19200
  } else {
19019
- return virtualNode.children.filter(function(_ref83) {
19020
- var actualNode = _ref83.actualNode;
19201
+ return virtualNode.children.filter(function(_ref84) {
19202
+ var actualNode = _ref84.actualNode;
19021
19203
  return actualNode.nodeType === 1;
19022
19204
  }).map(function(vNode) {
19023
19205
  return findRegionlessElms(vNode, options);
@@ -19175,7 +19357,7 @@
19175
19357
  var hasGlobalAria = get_global_aria_attrs_default().some(function(attr) {
19176
19358
  return virtualNode.hasAttr(attr);
19177
19359
  });
19178
- var focusable = is_focusable_default(virtualNode);
19360
+ var focusable = _isFocusable(virtualNode);
19179
19361
  var messageKey;
19180
19362
  if (hasGlobalAria && !focusable) {
19181
19363
  messageKey = 'globalAria';
@@ -19195,8 +19377,8 @@
19195
19377
  if (!virtualNode.children) {
19196
19378
  return void 0;
19197
19379
  }
19198
- var titleNode = virtualNode.children.find(function(_ref84) {
19199
- var props = _ref84.props;
19380
+ var titleNode = virtualNode.children.find(function(_ref85) {
19381
+ var props = _ref85.props;
19200
19382
  return props.nodeName === 'title';
19201
19383
  });
19202
19384
  if (!titleNode) {
@@ -19383,8 +19565,8 @@
19383
19565
  var aria49 = /^aria-/;
19384
19566
  var attrs = virtualNode.attrNames;
19385
19567
  if (attrs.length) {
19386
- for (var _i23 = 0, l = attrs.length; _i23 < l; _i23++) {
19387
- if (aria49.test(attrs[_i23])) {
19568
+ for (var _i25 = 0, l = attrs.length; _i25 < l; _i25++) {
19569
+ if (aria49.test(attrs[_i25])) {
19388
19570
  return true;
19389
19571
  }
19390
19572
  }
@@ -19582,7 +19764,7 @@
19582
19764
  var id = node.getAttribute('id').trim();
19583
19765
  var idSelector = '*[id="'.concat(escape_selector_default(id), '"]');
19584
19766
  var idMatchingElms = Array.from(get_root_node_default2(node).querySelectorAll(idSelector));
19585
- return !is_accessible_ref_default(node) && idMatchingElms.some(is_focusable_default);
19767
+ return !is_accessible_ref_default(node) && idMatchingElms.some(_isFocusable);
19586
19768
  }
19587
19769
  var duplicate_id_active_matches_default = duplicateIdActiveMatches;
19588
19770
  function duplicateIdAriaMatches(node) {
@@ -19594,7 +19776,7 @@
19594
19776
  var idSelector = '*[id="'.concat(escape_selector_default(id), '"]');
19595
19777
  var idMatchingElms = Array.from(get_root_node_default2(node).querySelectorAll(idSelector));
19596
19778
  return !is_accessible_ref_default(node) && idMatchingElms.every(function(elm) {
19597
- return !is_focusable_default(elm);
19779
+ return !_isFocusable(elm);
19598
19780
  });
19599
19781
  }
19600
19782
  var duplicate_id_misc_matches_default = duplicateIdMiscMatches;
@@ -19720,7 +19902,7 @@
19720
19902
  }
19721
19903
  var landmark_unique_matches_default = landmarkUniqueMatches;
19722
19904
  function dataTableMatches2(node) {
19723
- return !is_data_table_default(node) && !is_focusable_default(node);
19905
+ return !is_data_table_default(node) && !_isFocusable(node);
19724
19906
  }
19725
19907
  var layout_table_matches_default = dataTableMatches2;
19726
19908
  function linkInTextBlockMatches(node) {
@@ -19771,8 +19953,8 @@
19771
19953
  if (!role || [ 'none', 'presentation' ].includes(role)) {
19772
19954
  return true;
19773
19955
  }
19774
- var _ref85 = aria_roles_default[role] || {}, accessibleNameRequired = _ref85.accessibleNameRequired;
19775
- if (accessibleNameRequired || is_focusable_default(virtualNode)) {
19956
+ var _ref86 = aria_roles_default[role] || {}, accessibleNameRequired = _ref86.accessibleNameRequired;
19957
+ if (accessibleNameRequired || _isFocusable(virtualNode)) {
19776
19958
  return true;
19777
19959
  }
19778
19960
  return false;
@@ -19789,6 +19971,11 @@
19789
19971
  return true;
19790
19972
  }
19791
19973
  var no_naming_method_matches_default = noNamingMethodMatches;
19974
+ function noNegativeTabindexMatches(node, virtualNode) {
19975
+ var tabindex = parseInt(virtualNode.attr('tabindex'), 10);
19976
+ return isNaN(tabindex) || tabindex >= 0;
19977
+ }
19978
+ var no_negative_tabindex_matches_default = noNegativeTabindexMatches;
19792
19979
  function noRoleMatches(node) {
19793
19980
  return !node.getAttribute('role');
19794
19981
  }
@@ -19919,7 +20106,7 @@
19919
20106
  'focusable-modal-open-evaluate': focusable_modal_open_evaluate_default,
19920
20107
  'focusable-no-name-evaluate': focusable_no_name_evaluate_default,
19921
20108
  'focusable-not-tabbable-evaluate': focusable_not_tabbable_evaluate_default,
19922
- 'frame-focusable-content-evaluate': frame_focusable_content_evaluate_default,
20109
+ 'frame-focusable-content-evaluate': frameFocusableContentEvaluate,
19923
20110
  'frame-focusable-content-matches': frame_focusable_content_matches_default,
19924
20111
  'frame-tested-after': frame_tested_after_default,
19925
20112
  'frame-tested-evaluate': frame_tested_evaluate_default,
@@ -19963,7 +20150,7 @@
19963
20150
  'link-in-text-block-matches': link_in_text_block_matches_default,
19964
20151
  'listitem-evaluate': listitemEvaluate,
19965
20152
  'matches-definition-evaluate': matches_definition_evaluate_default,
19966
- 'meta-refresh-evaluate': meta_refresh_evaluate_default,
20153
+ 'meta-refresh-evaluate': metaRefreshEvaluate,
19967
20154
  'meta-viewport-scale-evaluate': meta_viewport_scale_evaluate_default,
19968
20155
  'multiple-label-evaluate': multiple_label_evaluate_default,
19969
20156
  'nested-interactive-matches': nested_interactive_matches_default,
@@ -19974,6 +20161,7 @@
19974
20161
  'no-focusable-content-evaluate': noFocusableContentEvaluate,
19975
20162
  'no-implicit-explicit-label-evaluate': no_implicit_explicit_label_evaluate_default,
19976
20163
  'no-naming-method-matches': no_naming_method_matches_default,
20164
+ 'no-negative-tabindex-matches': no_negative_tabindex_matches_default,
19977
20165
  'no-role-matches': no_role_matches_default,
19978
20166
  'non-empty-if-present-evaluate': non_empty_if_present_evaluate_default,
19979
20167
  'not-html-matches': not_html_matches_default,
@@ -20148,11 +20336,12 @@
20148
20336
  this.none = spec.none || [];
20149
20337
  this.tags = spec.tags || [];
20150
20338
  this.preload = spec.preload ? true : false;
20339
+ this.actIds = spec.actIds;
20151
20340
  if (spec.matches) {
20152
20341
  this.matches = createExecutionContext(spec.matches);
20153
20342
  }
20154
20343
  }
20155
- Rule.prototype.matches = function matches13() {
20344
+ Rule.prototype.matches = function matches14() {
20156
20345
  return true;
20157
20346
  };
20158
20347
  Rule.prototype.gather = function gather(context5) {
@@ -20480,6 +20669,9 @@
20480
20669
  if (spec.hasOwnProperty('tags')) {
20481
20670
  this.tags = spec.tags;
20482
20671
  }
20672
+ if (spec.hasOwnProperty('actIds')) {
20673
+ this.actIds = spec.actIds;
20674
+ }
20483
20675
  if (spec.hasOwnProperty('matches')) {
20484
20676
  this.matches = createExecutionContext(spec.matches);
20485
20677
  }
@@ -20594,8 +20786,8 @@
20594
20786
  lang: this.lang
20595
20787
  };
20596
20788
  var checkIDs = Object.keys(this.data.checks);
20597
- for (var _i24 = 0; _i24 < checkIDs.length; _i24++) {
20598
- var id = checkIDs[_i24];
20789
+ for (var _i26 = 0; _i26 < checkIDs.length; _i26++) {
20790
+ var id = checkIDs[_i26];
20599
20791
  var check4 = this.data.checks[id];
20600
20792
  var _check4$messages = check4.messages, pass = _check4$messages.pass, fail = _check4$messages.fail, incomplete = _check4$messages.incomplete;
20601
20793
  locale.checks[id] = {
@@ -20605,8 +20797,8 @@
20605
20797
  };
20606
20798
  }
20607
20799
  var ruleIDs = Object.keys(this.data.rules);
20608
- for (var _i25 = 0; _i25 < ruleIDs.length; _i25++) {
20609
- var _id = ruleIDs[_i25];
20800
+ for (var _i27 = 0; _i27 < ruleIDs.length; _i27++) {
20801
+ var _id = ruleIDs[_i27];
20610
20802
  var rule3 = this.data.rules[_id];
20611
20803
  var description = rule3.description, help = rule3.help;
20612
20804
  locale.rules[_id] = {
@@ -20615,8 +20807,8 @@
20615
20807
  };
20616
20808
  }
20617
20809
  var failureSummaries = Object.keys(this.data.failureSummaries);
20618
- for (var _i26 = 0; _i26 < failureSummaries.length; _i26++) {
20619
- var type = failureSummaries[_i26];
20810
+ for (var _i28 = 0; _i28 < failureSummaries.length; _i28++) {
20811
+ var type = failureSummaries[_i28];
20620
20812
  var failureSummary2 = this.data.failureSummaries[type];
20621
20813
  var failureMessage = failureSummary2.failureMessage;
20622
20814
  locale.failureSummaries[type] = {
@@ -20639,8 +20831,8 @@
20639
20831
  key: '_applyCheckLocale',
20640
20832
  value: function _applyCheckLocale(checks) {
20641
20833
  var keys = Object.keys(checks);
20642
- for (var _i27 = 0; _i27 < keys.length; _i27++) {
20643
- var id = keys[_i27];
20834
+ for (var _i29 = 0; _i29 < keys.length; _i29++) {
20835
+ var id = keys[_i29];
20644
20836
  if (!this.data.checks[id]) {
20645
20837
  throw new Error('Locale provided for unknown check: "'.concat(id, '"'));
20646
20838
  }
@@ -20651,8 +20843,8 @@
20651
20843
  key: '_applyRuleLocale',
20652
20844
  value: function _applyRuleLocale(rules) {
20653
20845
  var keys = Object.keys(rules);
20654
- for (var _i28 = 0; _i28 < keys.length; _i28++) {
20655
- var id = keys[_i28];
20846
+ for (var _i30 = 0; _i30 < keys.length; _i30++) {
20847
+ var id = keys[_i30];
20656
20848
  if (!this.data.rules[id]) {
20657
20849
  throw new Error('Locale provided for unknown rule: "'.concat(id, '"'));
20658
20850
  }
@@ -20663,8 +20855,8 @@
20663
20855
  key: '_applyFailureSummaries',
20664
20856
  value: function _applyFailureSummaries(messages) {
20665
20857
  var keys = Object.keys(messages);
20666
- for (var _i29 = 0; _i29 < keys.length; _i29++) {
20667
- var key = keys[_i29];
20858
+ for (var _i31 = 0; _i31 < keys.length; _i31++) {
20859
+ var key = keys[_i31];
20668
20860
  if (!this.data.failureSummaries[key]) {
20669
20861
  throw new Error('Locale provided for unknown failureMessage: "'.concat(key, '"'));
20670
20862
  }
@@ -21013,8 +21205,8 @@
21013
21205
  });
21014
21206
  };
21015
21207
  }
21016
- function getHelpUrl(_ref86, ruleId, version) {
21017
- var brand = _ref86.brand, application = _ref86.application, lang = _ref86.lang;
21208
+ function getHelpUrl(_ref87, ruleId, version) {
21209
+ var brand = _ref87.brand, application = _ref87.application, lang = _ref87.lang;
21018
21210
  return constants_default.helpUrlBase + brand + '/' + (version || axe.version.substring(0, axe.version.lastIndexOf('.'))) + '/' + ruleId + '?application=' + encodeURIComponent(application) + (lang && lang !== 'en' ? '&lang=' + encodeURIComponent(lang) : '');
21019
21211
  }
21020
21212
  var audit_default = Audit;
@@ -21216,7 +21408,8 @@
21216
21408
  description: rd.description,
21217
21409
  help: rd.help,
21218
21410
  helpUrl: rd.helpUrl,
21219
- tags: matchingRule.tags
21411
+ tags: matchingRule.tags,
21412
+ actIds: matchingRule.actIds
21220
21413
  };
21221
21414
  });
21222
21415
  }
@@ -21428,9 +21621,9 @@
21428
21621
  });
21429
21622
  }
21430
21623
  var run_virtual_rule_default = runVirtualRule;
21431
- function normalizeRunParams(_ref87) {
21432
- var _ref89, _options$reporter, _axe$_audit;
21433
- var _ref88 = _slicedToArray(_ref87, 3), context5 = _ref88[0], options = _ref88[1], callback = _ref88[2];
21624
+ function normalizeRunParams(_ref88) {
21625
+ var _ref90, _options$reporter, _axe$_audit;
21626
+ var _ref89 = _slicedToArray(_ref88, 3), context5 = _ref89[0], options = _ref89[1], callback = _ref89[2];
21434
21627
  var typeErr = new TypeError('axe.run arguments are invalid');
21435
21628
  if (!isContext(context5)) {
21436
21629
  if (callback !== void 0) {
@@ -21451,7 +21644,7 @@
21451
21644
  throw typeErr;
21452
21645
  }
21453
21646
  options = clone_default(options);
21454
- 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';
21647
+ options.reporter = (_ref90 = (_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 && _ref90 !== void 0 ? _ref90 : 'v1';
21455
21648
  return {
21456
21649
  context: context5,
21457
21650
  options: options,
@@ -21576,14 +21769,14 @@
21576
21769
  return new Promise(function(res, rej) {
21577
21770
  axe._audit.run(contextObj, options, res, rej);
21578
21771
  }).then(function(results) {
21579
- results = results.map(function(_ref90) {
21580
- var nodes = _ref90.nodes, result = _objectWithoutProperties(_ref90, _excluded8);
21772
+ results = results.map(function(_ref91) {
21773
+ var nodes = _ref91.nodes, result = _objectWithoutProperties(_ref91, _excluded8);
21581
21774
  return _extends({
21582
21775
  nodes: nodes.map(serializeNode)
21583
21776
  }, result);
21584
21777
  });
21585
- var frames = contextObj.frames.map(function(_ref91) {
21586
- var node = _ref91.node;
21778
+ var frames = contextObj.frames.map(function(_ref92) {
21779
+ var node = _ref92.node;
21587
21780
  return new dq_element_default(node, options).toJSON();
21588
21781
  });
21589
21782
  var environmentData;
@@ -21603,13 +21796,13 @@
21603
21796
  return Promise.reject(err2);
21604
21797
  });
21605
21798
  }
21606
- function serializeNode(_ref92) {
21607
- var node = _ref92.node, nodeResult = _objectWithoutProperties(_ref92, _excluded9);
21799
+ function serializeNode(_ref93) {
21800
+ var node = _ref93.node, nodeResult = _objectWithoutProperties(_ref93, _excluded9);
21608
21801
  nodeResult.node = node.toJSON();
21609
- for (var _i30 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i30 < _arr2.length; _i30++) {
21610
- var type = _arr2[_i30];
21611
- nodeResult[type] = nodeResult[type].map(function(_ref93) {
21612
- var relatedNodes = _ref93.relatedNodes, checkResult = _objectWithoutProperties(_ref93, _excluded10);
21802
+ for (var _i32 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i32 < _arr2.length; _i32++) {
21803
+ var type = _arr2[_i32];
21804
+ nodeResult[type] = nodeResult[type].map(function(_ref94) {
21805
+ var relatedNodes = _ref94.relatedNodes, checkResult = _objectWithoutProperties(_ref94, _excluded10);
21613
21806
  return _extends({}, checkResult, {
21614
21807
  relatedNodes: relatedNodes.map(function(node2) {
21615
21808
  return node2.toJSON();
@@ -21620,14 +21813,14 @@
21620
21813
  return nodeResult;
21621
21814
  }
21622
21815
  function finishRun(partialResults) {
21623
- var _ref95, _options$reporter2, _axe$_audit2;
21816
+ var _ref96, _options$reporter2, _axe$_audit2;
21624
21817
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21625
21818
  options = clone_default(options);
21626
- var _ref94 = partialResults.find(function(r) {
21819
+ var _ref95 = partialResults.find(function(r) {
21627
21820
  return r.environmentData;
21628
- }) || {}, environmentData = _ref94.environmentData;
21821
+ }) || {}, environmentData = _ref95.environmentData;
21629
21822
  axe._audit.normalizeOptions(options);
21630
- 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';
21823
+ options.reporter = (_ref96 = (_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 && _ref96 !== void 0 ? _ref96 : 'v1';
21631
21824
  setFrameSpec(partialResults);
21632
21825
  var results = merge_results_default(partialResults);
21633
21826
  results = axe._audit.after(results, options);
@@ -21657,8 +21850,8 @@
21657
21850
  _iterator4.f();
21658
21851
  }
21659
21852
  }
21660
- function getMergedFrameSpecs(_ref96) {
21661
- var childFrameSpecs = _ref96.frames, parentFrameSpec = _ref96.frameSpec;
21853
+ function getMergedFrameSpecs(_ref97) {
21854
+ var childFrameSpecs = _ref97.frames, parentFrameSpec = _ref97.frameSpec;
21662
21855
  if (!parentFrameSpec) {
21663
21856
  return childFrameSpecs;
21664
21857
  }
@@ -21718,12 +21911,12 @@
21718
21911
  var transformedResults = results.map(function(result) {
21719
21912
  var transformedResult = _extends({}, result);
21720
21913
  var types = [ 'passes', 'violations', 'incomplete', 'inapplicable' ];
21721
- for (var _i31 = 0, _types = types; _i31 < _types.length; _i31++) {
21722
- var type = _types[_i31];
21914
+ for (var _i33 = 0, _types = types; _i33 < _types.length; _i33++) {
21915
+ var type = _types[_i33];
21723
21916
  if (transformedResult[type] && Array.isArray(transformedResult[type])) {
21724
- transformedResult[type] = transformedResult[type].map(function(_ref97) {
21917
+ transformedResult[type] = transformedResult[type].map(function(_ref98) {
21725
21918
  var _node;
21726
- var node = _ref97.node, typeResult = _objectWithoutProperties(_ref97, _excluded13);
21919
+ var node = _ref98.node, typeResult = _objectWithoutProperties(_ref98, _excluded13);
21727
21920
  node = typeof ((_node = node) === null || _node === void 0 ? void 0 : _node.toJSON) === 'function' ? node.toJSON() : node;
21728
21921
  return _extends({
21729
21922
  node: node
@@ -21801,6 +21994,10 @@
21801
21994
  axe._thisWillBeDeletedDoNotUse['public'] = {
21802
21995
  reporters: reporters
21803
21996
  };
21997
+ axe._thisWillBeDeletedDoNotUse.utils = axe._thisWillBeDeletedDoNotUse.utils || {};
21998
+ axe._thisWillBeDeletedDoNotUse.utils.cacheNodeSelectors = cacheNodeSelectors;
21999
+ axe._thisWillBeDeletedDoNotUse.utils.getNodesMatchingExpression = getNodesMatchingExpression;
22000
+ axe._thisWillBeDeletedDoNotUse.utils.convertSelector = _convertSelector;
21804
22001
  axe.imports = imports_exports;
21805
22002
  axe.cleanup = cleanup_default;
21806
22003
  axe.configure = configure_default;
@@ -21988,7 +22185,7 @@
21988
22185
  },
21989
22186
  'empty-table-header': {
21990
22187
  description: 'Ensures table headers have discernible text',
21991
- help: 'Table header text must not be empty'
22188
+ help: 'Table header text should not be empty'
21992
22189
  },
21993
22190
  'focus-order-semantics': {
21994
22191
  description: 'Ensures elements in the focus order have a role appropriate for interactive content',
@@ -22122,9 +22319,13 @@
22122
22319
  description: 'Ensures <marquee> elements are not used',
22123
22320
  help: '<marquee> elements are deprecated and must not be used'
22124
22321
  },
22322
+ 'meta-refresh-no-exceptions': {
22323
+ description: 'Ensures <meta http-equiv="refresh"> is not used for delayed refresh',
22324
+ help: 'Delayed refresh must not be used'
22325
+ },
22125
22326
  'meta-refresh': {
22126
- description: 'Ensures <meta http-equiv="refresh"> is not used',
22127
- help: 'Timed refresh must not exist'
22327
+ description: 'Ensures <meta http-equiv="refresh"> is not used for delayed refresh',
22328
+ help: 'Delayed refresh under 20 hours must not be used'
22128
22329
  },
22129
22330
  'meta-viewport-large': {
22130
22331
  description: 'Ensures <meta name="viewport"> can scale a significant amount',
@@ -22442,7 +22643,7 @@
22442
22643
  impact: 'critical',
22443
22644
  messages: {
22444
22645
  pass: 'ARIA role is supported',
22445
- fail: 'The role used is not widely supported in screen readers and assistive technologies: ${data.values}'
22646
+ fail: 'The role used is not widely supported in screen readers and assistive technologies: ${data}'
22446
22647
  }
22447
22648
  },
22448
22649
  'valid-scrollable-semantics': {
@@ -22875,11 +23076,18 @@
22875
23076
  fail: 'Page does not have a landmark region'
22876
23077
  }
22877
23078
  },
23079
+ 'meta-refresh-no-exceptions': {
23080
+ impact: 'minor',
23081
+ messages: {
23082
+ pass: '<meta> tag does not immediately refresh the page',
23083
+ fail: '<meta> tag forces timed refresh of page'
23084
+ }
23085
+ },
22878
23086
  'meta-refresh': {
22879
23087
  impact: 'critical',
22880
23088
  messages: {
22881
23089
  pass: '<meta> tag does not immediately refresh the page',
22882
- fail: '<meta> tag forces timed refresh of page'
23090
+ fail: '<meta> tag forces timed refresh of page (less than 20 hours)'
22883
23091
  }
22884
23092
  },
22885
23093
  'p-as-heading': {
@@ -23193,7 +23401,7 @@
23193
23401
  id: 'area-alt',
23194
23402
  selector: 'map area[href]',
23195
23403
  excludeHidden: false,
23196
- tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'wcag244', 'wcag412', 'section508', 'section508.22.a', 'ACT' ],
23404
+ tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag244', 'wcag412', 'section508', 'section508.22.a', 'ACT' ],
23197
23405
  actIds: [ 'c487ae' ],
23198
23406
  all: [],
23199
23407
  any: [ {
@@ -23245,7 +23453,7 @@
23245
23453
  id: 'aria-command-name',
23246
23454
  selector: '[role="link"], [role="button"], [role="menuitem"]',
23247
23455
  matches: 'no-naming-method-matches',
23248
- tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
23456
+ tags: [ 'cat.aria', 'wcag2a', 'wcag412', 'ACT' ],
23249
23457
  actIds: [ '97a4e1' ],
23250
23458
  all: [],
23251
23459
  any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {
@@ -23282,7 +23490,7 @@
23282
23490
  selector: '[aria-hidden="true"]',
23283
23491
  matches: 'aria-hidden-focus-matches',
23284
23492
  excludeHidden: false,
23285
- tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412', 'wcag131' ],
23493
+ tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412' ],
23286
23494
  actIds: [ '6cfa84' ],
23287
23495
  all: [ 'focusable-modal-open', 'focusable-disabled', 'focusable-not-tabbable' ],
23288
23496
  any: [],
@@ -23331,6 +23539,7 @@
23331
23539
  id: 'aria-required-attr',
23332
23540
  selector: '[role]',
23333
23541
  tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
23542
+ actIds: [ '4e8ab6' ],
23334
23543
  all: [],
23335
23544
  any: [ 'aria-required-attr' ],
23336
23545
  none: []
@@ -23339,7 +23548,7 @@
23339
23548
  selector: '[role]',
23340
23549
  matches: 'aria-required-children-matches',
23341
23550
  tags: [ 'cat.aria', 'wcag2a', 'wcag131' ],
23342
- actIds: [ 'ff89c9' ],
23551
+ actIds: [ 'bc4a75' ],
23343
23552
  all: [],
23344
23553
  any: [ {
23345
23554
  options: {
@@ -23353,7 +23562,7 @@
23353
23562
  selector: '[role]',
23354
23563
  matches: 'aria-required-parent-matches',
23355
23564
  tags: [ 'cat.aria', 'wcag2a', 'wcag131' ],
23356
- actIds: [ 'bc4a75', 'ff89c9' ],
23565
+ actIds: [ 'ff89c9' ],
23357
23566
  all: [],
23358
23567
  any: [ {
23359
23568
  options: {
@@ -23379,6 +23588,7 @@
23379
23588
  selector: '[role]',
23380
23589
  matches: 'no-empty-role-matches',
23381
23590
  tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
23591
+ actIds: [ '674b10' ],
23382
23592
  all: [],
23383
23593
  any: [],
23384
23594
  none: [ 'fallbackrole', 'invalidrole', 'abstractrole', 'unsupportedrole', 'deprecatedrole' ]
@@ -23394,6 +23604,7 @@
23394
23604
  selector: '[role="checkbox"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="radio"], [role="switch"], [role="option"]',
23395
23605
  matches: 'no-naming-method-matches',
23396
23606
  tags: [ 'cat.aria', 'wcag2a', 'wcag412', 'ACT' ],
23607
+ actIds: [ 'e086e5' ],
23397
23608
  all: [],
23398
23609
  any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {
23399
23610
  options: {
@@ -23432,7 +23643,7 @@
23432
23643
  id: 'aria-valid-attr-value',
23433
23644
  matches: 'aria-has-attr-matches',
23434
23645
  tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
23435
- actIds: [ '5c01ea', 'c487ae' ],
23646
+ actIds: [ '6a7281' ],
23436
23647
  all: [ {
23437
23648
  options: [],
23438
23649
  id: 'aria-valid-attr-value'
@@ -23443,6 +23654,7 @@
23443
23654
  id: 'aria-valid-attr',
23444
23655
  matches: 'aria-has-attr-matches',
23445
23656
  tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
23657
+ actIds: [ '5f99a7' ],
23446
23658
  all: [],
23447
23659
  any: [ {
23448
23660
  options: [],
@@ -23455,14 +23667,14 @@
23455
23667
  enabled: false,
23456
23668
  excludeHidden: false,
23457
23669
  tags: [ 'cat.time-and-media', 'wcag2a', 'wcag121', 'section508', 'section508.22.a' ],
23458
- actIds: [ 'c3232f', 'e7aa44' ],
23670
+ actIds: [ '2eb176', 'afb423' ],
23459
23671
  all: [],
23460
23672
  any: [],
23461
23673
  none: [ 'caption' ]
23462
23674
  }, {
23463
23675
  id: 'autocomplete-valid',
23464
23676
  matches: 'autocomplete-matches',
23465
- tags: [ 'cat.forms', 'wcag21aa', 'wcag135' ],
23677
+ tags: [ 'cat.forms', 'wcag21aa', 'wcag135', 'ACT' ],
23466
23678
  actIds: [ '73f2c2' ],
23467
23679
  all: [ {
23468
23680
  options: {
@@ -23475,7 +23687,8 @@
23475
23687
  }, {
23476
23688
  id: 'avoid-inline-spacing',
23477
23689
  selector: '[style]',
23478
- tags: [ 'cat.structure', 'wcag21aa', 'wcag1412' ],
23690
+ tags: [ 'cat.structure', 'wcag21aa', 'wcag1412', 'ACT' ],
23691
+ actIds: [ '24afc2', '9e45ec', '78fd32' ],
23479
23692
  all: [ {
23480
23693
  options: {
23481
23694
  cssProperties: [ 'line-height', 'letter-spacing', 'word-spacing' ]
@@ -23513,6 +23726,7 @@
23513
23726
  matches: 'bypass-matches',
23514
23727
  reviewOnFail: true,
23515
23728
  tags: [ 'cat.keyboard', 'wcag2a', 'wcag241', 'section508', 'section508.22.o' ],
23729
+ actIds: [ 'cf77f2', '047fe0', 'b40fd1', '3e12e1', 'ye5d6e' ],
23516
23730
  all: [],
23517
23731
  any: [ 'internal-link-present', {
23518
23732
  options: {
@@ -23531,7 +23745,8 @@
23531
23745
  matches: 'color-contrast-matches',
23532
23746
  excludeHidden: false,
23533
23747
  enabled: false,
23534
- tags: [ 'cat.color', 'wcag2aaa', 'wcag146' ],
23748
+ tags: [ 'cat.color', 'wcag2aaa', 'wcag146', 'ACT' ],
23749
+ actIds: [ '09o5cg' ],
23535
23750
  all: [],
23536
23751
  any: [ {
23537
23752
  options: {
@@ -23559,7 +23774,8 @@
23559
23774
  id: 'color-contrast',
23560
23775
  matches: 'color-contrast-matches',
23561
23776
  excludeHidden: false,
23562
- tags: [ 'cat.color', 'wcag2aa', 'wcag143' ],
23777
+ tags: [ 'cat.color', 'wcag2aa', 'wcag143', 'ACT' ],
23778
+ actIds: [ 'afw4f7' ],
23563
23779
  all: [],
23564
23780
  any: [ {
23565
23781
  options: {
@@ -23628,6 +23844,7 @@
23628
23844
  matches: 'duplicate-id-active-matches',
23629
23845
  excludeHidden: false,
23630
23846
  tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],
23847
+ actIds: [ '3ea0c8' ],
23631
23848
  all: [],
23632
23849
  any: [ 'duplicate-id-active' ],
23633
23850
  none: []
@@ -23647,6 +23864,7 @@
23647
23864
  matches: 'duplicate-id-misc-matches',
23648
23865
  excludeHidden: false,
23649
23866
  tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],
23867
+ actIds: [ '3ea0c8' ],
23650
23868
  all: [],
23651
23869
  any: [ 'duplicate-id' ],
23652
23870
  none: []
@@ -23655,6 +23873,7 @@
23655
23873
  selector: 'h1, h2, h3, h4, h5, h6, [role="heading"]',
23656
23874
  matches: 'heading-matches',
23657
23875
  tags: [ 'cat.name-role-value', 'best-practice' ],
23876
+ actIds: [ 'ffd0e9' ],
23658
23877
  impact: 'minor',
23659
23878
  all: [],
23660
23879
  any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {
@@ -23667,8 +23886,7 @@
23667
23886
  }, {
23668
23887
  id: 'empty-table-header',
23669
23888
  selector: 'th, [role="rowheader"], [role="columnheader"]',
23670
- tags: [ 'wcag131', 'cat.aria' ],
23671
- reviewOnFail: true,
23889
+ tags: [ 'cat.name-role-value', 'best-practice' ],
23672
23890
  all: [],
23673
23891
  any: [ 'has-visible-text' ],
23674
23892
  none: []
@@ -23701,6 +23919,7 @@
23701
23919
  selector: 'html',
23702
23920
  matches: 'frame-focusable-content-matches',
23703
23921
  tags: [ 'cat.keyboard', 'wcag2a', 'wcag211' ],
23922
+ actIds: [ 'akn7bn' ],
23704
23923
  all: [],
23705
23924
  any: [ 'frame-focusable-content' ],
23706
23925
  none: []
@@ -23721,13 +23940,16 @@
23721
23940
  selector: 'frame[title], iframe[title]',
23722
23941
  matches: 'frame-title-has-text-matches',
23723
23942
  tags: [ 'cat.text-alternatives', 'best-practice' ],
23943
+ actIds: [ '4b1c6c' ],
23724
23944
  all: [],
23725
23945
  any: [],
23726
23946
  none: [ 'unique-frame-title' ]
23727
23947
  }, {
23728
23948
  id: 'frame-title',
23729
23949
  selector: 'frame, iframe',
23730
- tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag241', 'wcag412', 'section508', 'section508.22.i' ],
23950
+ matches: 'no-negative-tabindex-matches',
23951
+ tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag412', 'section508', 'section508.22.i' ],
23952
+ actIds: [ 'cae760' ],
23731
23953
  all: [],
23732
23954
  any: [ {
23733
23955
  options: {
@@ -23794,7 +24016,7 @@
23794
24016
  excludeHidden: false,
23795
24017
  matches: 'identical-links-same-purpose-matches',
23796
24018
  tags: [ 'cat.semantics', 'wcag2aaa', 'wcag249' ],
23797
- actIds: [ 'b20e66', 'fd3a94' ],
24019
+ actIds: [ 'b20e66' ],
23798
24020
  all: [ 'identical-links-same-purpose' ],
23799
24021
  any: [],
23800
24022
  none: []
@@ -23828,7 +24050,8 @@
23828
24050
  id: 'input-button-name',
23829
24051
  selector: 'input[type="button"], input[type="submit"], input[type="reset"]',
23830
24052
  matches: 'no-explicit-name-required-matches',
23831
- tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412', 'section508', 'section508.22.a' ],
24053
+ tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412', 'section508', 'section508.22.a', 'ACT' ],
24054
+ actIds: [ '97a4e1' ],
23832
24055
  all: [],
23833
24056
  any: [ 'non-empty-if-present', {
23834
24057
  options: {
@@ -23846,7 +24069,7 @@
23846
24069
  id: 'input-image-alt',
23847
24070
  selector: 'input[type="image"]',
23848
24071
  matches: 'no-explicit-name-required-matches',
23849
- tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a', 'ACT' ],
24072
+ tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'wcag412', 'section508', 'section508.22.a', 'ACT' ],
23850
24073
  actIds: [ '59796f' ],
23851
24074
  all: [],
23852
24075
  any: [ {
@@ -23887,8 +24110,8 @@
23887
24110
  id: 'label',
23888
24111
  selector: 'input, textarea',
23889
24112
  matches: 'label-matches',
23890
- tags: [ 'cat.forms', 'wcag2a', 'wcag412', 'wcag131', 'section508', 'section508.22.n', 'ACT' ],
23891
- actIds: [ 'e086e5', '307n5z' ],
24113
+ tags: [ 'cat.forms', 'wcag2a', 'wcag412', 'section508', 'section508.22.n', 'ACT' ],
24114
+ actIds: [ 'e086e5' ],
23892
24115
  all: [],
23893
24116
  any: [ 'implicit-label', 'explicit-label', 'aria-label', 'aria-labelledby', {
23894
24117
  options: {
@@ -23976,7 +24199,8 @@
23976
24199
  tags: [ 'cat.semantics', 'best-practice' ],
23977
24200
  all: [ {
23978
24201
  options: {
23979
- selector: 'main:not([role]), [role=\'main\']'
24202
+ selector: 'main:not([role]), [role=\'main\']',
24203
+ passForModal: true
23980
24204
  },
23981
24205
  id: 'page-has-main'
23982
24206
  } ],
@@ -24036,13 +24260,36 @@
24036
24260
  all: [],
24037
24261
  any: [],
24038
24262
  none: [ 'is-on-screen' ]
24263
+ }, {
24264
+ id: 'meta-refresh-no-exceptions',
24265
+ selector: 'meta[http-equiv="refresh"][content]',
24266
+ excludeHidden: false,
24267
+ enabled: false,
24268
+ tags: [ 'cat.time-and-media', 'wcag2aaa', 'wcag224', 'wcag325' ],
24269
+ actIds: [ 'bisz58' ],
24270
+ all: [],
24271
+ any: [ {
24272
+ options: {
24273
+ minDelay: 0,
24274
+ maxDelay: false
24275
+ },
24276
+ id: 'meta-refresh-no-exceptions'
24277
+ } ],
24278
+ none: []
24039
24279
  }, {
24040
24280
  id: 'meta-refresh',
24041
- selector: 'meta[http-equiv="refresh"]',
24281
+ selector: 'meta[http-equiv="refresh"][content]',
24042
24282
  excludeHidden: false,
24043
24283
  tags: [ 'cat.time-and-media', 'wcag2a', 'wcag221', 'wcag224', 'wcag325' ],
24284
+ actIds: [ 'bc659a' ],
24044
24285
  all: [],
24045
- any: [ 'meta-refresh' ],
24286
+ any: [ {
24287
+ options: {
24288
+ minDelay: 0,
24289
+ maxDelay: 72e3
24290
+ },
24291
+ id: 'meta-refresh'
24292
+ } ],
24046
24293
  none: []
24047
24294
  }, {
24048
24295
  id: 'meta-viewport-large',
@@ -24087,7 +24334,7 @@
24087
24334
  excludeHidden: false,
24088
24335
  selector: 'audio[autoplay], video[autoplay]',
24089
24336
  matches: 'no-autoplay-audio-matches',
24090
- tags: [ 'cat.time-and-media', 'wcag2a', 'wcag142', 'experimental' ],
24337
+ tags: [ 'cat.time-and-media', 'wcag2a', 'wcag142', 'experimental', 'ACT' ],
24091
24338
  actIds: [ '80f0bf' ],
24092
24339
  preload: true,
24093
24340
  all: [ {
@@ -24144,7 +24391,8 @@
24144
24391
  tags: [ 'cat.semantics', 'best-practice' ],
24145
24392
  all: [ {
24146
24393
  options: {
24147
- selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]'
24394
+ selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]',
24395
+ passForModal: true
24148
24396
  },
24149
24397
  id: 'page-has-heading-one'
24150
24398
  } ],
@@ -24154,7 +24402,8 @@
24154
24402
  id: 'presentation-role-conflict',
24155
24403
  matches: 'has-implicit-chromium-role-matches',
24156
24404
  selector: '[role="none"], [role="presentation"]',
24157
- tags: [ 'cat.aria', 'best-practice' ],
24405
+ tags: [ 'cat.aria', 'best-practice', 'ACT' ],
24406
+ actIds: [ '46ca7f' ],
24158
24407
  all: [],
24159
24408
  any: [],
24160
24409
  none: [ 'is-element-focusable', 'has-global-aria-attribute' ]
@@ -24207,7 +24456,7 @@
24207
24456
  }, {
24208
24457
  id: 'select-name',
24209
24458
  selector: 'select',
24210
- tags: [ 'cat.forms', 'wcag2a', 'wcag412', 'wcag131', 'section508', 'section508.22.n', 'ACT' ],
24459
+ tags: [ 'cat.forms', 'wcag2a', 'wcag412', 'section508', 'section508.22.n', 'ACT' ],
24211
24460
  actIds: [ 'e086e5' ],
24212
24461
  all: [],
24213
24462
  any: [ 'implicit-label', 'explicit-label', 'aria-label', 'aria-labelledby', {
@@ -24295,9 +24544,9 @@
24295
24544
  none: []
24296
24545
  }, {
24297
24546
  id: 'valid-lang',
24298
- selector: '[lang], [xml\\:lang]',
24299
- matches: 'not-html-matches',
24300
- tags: [ 'cat.language', 'wcag2aa', 'wcag312' ],
24547
+ selector: '[lang]:not(html), [xml\\:lang]:not(html)',
24548
+ tags: [ 'cat.language', 'wcag2aa', 'wcag312', 'ACT' ],
24549
+ actIds: [ 'de46e4' ],
24301
24550
  all: [],
24302
24551
  any: [],
24303
24552
  none: [ {
@@ -24309,7 +24558,6 @@
24309
24558
  }, {
24310
24559
  id: 'video-caption',
24311
24560
  selector: 'video',
24312
- excludeHidden: false,
24313
24561
  tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag122', 'section508', 'section508.22.a' ],
24314
24562
  actIds: [ 'eac66b' ],
24315
24563
  all: [],
@@ -24501,14 +24749,16 @@
24501
24749
  evaluate: 'has-descendant-evaluate',
24502
24750
  after: 'has-descendant-after',
24503
24751
  options: {
24504
- selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]'
24752
+ selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]',
24753
+ passForModal: true
24505
24754
  }
24506
24755
  }, {
24507
24756
  id: 'page-has-main',
24508
24757
  evaluate: 'has-descendant-evaluate',
24509
24758
  after: 'has-descendant-after',
24510
24759
  options: {
24511
- selector: 'main:not([role]), [role=\'main\']'
24760
+ selector: 'main:not([role]), [role=\'main\']',
24761
+ passForModal: true
24512
24762
  }
24513
24763
  }, {
24514
24764
  id: 'page-no-duplicate-banner',
@@ -24664,9 +24914,20 @@
24664
24914
  options: {
24665
24915
  selector: 'main, [role=main]'
24666
24916
  }
24917
+ }, {
24918
+ id: 'meta-refresh-no-exceptions',
24919
+ evaluate: 'meta-refresh-evaluate',
24920
+ options: {
24921
+ minDelay: 0,
24922
+ maxDelay: false
24923
+ }
24667
24924
  }, {
24668
24925
  id: 'meta-refresh',
24669
- evaluate: 'meta-refresh-evaluate'
24926
+ evaluate: 'meta-refresh-evaluate',
24927
+ options: {
24928
+ minDelay: 0,
24929
+ maxDelay: 72e3
24930
+ }
24670
24931
  }, {
24671
24932
  id: 'p-as-heading',
24672
24933
  evaluate: 'p-as-heading-evaluate',