axe-core 4.5.2-canary.2acd005 → 4.5.2-canary.563e4e9

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.5.2-canary.2acd005
1
+ /*! axe v4.5.2-canary.563e4e9
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.5.2-canary.2acd005';
25
+ axe.version = '4.5.2-canary.563e4e9';
26
26
  if (typeof define === 'function' && define.amd) {
27
27
  define('axe-core', [], function() {
28
28
  return axe;
@@ -8826,7 +8826,8 @@
8826
8826
  },
8827
8827
  checkbox: {
8828
8828
  type: 'widget',
8829
- allowedAttrs: [ 'aria-checked', 'aria-readonly', 'aria-required' ],
8829
+ requiredAttrs: [ 'aria-checked' ],
8830
+ allowedAttrs: [ 'aria-readonly', 'aria-required' ],
8830
8831
  superclassRole: [ 'input' ],
8831
8832
  accessibleNameRequired: true,
8832
8833
  nameFromContent: true,
@@ -8980,7 +8981,7 @@
8980
8981
  },
8981
8982
  list: {
8982
8983
  type: 'structure',
8983
- requiredOwned: [ 'group', 'listitem' ],
8984
+ requiredOwned: [ 'listitem' ],
8984
8985
  allowedAttrs: [ 'aria-expanded' ],
8985
8986
  superclassRole: [ 'section' ]
8986
8987
  },
@@ -8993,7 +8994,7 @@
8993
8994
  },
8994
8995
  listitem: {
8995
8996
  type: 'structure',
8996
- requiredContext: [ 'list', 'group' ],
8997
+ requiredContext: [ 'list' ],
8997
8998
  allowedAttrs: [ 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-expanded' ],
8998
8999
  superclassRole: [ 'section' ],
8999
9000
  nameFromContent: true
@@ -9042,7 +9043,8 @@
9042
9043
  menuitemcheckbox: {
9043
9044
  type: 'widget',
9044
9045
  requiredContext: [ 'menu', 'menubar', 'group' ],
9045
- allowedAttrs: [ 'aria-checked', 'aria-posinset', 'aria-readonly', 'aria-setsize' ],
9046
+ requiredAttrs: [ 'aria-checked' ],
9047
+ allowedAttrs: [ 'aria-posinset', 'aria-readonly', 'aria-setsize' ],
9046
9048
  superclassRole: [ 'checkbox', 'menuitem' ],
9047
9049
  accessibleNameRequired: true,
9048
9050
  nameFromContent: true,
@@ -9051,7 +9053,8 @@
9051
9053
  menuitemradio: {
9052
9054
  type: 'widget',
9053
9055
  requiredContext: [ 'menu', 'menubar', 'group' ],
9054
- allowedAttrs: [ 'aria-checked', 'aria-posinset', 'aria-readonly', 'aria-setsize' ],
9056
+ requiredAttrs: [ 'aria-checked' ],
9057
+ allowedAttrs: [ 'aria-posinset', 'aria-readonly', 'aria-setsize' ],
9055
9058
  superclassRole: [ 'menuitemcheckbox', 'radio' ],
9056
9059
  accessibleNameRequired: true,
9057
9060
  nameFromContent: true,
@@ -9059,8 +9062,8 @@
9059
9062
  },
9060
9063
  meter: {
9061
9064
  type: 'structure',
9062
- allowedAttrs: [ 'aria-valuetext' ],
9063
- requiredAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-valuenow' ],
9065
+ requiredAttrs: [ 'aria-valuenow' ],
9066
+ allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-valuetext' ],
9064
9067
  superclassRole: [ 'range' ],
9065
9068
  accessibleNameRequired: true,
9066
9069
  childrenPresentational: true
@@ -9113,7 +9116,8 @@
9113
9116
  },
9114
9117
  radio: {
9115
9118
  type: 'widget',
9116
- allowedAttrs: [ 'aria-checked', 'aria-posinset', 'aria-setsize', 'aria-required' ],
9119
+ requiredAttrs: [ 'aria-checked' ],
9120
+ allowedAttrs: [ 'aria-posinset', 'aria-setsize', 'aria-required' ],
9117
9121
  superclassRole: [ 'input' ],
9118
9122
  accessibleNameRequired: true,
9119
9123
  nameFromContent: true,
@@ -9196,7 +9200,8 @@
9196
9200
  },
9197
9201
  separator: {
9198
9202
  type: 'structure',
9199
- allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-orientation', 'aria-valuetext' ],
9203
+ requiredAttrs: [ 'aria-valuenow' ],
9204
+ allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-orientation', 'aria-valuetext' ],
9200
9205
  superclassRole: [ 'structure', 'widget' ],
9201
9206
  childrenPresentational: true
9202
9207
  },
@@ -17101,40 +17106,43 @@
17101
17106
  function ariaRequiredAttrEvaluate(node) {
17102
17107
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
17103
17108
  var virtualNode = arguments.length > 2 ? arguments[2] : undefined;
17104
- var missing = [];
17105
- var attrs = virtualNode.attrNames;
17106
17109
  var role = get_explicit_role_default(virtualNode);
17107
- if (attrs.length) {
17108
- var required = required_attr_default(role);
17109
- var elmSpec = get_element_spec_default(virtualNode);
17110
- if (Array.isArray(options[role])) {
17111
- required = unique_array_default(options[role], required);
17112
- }
17113
- if (role && required) {
17114
- for (var _i19 = 0, l = required.length; _i19 < l; _i19++) {
17115
- var attr = required[_i19];
17116
- if (!virtualNode.attr(attr) && !(elmSpec.implicitAttrs && typeof elmSpec.implicitAttrs[attr] !== 'undefined')) {
17117
- missing.push(attr);
17118
- }
17119
- }
17120
- }
17110
+ var attrs = virtualNode.attrNames;
17111
+ var requiredAttrs = required_attr_default(role);
17112
+ if (Array.isArray(options[role])) {
17113
+ requiredAttrs = unique_array_default(options[role], requiredAttrs);
17121
17114
  }
17122
- var comboboxMissingControls = role === 'combobox' && missing.includes('aria-controls');
17123
- if (comboboxMissingControls && (virtualNode.hasAttr('aria-owns') || virtualNode.attr('aria-expanded') !== 'true')) {
17124
- missing.splice(missing.indexOf('aria-controls', 1));
17115
+ if (!role || !attrs.length || !requiredAttrs.length) {
17116
+ return true;
17117
+ }
17118
+ if (isStaticSeparator(virtualNode, role) || isClosedCombobox(virtualNode, role)) {
17119
+ return true;
17125
17120
  }
17126
- if (missing.length) {
17127
- this.data(missing);
17121
+ var elmSpec = get_element_spec_default(virtualNode);
17122
+ var missingAttrs = requiredAttrs.filter(function(requiredAttr2) {
17123
+ return !virtualNode.attr(requiredAttr2) && !hasImplicitAttr(elmSpec, requiredAttr2);
17124
+ });
17125
+ if (missingAttrs.length) {
17126
+ this.data(missingAttrs);
17128
17127
  return false;
17129
17128
  }
17130
17129
  return true;
17131
17130
  }
17132
- var aria_required_attr_evaluate_default = ariaRequiredAttrEvaluate;
17131
+ function isStaticSeparator(vNode, role) {
17132
+ return role === 'separator' && !_isFocusable(vNode);
17133
+ }
17134
+ function hasImplicitAttr(elmSpec, attr) {
17135
+ var _elmSpec$implicitAttr;
17136
+ return ((_elmSpec$implicitAttr = elmSpec.implicitAttrs) === null || _elmSpec$implicitAttr === void 0 ? void 0 : _elmSpec$implicitAttr[attr]) !== void 0;
17137
+ }
17138
+ function isClosedCombobox(vNode, role) {
17139
+ return role === 'combobox' && vNode.attr('aria-expanded') === 'false';
17140
+ }
17133
17141
  function getOwnedRoles(virtualNode, required) {
17134
17142
  var ownedRoles = [];
17135
17143
  var ownedElements = get_owned_virtual_default(virtualNode);
17136
- var _loop5 = function _loop5(_i20) {
17137
- var ownedElement = ownedElements[_i20];
17144
+ var _loop5 = function _loop5(_i19) {
17145
+ var ownedElement = ownedElements[_i19];
17138
17146
  var role = get_role_default(ownedElement, {
17139
17147
  noPresentational: true
17140
17148
  });
@@ -17153,14 +17161,14 @@
17153
17161
  });
17154
17162
  }
17155
17163
  };
17156
- for (var _i20 = 0; _i20 < ownedElements.length; _i20++) {
17157
- _loop5(_i20);
17164
+ for (var _i19 = 0; _i19 < ownedElements.length; _i19++) {
17165
+ _loop5(_i19);
17158
17166
  }
17159
17167
  return ownedRoles;
17160
17168
  }
17161
17169
  function missingRequiredChildren(virtualNode, role, required, ownedRoles) {
17162
- var _loop6 = function _loop6(_i21) {
17163
- var role2 = ownedRoles[_i21].role;
17170
+ var _loop6 = function _loop6(_i20) {
17171
+ var role2 = ownedRoles[_i20].role;
17164
17172
  if (required.includes(role2)) {
17165
17173
  required = required.filter(function(requiredRole) {
17166
17174
  return requiredRole !== role2;
@@ -17170,8 +17178,8 @@
17170
17178
  };
17171
17179
  }
17172
17180
  };
17173
- for (var _i21 = 0; _i21 < ownedRoles.length; _i21++) {
17174
- var _ret2 = _loop6(_i21);
17181
+ for (var _i20 = 0; _i20 < ownedRoles.length; _i20++) {
17182
+ var _ret2 = _loop6(_i20);
17175
17183
  if (_typeof(_ret2) === 'object') {
17176
17184
  return _ret2.v;
17177
17185
  }
@@ -17271,8 +17279,8 @@
17271
17279
  }
17272
17280
  var owners = getAriaOwners(node);
17273
17281
  if (owners) {
17274
- for (var _i22 = 0, l = owners.length; _i22 < l; _i22++) {
17275
- missingParents = getMissingContext(get_node_from_tree_default(owners[_i22]), ownGroupRoles, missingParents, true);
17282
+ for (var _i21 = 0, l = owners.length; _i21 < l; _i21++) {
17283
+ missingParents = getMissingContext(get_node_from_tree_default(owners[_i21]), ownGroupRoles, missingParents, true);
17276
17284
  if (!missingParents) {
17277
17285
  return true;
17278
17286
  }
@@ -17757,11 +17765,11 @@
17757
17765
  return position === 'static';
17758
17766
  }
17759
17767
  function calculateObscuringElement(elmIndex, elmStack, originalElm) {
17760
- for (var _i23 = elmIndex - 1; _i23 >= 0; _i23--) {
17761
- if (!isInlineDescendant(originalElm, elmStack[_i23])) {
17768
+ for (var _i22 = elmIndex - 1; _i22 >= 0; _i22--) {
17769
+ if (!isInlineDescendant(originalElm, elmStack[_i22])) {
17762
17770
  return true;
17763
17771
  }
17764
- elmStack.splice(_i23, 1);
17772
+ elmStack.splice(_i22, 1);
17765
17773
  }
17766
17774
  return false;
17767
17775
  }
@@ -19247,7 +19255,7 @@
19247
19255
  var relatedElements = [];
19248
19256
  var rulesGroupByDocumentFragment = groupCssomByDocument(cssom);
19249
19257
  var _loop7 = function _loop7() {
19250
- var key = _Object$keys2[_i24];
19258
+ var key = _Object$keys2[_i23];
19251
19259
  var _rulesGroupByDocument = rulesGroupByDocumentFragment[key], root = _rulesGroupByDocument.root, rules = _rulesGroupByDocument.rules;
19252
19260
  var orientationRules = rules.filter(isMediaRuleWithOrientation);
19253
19261
  if (!orientationRules.length) {
@@ -19265,7 +19273,7 @@
19265
19273
  });
19266
19274
  });
19267
19275
  };
19268
- for (var _i24 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i24 < _Object$keys2.length; _i24++) {
19276
+ for (var _i23 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i23 < _Object$keys2.length; _i23++) {
19269
19277
  var _ret3 = _loop7();
19270
19278
  if (_ret3 === 'continue') {
19271
19279
  continue;
@@ -20253,16 +20261,16 @@
20253
20261
  var outerText = elm.textContent.trim();
20254
20262
  var innerText = outerText;
20255
20263
  while (innerText === outerText && nextNode !== void 0) {
20256
- var _i25 = -1;
20264
+ var _i24 = -1;
20257
20265
  elm = nextNode;
20258
20266
  if (elm.children.length === 0) {
20259
20267
  return elm;
20260
20268
  }
20261
20269
  do {
20262
- _i25++;
20263
- innerText = elm.children[_i25].textContent.trim();
20264
- } while (innerText === '' && _i25 + 1 < elm.children.length);
20265
- nextNode = elm.children[_i25];
20270
+ _i24++;
20271
+ innerText = elm.children[_i24].textContent.trim();
20272
+ } while (innerText === '' && _i24 + 1 < elm.children.length);
20273
+ nextNode = elm.children[_i24];
20266
20274
  }
20267
20275
  return elm;
20268
20276
  }
@@ -20820,8 +20828,8 @@
20820
20828
  var aria = /^aria-/;
20821
20829
  var attrs = virtualNode.attrNames;
20822
20830
  if (attrs.length) {
20823
- for (var _i26 = 0, l = attrs.length; _i26 < l; _i26++) {
20824
- if (aria.test(attrs[_i26])) {
20831
+ for (var _i25 = 0, l = attrs.length; _i25 < l; _i25++) {
20832
+ if (aria.test(attrs[_i25])) {
20825
20833
  return true;
20826
20834
  }
20827
20835
  }
@@ -21373,7 +21381,7 @@
21373
21381
  'aria-labelledby-evaluate': aria_labelledby_evaluate_default,
21374
21382
  'aria-level-evaluate': aria_level_evaluate_default,
21375
21383
  'aria-prohibited-attr-evaluate': ariaProhibitedAttrEvaluate,
21376
- 'aria-required-attr-evaluate': aria_required_attr_evaluate_default,
21384
+ 'aria-required-attr-evaluate': ariaRequiredAttrEvaluate,
21377
21385
  'aria-required-children-evaluate': aria_required_children_evaluate_default,
21378
21386
  'aria-required-children-matches': aria_required_children_matches_default,
21379
21387
  'aria-required-parent-evaluate': aria_required_parent_evaluate_default,
@@ -22113,8 +22121,8 @@
22113
22121
  lang: this.lang
22114
22122
  };
22115
22123
  var checkIDs = Object.keys(this.data.checks);
22116
- for (var _i27 = 0; _i27 < checkIDs.length; _i27++) {
22117
- var id = checkIDs[_i27];
22124
+ for (var _i26 = 0; _i26 < checkIDs.length; _i26++) {
22125
+ var id = checkIDs[_i26];
22118
22126
  var check = this.data.checks[id];
22119
22127
  var _check$messages = check.messages, pass = _check$messages.pass, fail = _check$messages.fail, incomplete = _check$messages.incomplete;
22120
22128
  locale.checks[id] = {
@@ -22124,8 +22132,8 @@
22124
22132
  };
22125
22133
  }
22126
22134
  var ruleIDs = Object.keys(this.data.rules);
22127
- for (var _i28 = 0; _i28 < ruleIDs.length; _i28++) {
22128
- var _id = ruleIDs[_i28];
22135
+ for (var _i27 = 0; _i27 < ruleIDs.length; _i27++) {
22136
+ var _id = ruleIDs[_i27];
22129
22137
  var rule = this.data.rules[_id];
22130
22138
  var description = rule.description, help = rule.help;
22131
22139
  locale.rules[_id] = {
@@ -22134,8 +22142,8 @@
22134
22142
  };
22135
22143
  }
22136
22144
  var failureSummaries = Object.keys(this.data.failureSummaries);
22137
- for (var _i29 = 0; _i29 < failureSummaries.length; _i29++) {
22138
- var type = failureSummaries[_i29];
22145
+ for (var _i28 = 0; _i28 < failureSummaries.length; _i28++) {
22146
+ var type = failureSummaries[_i28];
22139
22147
  var failureSummary2 = this.data.failureSummaries[type];
22140
22148
  var failureMessage = failureSummary2.failureMessage;
22141
22149
  locale.failureSummaries[type] = {
@@ -22158,8 +22166,8 @@
22158
22166
  key: '_applyCheckLocale',
22159
22167
  value: function _applyCheckLocale(checks) {
22160
22168
  var keys = Object.keys(checks);
22161
- for (var _i30 = 0; _i30 < keys.length; _i30++) {
22162
- var id = keys[_i30];
22169
+ for (var _i29 = 0; _i29 < keys.length; _i29++) {
22170
+ var id = keys[_i29];
22163
22171
  if (!this.data.checks[id]) {
22164
22172
  throw new Error('Locale provided for unknown check: "'.concat(id, '"'));
22165
22173
  }
@@ -22170,8 +22178,8 @@
22170
22178
  key: '_applyRuleLocale',
22171
22179
  value: function _applyRuleLocale(rules) {
22172
22180
  var keys = Object.keys(rules);
22173
- for (var _i31 = 0; _i31 < keys.length; _i31++) {
22174
- var id = keys[_i31];
22181
+ for (var _i30 = 0; _i30 < keys.length; _i30++) {
22182
+ var id = keys[_i30];
22175
22183
  if (!this.data.rules[id]) {
22176
22184
  throw new Error('Locale provided for unknown rule: "'.concat(id, '"'));
22177
22185
  }
@@ -22182,8 +22190,8 @@
22182
22190
  key: '_applyFailureSummaries',
22183
22191
  value: function _applyFailureSummaries(messages) {
22184
22192
  var keys = Object.keys(messages);
22185
- for (var _i32 = 0; _i32 < keys.length; _i32++) {
22186
- var key = keys[_i32];
22193
+ for (var _i31 = 0; _i31 < keys.length; _i31++) {
22194
+ var key = keys[_i31];
22187
22195
  if (!this.data.failureSummaries[key]) {
22188
22196
  throw new Error('Locale provided for unknown failureMessage: "'.concat(key, '"'));
22189
22197
  }
@@ -22922,8 +22930,8 @@
22922
22930
  function serializeNode(_ref113) {
22923
22931
  var node = _ref113.node, nodeResult = _objectWithoutProperties(_ref113, _excluded9);
22924
22932
  nodeResult.node = node.toJSON();
22925
- for (var _i33 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i33 < _arr2.length; _i33++) {
22926
- var type = _arr2[_i33];
22933
+ for (var _i32 = 0, _arr2 = [ 'any', 'all', 'none' ]; _i32 < _arr2.length; _i32++) {
22934
+ var type = _arr2[_i32];
22927
22935
  nodeResult[type] = nodeResult[type].map(function(_ref114) {
22928
22936
  var relatedNodes = _ref114.relatedNodes, checkResult = _objectWithoutProperties(_ref114, _excluded10);
22929
22937
  return _extends({}, checkResult, {
@@ -23034,8 +23042,8 @@
23034
23042
  var transformedResults = results.map(function(result) {
23035
23043
  var transformedResult = _extends({}, result);
23036
23044
  var types = [ 'passes', 'violations', 'incomplete', 'inapplicable' ];
23037
- for (var _i34 = 0, _types = types; _i34 < _types.length; _i34++) {
23038
- var type = _types[_i34];
23045
+ for (var _i33 = 0, _types = types; _i33 < _types.length; _i33++) {
23046
+ var type = _types[_i33];
23039
23047
  if (transformedResult[type] && Array.isArray(transformedResult[type])) {
23040
23048
  transformedResult[type] = transformedResult[type].map(function(_ref118) {
23041
23049
  var _node;