From 2f1ab36354add65fe77be3e2831278ce37c3bbab Mon Sep 17 00:00:00 2001 From: Jey Nandakumar Date: Tue, 15 Oct 2019 20:39:37 +0100 Subject: [PATCH] fix: add tags with dots for wcag sc (#1849) --- doc/rule-descriptions.md | 174 ++++++++++----------- lib/rules/area-alt.json | 1 + lib/rules/aria-allowed-attr.json | 2 +- lib/rules/aria-dpub-role-fallback.json | 2 +- lib/rules/aria-hidden-body.json | 2 +- lib/rules/aria-hidden-focus.json | 9 +- lib/rules/aria-input-field-name.json | 2 +- lib/rules/aria-required-attr.json | 2 +- lib/rules/aria-required-children.json | 2 +- lib/rules/aria-required-parent.json | 2 +- lib/rules/aria-roledescription.json | 2 +- lib/rules/aria-roles.json | 2 +- lib/rules/aria-toggle-field-name.json | 2 +- lib/rules/aria-valid-attr-value.json | 2 +- lib/rules/aria-valid-attr.json | 2 +- lib/rules/audio-caption.json | 1 + lib/rules/autocomplete-valid.json | 2 +- lib/rules/avoid-inline-spacing.json | 2 +- lib/rules/blink.json | 1 + lib/rules/button-name.json | 1 + lib/rules/bypass.json | 1 + lib/rules/color-contrast.json | 2 +- lib/rules/css-orientation-lock.json | 2 +- lib/rules/definition-list.json | 2 +- lib/rules/dlitem.json | 2 +- lib/rules/document-title.json | 2 +- lib/rules/duplicate-id-active.json | 2 +- lib/rules/duplicate-id-aria.json | 2 +- lib/rules/duplicate-id.json | 2 +- lib/rules/form-field-multiple-labels.json | 2 +- lib/rules/frame-title.json | 2 + lib/rules/html-has-lang.json | 2 +- lib/rules/html-lang-valid.json | 2 +- lib/rules/html-xml-lang-mismatch.json | 2 +- lib/rules/image-alt.json | 1 + lib/rules/input-button-name.json | 1 + lib/rules/input-image-alt.json | 1 + lib/rules/label-content-name-mismatch.json | 2 +- lib/rules/label.json | 2 + lib/rules/layout-table.json | 2 +- lib/rules/link-in-text-block.json | 2 +- lib/rules/link-name.json | 2 + lib/rules/list.json | 2 +- lib/rules/listitem.json | 2 +- lib/rules/marquee.json | 2 +- lib/rules/meta-refresh.json | 5 +- lib/rules/meta-viewport.json | 2 +- lib/rules/object-alt.json | 1 + lib/rules/p-as-heading.json | 2 +- lib/rules/role-img-alt.json | 1 + lib/rules/scrollable-region-focusable.json | 2 +- lib/rules/server-side-image-map.json | 1 + lib/rules/table-fake-caption.json | 1 + lib/rules/td-has-header.json | 1 + lib/rules/td-headers-attr.json | 9 +- lib/rules/th-has-data-cells.json | 9 +- lib/rules/valid-lang.json | 2 +- lib/rules/video-caption.json | 1 + lib/rules/video-description.json | 1 + 59 files changed, 172 insertions(+), 127 deletions(-) diff --git a/doc/rule-descriptions.md b/doc/rule-descriptions.md index b6a141ad78..0f4b21f4bd 100644 --- a/doc/rule-descriptions.md +++ b/doc/rule-descriptions.md @@ -1,87 +1,87 @@ -| Rule ID | Description | Impact | Tags | Enabled by default | -| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------- | :------------------------------------------------------------------------------- | :----------------- | -| accesskeys | Ensures every accesskey attribute value is unique | Serious | best-practice, cat.keyboard | true | -| area-alt | Ensures <area> elements of image maps have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a | true | -| aria-allowed-attr | Ensures ARIA attributes are allowed for an element's role | Critical | cat.aria, wcag2a, wcag412 | true | -| aria-allowed-role | Ensures role attribute has an appropriate value for the element | Minor | cat.aria, best-practice | true | -| aria-dpub-role-fallback | Ensures unsupported DPUB roles are only used on elements with implicit fallback roles | Moderate | cat.aria, wcag2a, wcag131 | true | -| aria-hidden-body | Ensures aria-hidden='true' is not present on the document body. | Critical | cat.aria, wcag2a, wcag412 | true | -| aria-hidden-focus | Ensures aria-hidden elements do not contain focusable elements | Serious | cat.name-role-value, wcag2a, wcag412, wcag131 | true | -| aria-input-field-name | Ensures every ARIA input field has an accessible name | Moderate, Serious | wcag2a, wcag412 | true | -| aria-required-attr | Ensures elements with ARIA roles have all required ARIA attributes | Critical | cat.aria, wcag2a, wcag412 | true | -| aria-required-children | Ensures elements with an ARIA role that require child roles contain them | Critical | cat.aria, wcag2a, wcag131 | true | -| aria-required-parent | Ensures elements with an ARIA role that require parent roles are contained by them | Critical | cat.aria, wcag2a, wcag131 | true | -| aria-roledescription | Ensure aria-roledescription is only used on elements with an implicit or explicit role | Serious | cat.aria, wcag2a, wcag412 | true | -| aria-roles | Ensures all elements with a role attribute use a valid value | Serious, Critical | cat.aria, wcag2a, wcag412 | true | -| aria-toggle-field-name | Ensures every ARIA toggle field has an accessible name | Moderate, Serious | wcag2a, wcag412 | true | -| aria-valid-attr-value | Ensures all ARIA attributes have valid values | Critical | cat.aria, wcag2a, wcag412 | true | -| aria-valid-attr | Ensures attributes that begin with aria- are valid ARIA attributes | Critical | cat.aria, wcag2a, wcag412 | true | -| audio-caption | Ensures <audio> elements have captions | Critical | cat.time-and-media, wcag2a, wcag121, section508, section508.22.a | false | -| autocomplete-valid | Ensure the autocomplete attribute is correct and suitable for the form field | Serious | cat.forms, wcag21aa, wcag135 | true | -| avoid-inline-spacing | Ensure that text spacing set through style attributes can be adjusted with custom stylesheets | Serious | wcag21aa, wcag1412 | true | -| blink | Ensures <blink> elements are not used | Serious | cat.time-and-media, wcag2a, wcag222, section508, section508.22.j | true | -| button-name | Ensures buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, section508, section508.22.a | true | -| bypass | 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 | true | -| checkboxgroup | Ensures related <input type="checkbox"> elements have a group and that the group designation is consistent | Critical | cat.forms, best-practice, deprecated | false | -| color-contrast | Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds | Serious | cat.color, wcag2aa, wcag143 | true | -| css-orientation-lock | Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations | Serious | cat.structure, wcag134, wcag21aa, experimental | true | -| definition-list | Ensures <dl> elements are structured correctly | Serious | cat.structure, wcag2a, wcag131 | true | -| dlitem | Ensures <dt> and <dd> elements are contained by a <dl> | Serious | cat.structure, wcag2a, wcag131 | true | -| document-title | Ensures each HTML document contains a non-empty <title> element | Serious | cat.text-alternatives, wcag2a, wcag242 | true | -| duplicate-id-active | Ensures every id attribute value of active elements is unique | Serious | cat.parsing, wcag2a, wcag411 | true | -| duplicate-id-aria | Ensures every id attribute value used in ARIA and in labels is unique | Critical | cat.parsing, wcag2a, wcag411 | true | -| duplicate-id | Ensures every id attribute value is unique | Minor | cat.parsing, wcag2a, wcag411 | true | -| empty-heading | Ensures headings have discernible text | Minor | cat.name-role-value, best-practice | true | -| focus-order-semantics | Ensures elements in the focus order have an appropriate role | Minor | cat.keyboard, best-practice, experimental | true | -| form-field-multiple-labels | Ensures form field does not have multiple label elements | Moderate | cat.forms, wcag2a, wcag332 | true | -| frame-tested | Ensures <iframe> and <frame> elements contain the axe-core script | Critical | cat.structure, review-item, best-practice | true | -| frame-title-unique | Ensures <iframe> and <frame> elements contain a unique title attribute | Serious | cat.text-alternatives, best-practice | true | -| frame-title | Ensures <iframe> and <frame> elements contain a non-empty title attribute | Serious | cat.text-alternatives, wcag2a, wcag241, wcag412, section508, section508.22.i | true | -| heading-order | Ensures the order of headings is semantically correct | Moderate | cat.semantics, best-practice | true | -| hidden-content | Informs users about hidden content. | Minor | cat.structure, experimental, review-item, best-practice | true | -| html-has-lang | Ensures every HTML document has a lang attribute | Serious | cat.language, wcag2a, wcag311 | true | -| html-lang-valid | Ensures the lang attribute of the <html> element has a valid value | Serious | cat.language, wcag2a, wcag311 | true | -| html-xml-lang-mismatch | 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 | true | -| image-alt | Ensures <img> elements have alternate text or a role of none or presentation | Critical | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a | true | -| image-redundant-alt | Ensure image alternative is not repeated as text | Minor | cat.text-alternatives, best-practice | true | -| input-button-name | Ensures input buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, section508, section508.22.a | true | -| input-image-alt | Ensures <input type="image"> elements have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a | true | -| label-content-name-mismatch | Ensures that elements labelled through their content must have their visible text as part of their accessible name | Serious | wcag21a, wcag253, experimental | true | -| label-title-only | Ensures that every form element is not solely labeled using the title or aria-describedby attributes | Serious | cat.forms, best-practice | true | -| label | Ensures every form element has a label | Minor, Critical | cat.forms, wcag2a, wcag332, wcag131, section508, section508.22.n | true | -| landmark-banner-is-top-level | Ensures the banner landmark is at top level | Moderate | cat.semantics, best-practice | true | -| landmark-complementary-is-top-level | Ensures the complementary landmark or aside is at top level | Moderate | cat.semantics, best-practice | true | -| landmark-contentinfo-is-top-level | Ensures the contentinfo landmark is at top level | Moderate | cat.semantics, best-practice | true | -| landmark-main-is-top-level | Ensures the main landmark is at top level | Moderate | cat.semantics, best-practice | true | -| landmark-no-duplicate-banner | Ensures the document has at most one banner landmark | Moderate | cat.semantics, best-practice | true | -| landmark-no-duplicate-contentinfo | Ensures the document has at most one contentinfo landmark | Moderate | cat.semantics, best-practice | true | -| landmark-one-main | Ensures the document has only one main landmark and each iframe in the page has at most one main landmark | Moderate | cat.semantics, best-practice | true | -| landmark-unique | Landmarks must have a unique role or role/label/title (i.e. accessible name) combination | Moderate | cat.semantics, best-practice | true | -| layout-table | Ensures presentational <table> elements do not use <th>, <caption> elements or the summary attribute | Serious | cat.semantics, wcag2a, wcag131 | true | -| link-in-text-block | Links can be distinguished without relying on color | Serious | cat.color, experimental, wcag2a, wcag141 | true | -| link-name | Ensures links have discernible text | Serious | cat.name-role-value, wcag2a, wcag412, wcag244, section508, section508.22.a | true | -| list | Ensures that lists are structured correctly | Serious | cat.structure, wcag2a, wcag131 | true | -| listitem | Ensures <li> elements are used semantically | Serious | cat.structure, wcag2a, wcag131 | true | -| marquee | Ensures <marquee> elements are not used | Serious | cat.parsing, wcag2a, wcag222 | true | -| meta-refresh | Ensures <meta http-equiv="refresh"> is not used | Critical | cat.time-and-media, wcag2a, wcag2aaa, wcag221, wcag224, wcag325 | true | -| meta-viewport-large | Ensures <meta name="viewport"> can scale a significant amount | Minor | cat.sensory-and-visual-cues, best-practice | true | -| meta-viewport | Ensures <meta name="viewport"> does not disable text scaling and zooming | Critical | cat.sensory-and-visual-cues, wcag2aa, wcag144 | true | -| object-alt | Ensures <object> elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a | true | -| p-as-heading | Ensure p elements are not used to style headings | Serious | cat.semantics, wcag2a, wcag131, experimental | true | -| page-has-heading-one | Ensure that the page, or at least one of its frames contains a level-one heading | Moderate | cat.semantics, best-practice | true | -| radiogroup | Ensures related <input type="radio"> elements have a group and that the group designation is consistent | Critical | cat.forms, best-practice, deprecated | false | -| region | Ensures all page content is contained by landmarks | Moderate | cat.keyboard, best-practice | true | -| role-img-alt | Ensures [role='img'] elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, section508, section508.22.a | true | -| scope-attr-valid | Ensures the scope attribute is used correctly on tables | Moderate, Critical | cat.tables, best-practice | true | -| scrollable-region-focusable | Elements that have scrollable content should be accessible by keyboard | Moderate | wcag2a, wcag211 | true | -| server-side-image-map | Ensures that server-side image maps are not used | Minor | cat.text-alternatives, wcag2a, wcag211, section508, section508.22.f | true | -| skip-link | Ensure all skip links have a focusable target | Moderate | cat.keyboard, best-practice | true | -| tabindex | Ensures tabindex attribute values are not greater than 0 | Serious | cat.keyboard, best-practice | true | -| table-duplicate-name | Ensure that tables do not have the same summary and caption | Minor | cat.tables, best-practice | true | -| table-fake-caption | Ensure that tables with a caption use the <caption> element. | Serious | cat.tables, experimental, wcag2a, wcag131, section508, section508.22.g | true | -| td-has-header | Ensure that each non-empty data cell in a large table has one or more table headers | Critical | cat.tables, experimental, wcag2a, wcag131, section508, section508.22.g | true | -| td-headers-attr | 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 | true | -| th-has-data-cells | Ensure that each table header in a data table refers to data cells | Serious | cat.tables, wcag2a, wcag131, section508, section508.22.g | true | -| valid-lang | Ensures lang attributes have valid values | Serious | cat.language, wcag2aa, wcag312 | true | -| video-caption | Ensures <video> elements have captions | Critical | cat.text-alternatives, wcag2a, wcag122, section508, section508.22.a | true | -| video-description | Ensures <video> elements have audio descriptions | Critical | cat.text-alternatives, wcag2aa, wcag125, section508, section508.22.b, deprecated | false | +| Rule ID | Description | Impact | Tags | Enabled by default | +| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------- | :------------------------------------------------------------------------------------------------- | :----------------- | +| accesskeys | Ensures every accesskey attribute value is unique | Serious | best-practice, cat.keyboard | true | +| area-alt | Ensures <area> elements of image maps have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, wcag1.1.1, section508, section508.22.a | true | +| aria-allowed-attr | Ensures ARIA attributes are allowed for an element's role | Critical | cat.aria, wcag2a, wcag412, wcag4.1.2 | true | +| aria-allowed-role | Ensures role attribute has an appropriate value for the element | Minor | cat.aria, best-practice | true | +| aria-dpub-role-fallback | Ensures unsupported DPUB roles are only used on elements with implicit fallback roles | Moderate | cat.aria, wcag2a, wcag131, wcag1.3.1 | true | +| aria-hidden-body | Ensures aria-hidden='true' is not present on the document body. | Critical | cat.aria, wcag2a, wcag412, wcag4.1.2 | true | +| aria-hidden-focus | Ensures aria-hidden elements do not contain focusable elements | Serious | cat.name-role-value, wcag2a, wcag412, wcag4.1.2, wcag131, wcag1.3.1 | true | +| aria-input-field-name | Ensures every ARIA input field has an accessible name | Moderate, Serious | wcag2a, wcag412, wcag4.1.2 | true | +| aria-required-attr | Ensures elements with ARIA roles have all required ARIA attributes | Critical | cat.aria, wcag2a, wcag412, wcag4.1.2 | true | +| aria-required-children | Ensures elements with an ARIA role that require child roles contain them | Critical | cat.aria, wcag2a, wcag131, wcag1.3.1 | true | +| aria-required-parent | Ensures elements with an ARIA role that require parent roles are contained by them | Critical | cat.aria, wcag2a, wcag131, wcag1.3.1 | true | +| aria-roledescription | Ensure aria-roledescription is only used on elements with an implicit or explicit role | Serious | cat.aria, wcag2a, wcag412, wcag4.1.2 | true | +| aria-roles | Ensures all elements with a role attribute use a valid value | Serious, Critical | cat.aria, wcag2a, wcag412, wcag4.1.2 | true | +| aria-toggle-field-name | Ensures every ARIA toggle field has an accessible name | Moderate, Serious | wcag2a, wcag412, wcag4.1.2 | true | +| aria-valid-attr-value | Ensures all ARIA attributes have valid values | Critical | cat.aria, wcag2a, wcag412, wcag4.1.2 | true | +| aria-valid-attr | Ensures attributes that begin with aria- are valid ARIA attributes | Critical | cat.aria, wcag2a, wcag412, wcag4.1.2 | true | +| audio-caption | Ensures <audio> elements have captions | Critical | cat.time-and-media, wcag2a, wcag121, wcag1.2.1, section508, section508.22.a | false | +| autocomplete-valid | Ensure the autocomplete attribute is correct and suitable for the form field | Serious | cat.forms, wcag21aa, wcag135, wcag1.3.5 | true | +| avoid-inline-spacing | Ensure that text spacing set through style attributes can be adjusted with custom stylesheets | Serious | wcag21aa, wcag1412, wcag1.4.12 | true | +| blink | Ensures <blink> elements are not used | Serious | cat.time-and-media, wcag2a, wcag222, wcag2.2.2, section508, section508.22.j | true | +| button-name | Ensures buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, wcag4.1.2, section508, section508.22.a | true | +| bypass | 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, wcag2.4.1, section508, section508.22.o | true | +| checkboxgroup | Ensures related <input type="checkbox"> elements have a group and that the group designation is consistent | Critical | cat.forms, best-practice, deprecated | false | +| color-contrast | Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds | Serious | cat.color, wcag2aa, wcag143, wcag1.4.3 | true | +| css-orientation-lock | Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations | Serious | cat.structure, wcag134, wcag1.3.4, wcag21aa, experimental | true | +| definition-list | Ensures <dl> elements are structured correctly | Serious | cat.structure, wcag2a, wcag131, wcag1.3.1 | true | +| dlitem | Ensures <dt> and <dd> elements are contained by a <dl> | Serious | cat.structure, wcag2a, wcag131, wcag1.3.1 | true | +| document-title | Ensures each HTML document contains a non-empty <title> element | Serious | cat.text-alternatives, wcag2a, wcag242, wcag2.4.2 | true | +| duplicate-id-active | Ensures every id attribute value of active elements is unique | Serious | cat.parsing, wcag2a, wcag411, wcag4.1.1 | true | +| duplicate-id-aria | Ensures every id attribute value used in ARIA and in labels is unique | Critical | cat.parsing, wcag2a, wcag411, wcag4.1.1 | true | +| duplicate-id | Ensures every id attribute value is unique | Minor | cat.parsing, wcag2a, wcag411, wcag4.1.1 | true | +| empty-heading | Ensures headings have discernible text | Minor | cat.name-role-value, best-practice | true | +| focus-order-semantics | Ensures elements in the focus order have an appropriate role | Minor | cat.keyboard, best-practice, experimental | true | +| form-field-multiple-labels | Ensures form field does not have multiple label elements | Moderate | cat.forms, wcag2a, wcag332, wcag3.3.2 | true | +| frame-tested | Ensures <iframe> and <frame> elements contain the axe-core script | Critical | cat.structure, review-item, best-practice | true | +| frame-title-unique | Ensures <iframe> and <frame> elements contain a unique title attribute | Serious | cat.text-alternatives, best-practice | true | +| frame-title | Ensures <iframe> and <frame> elements contain a non-empty title attribute | Serious | cat.text-alternatives, wcag2a, wcag241, wcag2.4.1, wcag412, wcag4.1.2, section508, section508.22.i | true | +| heading-order | Ensures the order of headings is semantically correct | Moderate | cat.semantics, best-practice | true | +| hidden-content | Informs users about hidden content. | Minor | cat.structure, experimental, review-item, best-practice | true | +| html-has-lang | Ensures every HTML document has a lang attribute | Serious | cat.language, wcag2a, wcag311, wcag3.1.1 | true | +| html-lang-valid | Ensures the lang attribute of the <html> element has a valid value | Serious | cat.language, wcag2a, wcag311, wcag3.1.1 | true | +| html-xml-lang-mismatch | 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, wcag3.1.1 | true | +| image-alt | Ensures <img> elements have alternate text or a role of none or presentation | Critical | cat.text-alternatives, wcag2a, wcag111, wcag1.1.1, section508, section508.22.a | true | +| image-redundant-alt | Ensure image alternative is not repeated as text | Minor | cat.text-alternatives, best-practice | true | +| input-button-name | Ensures input buttons have discernible text | Critical | cat.name-role-value, wcag2a, wcag412, wcag4.1.2, section508, section508.22.a | true | +| input-image-alt | Ensures <input type="image"> elements have alternate text | Critical | cat.text-alternatives, wcag2a, wcag111, wcag1.1.1, section508, section508.22.a | true | +| label-content-name-mismatch | Ensures that elements labelled through their content must have their visible text as part of their accessible name | Serious | wcag21a, wcag253, wcag2.5.3, experimental | true | +| label-title-only | Ensures that every form element is not solely labeled using the title or aria-describedby attributes | Serious | cat.forms, best-practice | true | +| label | Ensures every form element has a label | Minor, Critical | cat.forms, wcag2a, wcag332, wcag3.3.2, wcag131, wcag1.3.1, section508, section508.22.n | true | +| landmark-banner-is-top-level | Ensures the banner landmark is at top level | Moderate | cat.semantics, best-practice | true | +| landmark-complementary-is-top-level | Ensures the complementary landmark or aside is at top level | Moderate | cat.semantics, best-practice | true | +| landmark-contentinfo-is-top-level | Ensures the contentinfo landmark is at top level | Moderate | cat.semantics, best-practice | true | +| landmark-main-is-top-level | Ensures the main landmark is at top level | Moderate | cat.semantics, best-practice | true | +| landmark-no-duplicate-banner | Ensures the document has at most one banner landmark | Moderate | cat.semantics, best-practice | true | +| landmark-no-duplicate-contentinfo | Ensures the document has at most one contentinfo landmark | Moderate | cat.semantics, best-practice | true | +| landmark-one-main | Ensures the document has only one main landmark and each iframe in the page has at most one main landmark | Moderate | cat.semantics, best-practice | true | +| landmark-unique | Landmarks must have a unique role or role/label/title (i.e. accessible name) combination | Moderate | cat.semantics, best-practice | true | +| layout-table | Ensures presentational <table> elements do not use <th>, <caption> elements or the summary attribute | Serious | cat.semantics, wcag2a, wcag131, wcag1.3.1 | true | +| link-in-text-block | Links can be distinguished without relying on color | Serious | cat.color, experimental, wcag2a, wcag141, wcag1.4.1 | true | +| link-name | Ensures links have discernible text | Serious | cat.name-role-value, wcag2a, wcag412, wcag4.1.2, wcag244, wcag2.4.4, section508, section508.22.a | true | +| list | Ensures that lists are structured correctly | Serious | cat.structure, wcag2a, wcag131, wcag1.3.1 | true | +| listitem | Ensures <li> elements are used semantically | Serious | cat.structure, wcag2a, wcag131, wcag1.3.1 | true | +| marquee | Ensures <marquee> elements are not used | Serious | cat.parsing, wcag2a, wcag222, wcag2.2.2 | true | +| meta-refresh | Ensures <meta http-equiv="refresh"> is not used | Critical | cat.time-and-media, wcag2a, wcag2aaa, wcag221, wcag2.2.1, wcag224, wcag2.2.4, wcag325, wcag3.2.5 | true | +| meta-viewport-large | Ensures <meta name="viewport"> can scale a significant amount | Minor | cat.sensory-and-visual-cues, best-practice | true | +| meta-viewport | Ensures <meta name="viewport"> does not disable text scaling and zooming | Critical | cat.sensory-and-visual-cues, wcag2aa, wcag144, wcag1.4.4 | true | +| object-alt | Ensures <object> elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, wcag1.1.1, section508, section508.22.a | true | +| p-as-heading | Ensure p elements are not used to style headings | Serious | cat.semantics, wcag2a, wcag131, wcag1.3.1, experimental | true | +| page-has-heading-one | Ensure that the page, or at least one of its frames contains a level-one heading | Moderate | cat.semantics, best-practice | true | +| radiogroup | Ensures related <input type="radio"> elements have a group and that the group designation is consistent | Critical | cat.forms, best-practice, deprecated | false | +| region | Ensures all page content is contained by landmarks | Moderate | cat.keyboard, best-practice | true | +| role-img-alt | Ensures [role='img'] elements have alternate text | Serious | cat.text-alternatives, wcag2a, wcag111, wcag1.1.1, section508, section508.22.a | true | +| scope-attr-valid | Ensures the scope attribute is used correctly on tables | Moderate, Critical | cat.tables, best-practice | true | +| scrollable-region-focusable | Elements that have scrollable content should be accessible by keyboard | Moderate | wcag2a, wcag211, wcag2.1.1 | true | +| server-side-image-map | Ensures that server-side image maps are not used | Minor | cat.text-alternatives, wcag2a, wcag211, wcag2.1.1, section508, section508.22.f | true | +| skip-link | Ensure all skip links have a focusable target | Moderate | cat.keyboard, best-practice | true | +| tabindex | Ensures tabindex attribute values are not greater than 0 | Serious | cat.keyboard, best-practice | true | +| table-duplicate-name | Ensure that tables do not have the same summary and caption | Minor | cat.tables, best-practice | true | +| table-fake-caption | Ensure that tables with a caption use the <caption> element. | Serious | cat.tables, experimental, wcag2a, wcag131, wcag1.3.1, section508, section508.22.g | true | +| td-has-header | Ensure that each non-empty data cell in a large table has one or more table headers | Critical | cat.tables, experimental, wcag2a, wcag131, wcag1.3.1, section508, section508.22.g | true | +| td-headers-attr | Ensure that each cell in a table using the headers refers to another cell in that table | Serious | cat.tables, wcag2a, wcag131, wcag1.3.1, section508, section508.22.g | true | +| th-has-data-cells | Ensure that each table header in a data table refers to data cells | Serious | cat.tables, wcag2a, wcag131, wcag1.3.1, section508, section508.22.g | true | +| valid-lang | Ensures lang attributes have valid values | Serious | cat.language, wcag2aa, wcag312, wcag3.1.2 | true | +| video-caption | Ensures <video> elements have captions | Critical | cat.text-alternatives, wcag2a, wcag122, wcag1.2.2, section508, section508.22.a | true | +| video-description | Ensures <video> elements have audio descriptions | Critical | cat.text-alternatives, wcag2aa, wcag125, wcag1.2.5, section508, section508.22.b, deprecated | false | diff --git a/lib/rules/area-alt.json b/lib/rules/area-alt.json index 0983b6d523..1e6a34ec3e 100644 --- a/lib/rules/area-alt.json +++ b/lib/rules/area-alt.json @@ -6,6 +6,7 @@ "cat.text-alternatives", "wcag2a", "wcag111", + "wcag1.1.1", "section508", "section508.22.a" ], diff --git a/lib/rules/aria-allowed-attr.json b/lib/rules/aria-allowed-attr.json index bb7d95a690..ef811cffe3 100644 --- a/lib/rules/aria-allowed-attr.json +++ b/lib/rules/aria-allowed-attr.json @@ -1,7 +1,7 @@ { "id": "aria-allowed-attr", "matches": "aria-allowed-attr-matches.js", - "tags": ["cat.aria", "wcag2a", "wcag412"], + "tags": ["cat.aria", "wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures ARIA attributes are allowed for an element's role", "help": "Elements must only use allowed ARIA attributes" diff --git a/lib/rules/aria-dpub-role-fallback.json b/lib/rules/aria-dpub-role-fallback.json index e5146ab0f8..ae8f551d4c 100644 --- a/lib/rules/aria-dpub-role-fallback.json +++ b/lib/rules/aria-dpub-role-fallback.json @@ -2,7 +2,7 @@ "id": "aria-dpub-role-fallback", "selector": "[role]", "matches": "aria-dpub-role-fallback-matches.js", - "tags": ["cat.aria", "wcag2a", "wcag131"], + "tags": ["cat.aria", "wcag2a", "wcag131", "wcag1.3.1"], "metadata": { "description": "Ensures unsupported DPUB roles are only used on elements with implicit fallback roles", "help": "Unsupported DPUB ARIA roles should be used on elements with implicit fallback roles" diff --git a/lib/rules/aria-hidden-body.json b/lib/rules/aria-hidden-body.json index 72691866d7..a643eb15f1 100644 --- a/lib/rules/aria-hidden-body.json +++ b/lib/rules/aria-hidden-body.json @@ -2,7 +2,7 @@ "id": "aria-hidden-body", "selector": "body", "excludeHidden": false, - "tags": ["cat.aria", "wcag2a", "wcag412"], + "tags": ["cat.aria", "wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures aria-hidden='true' is not present on the document body.", "help": "aria-hidden='true' must not be present on the document body" diff --git a/lib/rules/aria-hidden-focus.json b/lib/rules/aria-hidden-focus.json index 4d3460eada..0a39014311 100755 --- a/lib/rules/aria-hidden-focus.json +++ b/lib/rules/aria-hidden-focus.json @@ -3,7 +3,14 @@ "selector": "[aria-hidden=\"true\"]", "matches": "aria-hidden-focus-matches.js", "excludeHidden": false, - "tags": ["cat.name-role-value", "wcag2a", "wcag412", "wcag131"], + "tags": [ + "cat.name-role-value", + "wcag2a", + "wcag412", + "wcag4.1.2", + "wcag131", + "wcag1.3.1" + ], "metadata": { "description": "Ensures aria-hidden elements do not contain focusable elements", "help": "ARIA hidden element must not contain focusable elements" diff --git a/lib/rules/aria-input-field-name.json b/lib/rules/aria-input-field-name.json index b41f1ee5cf..423045f098 100644 --- a/lib/rules/aria-input-field-name.json +++ b/lib/rules/aria-input-field-name.json @@ -2,7 +2,7 @@ "id": "aria-input-field-name", "selector": "[role=\"combobox\"], [role=\"listbox\"], [role=\"searchbox\"], [role=\"slider\"], [role=\"spinbutton\"], [role=\"textbox\"]", "matches": "aria-form-field-name-matches.js", - "tags": ["wcag2a", "wcag412"], + "tags": ["wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures every ARIA input field has an accessible name", "help": "ARIA input fields have an accessible name" diff --git a/lib/rules/aria-required-attr.json b/lib/rules/aria-required-attr.json index dcc584a1d4..262189982d 100644 --- a/lib/rules/aria-required-attr.json +++ b/lib/rules/aria-required-attr.json @@ -1,7 +1,7 @@ { "id": "aria-required-attr", "selector": "[role]", - "tags": ["cat.aria", "wcag2a", "wcag412"], + "tags": ["cat.aria", "wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures elements with ARIA roles have all required ARIA attributes", "help": "Required ARIA attributes must be provided" diff --git a/lib/rules/aria-required-children.json b/lib/rules/aria-required-children.json index fc672acb44..ce4a4560a1 100644 --- a/lib/rules/aria-required-children.json +++ b/lib/rules/aria-required-children.json @@ -1,7 +1,7 @@ { "id": "aria-required-children", "selector": "[role]", - "tags": ["cat.aria", "wcag2a", "wcag131"], + "tags": ["cat.aria", "wcag2a", "wcag131", "wcag1.3.1"], "metadata": { "description": "Ensures elements with an ARIA role that require child roles contain them", "help": "Certain ARIA roles must contain particular children" diff --git a/lib/rules/aria-required-parent.json b/lib/rules/aria-required-parent.json index 4db0acf1e5..e8697068b6 100644 --- a/lib/rules/aria-required-parent.json +++ b/lib/rules/aria-required-parent.json @@ -1,7 +1,7 @@ { "id": "aria-required-parent", "selector": "[role]", - "tags": ["cat.aria", "wcag2a", "wcag131"], + "tags": ["cat.aria", "wcag2a", "wcag131", "wcag1.3.1"], "metadata": { "description": "Ensures elements with an ARIA role that require parent roles are contained by them", "help": "Certain ARIA roles must be contained by particular parents" diff --git a/lib/rules/aria-roledescription.json b/lib/rules/aria-roledescription.json index d154121c5c..5027e4730b 100644 --- a/lib/rules/aria-roledescription.json +++ b/lib/rules/aria-roledescription.json @@ -1,7 +1,7 @@ { "id": "aria-roledescription", "selector": "[aria-roledescription]", - "tags": ["cat.aria", "wcag2a", "wcag412"], + "tags": ["cat.aria", "wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensure aria-roledescription is only used on elements with an implicit or explicit role", "help": "Use aria-roledescription on elements with a semantic role" diff --git a/lib/rules/aria-roles.json b/lib/rules/aria-roles.json index 3cf92ef149..6c7e455c47 100644 --- a/lib/rules/aria-roles.json +++ b/lib/rules/aria-roles.json @@ -1,7 +1,7 @@ { "id": "aria-roles", "selector": "[role]", - "tags": ["cat.aria", "wcag2a", "wcag412"], + "tags": ["cat.aria", "wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures all elements with a role attribute use a valid value", "help": "ARIA roles used must conform to valid values" diff --git a/lib/rules/aria-toggle-field-name.json b/lib/rules/aria-toggle-field-name.json index 14829b6186..aba8558db5 100644 --- a/lib/rules/aria-toggle-field-name.json +++ b/lib/rules/aria-toggle-field-name.json @@ -2,7 +2,7 @@ "id": "aria-toggle-field-name", "selector": "[role=\"checkbox\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"], [role=\"radio\"], [role=\"switch\"]", "matches": "aria-form-field-name-matches.js", - "tags": ["wcag2a", "wcag412"], + "tags": ["wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures every ARIA toggle field has an accessible name", "help": "ARIA toggle fields have an accessible name" diff --git a/lib/rules/aria-valid-attr-value.json b/lib/rules/aria-valid-attr-value.json index 68cd93e773..a0648d1ce4 100644 --- a/lib/rules/aria-valid-attr-value.json +++ b/lib/rules/aria-valid-attr-value.json @@ -1,7 +1,7 @@ { "id": "aria-valid-attr-value", "matches": "aria-has-attr-matches.js", - "tags": ["cat.aria", "wcag2a", "wcag412"], + "tags": ["cat.aria", "wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures all ARIA attributes have valid values", "help": "ARIA attributes must conform to valid values" diff --git a/lib/rules/aria-valid-attr.json b/lib/rules/aria-valid-attr.json index ff42f6d51a..8ba47d0e37 100644 --- a/lib/rules/aria-valid-attr.json +++ b/lib/rules/aria-valid-attr.json @@ -1,7 +1,7 @@ { "id": "aria-valid-attr", "matches": "aria-has-attr-matches.js", - "tags": ["cat.aria", "wcag2a", "wcag412"], + "tags": ["cat.aria", "wcag2a", "wcag412", "wcag4.1.2"], "metadata": { "description": "Ensures attributes that begin with aria- are valid ARIA attributes", "help": "ARIA attributes must conform to valid names" diff --git a/lib/rules/audio-caption.json b/lib/rules/audio-caption.json index 512bb11067..e4acc4cfcb 100644 --- a/lib/rules/audio-caption.json +++ b/lib/rules/audio-caption.json @@ -7,6 +7,7 @@ "cat.time-and-media", "wcag2a", "wcag121", + "wcag1.2.1", "section508", "section508.22.a" ], diff --git a/lib/rules/autocomplete-valid.json b/lib/rules/autocomplete-valid.json index c61fdc7aa7..c0698fdc23 100644 --- a/lib/rules/autocomplete-valid.json +++ b/lib/rules/autocomplete-valid.json @@ -1,7 +1,7 @@ { "id": "autocomplete-valid", "matches": "autocomplete-matches.js", - "tags": ["cat.forms", "wcag21aa", "wcag135"], + "tags": ["cat.forms", "wcag21aa", "wcag135", "wcag1.3.5"], "metadata": { "description": "Ensure the autocomplete attribute is correct and suitable for the form field", "help": "autocomplete attribute must be used correctly" diff --git a/lib/rules/avoid-inline-spacing.json b/lib/rules/avoid-inline-spacing.json index 5c55631b1e..53d418307e 100644 --- a/lib/rules/avoid-inline-spacing.json +++ b/lib/rules/avoid-inline-spacing.json @@ -1,7 +1,7 @@ { "id": "avoid-inline-spacing", "selector": "[style]", - "tags": ["wcag21aa", "wcag1412"], + "tags": ["wcag21aa", "wcag1412", "wcag1.4.12"], "metadata": { "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets", "help": "Inline text spacing must be adjustable with custom stylesheets" diff --git a/lib/rules/blink.json b/lib/rules/blink.json index 36744ef63b..0d23e0d25a 100644 --- a/lib/rules/blink.json +++ b/lib/rules/blink.json @@ -6,6 +6,7 @@ "cat.time-and-media", "wcag2a", "wcag222", + "wcag2.2.2", "section508", "section508.22.j" ], diff --git a/lib/rules/button-name.json b/lib/rules/button-name.json index 826a3da068..f57262f3b5 100644 --- a/lib/rules/button-name.json +++ b/lib/rules/button-name.json @@ -5,6 +5,7 @@ "cat.name-role-value", "wcag2a", "wcag412", + "wcag4.1.2", "section508", "section508.22.a" ], diff --git a/lib/rules/bypass.json b/lib/rules/bypass.json index c140f5a730..a66f3e53d4 100644 --- a/lib/rules/bypass.json +++ b/lib/rules/bypass.json @@ -7,6 +7,7 @@ "cat.keyboard", "wcag2a", "wcag241", + "wcag2.4.1", "section508", "section508.22.o" ], diff --git a/lib/rules/color-contrast.json b/lib/rules/color-contrast.json index f09e6f4672..e65723376b 100644 --- a/lib/rules/color-contrast.json +++ b/lib/rules/color-contrast.json @@ -5,7 +5,7 @@ "options": { "noScroll": false }, - "tags": ["cat.color", "wcag2aa", "wcag143"], + "tags": ["cat.color", "wcag2aa", "wcag143", "wcag1.4.3"], "metadata": { "description": "Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds", "help": "Elements must have sufficient color contrast" diff --git a/lib/rules/css-orientation-lock.json b/lib/rules/css-orientation-lock.json index 53686ea8b3..ca9f557eaf 100644 --- a/lib/rules/css-orientation-lock.json +++ b/lib/rules/css-orientation-lock.json @@ -1,7 +1,7 @@ { "id": "css-orientation-lock", "selector": "html", - "tags": ["cat.structure", "wcag134", "wcag21aa", "experimental"], + "tags": ["cat.structure", "wcag134", "wcag1.3.4", "wcag21aa", "experimental"], "metadata": { "description": "Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations", "help": "CSS Media queries are not used to lock display orientation" diff --git a/lib/rules/definition-list.json b/lib/rules/definition-list.json index a0b429ee74..094bcc88e6 100644 --- a/lib/rules/definition-list.json +++ b/lib/rules/definition-list.json @@ -2,7 +2,7 @@ "id": "definition-list", "selector": "dl", "matches": "no-role-matches.js", - "tags": ["cat.structure", "wcag2a", "wcag131"], + "tags": ["cat.structure", "wcag2a", "wcag131", "wcag1.3.1"], "metadata": { "description": "Ensures
elements are structured correctly", "help": "
elements must only directly contain properly-ordered
and
groups,