Skip to content

Commit 505e6ba

Browse files
authored
Merge pull request #3218 from dequelabs/release-4.3.4
chore(release): 4.3.4
2 parents 57b207c + cc13ddf commit 505e6ba

File tree

104 files changed

+2551
-560
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+2551
-560
lines changed

.circleci/config.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,16 @@ jobs:
129129
- run: npm run build
130130
- run: npm run test:locales
131131

132+
# Test virtual rules
133+
test_virtual_rules:
134+
<<: *defaults
135+
<<: *unix_box
136+
steps:
137+
- checkout
138+
- <<: *restore_dependency_cache_unix
139+
- run: npm run build
140+
- run: npm run test:virtual-rules
141+
132142
# Run the test suite for nightly builds.
133143
test_nightly:
134144
<<: *defaults
@@ -262,6 +272,9 @@ workflows:
262272
- test_locales:
263273
requires:
264274
- test_unix
275+
- test_virtual_rules:
276+
requires:
277+
- test_unix
265278
- build_api_docs:
266279
requires:
267280
- test_unix
@@ -279,6 +292,7 @@ workflows:
279292
- test_win
280293
- test_examples
281294
- test_locales
295+
- test_virtual_rules
282296
- build_api_docs
283297
- test_rule_help_version
284298
- test_node
@@ -293,6 +307,7 @@ workflows:
293307
- test_unix
294308
- test_examples
295309
- test_locales
310+
- test_virtual_rules
296311
- build_api_docs
297312
filters:
298313
branches:
@@ -304,6 +319,7 @@ workflows:
304319
- test_unix
305320
- test_examples
306321
- test_locales
322+
- test_virtual_rules
307323
- build_api_docs
308324
- test_rule_help_version
309325
- test_node

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,32 @@
22

33
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.
44

