govuk_publishing_components 21.37.0 → 21.38.0
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +44 -11
- data/app/views/govuk_publishing_components/components/docs/govspeak.yml +5 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/axe-core/CHANGELOG.md +16 -0
- data/node_modules/axe-core/README.md +10 -9
- data/node_modules/axe-core/axe.js +181 -123
- data/node_modules/axe-core/axe.min.js +2 -2
- data/node_modules/axe-core/bower.json +1 -1
- data/node_modules/axe-core/doc/API.md +1 -1
- data/node_modules/axe-core/doc/rule-descriptions.md +2 -2
- data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +5 -3
- data/node_modules/axe-core/lib/checks/language/has-lang.js +12 -2
- data/node_modules/axe-core/lib/checks/language/has-lang.json +4 -1
- data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +32 -18
- data/node_modules/axe-core/lib/checks/navigation/header-present.json +2 -2
- data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +31 -32
- data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +1 -0
- data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +14 -4
- data/node_modules/axe-core/lib/commons/table/get-headers.js +8 -2
- data/node_modules/axe-core/lib/commons/text/unicode.js +19 -7
- data/node_modules/axe-core/lib/core/utils/respondable.js +6 -5
- data/node_modules/axe-core/lib/core/utils/uuid.js +3 -0
- data/node_modules/axe-core/lib/rules/definition-list.json +1 -1
- data/node_modules/axe-core/lib/rules/label.json +1 -1
- data/node_modules/axe-core/locales/pt_BR.json +136 -27
- data/node_modules/axe-core/package.json +19 -19
- data/node_modules/axe-core/sri-history.json +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 18137270f2852ffc825106a02021d82aec4bf5a484a3151cd9731044a1d74c2f
|
|
4
|
+
data.tar.gz: 3e69bbe1712825eebeaebd0a4856ba441f6ea3ee8f5378b8edaa3d2571e12432
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3202d48ccec1cc270fed74433eeddf6b1137a3370f81ae61c39c0cd293ae29abca31006d89a298c304d433a3b1e472a0089a08a1ae511d3491b9ce74b21a7969
|
|
7
|
+
data.tar.gz: d1e5a814a0d052c755b00192cb6d2d987a87f988852f66aa9b0a0fc5f1ce898ea9055089e60b3800d021b92a7a0c9e6ddea7bfb64daf5e6c83b4741065e938ee
|
data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js
CHANGED
|
@@ -20,11 +20,19 @@
|
|
|
20
20
|
|
|
21
21
|
for (var i = 0; i < $youtubeLinks.length; ++i) {
|
|
22
22
|
var $link = $youtubeLinks[i]
|
|
23
|
+
var href = $link.getAttribute('href')
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
if (href.includes("/live_stream")) {
|
|
26
|
+
var channelId = YoutubeLinkEnhancement.parseLivestream(href)
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
if (!this.hasDisabledEmbed($link) && channelId) {
|
|
29
|
+
this.setupVideo({link: $link, channel: channelId})
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
var videoId = YoutubeLinkEnhancement.parseVideoId(href)
|
|
33
|
+
if (!this.hasDisabledEmbed($link) && videoId) {
|
|
34
|
+
this.setupVideo({link: $link, videoId: videoId})
|
|
35
|
+
}
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
38
|
}
|
|
@@ -33,21 +41,36 @@
|
|
|
33
41
|
return $link.getAttribute('data-youtube-player') === 'off'
|
|
34
42
|
}
|
|
35
43
|
|
|
36
|
-
YoutubeLinkEnhancement.prototype.setupVideo = function (
|
|
44
|
+
YoutubeLinkEnhancement.prototype.setupVideo = function (options) {
|
|
37
45
|
var elementId = YoutubeLinkEnhancement.nextId()
|
|
46
|
+
var $link = options.link
|
|
47
|
+
|
|
48
|
+
var id = options.videoId ? options.videoId : options.channel
|
|
38
49
|
|
|
39
50
|
var parentPara = $link.parentNode
|
|
40
51
|
var parentContainer = parentPara.parentNode
|
|
41
52
|
|
|
42
53
|
var youtubeVideoContainer = document.createElement('div')
|
|
43
54
|
youtubeVideoContainer.className += 'gem-c-govspeak__youtube-video'
|
|
44
|
-
youtubeVideoContainer.innerHTML = '<span id="' + elementId + '" data-video-id="' +
|
|
55
|
+
youtubeVideoContainer.innerHTML = '<span id="' + elementId + '" data-video-id="' + id + '"></span>'
|
|
56
|
+
|
|
57
|
+
options['title'] = $link.textContent
|
|
45
58
|
|
|
46
59
|
parentContainer.replaceChild(youtubeVideoContainer, parentPara)
|
|
47
|
-
this.insertVideo(elementId,
|
|
60
|
+
this.insertVideo(elementId, options)
|
|
48
61
|
}
|
|
49
62
|
|
|
50
|
-
YoutubeLinkEnhancement.prototype.insertVideo = function (elementId,
|
|
63
|
+
YoutubeLinkEnhancement.prototype.insertVideo = function (elementId, options) {
|
|
64
|
+
var channelId = ""
|
|
65
|
+
var videoId = ""
|
|
66
|
+
|
|
67
|
+
if (options.channel) {
|
|
68
|
+
channelId = options.channel
|
|
69
|
+
videoId = "live_stream"
|
|
70
|
+
} else {
|
|
71
|
+
videoId = options.videoId
|
|
72
|
+
}
|
|
73
|
+
|
|
51
74
|
var videoInsert = function () {
|
|
52
75
|
new window.YT.Player(elementId, { // eslint-disable-line no-new
|
|
53
76
|
videoId: videoId,
|
|
@@ -62,12 +85,15 @@
|
|
|
62
85
|
// https://www.w3.org/WAI/WCAG21/quickref/#character-key-shortcuts
|
|
63
86
|
disablekb: 1,
|
|
64
87
|
// prevent the YouTube logo from displaying in the control bar
|
|
65
|
-
modestbranding: 1
|
|
88
|
+
modestbranding: 1,
|
|
89
|
+
// To support live_stream videos
|
|
90
|
+
channel: channelId
|
|
66
91
|
},
|
|
67
92
|
events: {
|
|
68
93
|
onReady: function (event) {
|
|
69
94
|
// update iframe title attribute once video is ready
|
|
70
|
-
|
|
95
|
+
var videoTitle = options.title
|
|
96
|
+
event.target.f.title = videoTitle + ' (video)'
|
|
71
97
|
}
|
|
72
98
|
}
|
|
73
99
|
})
|
|
@@ -105,6 +131,14 @@
|
|
|
105
131
|
this.apiScriptInserted = true
|
|
106
132
|
}
|
|
107
133
|
|
|
134
|
+
YoutubeLinkEnhancement.parseLivestream = function (url) {
|
|
135
|
+
var matches = url.match(/channel=([^&]*)/)
|
|
136
|
+
|
|
137
|
+
if (matches) {
|
|
138
|
+
return matches[1]
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
108
142
|
// This is a public class method so it can be used outside of this embed to
|
|
109
143
|
// check that user input for videos will be supported in govspeak
|
|
110
144
|
YoutubeLinkEnhancement.parseVideoId = function (url) {
|
|
@@ -123,8 +157,7 @@
|
|
|
123
157
|
}
|
|
124
158
|
return params.v
|
|
125
159
|
}
|
|
126
|
-
|
|
127
|
-
if (url.indexOf('youtu.be') > -1) {
|
|
160
|
+
else if (url.indexOf('youtu.be') > -1) {
|
|
128
161
|
parts = url.split('/')
|
|
129
162
|
return parts.pop()
|
|
130
163
|
}
|
|
@@ -285,6 +285,11 @@ examples:
|
|
|
285
285
|
block: |
|
|
286
286
|
<p>This content has a YouTube video link, converted to an accessible embedded player by component JavaScript.</p>
|
|
287
287
|
<p><a href="https://www.youtube.com/watch?v=y6hbrS3DheU">Operations: a developer's guide, by Anna Shipman</a></p>
|
|
288
|
+
with_youtube_livestream:
|
|
289
|
+
data:
|
|
290
|
+
block: |
|
|
291
|
+
<p>This content has a YouTube livestream link, converted to an accessible embedded player by component JavaScript.</p>
|
|
292
|
+
<p><a href="https://www.youtube.com/embed/live_stream?channel=UCoMdktPbSTixAyNGwb-UYkQ">Livestream video</a></p>
|
|
288
293
|
with_youtube_embed_disabled:
|
|
289
294
|
data:
|
|
290
295
|
disable_youtube_expansions: true
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [3.5.3](https://github.com/dequelabs/axe-core/compare/v3.5.2...v3.5.3) (2020-03-31)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **meta-viewport:** parse negative and string values for `maximum-scale` ([#2137](https://github.com/dequelabs/axe-core/issues/2137)) ([8c92472](https://github.com/dequelabs/axe-core/commit/8c92472397676d44b333cf50ad1a9413b9783c2c))
|
|
10
|
+
- **respondable:** ignore reflected messages from iframes ([#2134](https://github.com/dequelabs/axe-core/issues/2134)) ([3ab9f21](https://github.com/dequelabs/axe-core/commit/3ab9f21414d8f4195ac95ffca8f0ce52258539b0))
|
|
11
|
+
- **header-present:** update verbiage to use heading instead of header ([#2132](https://github.com/dequelabs/axe-core/issues/2132)) ([8890063](https://github.com/dequelabs/axe-core/commit/889006397329a35a170f4a3d24c55c3c4fd758fc))
|
|
12
|
+
- **color-contrast:** mark more punctuations for review ([#2126](https://github.com/dequelabs/axe-core/issues/2126)) ([dc98afc](https://github.com/dequelabs/axe-core/commit/dc98afc841c86e4b7b771bbb1171152a151c3e5b))
|
|
13
|
+
- **unicode:** detect supplementary private use area A ([#2102](https://github.com/dequelabs/axe-core/issues/2102)) ([f1739c2](https://github.com/dequelabs/axe-core/commit/f1739c21efdf5cf6fddf425d1c72b056757f3ba1))
|
|
14
|
+
- **definition-list:** Mention <div> is allowed to group content in <dl> ([#2098](https://github.com/dequelabs/axe-core/issues/2098)) ([76b1a9f](https://github.com/dequelabs/axe-core/commit/76b1a9f7f244e43f63351c46d91fc8b27040ba98))
|
|
15
|
+
- **td-headers-attr:** mark as needs review if headers attr is empty ([#2096](https://github.com/dequelabs/axe-core/issues/2096)) ([699b566](https://github.com/dequelabs/axe-core/commit/699b566111cfed2a4ebeade35346a49bcb3546c7))
|
|
16
|
+
- **td-has-headers:** don't fail for empty headers attribute ([#2095](https://github.com/dequelabs/axe-core/issues/2095)) ([7952a37](https://github.com/dequelabs/axe-core/commit/7952a377b960c2403c8d4758a9f35ebe525549fe))
|
|
17
|
+
- **th-has-data-cells:** fail when data cell points to a different header ([#2094](https://github.com/dequelabs/axe-core/issues/2094)) ([d3bd416](https://github.com/dequelabs/axe-core/commit/d3bd416a3df7324231f17ff9e1e20dc6342c7aa5))
|
|
18
|
+
- **has-lang:** update message to indicate that xml:lang is not valid on HTML pages ([#2093](https://github.com/dequelabs/axe-core/issues/2093)) ([c3a7de2](https://github.com/dequelabs/axe-core/commit/c3a7de206baf77c0b25c8c095119393b1dc85f0f))
|
|
19
|
+
- **page-no-duplicate-contentinfo:** do not fail when first element is inside landmark ([#2092](https://github.com/dequelabs/axe-core/issues/2092)) ([eca7e05](https://github.com/dequelabs/axe-core/commit/eca7e05cc6ff750855bcb219833967a9d7087679))
|
|
20
|
+
|
|
5
21
|
### [3.5.2](https://github.com/dequelabs/axe-core/compare/v3.5.1...v3.5.2) (2020-03-06)
|
|
6
22
|
|
|
7
23
|
### Bug Fixes
|
|
@@ -50,15 +50,16 @@ Now include the javascript file in each of your iframes in your fixtures or test
|
|
|
50
50
|
Now insert calls at each point in your tests where a new piece of UI becomes visible or exposed:
|
|
51
51
|
|
|
52
52
|
```js
|
|
53
|
-
axe
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
axe
|
|
54
|
+
.run()
|
|
55
|
+
.then(results => {
|
|
56
|
+
if (results.violations.length) {
|
|
57
|
+
throw new Error('Accessibility issues found');
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
.catch(err => {
|
|
61
|
+
console.error('Something bad happened:', err.message);
|
|
62
|
+
});
|
|
62
63
|
```
|
|
63
64
|
|
|
64
65
|
## Supported Browsers
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! axe v3.5.
|
|
1
|
+
/*! axe v3.5.3
|
|
2
2
|
* Copyright (c) 2020 Deque Systems, Inc.
|
|
3
3
|
*
|
|
4
4
|
* Your use of this Source Code Form is subject to the terms of the Mozilla Public
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
return _typeof(obj);
|
|
28
28
|
}
|
|
29
29
|
var axe = axe || {};
|
|
30
|
-
axe.version = '3.5.
|
|
30
|
+
axe.version = '3.5.3';
|
|
31
31
|
if (typeof define === 'function' && define.amd) {
|
|
32
32
|
define('axe-core', [], function() {
|
|
33
33
|
'use strict';
|
|
@@ -13173,6 +13173,7 @@
|
|
|
13173
13173
|
error: error,
|
|
13174
13174
|
_respondable: true,
|
|
13175
13175
|
_source: _getSource(),
|
|
13176
|
+
_axeuuid: axe._uuid,
|
|
13176
13177
|
_keepalive: keepalive
|
|
13177
13178
|
};
|
|
13178
13179
|
var axeRespondables = axe._cache.get('axeRespondables');
|
|
@@ -13240,12 +13241,12 @@
|
|
|
13240
13241
|
if (typeof window.addEventListener === 'function') {
|
|
13241
13242
|
window.addEventListener('message', function(e) {
|
|
13242
13243
|
var data = parseMessage(e.data);
|
|
13243
|
-
if (!data) {
|
|
13244
|
+
if (!data || !data._axeuuid) {
|
|
13244
13245
|
return;
|
|
13245
13246
|
}
|
|
13246
13247
|
var uuid = data.uuid;
|
|
13247
13248
|
var axeRespondables = axe._cache.get('axeRespondables') || {};
|
|
13248
|
-
if (axeRespondables[uuid] && data.
|
|
13249
|
+
if (axeRespondables[uuid] && data._axeuuid === axe._uuid) {
|
|
13249
13250
|
return;
|
|
13250
13251
|
}
|
|
13251
13252
|
var keepalive = data._keepalive;
|
|
@@ -13561,6 +13562,7 @@
|
|
|
13561
13562
|
uuid.parse = parse;
|
|
13562
13563
|
uuid.unparse = unparse;
|
|
13563
13564
|
uuid.BufferClass = BufferClass;
|
|
13565
|
+
axe._uuid = v1();
|
|
13564
13566
|
})(window);
|
|
13565
13567
|
'use strict';
|
|
13566
13568
|
axe.utils.validInputTypes = function validInputTypes() {
|
|
@@ -13768,7 +13770,7 @@
|
|
|
13768
13770
|
},
|
|
13769
13771
|
'definition-list': {
|
|
13770
13772
|
description: 'Ensures <dl> elements are structured correctly',
|
|
13771
|
-
help: '<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script> or <
|
|
13773
|
+
help: '<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements'
|
|
13772
13774
|
},
|
|
13773
13775
|
dlitem: {
|
|
13774
13776
|
description: 'Ensures <dt> and <dd> elements are contained by a <dl>',
|
|
@@ -14318,8 +14320,8 @@
|
|
|
14318
14320
|
'header-present': {
|
|
14319
14321
|
impact: 'serious',
|
|
14320
14322
|
messages: {
|
|
14321
|
-
pass: 'Page has a
|
|
14322
|
-
fail: 'Page does not have a
|
|
14323
|
+
pass: 'Page has a heading',
|
|
14324
|
+
fail: 'Page does not have a heading'
|
|
14323
14325
|
}
|
|
14324
14326
|
},
|
|
14325
14327
|
landmark: {
|
|
@@ -14487,7 +14489,10 @@
|
|
|
14487
14489
|
impact: 'serious',
|
|
14488
14490
|
messages: {
|
|
14489
14491
|
pass: 'The <html> element has a lang attribute',
|
|
14490
|
-
fail:
|
|
14492
|
+
fail: {
|
|
14493
|
+
noXHTML: 'The xml:lang attribute is not valid on HTML pages, use the lang attribute.',
|
|
14494
|
+
noLang: 'The <html> element does not have a lang attribute'
|
|
14495
|
+
}
|
|
14491
14496
|
}
|
|
14492
14497
|
},
|
|
14493
14498
|
'valid-lang': {
|
|
@@ -14828,6 +14833,7 @@
|
|
|
14828
14833
|
impact: 'serious',
|
|
14829
14834
|
messages: {
|
|
14830
14835
|
pass: 'The headers attribute is exclusively used to refer to other cells in the table',
|
|
14836
|
+
incomplete: 'The headers attribute is empty',
|
|
14831
14837
|
fail: 'The headers attribute is not exclusively used to refer to other cells in the table'
|
|
14832
14838
|
}
|
|
14833
14839
|
},
|
|
@@ -15657,7 +15663,7 @@
|
|
|
15657
15663
|
var type = node.getAttribute('type').toLowerCase();
|
|
15658
15664
|
return [ 'hidden', 'image', 'button', 'submit', 'reset' ].includes(type) === false;
|
|
15659
15665
|
},
|
|
15660
|
-
tags: [ 'cat.forms', 'wcag2a', '
|
|
15666
|
+
tags: [ 'cat.forms', 'wcag2a', 'wcag412', 'wcag131', 'section508', 'section508.22.n' ],
|
|
15661
15667
|
all: [],
|
|
15662
15668
|
any: [ 'aria-label', 'aria-labelledby', 'implicit-label', 'explicit-label', 'non-empty-title' ],
|
|
15663
15669
|
none: [ 'help-same-as-label', 'hidden-explicit-label' ]
|
|
@@ -17213,17 +17219,19 @@
|
|
|
17213
17219
|
}
|
|
17214
17220
|
axe._cache.set(key, true);
|
|
17215
17221
|
var elms = axe.utils.querySelectorAllFilter(axe._tree[0], options.selector, function(elm) {
|
|
17216
|
-
return
|
|
17222
|
+
return axe.commons.dom.isVisible(elm.actualNode);
|
|
17217
17223
|
});
|
|
17218
17224
|
if (typeof options.nativeScopeFilter === 'string') {
|
|
17219
17225
|
elms = elms.filter(function(elm) {
|
|
17220
17226
|
return elm.actualNode.hasAttribute('role') || !axe.commons.dom.findUpVirtual(elm, options.nativeScopeFilter);
|
|
17221
17227
|
});
|
|
17222
17228
|
}
|
|
17223
|
-
this.relatedNodes(elms.
|
|
17229
|
+
this.relatedNodes(elms.filter(function(elm) {
|
|
17230
|
+
return elm !== virtualNode;
|
|
17231
|
+
}).map(function(elm) {
|
|
17224
17232
|
return elm.actualNode;
|
|
17225
17233
|
}));
|
|
17226
|
-
return elms.length
|
|
17234
|
+
return elms.length <= 1;
|
|
17227
17235
|
},
|
|
17228
17236
|
after: function after(results, options) {
|
|
17229
17237
|
return results.filter(function(checkResult) {
|
|
@@ -17247,17 +17255,19 @@
|
|
|
17247
17255
|
}
|
|
17248
17256
|
axe._cache.set(key, true);
|
|
17249
17257
|
var elms = axe.utils.querySelectorAllFilter(axe._tree[0], options.selector, function(elm) {
|
|
17250
|
-
return
|
|
17258
|
+
return axe.commons.dom.isVisible(elm.actualNode);
|
|
17251
17259
|
});
|
|
17252
17260
|
if (typeof options.nativeScopeFilter === 'string') {
|
|
17253
17261
|
elms = elms.filter(function(elm) {
|
|
17254
17262
|
return elm.actualNode.hasAttribute('role') || !axe.commons.dom.findUpVirtual(elm, options.nativeScopeFilter);
|
|
17255
17263
|
});
|
|
17256
17264
|
}
|
|
17257
|
-
this.relatedNodes(elms.
|
|
17265
|
+
this.relatedNodes(elms.filter(function(elm) {
|
|
17266
|
+
return elm !== virtualNode;
|
|
17267
|
+
}).map(function(elm) {
|
|
17258
17268
|
return elm.actualNode;
|
|
17259
17269
|
}));
|
|
17260
|
-
return elms.length
|
|
17270
|
+
return elms.length <= 1;
|
|
17261
17271
|
},
|
|
17262
17272
|
after: function after(results, options) {
|
|
17263
17273
|
return results.filter(function(checkResult) {
|
|
@@ -17281,17 +17291,19 @@
|
|
|
17281
17291
|
}
|
|
17282
17292
|
axe._cache.set(key, true);
|
|
17283
17293
|
var elms = axe.utils.querySelectorAllFilter(axe._tree[0], options.selector, function(elm) {
|
|
17284
|
-
return
|
|
17294
|
+
return axe.commons.dom.isVisible(elm.actualNode);
|
|
17285
17295
|
});
|
|
17286
17296
|
if (typeof options.nativeScopeFilter === 'string') {
|
|
17287
17297
|
elms = elms.filter(function(elm) {
|
|
17288
17298
|
return elm.actualNode.hasAttribute('role') || !axe.commons.dom.findUpVirtual(elm, options.nativeScopeFilter);
|
|
17289
17299
|
});
|
|
17290
17300
|
}
|
|
17291
|
-
this.relatedNodes(elms.
|
|
17301
|
+
this.relatedNodes(elms.filter(function(elm) {
|
|
17302
|
+
return elm !== virtualNode;
|
|
17303
|
+
}).map(function(elm) {
|
|
17292
17304
|
return elm.actualNode;
|
|
17293
17305
|
}));
|
|
17294
|
-
return elms.length
|
|
17306
|
+
return elms.length <= 1;
|
|
17295
17307
|
},
|
|
17296
17308
|
after: function after(results, options) {
|
|
17297
17309
|
return results.filter(function(checkResult) {
|
|
@@ -17516,10 +17528,19 @@
|
|
|
17516
17528
|
var isXHTML = axe.utils.isXHTML;
|
|
17517
17529
|
var langValue = (node.getAttribute('lang') || '').trim();
|
|
17518
17530
|
var xmlLangValue = (node.getAttribute('xml:lang') || '').trim();
|
|
17519
|
-
if (!langValue && !isXHTML(document)) {
|
|
17531
|
+
if (!langValue && xmlLangValue && !isXHTML(document)) {
|
|
17532
|
+
this.data({
|
|
17533
|
+
messageKey: 'noXHTML'
|
|
17534
|
+
});
|
|
17535
|
+
return false;
|
|
17536
|
+
}
|
|
17537
|
+
if (!(langValue || xmlLangValue)) {
|
|
17538
|
+
this.data({
|
|
17539
|
+
messageKey: 'noLang'
|
|
17540
|
+
});
|
|
17520
17541
|
return false;
|
|
17521
17542
|
}
|
|
17522
|
-
return
|
|
17543
|
+
return true;
|
|
17523
17544
|
}
|
|
17524
17545
|
}, {
|
|
17525
17546
|
id: 'valid-lang',
|
|
@@ -17974,15 +17995,28 @@
|
|
|
17974
17995
|
}, {
|
|
17975
17996
|
id: 'meta-viewport-large',
|
|
17976
17997
|
evaluate: function evaluate(node, options, virtualNode, context) {
|
|
17977
|
-
|
|
17978
|
-
var
|
|
17979
|
-
|
|
17980
|
-
|
|
17981
|
-
var key = params.shift().toLowerCase();
|
|
17982
|
-
if (key && params.length) {
|
|
17983
|
-
result[key.trim()] = params.shift().trim().toLowerCase();
|
|
17984
|
-
}
|
|
17998
|
+
var _ref17 = options || {}, _ref17$scaleMinimum = _ref17.scaleMinimum, scaleMinimum = _ref17$scaleMinimum === void 0 ? 2 : _ref17$scaleMinimum, _ref17$lowerBound = _ref17.lowerBound, lowerBound = _ref17$lowerBound === void 0 ? false : _ref17$lowerBound;
|
|
17999
|
+
var content = node.getAttribute('content') || '';
|
|
18000
|
+
if (!content) {
|
|
18001
|
+
return true;
|
|
17985
18002
|
}
|
|
18003
|
+
var result = content.split(/[;,]/).reduce(function(out, item) {
|
|
18004
|
+
var contentValue = item.trim();
|
|
18005
|
+
if (!contentValue) {
|
|
18006
|
+
return out;
|
|
18007
|
+
}
|
|
18008
|
+
var _contentValue$split = contentValue.split('='), _contentValue$split2 = _slicedToArray(_contentValue$split, 2), key = _contentValue$split2[0], value = _contentValue$split2[1];
|
|
18009
|
+
var curatedKey = key.toLowerCase().trim();
|
|
18010
|
+
var curatedValue = value.toLowerCase().trim();
|
|
18011
|
+
if (curatedKey === 'maximum-scale' && curatedValue === 'yes') {
|
|
18012
|
+
curatedValue = 1;
|
|
18013
|
+
}
|
|
18014
|
+
if (curatedKey === 'maximum-scale' && parseFloat(curatedValue) < 0) {
|
|
18015
|
+
return out;
|
|
18016
|
+
}
|
|
18017
|
+
out[curatedKey] = curatedValue;
|
|
18018
|
+
return out;
|
|
18019
|
+
}, {});
|
|
17986
18020
|
if (lowerBound && result['maximum-scale'] && parseFloat(result['maximum-scale']) < lowerBound) {
|
|
17987
18021
|
return true;
|
|
17988
18022
|
}
|
|
@@ -17990,7 +18024,7 @@
|
|
|
17990
18024
|
this.data('user-scalable=no');
|
|
17991
18025
|
return false;
|
|
17992
18026
|
}
|
|
17993
|
-
if (result['maximum-scale'] && parseFloat(result['maximum-scale']) <
|
|
18027
|
+
if (result['maximum-scale'] && parseFloat(result['maximum-scale']) < scaleMinimum) {
|
|
17994
18028
|
this.data('maximum-scale');
|
|
17995
18029
|
return false;
|
|
17996
18030
|
}
|
|
@@ -18003,15 +18037,28 @@
|
|
|
18003
18037
|
}, {
|
|
18004
18038
|
id: 'meta-viewport',
|
|
18005
18039
|
evaluate: function evaluate(node, options, virtualNode, context) {
|
|
18006
|
-
|
|
18007
|
-
var
|
|
18008
|
-
|
|
18009
|
-
|
|
18010
|
-
var key = params.shift().toLowerCase();
|
|
18011
|
-
if (key && params.length) {
|
|
18012
|
-
result[key.trim()] = params.shift().trim().toLowerCase();
|
|
18013
|
-
}
|
|
18040
|
+
var _ref18 = options || {}, _ref18$scaleMinimum = _ref18.scaleMinimum, scaleMinimum = _ref18$scaleMinimum === void 0 ? 2 : _ref18$scaleMinimum, _ref18$lowerBound = _ref18.lowerBound, lowerBound = _ref18$lowerBound === void 0 ? false : _ref18$lowerBound;
|
|
18041
|
+
var content = node.getAttribute('content') || '';
|
|
18042
|
+
if (!content) {
|
|
18043
|
+
return true;
|
|
18014
18044
|
}
|
|
18045
|
+
var result = content.split(/[;,]/).reduce(function(out, item) {
|
|
18046
|
+
var contentValue = item.trim();
|
|
18047
|
+
if (!contentValue) {
|
|
18048
|
+
return out;
|
|
18049
|
+
}
|
|
18050
|
+
var _contentValue$split3 = contentValue.split('='), _contentValue$split4 = _slicedToArray(_contentValue$split3, 2), key = _contentValue$split4[0], value = _contentValue$split4[1];
|
|
18051
|
+
var curatedKey = key.toLowerCase().trim();
|
|
18052
|
+
var curatedValue = value.toLowerCase().trim();
|
|
18053
|
+
if (curatedKey === 'maximum-scale' && curatedValue === 'yes') {
|
|
18054
|
+
curatedValue = 1;
|
|
18055
|
+
}
|
|
18056
|
+
if (curatedKey === 'maximum-scale' && parseFloat(curatedValue) < 0) {
|
|
18057
|
+
return out;
|
|
18058
|
+
}
|
|
18059
|
+
out[curatedKey] = curatedValue;
|
|
18060
|
+
return out;
|
|
18061
|
+
}, {});
|
|
18015
18062
|
if (lowerBound && result['maximum-scale'] && parseFloat(result['maximum-scale']) < lowerBound) {
|
|
18016
18063
|
return true;
|
|
18017
18064
|
}
|
|
@@ -18019,7 +18066,7 @@
|
|
|
18019
18066
|
this.data('user-scalable=no');
|
|
18020
18067
|
return false;
|
|
18021
18068
|
}
|
|
18022
|
-
if (result['maximum-scale'] && parseFloat(result['maximum-scale']) <
|
|
18069
|
+
if (result['maximum-scale'] && parseFloat(result['maximum-scale']) < scaleMinimum) {
|
|
18023
18070
|
this.data('maximum-scale');
|
|
18024
18071
|
return false;
|
|
18025
18072
|
}
|
|
@@ -18086,8 +18133,8 @@
|
|
|
18086
18133
|
if (results.length < 2) {
|
|
18087
18134
|
return results;
|
|
18088
18135
|
}
|
|
18089
|
-
var incompleteResults = results.filter(function(
|
|
18090
|
-
var result =
|
|
18136
|
+
var incompleteResults = results.filter(function(_ref19) {
|
|
18137
|
+
var result = _ref19.result;
|
|
18091
18138
|
return result !== undefined;
|
|
18092
18139
|
});
|
|
18093
18140
|
var uniqueResults = [];
|
|
@@ -18099,12 +18146,12 @@
|
|
|
18099
18146
|
if (nameMap[name]) {
|
|
18100
18147
|
return 'continue';
|
|
18101
18148
|
}
|
|
18102
|
-
var sameNameResults = incompleteResults.filter(function(
|
|
18103
|
-
var data =
|
|
18149
|
+
var sameNameResults = incompleteResults.filter(function(_ref20, resultNum) {
|
|
18150
|
+
var data = _ref20.data;
|
|
18104
18151
|
return data.name === name && resultNum !== index;
|
|
18105
18152
|
});
|
|
18106
|
-
var isSameUrl = sameNameResults.every(function(
|
|
18107
|
-
var data =
|
|
18153
|
+
var isSameUrl = sameNameResults.every(function(_ref21) {
|
|
18154
|
+
var data = _ref21.data;
|
|
18108
18155
|
return isIdenticalObject(data.urlProps, urlProps);
|
|
18109
18156
|
});
|
|
18110
18157
|
if (sameNameResults.length && !isSameUrl) {
|
|
@@ -18305,8 +18352,8 @@
|
|
|
18305
18352
|
} else if (node !== document.body && dom.hasContent(node, true)) {
|
|
18306
18353
|
return [ virtualNode ];
|
|
18307
18354
|
} else {
|
|
18308
|
-
return virtualNode.children.filter(function(
|
|
18309
|
-
var actualNode =
|
|
18355
|
+
return virtualNode.children.filter(function(_ref22) {
|
|
18356
|
+
var actualNode = _ref22.actualNode;
|
|
18310
18357
|
return actualNode.nodeType === 1;
|
|
18311
18358
|
}).map(findRegionlessElms).reduce(function(a, b) {
|
|
18312
18359
|
return a.concat(b);
|
|
@@ -18549,8 +18596,8 @@
|
|
|
18549
18596
|
}, {
|
|
18550
18597
|
id: 'svg-non-empty-title',
|
|
18551
18598
|
evaluate: function evaluate(node, options, virtualNode, context) {
|
|
18552
|
-
var titleNode = virtualNode.children.find(function(
|
|
18553
|
-
var props =
|
|
18599
|
+
var titleNode = virtualNode.children.find(function(_ref23) {
|
|
18600
|
+
var props = _ref23.props;
|
|
18554
18601
|
return props.nodeName === 'title';
|
|
18555
18602
|
});
|
|
18556
18603
|
return !!titleNode && titleNode.actualNode.textContent.trim() !== '';
|
|
@@ -18647,9 +18694,11 @@
|
|
|
18647
18694
|
id: 'td-headers-attr',
|
|
18648
18695
|
evaluate: function evaluate(node, options, virtualNode, context) {
|
|
18649
18696
|
var cells = [];
|
|
18650
|
-
|
|
18697
|
+
var reviewCells = [];
|
|
18698
|
+
var badCells = [];
|
|
18699
|
+
for (var rowIndex = 0; rowIndex < node.rows.length; rowIndex++) {
|
|
18651
18700
|
var row = node.rows[rowIndex];
|
|
18652
|
-
for (var cellIndex = 0
|
|
18701
|
+
for (var cellIndex = 0; cellIndex < row.cells.length; cellIndex++) {
|
|
18653
18702
|
cells.push(row.cells[cellIndex]);
|
|
18654
18703
|
}
|
|
18655
18704
|
}
|
|
@@ -18659,34 +18708,38 @@
|
|
|
18659
18708
|
}
|
|
18660
18709
|
return ids;
|
|
18661
18710
|
}, []);
|
|
18662
|
-
|
|
18663
|
-
var isSelf
|
|
18664
|
-
var
|
|
18665
|
-
|
|
18666
|
-
|
|
18667
|
-
|
|
18668
|
-
|
|
18669
|
-
|
|
18670
|
-
|
|
18711
|
+
cells.forEach(function(cell) {
|
|
18712
|
+
var isSelf = false;
|
|
18713
|
+
var notOfTable = false;
|
|
18714
|
+
if (!cell.hasAttribute('headers')) {
|
|
18715
|
+
return;
|
|
18716
|
+
}
|
|
18717
|
+
var headersAttr = cell.getAttribute('headers').trim();
|
|
18718
|
+
if (!headersAttr) {
|
|
18719
|
+
return reviewCells.push(cell);
|
|
18720
|
+
}
|
|
18721
|
+
var headers = axe.utils.tokenList(headersAttr);
|
|
18671
18722
|
if (headers.length !== 0) {
|
|
18672
18723
|
if (cell.getAttribute('id')) {
|
|
18673
18724
|
isSelf = headers.indexOf(cell.getAttribute('id').trim()) !== -1;
|
|
18674
18725
|
}
|
|
18675
|
-
notOfTable = headers.
|
|
18676
|
-
return
|
|
18677
|
-
}
|
|
18726
|
+
notOfTable = headers.some(function(header) {
|
|
18727
|
+
return !ids.includes(header);
|
|
18728
|
+
});
|
|
18678
18729
|
if (isSelf || notOfTable) {
|
|
18679
18730
|
badCells.push(cell);
|
|
18680
18731
|
}
|
|
18681
18732
|
}
|
|
18682
|
-
|
|
18683
|
-
}, []);
|
|
18733
|
+
});
|
|
18684
18734
|
if (badCells.length > 0) {
|
|
18685
18735
|
this.relatedNodes(badCells);
|
|
18686
18736
|
return false;
|
|
18687
|
-
} else {
|
|
18688
|
-
return true;
|
|
18689
18737
|
}
|
|
18738
|
+
if (reviewCells.length) {
|
|
18739
|
+
this.relatedNodes(reviewCells);
|
|
18740
|
+
return undefined;
|
|
18741
|
+
}
|
|
18742
|
+
return true;
|
|
18690
18743
|
}
|
|
18691
18744
|
}, {
|
|
18692
18745
|
id: 'th-has-data-cells',
|
|
@@ -18721,12 +18774,12 @@
|
|
|
18721
18774
|
var hasCell = false;
|
|
18722
18775
|
if (tableUtils.isColumnHeader(header)) {
|
|
18723
18776
|
hasCell = tableUtils.traverse('down', pos, tableGrid).find(function(cell) {
|
|
18724
|
-
return !tableUtils.isColumnHeader(cell);
|
|
18777
|
+
return !tableUtils.isColumnHeader(cell) && tableUtils.getHeaders(cell, tableGrid).includes(header);
|
|
18725
18778
|
});
|
|
18726
18779
|
}
|
|
18727
18780
|
if (!hasCell && tableUtils.isRowHeader(header)) {
|
|
18728
18781
|
hasCell = tableUtils.traverse('right', pos, tableGrid).find(function(cell) {
|
|
18729
|
-
return !tableUtils.isRowHeader(cell);
|
|
18782
|
+
return !tableUtils.isRowHeader(cell) && tableUtils.getHeaders(cell, tableGrid).includes(header);
|
|
18730
18783
|
});
|
|
18731
18784
|
}
|
|
18732
18785
|
if (!hasCell) {
|
|
@@ -20497,8 +20550,8 @@
|
|
|
20497
20550
|
nodeName: [ 'abbr', 'address', 'canvas', 'div', 'p', 'pre', 'blockquote', 'ins', 'del', 'output', 'span', 'table', 'tbody', 'thead', 'tfoot', 'td', 'em', 'strong', 'small', 's', 'cite', 'q', 'dfn', 'abbr', 'time', 'code', 'var', 'samp', 'kbd', 'sub', 'sup', 'i', 'b', 'u', 'mark', 'ruby', 'rt', 'rp', 'bdi', 'bdo', 'br', 'wbr', 'th', 'tr' ]
|
|
20498
20551
|
} ];
|
|
20499
20552
|
lookupTable.evaluateRoleForElement = {
|
|
20500
|
-
A: function A(
|
|
20501
|
-
var node =
|
|
20553
|
+
A: function A(_ref24) {
|
|
20554
|
+
var node = _ref24.node, out = _ref24.out;
|
|
20502
20555
|
if (node.namespaceURI === 'http://www.w3.org/2000/svg') {
|
|
20503
20556
|
return true;
|
|
20504
20557
|
}
|
|
@@ -20507,19 +20560,19 @@
|
|
|
20507
20560
|
}
|
|
20508
20561
|
return true;
|
|
20509
20562
|
},
|
|
20510
|
-
AREA: function AREA(
|
|
20511
|
-
var node =
|
|
20563
|
+
AREA: function AREA(_ref25) {
|
|
20564
|
+
var node = _ref25.node;
|
|
20512
20565
|
return !node.href;
|
|
20513
20566
|
},
|
|
20514
|
-
BUTTON: function BUTTON(
|
|
20515
|
-
var node =
|
|
20567
|
+
BUTTON: function BUTTON(_ref26) {
|
|
20568
|
+
var node = _ref26.node, role = _ref26.role, out = _ref26.out;
|
|
20516
20569
|
if (node.getAttribute('type') === 'menu') {
|
|
20517
20570
|
return role === 'menuitem';
|
|
20518
20571
|
}
|
|
20519
20572
|
return out;
|
|
20520
20573
|
},
|
|
20521
|
-
IMG: function IMG(
|
|
20522
|
-
var node =
|
|
20574
|
+
IMG: function IMG(_ref27) {
|
|
20575
|
+
var node = _ref27.node, role = _ref27.role, out = _ref27.out;
|
|
20523
20576
|
switch (node.alt) {
|
|
20524
20577
|
case null:
|
|
20525
20578
|
return out;
|
|
@@ -20531,8 +20584,8 @@
|
|
|
20531
20584
|
return role !== 'presentation' && role !== 'none';
|
|
20532
20585
|
}
|
|
20533
20586
|
},
|
|
20534
|
-
INPUT: function INPUT(
|
|
20535
|
-
var node =
|
|
20587
|
+
INPUT: function INPUT(_ref28) {
|
|
20588
|
+
var node = _ref28.node, role = _ref28.role, out = _ref28.out;
|
|
20536
20589
|
switch (node.type) {
|
|
20537
20590
|
case 'button':
|
|
20538
20591
|
case 'image':
|
|
@@ -20562,32 +20615,32 @@
|
|
|
20562
20615
|
return false;
|
|
20563
20616
|
}
|
|
20564
20617
|
},
|
|
20565
|
-
LI: function LI(
|
|
20566
|
-
var node =
|
|
20618
|
+
LI: function LI(_ref29) {
|
|
20619
|
+
var node = _ref29.node, out = _ref29.out;
|
|
20567
20620
|
var hasImplicitListitemRole = axe.utils.matchesSelector(node, 'ol li, ul li');
|
|
20568
20621
|
if (hasImplicitListitemRole) {
|
|
20569
20622
|
return out;
|
|
20570
20623
|
}
|
|
20571
20624
|
return true;
|
|
20572
20625
|
},
|
|
20573
|
-
MENU: function MENU(
|
|
20574
|
-
var node =
|
|
20626
|
+
MENU: function MENU(_ref30) {
|
|
20627
|
+
var node = _ref30.node;
|
|
20575
20628
|
if (node.getAttribute('type') === 'context') {
|
|
20576
20629
|
return false;
|
|
20577
20630
|
}
|
|
20578
20631
|
return true;
|
|
20579
20632
|
},
|
|
20580
|
-
OPTION: function OPTION(
|
|
20581
|
-
var node =
|
|
20633
|
+
OPTION: function OPTION(_ref31) {
|
|
20634
|
+
var node = _ref31.node;
|
|
20582
20635
|
var withinOptionList = axe.utils.matchesSelector(node, 'select > option, datalist > option, optgroup > option');
|
|
20583
20636
|
return !withinOptionList;
|
|
20584
20637
|
},
|
|
20585
|
-
SELECT: function SELECT(
|
|
20586
|
-
var node =
|
|
20638
|
+
SELECT: function SELECT(_ref32) {
|
|
20639
|
+
var node = _ref32.node, role = _ref32.role;
|
|
20587
20640
|
return !node.multiple && node.size <= 1 && role === 'menu';
|
|
20588
20641
|
},
|
|
20589
|
-
SVG: function SVG(
|
|
20590
|
-
var node =
|
|
20642
|
+
SVG: function SVG(_ref33) {
|
|
20643
|
+
var node = _ref33.node, out = _ref33.out;
|
|
20591
20644
|
if (node.parentNode && node.parentNode.namespaceURI === 'http://www.w3.org/2000/svg') {
|
|
20592
20645
|
return true;
|
|
20593
20646
|
}
|
|
@@ -20699,8 +20752,8 @@
|
|
|
20699
20752
|
});
|
|
20700
20753
|
return unallowedRoles;
|
|
20701
20754
|
};
|
|
20702
|
-
aria.getOwnedVirtual = function getOwned(
|
|
20703
|
-
var actualNode =
|
|
20755
|
+
aria.getOwnedVirtual = function getOwned(_ref34) {
|
|
20756
|
+
var actualNode = _ref34.actualNode, children = _ref34.children;
|
|
20704
20757
|
if (!actualNode || !children) {
|
|
20705
20758
|
throw new Error('getOwnedVirtual requires a virtual node');
|
|
20706
20759
|
}
|
|
@@ -20713,7 +20766,7 @@
|
|
|
20713
20766
|
}, children);
|
|
20714
20767
|
};
|
|
20715
20768
|
aria.getRole = function getRole(node) {
|
|
20716
|
-
var
|
|
20769
|
+
var _ref35 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, noImplicit = _ref35.noImplicit, fallback = _ref35.fallback, abstracts = _ref35.abstracts, dpub = _ref35.dpub;
|
|
20717
20770
|
node = node.actualNode || node;
|
|
20718
20771
|
if (node.nodeType !== 1) {
|
|
20719
20772
|
return null;
|
|
@@ -20799,8 +20852,8 @@
|
|
|
20799
20852
|
var roleDefinition = aria.lookupTable.role[role];
|
|
20800
20853
|
return roleDefinition ? roleDefinition.unsupported : false;
|
|
20801
20854
|
};
|
|
20802
|
-
aria.labelVirtual = function(
|
|
20803
|
-
var actualNode =
|
|
20855
|
+
aria.labelVirtual = function(_ref36) {
|
|
20856
|
+
var actualNode = _ref36.actualNode;
|
|
20804
20857
|
var ref, candidate;
|
|
20805
20858
|
if (actualNode.getAttribute('aria-labelledby')) {
|
|
20806
20859
|
ref = dom.idrefs(actualNode, 'aria-labelledby');
|
|
@@ -20826,7 +20879,7 @@
|
|
|
20826
20879
|
return aria.labelVirtual(node);
|
|
20827
20880
|
};
|
|
20828
20881
|
aria.namedFromContents = function namedFromContents(node) {
|
|
20829
|
-
var
|
|
20882
|
+
var _ref37 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, strict = _ref37.strict;
|
|
20830
20883
|
node = node.actualNode || node;
|
|
20831
20884
|
if (node.nodeType !== 1) {
|
|
20832
20885
|
return false;
|
|
@@ -20842,7 +20895,7 @@
|
|
|
20842
20895
|
return !roleDef || [ 'presentation', 'none' ].includes(role);
|
|
20843
20896
|
};
|
|
20844
20897
|
aria.isValidRole = function(role) {
|
|
20845
|
-
var
|
|
20898
|
+
var _ref38 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, allowAbstract = _ref38.allowAbstract, _ref38$flagUnsupporte = _ref38.flagUnsupported, flagUnsupported = _ref38$flagUnsupporte === void 0 ? false : _ref38$flagUnsupporte;
|
|
20846
20899
|
var roleDefinition = aria.lookupTable.role[role];
|
|
20847
20900
|
var isRoleUnsupported = roleDefinition ? roleDefinition.unsupported : false;
|
|
20848
20901
|
if (!roleDefinition || flagUnsupported && isRoleUnsupported) {
|
|
@@ -21330,8 +21383,8 @@
|
|
|
21330
21383
|
}
|
|
21331
21384
|
return finalElements;
|
|
21332
21385
|
};
|
|
21333
|
-
dom.findElmsInContext = function(
|
|
21334
|
-
var context =
|
|
21386
|
+
dom.findElmsInContext = function(_ref39) {
|
|
21387
|
+
var context = _ref39.context, value = _ref39.value, attr = _ref39.attr, _ref39$elm = _ref39.elm, elm = _ref39$elm === void 0 ? '' : _ref39$elm;
|
|
21335
21388
|
var root;
|
|
21336
21389
|
var escapedValue = axe.utils.escapeSelector(value);
|
|
21337
21390
|
if (context.nodeType === 9 || context.nodeType === 11) {
|
|
@@ -21761,8 +21814,8 @@
|
|
|
21761
21814
|
var hiddenTextElms = [ 'HEAD', 'TITLE', 'TEMPLATE', 'SCRIPT', 'STYLE', 'IFRAME', 'OBJECT', 'VIDEO', 'AUDIO', 'NOSCRIPT' ];
|
|
21762
21815
|
function hasChildTextNodes(elm) {
|
|
21763
21816
|
if (!hiddenTextElms.includes(elm.actualNode.nodeName.toUpperCase())) {
|
|
21764
|
-
return elm.children.some(function(
|
|
21765
|
-
var actualNode =
|
|
21817
|
+
return elm.children.some(function(_ref40) {
|
|
21818
|
+
var actualNode = _ref40.actualNode;
|
|
21766
21819
|
return actualNode.nodeType === 3 && actualNode.nodeValue.trim();
|
|
21767
21820
|
});
|
|
21768
21821
|
}
|
|
@@ -22101,8 +22154,8 @@
|
|
|
22101
22154
|
if (!refs || !refs.length) {
|
|
22102
22155
|
return false;
|
|
22103
22156
|
}
|
|
22104
|
-
return refs.some(function(
|
|
22105
|
-
var actualNode =
|
|
22157
|
+
return refs.some(function(_ref41) {
|
|
22158
|
+
var actualNode = _ref41.actualNode;
|
|
22106
22159
|
return dom.isVisible(actualNode, screenReader, recursed);
|
|
22107
22160
|
});
|
|
22108
22161
|
}
|
|
@@ -22491,8 +22544,13 @@
|
|
|
22491
22544
|
return headers;
|
|
22492
22545
|
}
|
|
22493
22546
|
table.getHeaders = function(cell, tableGrid) {
|
|
22494
|
-
if (cell.
|
|
22495
|
-
|
|
22547
|
+
if (cell.getAttribute('headers')) {
|
|
22548
|
+
var headers = commons.dom.idrefs(cell, 'headers');
|
|
22549
|
+
if (headers.filter(function(header) {
|
|
22550
|
+
return header;
|
|
22551
|
+
}).length) {
|
|
22552
|
+
return headers;
|
|
22553
|
+
}
|
|
22496
22554
|
}
|
|
22497
22555
|
if (!tableGrid) {
|
|
22498
22556
|
tableGrid = commons.table.toGrid(commons.dom.findUp(cell, 'table'));
|
|
@@ -22775,15 +22833,15 @@
|
|
|
22775
22833
|
}
|
|
22776
22834
|
return accName;
|
|
22777
22835
|
};
|
|
22778
|
-
function textNodeContent(
|
|
22779
|
-
var actualNode =
|
|
22836
|
+
function textNodeContent(_ref42) {
|
|
22837
|
+
var actualNode = _ref42.actualNode;
|
|
22780
22838
|
if (actualNode.nodeType !== 3) {
|
|
22781
22839
|
return '';
|
|
22782
22840
|
}
|
|
22783
22841
|
return actualNode.textContent;
|
|
22784
22842
|
}
|
|
22785
|
-
function shouldIgnoreHidden(
|
|
22786
|
-
var actualNode =
|
|
22843
|
+
function shouldIgnoreHidden(_ref43, context) {
|
|
22844
|
+
var actualNode = _ref43.actualNode;
|
|
22787
22845
|
if (actualNode.nodeType !== 1 || context.includeHidden) {
|
|
22788
22846
|
return false;
|
|
22789
22847
|
}
|
|
@@ -23011,7 +23069,7 @@
|
|
|
23011
23069
|
};
|
|
23012
23070
|
text.autocomplete = autocomplete;
|
|
23013
23071
|
text.isValidAutocomplete = function isValidAutocomplete(autocomplete) {
|
|
23014
|
-
var
|
|
23072
|
+
var _ref44 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref44$looseTyped = _ref44.looseTyped, looseTyped = _ref44$looseTyped === void 0 ? false : _ref44$looseTyped, _ref44$stateTerms = _ref44.stateTerms, stateTerms = _ref44$stateTerms === void 0 ? [] : _ref44$stateTerms, _ref44$locations = _ref44.locations, locations = _ref44$locations === void 0 ? [] : _ref44$locations, _ref44$qualifiers = _ref44.qualifiers, qualifiers = _ref44$qualifiers === void 0 ? [] : _ref44$qualifiers, _ref44$standaloneTerm = _ref44.standaloneTerms, standaloneTerms = _ref44$standaloneTerm === void 0 ? [] : _ref44$standaloneTerm, _ref44$qualifiedTerms = _ref44.qualifiedTerms, qualifiedTerms = _ref44$qualifiedTerms === void 0 ? [] : _ref44$qualifiedTerms;
|
|
23015
23073
|
autocomplete = autocomplete.toLowerCase().trim();
|
|
23016
23074
|
stateTerms = stateTerms.concat(text.autocomplete.stateTerms);
|
|
23017
23075
|
if (stateTerms.includes(autocomplete) || autocomplete === '') {
|
|
@@ -23067,8 +23125,8 @@
|
|
|
23067
23125
|
return text !== '';
|
|
23068
23126
|
}).join(' ');
|
|
23069
23127
|
};
|
|
23070
|
-
function getExplicitLabels(
|
|
23071
|
-
var actualNode =
|
|
23128
|
+
function getExplicitLabels(_ref45) {
|
|
23129
|
+
var actualNode = _ref45.actualNode;
|
|
23072
23130
|
if (!actualNode.id) {
|
|
23073
23131
|
return [];
|
|
23074
23132
|
}
|
|
@@ -23183,8 +23241,8 @@
|
|
|
23183
23241
|
};
|
|
23184
23242
|
function findTextMethods(virtualNode) {
|
|
23185
23243
|
var nativeElementType = text.nativeElementType, nativeTextMethods = text.nativeTextMethods;
|
|
23186
|
-
var nativeType = nativeElementType.find(function(
|
|
23187
|
-
var matches =
|
|
23244
|
+
var nativeType = nativeElementType.find(function(_ref46) {
|
|
23245
|
+
var matches = _ref46.matches;
|
|
23188
23246
|
return axe.commons.matches(virtualNode, matches);
|
|
23189
23247
|
});
|
|
23190
23248
|
var methods = nativeType ? [].concat(nativeType.namingMethods) : [];
|
|
@@ -23199,12 +23257,12 @@
|
|
|
23199
23257
|
button: ''
|
|
23200
23258
|
};
|
|
23201
23259
|
text.nativeTextMethods = {
|
|
23202
|
-
valueText: function valueText(
|
|
23203
|
-
var actualNode =
|
|
23260
|
+
valueText: function valueText(_ref47) {
|
|
23261
|
+
var actualNode = _ref47.actualNode;
|
|
23204
23262
|
return actualNode.value || '';
|
|
23205
23263
|
},
|
|
23206
|
-
buttonDefaultText: function buttonDefaultText(
|
|
23207
|
-
var actualNode =
|
|
23264
|
+
buttonDefaultText: function buttonDefaultText(_ref48) {
|
|
23265
|
+
var actualNode = _ref48.actualNode;
|
|
23208
23266
|
return defaultButtonValues[actualNode.type] || '';
|
|
23209
23267
|
},
|
|
23210
23268
|
tableCaptionText: descendantText.bind(null, 'caption'),
|
|
@@ -23225,12 +23283,12 @@
|
|
|
23225
23283
|
return ' ';
|
|
23226
23284
|
}
|
|
23227
23285
|
};
|
|
23228
|
-
function attrText(attr,
|
|
23229
|
-
var actualNode =
|
|
23286
|
+
function attrText(attr, _ref49) {
|
|
23287
|
+
var actualNode = _ref49.actualNode;
|
|
23230
23288
|
return actualNode.getAttribute(attr) || '';
|
|
23231
23289
|
}
|
|
23232
|
-
function descendantText(nodeName,
|
|
23233
|
-
var actualNode =
|
|
23290
|
+
function descendantText(nodeName, _ref50, context) {
|
|
23291
|
+
var actualNode = _ref50.actualNode;
|
|
23234
23292
|
nodeName = nodeName.toLowerCase();
|
|
23235
23293
|
var nodeNames = [ nodeName, actualNode.nodeName.toLowerCase() ].join(',');
|
|
23236
23294
|
var candidate = actualNode.querySelector(nodeNames);
|
|
@@ -23296,7 +23354,7 @@
|
|
|
23296
23354
|
return axe.imports.emojiRegexText().test(str);
|
|
23297
23355
|
}
|
|
23298
23356
|
if (nonBmp) {
|
|
23299
|
-
return getUnicodeNonBmpRegExp().test(str);
|
|
23357
|
+
return getUnicodeNonBmpRegExp().test(str) || getSupplementaryPrivateUseRegExp().test(str);
|
|
23300
23358
|
}
|
|
23301
23359
|
if (punctuations) {
|
|
23302
23360
|
return getPunctuationRegExp().test(str);
|
|
@@ -23321,10 +23379,10 @@
|
|
|
23321
23379
|
return /[\u1D00-\u1D7F\u1D80-\u1DBF\u1DC0-\u1DFF\u20A0-\u20CF\u20D0-\u20FF\u2100-\u214F\u2150-\u218F\u2190-\u21FF\u2200-\u22FF\u2300-\u23FF\u2400-\u243F\u2440-\u245F\u2460-\u24FF\u2500-\u257F\u2580-\u259F\u25A0-\u25FF\u2600-\u26FF\u2700-\u27BF\uE000-\uF8FF]/g;
|
|
23322
23380
|
}
|
|
23323
23381
|
function getPunctuationRegExp() {
|
|
23324
|
-
return /[\u2000-\u206F\u2E00-\u2E7F\\'!"
|
|
23382
|
+
return /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&\xa3\xa2\xa5\xa7\u20ac()*+,\-.\/:;<=>?@\[\]^_`{|}~\xb1]/g;
|
|
23325
23383
|
}
|
|
23326
23384
|
function getSupplementaryPrivateUseRegExp() {
|
|
23327
|
-
return /[\uDB80-\uDBBF][\uDC00-\
|
|
23385
|
+
return /[\uDB80-\uDBBF][\uDC00-\uDFFF]/g;
|
|
23328
23386
|
}
|
|
23329
23387
|
text.unsupported = {
|
|
23330
23388
|
accessibleNameFromFieldValue: [ 'combobox', 'listbox', 'progressbar' ]
|