From 8183730af5939a38e6d42ea9d5d7f2897e4580e6 Mon Sep 17 00:00:00 2001 From: Stephen Mathieson Date: Mon, 26 Apr 2021 17:46:27 -0400 Subject: [PATCH 01/36] ci(sync-branches): Do not include PR template (#2893) This PR template is no longer relevant here. --- .github/workflows/sync-master-develop.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/sync-master-develop.yml b/.github/workflows/sync-master-develop.yml index b8685b145e..76cd36991c 100644 --- a/.github/workflows/sync-master-develop.yml +++ b/.github/workflows/sync-master-develop.yml @@ -12,4 +12,3 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} pr-title: "chore: merge master into develop" pr-reviewers: straker,WilcoFiers,stephenmathieson - pr-template: .github/PULL_REQUEST_TEMPLATE.md From 8b478c82b3362fc27df8a0087c779327e6a9d6d0 Mon Sep 17 00:00:00 2001 From: Cassey Lottman Date: Wed, 28 Apr 2021 10:46:48 -0500 Subject: [PATCH 02/36] fix(autocomplete-appropriate): pass for autocomplete=username and type=email (#2896) * allow type=email autocomplete=username * also add text and search * add integration test --- lib/checks/forms/autocomplete-appropriate-evaluate.js | 1 + test/checks/forms/autocomplete-appropriate.js | 6 ++++++ test/commons/text/is-valid-autocomplete.js | 2 +- .../rules/autocomplete-valid/autocomplete-valid.html | 1 + .../rules/autocomplete-valid/autocomplete-valid.json | 3 ++- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/checks/forms/autocomplete-appropriate-evaluate.js b/lib/checks/forms/autocomplete-appropriate-evaluate.js index bd7523d4f7..07a8594c5e 100644 --- a/lib/checks/forms/autocomplete-appropriate-evaluate.js +++ b/lib/checks/forms/autocomplete-appropriate-evaluate.js @@ -12,6 +12,7 @@ function autocompleteAppropriateEvaluate(node, options, virtualNode) { const allowedTypesMap = { bday: ['text', 'search', 'date'], email: ['text', 'search', 'email'], + username: ['text', 'search', 'email'], 'street-address': ['text'], // Issue: https://github.com/dequelabs/axe-core/issues/1161 tel: ['text', 'search', 'tel'], 'tel-country-code': ['text', 'search', 'tel'], diff --git a/test/checks/forms/autocomplete-appropriate.js b/test/checks/forms/autocomplete-appropriate.js index 5444461314..39ab73ffa5 100644 --- a/test/checks/forms/autocomplete-appropriate.js +++ b/test/checks/forms/autocomplete-appropriate.js @@ -72,6 +72,12 @@ describe('autocomplete-appropriate', function() { assert.isTrue(evaluate.apply(checkContext, params)); }); + it('returns true if the input type is email and the term is username', function() { + var options = {}; + var params = autocompleteCheckParams('username', 'email', options); + assert.isTrue(evaluate.apply(checkContext, params)); + }); + it('returns false if the input type is text and the term maps to an empty array', function() { var options = { foo: [] }; var params = autocompleteCheckParams('foo', 'text', options); diff --git a/test/commons/text/is-valid-autocomplete.js b/test/commons/text/is-valid-autocomplete.js index b41504c790..edf9e9b868 100644 --- a/test/commons/text/is-valid-autocomplete.js +++ b/test/commons/text/is-valid-autocomplete.js @@ -48,7 +48,7 @@ describe('text.isValidAutocomplete', function() { ); }); - it('returns true if "home", "work", "mobile", "fax" or "pager" is used before aqualifier', function() { + it('returns true if "home", "work", "mobile", "fax" or "pager" is used before a qualifier', function() { ['home', 'work', 'mobile', 'fax', 'pager'].forEach(function(qualifier) { assert.isTrue( isValidAutocomplete(qualifier + ' qualified-term', options), diff --git a/test/integration/rules/autocomplete-valid/autocomplete-valid.html b/test/integration/rules/autocomplete-valid/autocomplete-valid.html index 3d2f59643e..c14f419aa7 100644 --- a/test/integration/rules/autocomplete-valid/autocomplete-valid.html +++ b/test/integration/rules/autocomplete-valid/autocomplete-valid.html @@ -124,6 +124,7 @@ + Date: Wed, 28 Apr 2021 21:25:32 +0200 Subject: [PATCH 03/36] chore: Convert all tabs to spaces (#2887) * chore: Convert ALL tabs to spaces * chore: process feedback --- .huskyrc | 5 ----- .jsdoc.json | 32 ++++++++++++++++---------------- .prettierrc | 10 ---------- .prettierrc.json | 10 ++++++++++ package-lock.json | 5 +++++ package.json | 4 ++-- 6 files changed, 33 insertions(+), 33 deletions(-) delete mode 100644 .huskyrc delete mode 100644 .prettierrc create mode 100644 .prettierrc.json diff --git a/.huskyrc b/.huskyrc deleted file mode 100644 index 398c198c18..0000000000 --- a/.huskyrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "hooks": { - "pre-commit": "grunt configure && lint-staged" - } -} diff --git a/.jsdoc.json b/.jsdoc.json index d4359bdc4f..4d7c51274b 100644 --- a/.jsdoc.json +++ b/.jsdoc.json @@ -1,18 +1,18 @@ { - "tags": { - "allowUnknownTags": true, - "dictionaries": ["jsdoc"] - }, - "source": { - "include": ["lib", "README.md"], - "includePattern": ".js$", - "excludePattern": "(node_modules/|doc/api)" - }, - "opts": { - "destination": "./doc/api", - "encoding": "utf8", - "recurse": true, - "template": "./node_modules/minami" - }, - "plugins": ["plugins/markdown"] + "tags": { + "allowUnknownTags": true, + "dictionaries": ["jsdoc"] + }, + "source": { + "include": ["lib", "README.md"], + "includePattern": ".js$", + "excludePattern": "(node_modules/|doc/api)" + }, + "opts": { + "destination": "./doc/api", + "encoding": "utf8", + "recurse": true, + "template": "./node_modules/minami" + }, + "plugins": ["plugins/markdown"] } diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 2cc42a6191..0000000000 --- a/.prettierrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "printWidth": 80, - "useTabs": false, - "tabWidth": 2, - "semi": true, - "singleQuote": true, - "trailingComma": "none", - "bracketSpacing": true, - "arrowParens": "avoid" -} diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000000..9b7252d766 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,10 @@ +{ + "printWidth": 80, + "useTabs": false, + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "trailingComma": "none", + "bracketSpacing": true, + "arrowParens": "avoid" +} diff --git a/package-lock.json b/package-lock.json index aa88182070..c77b165378 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6444,6 +6444,7 @@ "resolved": "https://registry.npmjs.org/husky/-/husky-3.1.0.tgz", "integrity": "sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ==", "dev": true, + "hasInstallScript": true, "dependencies": { "chalk": "^2.4.2", "ci-info": "^2.0.0", @@ -6463,6 +6464,10 @@ }, "engines": { "node": ">=8.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/husky" } }, "node_modules/husky/node_modules/chalk": { diff --git a/package.json b/package.json index 3ae654a34c..9113fc8456 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "next-release": "standard-version --scripts.prebump=./build/next-version.js --skip.commit=true --skip.tag=true", "sri-update": "grunt build && node build/sri-update && git add sri-history.json", "sri-validate": "node build/sri-update --validate", - "fmt": "prettier --write *.{json,md,js} **/*.ts './{.github,build,doc,lib,test}/**/*.{json,md,js,ts,html}'" + "fmt": "prettier --write .*.json *.{json,md,js} **/*.ts './{.circleci,.github,build,doc,lib,locales,test,typings}/**/*.{json,md,js,ts,html}'" }, "devDependencies": { "@babel/core": "^7.5.4", @@ -160,7 +160,7 @@ }, "husky": { "hooks": { - "pre-commit": "lint-staged" + "pre-commit": "grunt configure && lint-staged" } }, "lint-staged": { From 75fabfef3adeade350902f2dd18928e44fbb7cf4 Mon Sep 17 00:00:00 2001 From: Michael <45568605+michael-siek@users.noreply.github.com> Date: Wed, 28 Apr 2021 16:03:29 -0400 Subject: [PATCH 04/36] fix(types): make `evaluate` check optional (#2902) --- axe.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/axe.d.ts b/axe.d.ts index 899dd08412..69a9e1fc0c 100644 --- a/axe.d.ts +++ b/axe.d.ts @@ -206,7 +206,7 @@ declare namespace axe { } interface Check { id: string; - evaluate: Function | string; + evaluate?: Function | string; after?: Function | string; options?: any; matches?: string; From 06e68353939e69f9d369e049309e8594d1683c58 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 29 Apr 2021 21:32:33 +0200 Subject: [PATCH 05/36] docs(frame-focusable): Clearer issue description (#2888) --- doc/rule-descriptions.md | 112 ++++++++++++------------- lib/rules/frame-focusable-content.json | 4 +- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/doc/rule-descriptions.md b/doc/rule-descriptions.md index d0d5515a10..60a926e12f 100644 --- a/doc/rule-descriptions.md +++ b/doc/rule-descriptions.md @@ -10,62 +10,62 @@ ## WCAG 2.0 Level A & AA Rules -| Rule ID | Description | Impact | Tags | Issue Type | -| :------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :---------------- | :----------------------------------------------------------------------------------------- | :------------------------- | -| [area-alt](https://dequeuniversity.com/rules/axe/4.2/area-alt?application=RuleDescription) | Ensures <area> elements of image maps have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, wcag244, wcag412, section508, section508.22.a, ACT | failure, needs review | -| [aria-allowed-attr](https://dequeuniversity.com/rules/axe/4.2/aria-allowed-attr?application=RuleDescription) | Ensures ARIA attributes are allowed for an element's role | Critical | cat.aria, wcag2a, wcag412 | failure, needs review | -| [aria-command-name](https://dequeuniversity.com/rules/axe/4.2/aria-command-name?application=RuleDescription) | Ensures every ARIA button, link and menuitem has an accessible name | Serious | cat.aria, wcag2a, wcag412 | failure, needs review | -| [aria-hidden-body](https://dequeuniversity.com/rules/axe/4.2/aria-hidden-body?application=RuleDescription) | Ensures aria-hidden='true' is not present on the document body. | Critical | cat.aria, wcag2a, wcag412 | failure | -| [aria-hidden-focus](https://dequeuniversity.com/rules/axe/4.2/aria-hidden-focus?application=RuleDescription) | Ensures aria-hidden elements do not contain focusable elements | Serious | cat.name-role-value, wcag2a, wcag412, wcag131 | failure, needs review | -| [aria-input-field-name](https://dequeuniversity.com/rules/axe/4.2/aria-input-field-name?application=RuleDescription) | Ensures every ARIA input field has an accessible name | Moderate, Serious | cat.aria, wcag2a, wcag412, ACT | failure, needs review | -| [aria-meter-name](https://dequeuniversity.com/rules/axe/4.2/aria-meter-name?application=RuleDescription) | Ensures every ARIA meter node has an accessible name | Serious | cat.aria, wcag2a, wcag111 | failure, needs review | -| [aria-progressbar-name](https://dequeuniversity.com/rules/axe/4.2/aria-progressbar-name?application=RuleDescription) | Ensures every ARIA progressbar node has an accessible name | Serious | cat.aria, wcag2a, wcag111 | failure, needs review | -| [aria-required-attr](https://dequeuniversity.com/rules/axe/4.2/aria-required-attr?application=RuleDescription) | Ensures elements with ARIA roles have all required ARIA attributes | Critical | cat.aria, wcag2a, wcag412 | failure | -| [aria-required-children](https://dequeuniversity.com/rules/axe/4.2/aria-required-children?application=RuleDescription) | Ensures elements with an ARIA role that require child roles contain them | Critical | cat.aria, wcag2a, wcag131 | failure, needs review | -| [aria-required-parent](https://dequeuniversity.com/rules/axe/4.2/aria-required-parent?application=RuleDescription) | Ensures elements with an ARIA role that require parent roles are contained by them | Critical | cat.aria, wcag2a, wcag131 | failure | -| [aria-roledescription](https://dequeuniversity.com/rules/axe/4.2/aria-roledescription?application=RuleDescription) | Ensure aria-roledescription is only used on elements with an implicit or explicit role | Serious | cat.aria, wcag2a, wcag412 | failure, needs review | -| [aria-roles](https://dequeuniversity.com/rules/axe/4.2/aria-roles?application=RuleDescription) | Ensures all elements with a role attribute use a valid value | Serious, Critical | cat.aria, wcag2a, wcag412 | failure | -| [aria-toggle-field-name](https://dequeuniversity.com/rules/axe/4.2/aria-toggle-field-name?application=RuleDescription) | Ensures every ARIA toggle field has an accessible name | Moderate, Serious | cat.aria, wcag2a, wcag412, ACT | failure, needs review | -| [aria-tooltip-name](https://dequeuniversity.com/rules/axe/4.2/aria-tooltip-name?application=RuleDescription) | Ensures every ARIA tooltip node has an accessible name | Serious | cat.aria, wcag2a, wcag412 | failure, needs review | -| [aria-valid-attr-value](https://dequeuniversity.com/rules/axe/4.2/aria-valid-attr-value?application=RuleDescription) | Ensures all ARIA attributes have valid values | Critical | cat.aria, wcag2a, wcag412 | failure, needs review | -| [aria-valid-attr](https://dequeuniversity.com/rules/axe/4.2/aria-valid-attr?application=RuleDescription) | Ensures attributes that begin with aria- are valid ARIA attributes | Critical | cat.aria, wcag2a, wcag412 | failure | -| [audio-caption](https://dequeuniversity.com/rules/axe/4.2/audio-caption?application=RuleDescription) | Ensures <audio> elements have captions | Critical | cat.time-and-media, wcag2a, wcag121, section508, section508.22.a | needs review | -| [blink](https://dequeuniversity.com/rules/axe/4.2/blink?application=RuleDescription) | Ensures <blink> elements are not used | Serious | cat.time-and-media, wcag2a, wcag222, section508, section508.22.j | failure | -| [button-name](https://dequeuniversity.com/rules/axe/4.2/button-name?application=RuleDescription) | Ensures buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, section508, section508.22.a, ACT | failure, needs review | -| [bypass](https://dequeuniversity.com/rules/axe/4.2/bypass?application=RuleDescription) | Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content | Serious | cat.keyboard, wcag2a, wcag241, section508, section508.22.o | failure | -| [color-contrast](https://dequeuniversity.com/rules/axe/4.2/color-contrast?application=RuleDescription) | Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds | Serious | cat.color, wcag2aa, wcag143 | failure, needs review | -| [definition-list](https://dequeuniversity.com/rules/axe/4.2/definition-list?application=RuleDescription) | Ensures <dl> elements are structured correctly | Serious | cat.structure, wcag2a, wcag131 | failure | -| [dlitem](https://dequeuniversity.com/rules/axe/4.2/dlitem?application=RuleDescription) | Ensures <dt> and <dd> elements are contained by a <dl> | Serious | cat.structure, wcag2a, wcag131 | failure | -| [document-title](https://dequeuniversity.com/rules/axe/4.2/document-title?application=RuleDescription) | Ensures each HTML document contains a non-empty <title> element | Serious | cat.text-alternatives, wcag2a, wcag242, ACT | failure | -| [duplicate-id-active](https://dequeuniversity.com/rules/axe/4.2/duplicate-id-active?application=RuleDescription) | Ensures every id attribute value of active elements is unique | Serious | cat.parsing, wcag2a, wcag411 | failure | -| [duplicate-id-aria](https://dequeuniversity.com/rules/axe/4.2/duplicate-id-aria?application=RuleDescription) | Ensures every id attribute value used in ARIA and in labels is unique | Critical | cat.parsing, wcag2a, wcag411 | failure | -| [duplicate-id](https://dequeuniversity.com/rules/axe/4.2/duplicate-id?application=RuleDescription) | Ensures every id attribute value is unique | Minor | cat.parsing, wcag2a, wcag411 | failure | -| [form-field-multiple-labels](https://dequeuniversity.com/rules/axe/4.2/form-field-multiple-labels?application=RuleDescription) | Ensures form field does not have multiple label elements | Moderate | cat.forms, wcag2a, wcag332 | needs review | -| [frame-focusable-content](https://dequeuniversity.com/rules/axe/4.2/frame-focusable-content?application=RuleDescription) | Ensures <frame> and <iframe> elements with tabindex=-1 do not have focusable content | Serious | cat.keyboard, wcag2a, wcag211 | failure, needs review | -| [frame-title](https://dequeuniversity.com/rules/axe/4.2/frame-title?application=RuleDescription) | Ensures <iframe> and <frame> elements have an accessible name | Serious | cat.text-alternatives, wcag2a, wcag241, wcag412, section508, section508.22.i | failure, needs review | -| [html-has-lang](https://dequeuniversity.com/rules/axe/4.2/html-has-lang?application=RuleDescription) | Ensures every HTML document has a lang attribute | Serious | cat.language, wcag2a, wcag311, ACT | failure | -| [html-lang-valid](https://dequeuniversity.com/rules/axe/4.2/html-lang-valid?application=RuleDescription) | Ensures the lang attribute of the <html> element has a valid value | Serious | cat.language, wcag2a, wcag311, ACT | failure | -| [html-xml-lang-mismatch](https://dequeuniversity.com/rules/axe/4.2/html-xml-lang-mismatch?application=RuleDescription) | Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page | Moderate | cat.language, wcag2a, wcag311, ACT | failure | -| [image-alt](https://dequeuniversity.com/rules/axe/4.2/image-alt?application=RuleDescription) | Ensures <img> elements have alternate text or a role of none or presentation | Critical | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | -| [input-button-name](https://dequeuniversity.com/rules/axe/4.2/input-button-name?application=RuleDescription) | Ensures input buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, section508, section508.22.a | failure, needs review | -| [input-image-alt](https://dequeuniversity.com/rules/axe/4.2/input-image-alt?application=RuleDescription) | Ensures <input type="image"> elements have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | -| [label](https://dequeuniversity.com/rules/axe/4.2/label?application=RuleDescription) | Ensures every form element has a label | Minor, Critical | cat.forms, wcag2a, wcag412, wcag131, section508, section508.22.n, ACT | failure, needs review | -| [link-name](https://dequeuniversity.com/rules/axe/4.2/link-name?application=RuleDescription) | Ensures links have discernible text | Serious | cat.name-role-value, wcag2a, wcag412, wcag244, section508, section508.22.a, ACT | failure, needs review | -| [list](https://dequeuniversity.com/rules/axe/4.2/list?application=RuleDescription) | Ensures that lists are structured correctly | Serious | cat.structure, wcag2a, wcag131 | failure | -| [listitem](https://dequeuniversity.com/rules/axe/4.2/listitem?application=RuleDescription) | Ensures <li> elements are used semantically | Serious | cat.structure, wcag2a, wcag131 | failure | -| [marquee](https://dequeuniversity.com/rules/axe/4.2/marquee?application=RuleDescription) | Ensures <marquee> elements are not used | Serious | cat.parsing, wcag2a, wcag222 | failure | -| [meta-refresh](https://dequeuniversity.com/rules/axe/4.2/meta-refresh?application=RuleDescription) | Ensures <meta http-equiv="refresh"> is not used | Critical | cat.time-and-media, wcag2a, wcag2aaa, wcag221, wcag224, wcag325 | failure | -| [nested-interactive](https://dequeuniversity.com/rules/axe/4.2/nested-interactive?application=RuleDescription) | Nested interactive controls are not announced by screen readers | Serious | cat.keyboard, wcag2a, wcag412 | failure, needs review | -| [object-alt](https://dequeuniversity.com/rules/axe/4.2/object-alt?application=RuleDescription) | Ensures <object> elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a | failure, needs review | -| [role-img-alt](https://dequeuniversity.com/rules/axe/4.2/role-img-alt?application=RuleDescription) | Ensures [role='img'] elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | -| [scrollable-region-focusable](https://dequeuniversity.com/rules/axe/4.2/scrollable-region-focusable?application=RuleDescription) | Elements that have scrollable content must be accessible by keyboard | Moderate | cat.keyboard, wcag2a, wcag211 | failure | -| [select-name](https://dequeuniversity.com/rules/axe/4.2/select-name?application=RuleDescription) | Ensures select element has an accessible name | Minor, Critical | cat.forms, wcag2a, wcag412, wcag131, section508, section508.22.n, ACT | failure, needs review | -| [server-side-image-map](https://dequeuniversity.com/rules/axe/4.2/server-side-image-map?application=RuleDescription) | Ensures that server-side image maps are not used | Minor | cat.text-alternatives, wcag2a, wcag211, section508, section508.22.f | needs review | -| [svg-img-alt](https://dequeuniversity.com/rules/axe/4.2/svg-img-alt?application=RuleDescription) | Ensures svg elements with an img, graphics-document or graphics-symbol role have an accessible text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | -| [td-headers-attr](https://dequeuniversity.com/rules/axe/4.2/td-headers-attr?application=RuleDescription) | Ensure that each cell in a table using the headers refers to another cell in that table | Serious | cat.tables, wcag2a, wcag131, section508, section508.22.g | failure, needs review | -| [th-has-data-cells](https://dequeuniversity.com/rules/axe/4.2/th-has-data-cells?application=RuleDescription) | Ensure that each table header in a data table refers to data cells | Serious | cat.tables, wcag2a, wcag131, section508, section508.22.g | failure, needs review | -| [valid-lang](https://dequeuniversity.com/rules/axe/4.2/valid-lang?application=RuleDescription) | Ensures lang attributes have valid values | Serious | cat.language, wcag2aa, wcag312 | failure | -| [video-caption](https://dequeuniversity.com/rules/axe/4.2/video-caption?application=RuleDescription) | Ensures <video> elements have captions | Critical | cat.text-alternatives, wcag2a, wcag122, section508, section508.22.a | needs review | +| Rule ID | Description | Impact | Tags | Issue Type | ACT Rules | +| :------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :---------------- | :----------------------------------------------------------------------------------------- | :------------------------- | :----------------------------------------------------------------------------------------------------- | +| [area-alt](https://dequeuniversity.com/rules/axe/4.2/area-alt?application=RuleDescription) | Ensures <area> elements of image maps have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, wcag244, wcag412, section508, section508.22.a, ACT | failure, needs review | [c487ae](https://act-rules.github.io/rules/c487ae) | +| [aria-allowed-attr](https://dequeuniversity.com/rules/axe/4.2/aria-allowed-attr?application=RuleDescription) | Ensures ARIA attributes are allowed for an element's role | Critical | cat.aria, wcag2a, wcag412 | failure, needs review | [5c01ea](https://act-rules.github.io/rules/5c01ea) | +| [aria-command-name](https://dequeuniversity.com/rules/axe/4.2/aria-command-name?application=RuleDescription) | Ensures every ARIA button, link and menuitem has an accessible name | Serious | cat.aria, wcag2a, wcag412 | failure, needs review | [97a4e1](https://act-rules.github.io/rules/97a4e1) | +| [aria-hidden-body](https://dequeuniversity.com/rules/axe/4.2/aria-hidden-body?application=RuleDescription) | Ensures aria-hidden='true' is not present on the document body. | Critical | cat.aria, wcag2a, wcag412 | failure | | +| [aria-hidden-focus](https://dequeuniversity.com/rules/axe/4.2/aria-hidden-focus?application=RuleDescription) | Ensures aria-hidden elements do not contain focusable elements | Serious | cat.name-role-value, wcag2a, wcag412, wcag131 | failure, needs review | [6cfa84](https://act-rules.github.io/rules/6cfa84) | +| [aria-input-field-name](https://dequeuniversity.com/rules/axe/4.2/aria-input-field-name?application=RuleDescription) | Ensures every ARIA input field has an accessible name | Moderate, Serious | cat.aria, wcag2a, wcag412, ACT | failure, needs review | [e086e5](https://act-rules.github.io/rules/e086e5) | +| [aria-meter-name](https://dequeuniversity.com/rules/axe/4.2/aria-meter-name?application=RuleDescription) | Ensures every ARIA meter node has an accessible name | Serious | cat.aria, wcag2a, wcag111 | failure, needs review | | +| [aria-progressbar-name](https://dequeuniversity.com/rules/axe/4.2/aria-progressbar-name?application=RuleDescription) | Ensures every ARIA progressbar node has an accessible name | Serious | cat.aria, wcag2a, wcag111 | failure, needs review | | +| [aria-required-attr](https://dequeuniversity.com/rules/axe/4.2/aria-required-attr?application=RuleDescription) | Ensures elements with ARIA roles have all required ARIA attributes | Critical | cat.aria, wcag2a, wcag412 | failure | | +| [aria-required-children](https://dequeuniversity.com/rules/axe/4.2/aria-required-children?application=RuleDescription) | Ensures elements with an ARIA role that require child roles contain them | Critical | cat.aria, wcag2a, wcag131 | failure, needs review | [ff89c9](https://act-rules.github.io/rules/ff89c9) | +| [aria-required-parent](https://dequeuniversity.com/rules/axe/4.2/aria-required-parent?application=RuleDescription) | Ensures elements with an ARIA role that require parent roles are contained by them | Critical | cat.aria, wcag2a, wcag131 | failure | [bc4a75](https://act-rules.github.io/rules/bc4a75), [ff89c9](https://act-rules.github.io/rules/ff89c9) | +| [aria-roledescription](https://dequeuniversity.com/rules/axe/4.2/aria-roledescription?application=RuleDescription) | Ensure aria-roledescription is only used on elements with an implicit or explicit role | Serious | cat.aria, wcag2a, wcag412 | failure, needs review | | +| [aria-roles](https://dequeuniversity.com/rules/axe/4.2/aria-roles?application=RuleDescription) | Ensures all elements with a role attribute use a valid value | Serious, Critical | cat.aria, wcag2a, wcag412 | failure | | +| [aria-toggle-field-name](https://dequeuniversity.com/rules/axe/4.2/aria-toggle-field-name?application=RuleDescription) | Ensures every ARIA toggle field has an accessible name | Moderate, Serious | cat.aria, wcag2a, wcag412, ACT | failure, needs review | | +| [aria-tooltip-name](https://dequeuniversity.com/rules/axe/4.2/aria-tooltip-name?application=RuleDescription) | Ensures every ARIA tooltip node has an accessible name | Serious | cat.aria, wcag2a, wcag412 | failure, needs review | | +| [aria-valid-attr-value](https://dequeuniversity.com/rules/axe/4.2/aria-valid-attr-value?application=RuleDescription) | Ensures all ARIA attributes have valid values | Critical | cat.aria, wcag2a, wcag412 | failure, needs review | [5c01ea](https://act-rules.github.io/rules/5c01ea), [c487ae](https://act-rules.github.io/rules/c487ae) | +| [aria-valid-attr](https://dequeuniversity.com/rules/axe/4.2/aria-valid-attr?application=RuleDescription) | Ensures attributes that begin with aria- are valid ARIA attributes | Critical | cat.aria, wcag2a, wcag412 | failure | | +| [audio-caption](https://dequeuniversity.com/rules/axe/4.2/audio-caption?application=RuleDescription) | Ensures <audio> elements have captions | Critical | cat.time-and-media, wcag2a, wcag121, section508, section508.22.a | needs review | [c3232f](https://act-rules.github.io/rules/c3232f), [e7aa44](https://act-rules.github.io/rules/e7aa44) | +| [blink](https://dequeuniversity.com/rules/axe/4.2/blink?application=RuleDescription) | Ensures <blink> elements are not used | Serious | cat.time-and-media, wcag2a, wcag222, section508, section508.22.j | failure | | +| [button-name](https://dequeuniversity.com/rules/axe/4.2/button-name?application=RuleDescription) | Ensures buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, section508, section508.22.a, ACT | failure, needs review | [97a4e1](https://act-rules.github.io/rules/97a4e1), [m6b1q3](https://act-rules.github.io/rules/m6b1q3) | +| [bypass](https://dequeuniversity.com/rules/axe/4.2/bypass?application=RuleDescription) | Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content | Serious | cat.keyboard, wcag2a, wcag241, section508, section508.22.o | failure | | +| [color-contrast](https://dequeuniversity.com/rules/axe/4.2/color-contrast?application=RuleDescription) | Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds | Serious | cat.color, wcag2aa, wcag143 | failure, needs review | | +| [definition-list](https://dequeuniversity.com/rules/axe/4.2/definition-list?application=RuleDescription) | Ensures <dl> elements are structured correctly | Serious | cat.structure, wcag2a, wcag131 | failure | | +| [dlitem](https://dequeuniversity.com/rules/axe/4.2/dlitem?application=RuleDescription) | Ensures <dt> and <dd> elements are contained by a <dl> | Serious | cat.structure, wcag2a, wcag131 | failure | | +| [document-title](https://dequeuniversity.com/rules/axe/4.2/document-title?application=RuleDescription) | Ensures each HTML document contains a non-empty <title> element | Serious | cat.text-alternatives, wcag2a, wcag242, ACT | failure | [2779a5](https://act-rules.github.io/rules/2779a5) | +| [duplicate-id-active](https://dequeuniversity.com/rules/axe/4.2/duplicate-id-active?application=RuleDescription) | Ensures every id attribute value of active elements is unique | Serious | cat.parsing, wcag2a, wcag411 | failure | | +| [duplicate-id-aria](https://dequeuniversity.com/rules/axe/4.2/duplicate-id-aria?application=RuleDescription) | Ensures every id attribute value used in ARIA and in labels is unique | Critical | cat.parsing, wcag2a, wcag411 | failure | [3ea0c8](https://act-rules.github.io/rules/3ea0c8) | +| [duplicate-id](https://dequeuniversity.com/rules/axe/4.2/duplicate-id?application=RuleDescription) | Ensures every id attribute value is unique | Minor | cat.parsing, wcag2a, wcag411 | failure | | +| [form-field-multiple-labels](https://dequeuniversity.com/rules/axe/4.2/form-field-multiple-labels?application=RuleDescription) | Ensures form field does not have multiple label elements | Moderate | cat.forms, wcag2a, wcag332 | needs review | | +| [frame-focusable-content](https://dequeuniversity.com/rules/axe/4.2/frame-focusable-content?application=RuleDescription) | Ensures <frame> and <iframe> elements with focusable content do not have tabindex=-1 | Serious | cat.keyboard, wcag2a, wcag211 | failure, needs review | | +| [frame-title](https://dequeuniversity.com/rules/axe/4.2/frame-title?application=RuleDescription) | Ensures <iframe> and <frame> elements have an accessible name | Serious | cat.text-alternatives, wcag2a, wcag241, wcag412, section508, section508.22.i | failure, needs review | | +| [html-has-lang](https://dequeuniversity.com/rules/axe/4.2/html-has-lang?application=RuleDescription) | Ensures every HTML document has a lang attribute | Serious | cat.language, wcag2a, wcag311, ACT | failure | [b5c3f8](https://act-rules.github.io/rules/b5c3f8) | +| [html-lang-valid](https://dequeuniversity.com/rules/axe/4.2/html-lang-valid?application=RuleDescription) | Ensures the lang attribute of the <html> element has a valid value | Serious | cat.language, wcag2a, wcag311, ACT | failure | [bf051a](https://act-rules.github.io/rules/bf051a) | +| [html-xml-lang-mismatch](https://dequeuniversity.com/rules/axe/4.2/html-xml-lang-mismatch?application=RuleDescription) | Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page | Moderate | cat.language, wcag2a, wcag311, ACT | failure | [5b7ae0](https://act-rules.github.io/rules/5b7ae0) | +| [image-alt](https://dequeuniversity.com/rules/axe/4.2/image-alt?application=RuleDescription) | Ensures <img> elements have alternate text or a role of none or presentation | Critical | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | [23a2a8](https://act-rules.github.io/rules/23a2a8) | +| [input-button-name](https://dequeuniversity.com/rules/axe/4.2/input-button-name?application=RuleDescription) | Ensures input buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, section508, section508.22.a | failure, needs review | | +| [input-image-alt](https://dequeuniversity.com/rules/axe/4.2/input-image-alt?application=RuleDescription) | Ensures <input type="image"> elements have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | [59796f](https://act-rules.github.io/rules/59796f) | +| [label](https://dequeuniversity.com/rules/axe/4.2/label?application=RuleDescription) | Ensures every form element has a label | Minor, Critical | cat.forms, wcag2a, wcag412, wcag131, section508, section508.22.n, ACT | failure, needs review | [e086e5](https://act-rules.github.io/rules/e086e5), [307n5z](https://act-rules.github.io/rules/307n5z) | +| [link-name](https://dequeuniversity.com/rules/axe/4.2/link-name?application=RuleDescription) | Ensures links have discernible text | Serious | cat.name-role-value, wcag2a, wcag412, wcag244, section508, section508.22.a, ACT | failure, needs review | [c487ae](https://act-rules.github.io/rules/c487ae) | +| [list](https://dequeuniversity.com/rules/axe/4.2/list?application=RuleDescription) | Ensures that lists are structured correctly | Serious | cat.structure, wcag2a, wcag131 | failure | | +| [listitem](https://dequeuniversity.com/rules/axe/4.2/listitem?application=RuleDescription) | Ensures <li> elements are used semantically | Serious | cat.structure, wcag2a, wcag131 | failure | | +| [marquee](https://dequeuniversity.com/rules/axe/4.2/marquee?application=RuleDescription) | Ensures <marquee> elements are not used | Serious | cat.parsing, wcag2a, wcag222 | failure | | +| [meta-refresh](https://dequeuniversity.com/rules/axe/4.2/meta-refresh?application=RuleDescription) | Ensures <meta http-equiv="refresh"> is not used | Critical | cat.time-and-media, wcag2a, wcag2aaa, wcag221, wcag224, wcag325 | failure | | +| [nested-interactive](https://dequeuniversity.com/rules/axe/4.2/nested-interactive?application=RuleDescription) | Nested interactive controls are not announced by screen readers | Serious | cat.keyboard, wcag2a, wcag412 | failure, needs review | [307n5z](https://act-rules.github.io/rules/307n5z) | +| [object-alt](https://dequeuniversity.com/rules/axe/4.2/object-alt?application=RuleDescription) | Ensures <object> elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a | failure, needs review | [8fc3b6](https://act-rules.github.io/rules/8fc3b6) | +| [role-img-alt](https://dequeuniversity.com/rules/axe/4.2/role-img-alt?application=RuleDescription) | Ensures [role='img'] elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | [23a2a8](https://act-rules.github.io/rules/23a2a8) | +| [scrollable-region-focusable](https://dequeuniversity.com/rules/axe/4.2/scrollable-region-focusable?application=RuleDescription) | Elements that have scrollable content must be accessible by keyboard | Moderate | cat.keyboard, wcag2a, wcag211 | failure | [0ssw9k](https://act-rules.github.io/rules/0ssw9k) | +| [select-name](https://dequeuniversity.com/rules/axe/4.2/select-name?application=RuleDescription) | Ensures select element has an accessible name | Minor, Critical | cat.forms, wcag2a, wcag412, wcag131, section508, section508.22.n, ACT | failure, needs review | [e086e5](https://act-rules.github.io/rules/e086e5) | +| [server-side-image-map](https://dequeuniversity.com/rules/axe/4.2/server-side-image-map?application=RuleDescription) | Ensures that server-side image maps are not used | Minor | cat.text-alternatives, wcag2a, wcag211, section508, section508.22.f | needs review | | +| [svg-img-alt](https://dequeuniversity.com/rules/axe/4.2/svg-img-alt?application=RuleDescription) | Ensures svg elements with an img, graphics-document or graphics-symbol role have an accessible text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, ACT | failure, needs review | [7d6734](https://act-rules.github.io/rules/7d6734) | +| [td-headers-attr](https://dequeuniversity.com/rules/axe/4.2/td-headers-attr?application=RuleDescription) | Ensure that each cell in a table using the headers refers to another cell in that table | Serious | cat.tables, wcag2a, wcag131, section508, section508.22.g | failure, needs review | [a25f45](https://act-rules.github.io/rules/a25f45) | +| [th-has-data-cells](https://dequeuniversity.com/rules/axe/4.2/th-has-data-cells?application=RuleDescription) | Ensure that each table header in a data table refers to data cells | Serious | cat.tables, wcag2a, wcag131, section508, section508.22.g | failure, needs review | [d0f69e](https://act-rules.github.io/rules/d0f69e) | +| [valid-lang](https://dequeuniversity.com/rules/axe/4.2/valid-lang?application=RuleDescription) | Ensures lang attributes have valid values | Serious | cat.language, wcag2aa, wcag312 | failure | | +| [video-caption](https://dequeuniversity.com/rules/axe/4.2/video-caption?application=RuleDescription) | Ensures <video> elements have captions | Critical | cat.text-alternatives, wcag2a, wcag122, section508, section508.22.a | needs review | [eac66b](https://act-rules.github.io/rules/eac66b) | ## WCAG 2.1 Level A & AA Rules diff --git a/lib/rules/frame-focusable-content.json b/lib/rules/frame-focusable-content.json index dc0b14cb51..e89ab62059 100644 --- a/lib/rules/frame-focusable-content.json +++ b/lib/rules/frame-focusable-content.json @@ -4,8 +4,8 @@ "matches": "frame-focusable-content-matches", "tags": ["cat.keyboard", "wcag2a", "wcag211"], "metadata": { - "description": "Ensures and + +
+ + + + + + diff --git a/test/integration/rules/aria-allowed-attr/passes.json b/test/integration/rules/aria-allowed-attr/passes.json index f95411113f..847c46b66c 100644 --- a/test/integration/rules/aria-allowed-attr/passes.json +++ b/test/integration/rules/aria-allowed-attr/passes.json @@ -82,6 +82,16 @@ ["#pass77"], ["#pass78"], ["#pass79"], - ["#pass80"] + ["#pass80"], + ["#pass81"], + ["#pass82"], + ["#pass83"], + ["#pass84"], + ["#pass85"], + ["#pass86"], + ["#pass87"], + ["#pass88"], + ["#pass89"], + ["#pass90"] ] } From c7ad207a27a27cca622ebddf33bbdd9a2a824b22 Mon Sep 17 00:00:00 2001 From: Steven Lambert Date: Tue, 18 May 2021 10:39:34 -0600 Subject: [PATCH 36/36] chore(release): 4.2.1 --- CHANGELOG.md | 11 +++++++++++ bower.json | 2 +- package-lock.json | 2 +- package.json | 2 +- sri-history.json | 4 ++++ 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 198a2cd930..a6e5d96ce0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ 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.2.1](https://github.com/dequelabs/axe-core/compare/v4.2.0...v4.2.1) (2021-05-18) + +### Bug Fixes + +- **aria-allowed-attr:** pass aria-label on some HTML elements ([#2935](https://github.com/dequelabs/axe-core/issues/2935)) ([695aa77](https://github.com/dequelabs/axe-core/commit/695aa7751246c0e5e786a66df7808faa7a244576)) +- treat input with no role as textbox ([#2929](https://github.com/dequelabs/axe-core/issues/2929)) ([de18030](https://github.com/dequelabs/axe-core/commit/de180307fd876cfc6a1a0bdb828818a323976c81)) +- **autocomplete-appropriate:** pass for autocomplete=username and type=email ([#2896](https://github.com/dequelabs/axe-core/issues/2896)) ([8b478c8](https://github.com/dequelabs/axe-core/commit/8b478c82b3362fc27df8a0087c779327e6a9d6d0)) +- **getStandards:** Read standards from utils ([#2903](https://github.com/dequelabs/axe-core/issues/2903)) ([52ad4c6](https://github.com/dequelabs/axe-core/commit/52ad4c69991e433d413846c4c9778fdd863aebeb)) +- **required-parent:** Allow *item > group > *item nesting ([#2898](https://github.com/dequelabs/axe-core/issues/2898)) ([3acd229](https://github.com/dequelabs/axe-core/commit/3acd229b08b806ea359e7e08e37e8721cddc5290)) +- **types:** make `evaluate` check optional ([#2902](https://github.com/dequelabs/axe-core/issues/2902)) ([75fabfe](https://github.com/dequelabs/axe-core/commit/75fabfef3adeade350902f2dd18928e44fbb7cf4)) + ## [4.2.0](https://github.com/dequelabs/axe-core/compare/v4.1.2...v4.2.0) (2021-04-23) ### Features diff --git a/bower.json b/bower.json index 6488c0bba0..dead2e4fd6 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "axe-core", - "version": "4.2.0", + "version": "4.2.1", "contributors": [ { "name": "David Sturley", diff --git a/package-lock.json b/package-lock.json index c41e81f078..b14d4c7c98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "axe-core", - "version": "4.2.0", + "version": "4.2.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 5dd60a2e1d..d95c650c51 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "axe-core", "description": "Accessibility engine for automated Web UI testing", - "version": "4.2.0", + "version": "4.2.1", "license": "MPL-2.0", "engines": { "node": ">=4" diff --git a/sri-history.json b/sri-history.json index 2a5b2ec908..c1e002e36c 100644 --- a/sri-history.json +++ b/sri-history.json @@ -226,5 +226,9 @@ "4.2.0": { "axe.js": "sha256-RWY2EhLV83s/DmYMCNZM1ZNSVeVWyYMIXosbCvbSvUs=", "axe.min.js": "sha256-DGi+8Cpa4CzwJcmtJI/xUnpEDLfhn6mgyescUhP8W8g=" + }, + "4.2.1": { + "axe.js": "sha256-DK0go8gPzyLAfXpA0r1wKNnpIYqSAtKJx2XkUxw3cp8=", + "axe.min.js": "sha256-GY7NT5JqpkYWliaJ+xXDHf0t5o30jVvEHb5KRVXykXA=" } }