5+
### [4.3.4](https://github.com/dequelabs/axe-core/compare/v4.3.3...v4.3.4) (2021-10-22)
6+
7+
### Bug Fixes
8+
9+
- **aria-allowed-attr:** check for invalid `aria-attributes` for `role="row"` ([#3160](https://github.com/dequelabs/axe-core/issues/3160)) ([76aa5ec](https://github.com/dequelabs/axe-core/commit/76aa5ec5ac8a311b90974f0dba9cf92594f92019))
10+
- **aria-allowed-children,aria-allowed-parent:** allow group role in listbox ([#3195](https://github.com/dequelabs/axe-core/issues/3195)) ([d742b29](https://github.com/dequelabs/axe-core/commit/d742b299370afa23645b1292ffc15f753113e05a))
11+
- **aria-allowed-role:** updates the allowed roles for the wbr element to none and presentation ([#3192](https://github.com/dequelabs/axe-core/issues/3192)) ([66db765](https://github.com/dequelabs/axe-core/commit/66db765a17b5dc0904fcafe83aeb7c3eb5d60c12)), closes [#3177](https://github.com/dequelabs/axe-core/issues/3177)
12+
- **aria-prohibited-attr:** update metadata message ([#3206](https://github.com/dequelabs/axe-core/issues/3206)) ([f9cf9fa](https://github.com/dequelabs/axe-core/commit/f9cf9fafe10e944be643d642cffda4fc762d0fc5))
13+
- **axe.configure:** do not remove newline characters from locale doT strings ([#3216](https://github.com/dequelabs/axe-core/issues/3216)) ([5925898](https://github.com/dequelabs/axe-core/commit/59258984c0e52d91342040291fcc6f05ce2f135f))
14+
- **axe.run:** add option to increase iframe ping timeout ([#3233](https://github.com/dequelabs/axe-core/issues/3233)) ([023f356](https://github.com/dequelabs/axe-core/commit/023f356ae752c559fb3788c84b1937bd2ba047ee))
15+
- **color-contrast:** account for 0 width scroll regions with children ([#3172](https://github.com/dequelabs/axe-core/issues/3172)) ([ac913a1](https://github.com/dequelabs/axe-core/commit/ac913a11ddd8fd3b242a6ee500773c17fef77011))
16+
- **color-contrast:** account for elements that do not fill entire bounding size ([#3186](https://github.com/dequelabs/axe-core/issues/3186)) ([84229d4](https://github.com/dequelabs/axe-core/commit/84229d41969907a62876488dc7a8f070542a9fe6))
17+
- **color-contrast:** correctly apply page background color ([#3207](https://github.com/dequelabs/axe-core/issues/3207)) ([0ea7e1b](https://github.com/dequelabs/axe-core/commit/0ea7e1b881bb06067e98bae8ffe814605404475f))
18+
- **color-contrast:** correctly compute color-contrast of truncated children ([#3203](https://github.com/dequelabs/axe-core/issues/3203)) ([4adb911](https://github.com/dequelabs/axe-core/commit/4adb9119a8a1cb457db81a40534db103c14bd2a1))
19+
- **color-contrast:** correctly handle nested scroll regions ([#3212](https://github.com/dequelabs/axe-core/issues/3212)) ([80d91c0](https://github.com/dequelabs/axe-core/commit/80d91c01e46072ae8d36b952dfc264ef6f13eada))
20+
- **color-contrast:** correctly work with positioned elements without z-index ([#3209](https://github.com/dequelabs/axe-core/issues/3209)) ([0322070](https://github.com/dequelabs/axe-core/commit/03220704c9dfa6f3af8d13800f9861e16552854b))
21+
- greater consistency of help / description text ([#3204](https://github.com/dequelabs/axe-core/issues/3204)) ([0be12e6](https://github.com/dequelabs/axe-core/commit/0be12e62e5c0b2f1d280a7b17380281a30ae65f0))
22+
- Separate Level AAA rules from A and best-practices ([#3191](https://github.com/dequelabs/axe-core/issues/3191)) ([7e6e6da](https://github.com/dequelabs/axe-core/commit/7e6e6da379eb2cb852a84c4ce088df7065740b61))
23+
- **color-contrast:** properly blend multiple alpha colors ([#3193](https://github.com/dequelabs/axe-core/issues/3193)) ([5aa0441](https://github.com/dequelabs/axe-core/commit/5aa0441f2b33f8e1055ac32d981df4f796f7bb88))
24+
- **is-visible:** do not error if window.Node does not exist ([#3168](https://github.com/dequelabs/axe-core/issues/3168)) ([cf58aea](https://github.com/dequelabs/axe-core/commit/cf58aea086a7bd590838673068d34325b4e9eef7))
25+
- **label-title-only:** allow hidden labels ([#3183](https://github.com/dequelabs/axe-core/issues/3183)) ([ab636ef](https://github.com/dequelabs/axe-core/commit/ab636efa743ba2cbf1194b87aa27be5aba70989b))
26+
- **nativeSelectValue:** update selected value on change ([#3154](https://github.com/dequelabs/axe-core/issues/3154)) ([ad584a1](https://github.com/dequelabs/axe-core/commit/ad584a10fc4b6c601c887835d7c879c77dc143d9))
27+
- **p-as-heading:** `p-as-heading` rule to account for `textContent` length ([#3145](https://github.com/dequelabs/axe-core/issues/3145)) ([e0d4dc6](https://github.com/dequelabs/axe-core/commit/e0d4dc63bdd391a92f833d83b50644934deb7804))
28+
- **typescript:** allow passing a NodeList to ElementContext ([#3161](https://github.com/dequelabs/axe-core/issues/3161)) ([5f2e517](https://github.com/dequelabs/axe-core/commit/5f2e517c0038397e12c72ef322313443c25e7907))
29+
- check for hidden elements on `aria-errormessage` ([#3156](https://github.com/dequelabs/axe-core/issues/3156)) ([69b2e33](https://github.com/dequelabs/axe-core/commit/69b2e33b4094512f2ccfd05393b567763bba2e11))
30+
531
### [4.3.3](https://github.com/dequelabs/axe-core/compare/v4.3.2...v4.3.3) (2021-08-24)
632

733
### Bug Fixes
@@ -70,6 +96,12 @@ All notable changes to this project will be documented in this file. See [standa
7096
- treat input with no role as textbox ([#2929](https://github.com/dequelabs/axe-core/issues/2929)) ([13d909d](https://github.com/dequelabs/axe-core/commit/13d909dd12dc40ab9ed448793aef5031e207d429))
7197
- **types:** make `evaluate` check optional ([#2902](https://github.com/dequelabs/axe-core/issues/2902)) ([417f572](https://github.com/dequelabs/axe-core/commit/417f5724112e46f128efd5f56da9f891bf1e938c))
7298

99+
### [4.2.4](https://github.com/dequelabs/axe-core/compare/v4.2.3...v4.2.4) (2021-10-22)
100+
101+
### Bug Fixes
102+
103+
- **axe.run:** add option to increase iframe ping timeout ([#3233](https://github.com/dequelabs/axe-core/issues/3233)) ([99a848e](https://github.com/dequelabs/axe-core/commit/99a848e785793782b264aa55cd71f5a35c5677c9))
104+
73105
### [4.2.3](https://github.com/dequelabs/axe-core/compare/v4.2.2...v4.2.3) (2021-06-22)
74106

75107
### Bug Fixes

axe.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ declare namespace axe {
5656

5757
type RunCallback = (error: Error, results: AxeResults) => void;
5858

59-
type ElementContext = Node | string | ContextObject;
59+
type ElementContext = Node | NodeList | string | ContextObject;
6060

6161
interface TestEngine {
6262
name: string;

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "axe-core",
3-
"version": "4.3.3",
3+
"version": "4.3.4",
44
"contributors": [
55
{
66
"name": "David Sturley",

build/configure.js

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
'use strict';
44

55
var clone = require('clone');
6-
var dot = require('@deque/dot');
6+
var doT = require('@deque/dot');
77
var templates = require('./templates');
88
var buildManual = require('./build-manual');
99
var entities = new (require('html-entities').AllHtmlEntities)();
1010
var packageJSON = require('../package.json');
11-
var dotRegex = /\{\{.+?\}\}/g;
11+
var doTRegex = /\{\{.+?\}\}/g;
1212

1313
var axeVersion = packageJSON.version.substring(
1414
0,
@@ -18,7 +18,9 @@ var axeVersion = packageJSON.version.substring(
1818
var descriptionTableHeader =
1919
'| Rule ID | Description | Impact | Tags | Issue Type | ACT Rules |\n| :------- | :------- | :------- | :------- | :------- | :------- |\n';
2020

21-
dot.templateSettings.strip = false;
21+
// prevent striping newline characters from strings (e.g. failure
22+
// summaries). must be synced with lib/core/imports/index.js
23+
doT.templateSettings.strip = false;
2224

2325
function getLocale(grunt, options) {
2426
var localeFile;
@@ -62,6 +64,12 @@ function buildRules(grunt, options, commons, callback) {
6264
'Rules that do not necessarily conform to WCAG success criterion but are industry accepted practices that improve the user experience.',
6365
rules: []
6466
},
67+
wcag2aaa: {
68+
title: 'WCAG 2.0 and 2.1 level AAA rules',
69+
intro:
70+
'Rules that check for conformance to WCAG AAA success criteria that can be fully automated.',
71+
rules: []
72+
},
6573
experimental: {
6674
title: 'Experimental Rules',
6775
intro:
@@ -114,17 +122,17 @@ function buildRules(grunt, options, commons, callback) {
114122
// objects handled later in publish-metadata.js
115123
if (
116124
typeof result.messages[key] !== 'object' &&
117-
dotRegex.test(result.messages[key])
125+
doTRegex.test(result.messages[key])
118126
) {
119-
result.messages[key] = dot
127+
result.messages[key] = doT
120128
.template(result.messages[key])
121129
.toString();
122130
}
123131
});
124132
}
125133
//TODO this is actually failureSummaries, property name should better reflect that
126-
if (result.failureMessage && dotRegex.test(result.failureMessage)) {
127-
result.failureMessage = dot.template(result.failureMessage).toString();
134+
if (result.failureMessage && doTRegex.test(result.failureMessage)) {
135+
result.failureMessage = doT.template(result.failureMessage).toString();
128136
}
129137
return result;
130138
}
@@ -144,9 +152,9 @@ function buildRules(grunt, options, commons, callback) {
144152
summaries.forEach(function(summary) {
145153
if (
146154
summary.incompleteFallbackMessage &&
147-
dotRegex.test(summary.incompleteFallbackMessage)
155+
doTRegex.test(summary.incompleteFallbackMessage)
148156
) {
149-
result = dot.template(summary.incompleteFallbackMessage).toString();
157+
result = doT.template(summary.incompleteFallbackMessage).toString();
150158
}
151159
});
152160
return result;
@@ -335,6 +343,8 @@ function buildRules(grunt, options, commons, callback) {
335343
rules = descriptions.deprecated.rules;
336344
} else if (rule.tags.includes('experimental')) {
337345
rules = descriptions.experimental.rules;
346+
} else if (rule.tags.find(tag => tag.includes('aaa'))) {
347+
rules = descriptions.wcag2aaa.rules;
338348
} else if (rule.tags.includes('best-practice')) {
339349
rules = descriptions.bestPractice.rules;
340350
} else if (rule.tags.find(tag => tag.startsWith('wcag2a'))) {

doc/API.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,10 @@ The `experimental`, `ACT` and `section508` tags are only added to some rules. Ea
8080
| ---------------- | ---------------------------------------------------- |
8181
| `wcag2a` | WCAG 2.0 Level A |
8282
| `wcag2aa` | WCAG 2.0 Level AA |
83+
| `wcag2aaa` | WCAG 2.0 Level AAA |
8384
| `wcag21a` | WCAG 2.1 Level A |
8485
| `wcag21aa` | WCAG 2.1 Level AA |
86+
| `wcag21aaa` | WCAG 2.1 Level AAA |
8587
| `best-practice` | Common accessibility best practices |
8688
| `wcag***` | WCAG success criterion e.g. wcag111 maps to SC 1.1.1 |
8789
| `ACT` | W3C approved Accessibility Conformance Testing rules |

doc/check-options.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,34 @@ All checks allow these global options:
199199
</tbody>
200200
</table>
201201

202+
### aria-allowed-attr
203+
204+
<table>
205+
<thead>
206+
<tr>
207+
<th>Option</th>
208+
<th align="left">Default</th>
209+
<th align="left">Description</th>
210+
</tr>
211+
</thead>
212+
<tbody>
213+
<tr>
214+
<td>
215+
<code>validTreeRowAttrs</code>
216+
</td>
217+
<td align="left">
218+
<pre lang=js><code>[
219+
'aria-posinset',
220+
'aria-setsize',
221+
'aria-expanded',
222+
'aria-level',
223+
]</code></pre>
224+
</td>
225+
<td align="left">List of ARIA attributes that are not allowed on <code>role=row</code> when a descendant of a table or a grid</td>
226+
</tr>
227+
</tbody>
228+
</table>
229+
202230
### color-contrast
203231

204232
| Option | Default | Description |
@@ -417,6 +445,24 @@ h6:not([role]),
417445
</td>
418446
<td align="left">Common CSS values used to display `p` elements as `h1-h6` elements determining if a `p` element is being improperly repurposed</td>
419447
</tr>
448+
<tr>
449+
<td>
450+
<code>passLength</code>
451+
</td>
452+
<td align="left">
453+
<pre lang=js><code>"passLength": 1</code></pre>
454+
</td>
455+
<td align="left">Relative length, if the the candidate heading is X times or greater the length of the candidate paragraph, it will pass.</td>
456+
</tr>
457+
<tr>
458+
<td>
459+
<code>faiLength</code>
460+
</td>
461+
<td align="left">
462+
<pre lang=js><code>"failLength": 0.5</code></pre>
463+
</td>
464+
<td align="left">Relative length, if the the candidate heading is X times or less the length of the candidate paragraph, it can fail.</td>
465+
</tr>
420466
</tbody>
421467
</table>
422468

doc/issue_impact.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Issue Impacts
2+
3+
Axe-core assigns an impact according to our assessment of the likely impact of an issue on a user with a disability that would be affected by this issue. In any given context the actual impact for the user could be lower; in some instances, it could be higher. For this reason, we encourage users of tools to evaluate each individual issue and assess the impact in the context of their application or content.
4+
5+
## Definitions
6+
7+
### Minor
8+
9+
Considered to be a nuisance or an annoyance bug. Prioritize fixing if the fix only takes a few minutes and the developer is working on the same screen/feature at the same time, otherwise the issue should not be prioritized. Will still get in the way of compliance if not fixed.
10+
11+
### Moderate
12+
13+
Results in some difficulty for people with disabilities, but will generally not prevent them from accessing fundamental features or content. Users may be frustrated and abandon non-critical workflows. Prioritize fixing in this release, if there are no higher-priority issues. Will get in the way of compliance if not fixed.
14+
15+
### Serious
16+
17+
Results in serious barriers for people with disabilities, and will partially or fully prevent them from accessing fundamental features or content. People relying on assistive technologies will experience significant frustration and may abandon essential workflows. Issues falling under this category are major problems, and remediation should be a priority.
18+
19+
### Critical
20+
21+
Results in blocked content for people with disabilities, and will definitely prevent them from accessing fundamental features or content. This type of issue puts your organization at risk. Prioritize fixing as soon as possible, within the week if possible. Remediation should be a top priority.

doc/projects.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,4 @@ Add your project/integration to this file and submit a pull request.
5454
1. [axe-sarif-converter](https://github.com/microsoft/axe-sarif-converter)
5555
1. [Selenium.Axe for .NET](https://github.com/TroyWalshProf/SeleniumAxeDotnet)
5656
1. [vue-axe](https://github.com/vue-a11y/vue-axe-next)
57+
1. [a11y-sitechecker](https://github.com/forsti0506/a11y-sitechecker)

0 commit comments

Comments
 (0)