From 5f48d0eef6c0792a57b54cbeb2c055e5a80a7985 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Tue, 16 May 2023 15:00:52 +0200 Subject: [PATCH 01/14] Move secondary requirement texts out of the background --- _rules/meta-refresh-no-delay-no-exception-bisz58.md | 4 +--- _rules/text-contrast-afw4f7.md | 8 +------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/_rules/meta-refresh-no-delay-no-exception-bisz58.md b/_rules/meta-refresh-no-delay-no-exception-bisz58.md index dbd1a5b76f..4bdc5414db 100755 --- a/_rules/meta-refresh-no-delay-no-exception-bisz58.md +++ b/_rules/meta-refresh-no-delay-no-exception-bisz58.md @@ -26,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.2.1: # Timing Adjustable (A) - secondary: True + secondary: Because it allows no exceptions, this rule is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. input_aspects: - DOM Tree acknowledgments: @@ -63,8 +63,6 @@ Not all major web browsers parse the value of the `content` attribute in the sam Because a refresh with a timing of 0 is effectively a redirect, it is exempt from this rule. Since refreshing the same page with a time of 0 can cause rapid screen flashes it is strongly recommended to avoid this. -This rule is closely related to [success criterion 2.2.1 Time Adjustable][sc221]. Because this rule is stricter, `meta` elements that pass this rule satisfy 2.1.1 Time Adjustable. - ### Bibliography - [Understanding Success Criterion 2.2.1: Timing Adjustable](https://www.w3.org/WAI/WCAG21/Understanding/timing-adjustable.html) diff --git a/_rules/text-contrast-afw4f7.md b/_rules/text-contrast-afw4f7.md index 43b74d6937..de21879708 100755 --- a/_rules/text-contrast-afw4f7.md +++ b/_rules/text-contrast-afw4f7.md @@ -11,11 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.4.6: # Contrast (Enhanced) (AAA) - forConformance: true - secondary: true - failed: not satisfied - passed: further testing needed - inapplicable: further testing needed + secondary: Because it has a higher minimum contrast, this success criterion is stricter than the rule. This is also why some passed examples do not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree @@ -59,8 +55,6 @@ For each test target, the [highest possible contrast][] between the [foreground Passing this rule does not mean that the text has sufficient color contrast. If all background pixels have a low contrast with all foreground pixels, the success criterion is guaranteed to not be satisfied. When some pixels have sufficient contrast, and others do not, legibility should be considered. There is no clear method for determining legibility, which is why this is out of scope for this rule. -This rule is designed specifically for [1.4.3 Contrast (Minimum)][sc143], which has the expected contrast ratio of 4.5:1 (or 3:1 for large text). Because text that fails a contrast ratio of 4.5:1 also fails a contrast ratio of 7:1, this rule maps to [1.4.6 Contrast (Enhanced)][sc146] as well. In order to adequately test the [expectation](#expectation), some of the passed examples do not satisfy [1.4.6 Contrast (Enhanced)][sc146]. - When the text color or background color is not specified in the web page, colors from other [origins][] will be used. Testers must ensure colors are not affected by styles from a [user origin][], such as a custom style sheet. Contrast issues caused by specifying the text color but not the background or vice versa, must be tested separately from this rule. ### Bibliography From 0ad26ef28f1f3df22daf693c98bebac2a7d8e5ac Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Wed, 17 May 2023 11:06:25 +0200 Subject: [PATCH 02/14] Apply suggestions from code review --- _rules/meta-refresh-no-delay-no-exception-bisz58.md | 2 +- _rules/text-contrast-afw4f7.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_rules/meta-refresh-no-delay-no-exception-bisz58.md b/_rules/meta-refresh-no-delay-no-exception-bisz58.md index 4bdc5414db..5b45841c73 100755 --- a/_rules/meta-refresh-no-delay-no-exception-bisz58.md +++ b/_rules/meta-refresh-no-delay-no-exception-bisz58.md @@ -26,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.2.1: # Timing Adjustable (A) - secondary: Because it allows no exceptions, this rule is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: Because this rule allows no exceptions, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/text-contrast-afw4f7.md b/_rules/text-contrast-afw4f7.md index de21879708..1374b9560c 100755 --- a/_rules/text-contrast-afw4f7.md +++ b/_rules/text-contrast-afw4f7.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.4.6: # Contrast (Enhanced) (AAA) - secondary: Because it has a higher minimum contrast, this success criterion is stricter than the rule. This is also why some passed examples do not satisfy this success criterion. + secondary: Because this success criterion has a higher minimum contrast, it is stricter than the rule. This is also why some passed examples do not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree From 2024439e8aa47ce0771e00d93f71d565fdd850a8 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 18 May 2023 11:48:53 +0200 Subject: [PATCH 03/14] fix test --- __tests__/frontmatter.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/__tests__/frontmatter.js b/__tests__/frontmatter.js index c93cfd3b8d..5dabe16ef3 100644 --- a/__tests__/frontmatter.js +++ b/__tests__/frontmatter.js @@ -96,7 +96,8 @@ function validateRuleFrontmatter({ frontmatter }, metaData) { const accRequirementValues = Object.values(accessibility_requirements) test.each(accRequirementValues)('has expected keys for accessibility requirement: `%p`', accReq => { if (accReq.secondary) { - expect(accReq.secondary).toBeTrue() + // Note; empty strings & false won't get here, and so aren't allowed + expect(['string', 'boolean']).toContain(typeof accReq.secondary) return } From 6f1574a49b625779ca5a78d5106050235d28fb5d Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 18 May 2023 11:58:13 +0200 Subject: [PATCH 04/14] Fix failing test --- _rules/text-contrast-afw4f7.md | 1 - 1 file changed, 1 deletion(-) diff --git a/_rules/text-contrast-afw4f7.md b/_rules/text-contrast-afw4f7.md index 1374b9560c..b761fba153 100755 --- a/_rules/text-contrast-afw4f7.md +++ b/_rules/text-contrast-afw4f7.md @@ -431,7 +431,6 @@ This text is part of a [disabled][] widget because it is a child of an element w [purely decorative]: https://www.w3.org/TR/WCAG21/#dfn-pure-decoration 'WCAG 2.1, Purely decorative' [text node]: https://dom.spec.whatwg.org/#text 'DOM, text node, 2020/07/23' [sc143]: https://www.w3.org/TR/WCAG21/#contrast-minimum 'WCAG 2.1, Success criterion 1.4.3 Contrast (Minimum)' -[sc146]: https://www.w3.org/TR/WCAG21/#contrast-enhanced 'WCAG 2.1, Success criterion 1.4.6 Contrast (Enhanced)' [semantic role]: #semantic-role 'Definition of Semantic Role' [inheriting semantic]: #inheriting-semantic 'Definition of Inheriting Semantic Role' [user origin]: https://www.w3.org/TR/css3-cascade/#cascade-origin-user 'CSS 3, user origin' From 9d0892fce5d266a385e8a92b2333fa1fd9c2111b Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 25 May 2023 13:23:12 +0200 Subject: [PATCH 05/14] Secondary reqs on ARIA rules --- _rules/aria-attr-defined-5f99a7.md | 6 +++--- _rules/aria-state-or-property-permitted-5c01ea.md | 6 +++--- _rules/aria-state-or-property-valid-value-6a7281.md | 6 +++--- _rules/role-attribute-valid-value-674b10.md | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/_rules/aria-attr-defined-5f99a7.md b/_rules/aria-attr-defined-5f99a7.md index 15f509a74b..ac68ccd48a 100755 --- a/_rules/aria-attr-defined-5f99a7.md +++ b/_rules/aria-attr-defined-5f99a7.md @@ -6,9 +6,9 @@ description: | This rule checks that each `aria-` attribute specified is defined in ARIA 1.2. accessibility_requirements: wcag20:1.3.1: # Info and Relationships (A) - secondary: true + secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. wcag20:4.1.2: # Name, Role, Value (A) - secondary: true + secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. input_aspects: - DOM Tree acknowledgments: @@ -36,7 +36,7 @@ There are no accessibility support issues known. ## Background -The presence of unknown ARIA attributes is often the result of a typo or other developer error. These attributes are ignored by browsers and other assistive technologies. This often means that a state or property which should exist is missing. This can cause issues under [success criterion 1.3.1 Info and Relationships][sc131] or [4.1.2 Name, Rule Value][sc412]. +The presence of unknown ARIA attributes is often the result of a typo or other developer error. These attributes are ignored by browsers and other assistive technologies. This often means that a state or property which should exist is missing. ### Bibliography diff --git a/_rules/aria-state-or-property-permitted-5c01ea.md b/_rules/aria-state-or-property-permitted-5c01ea.md index 7236fe6e05..6a84a3212e 100755 --- a/_rules/aria-state-or-property-permitted-5c01ea.md +++ b/_rules/aria-state-or-property-permitted-5c01ea.md @@ -17,9 +17,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: true + secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. wcag20:4.1.2: # Name, Role, Value (A) - secondary: true + secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. input_aspects: - Accessibility Tree - CSS styling @@ -60,7 +60,7 @@ Implementation of [Presentational Roles Conflict Resolution][] varies from one b ## Background -The presence of prohibited ARIA attributes is often the result of a developer using an incorrect role, or a misunderstanding of the attribute. These attributes are ignored by browsers and other assistive technologies. This often means that a state or property which should exist is missing. This can cause issues under [success criterion 1.3.1 Info and Relationships][sc131] or [4.1.2 Name, Rule Value][sc412]. +The presence of prohibited ARIA attributes is often the result of a developer using an incorrect role, or a misunderstanding of the attribute. These attributes are ignored by browsers and other assistive technologies. This often means that a state or property which should exist is missing. In HTML, there are language features that do not have corresponding implicit WAI-ARIA semantics. As per [ARIA in HTML](https://www.w3.org/TR/html-aria/), those elements can have [global states or properties][global]. Some of those elements can also have [inherited][], [supported][], or [required][] [states][state] or [properties][property] that correspond to a [WAI-ARIA role](https://www.w3.org/TR/wai-aria-1.2/#introroles). For example, the `audio` element has no corresponding ARIA semantics but it can have [inherited][], [supported][], or [required][] [states][state] or [properties][property] of the [`application` role](https://www.w3.org/TR/wai-aria-1.2/#application). diff --git a/_rules/aria-state-or-property-valid-value-6a7281.md b/_rules/aria-state-or-property-valid-value-6a7281.md index aaab1b0ed1..9b7b438f14 100755 --- a/_rules/aria-state-or-property-valid-value-6a7281.md +++ b/_rules/aria-state-or-property-valid-value-6a7281.md @@ -12,9 +12,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: true + secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. wcag20:4.1.2: # Name, Role, Value (A) - secondary: true + secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. input_aspects: - DOM Tree - CSS Styling @@ -46,7 +46,7 @@ Some user agents treat the value of `aria-*` attribute as case-sensitive (even w ## Background -Using invalid ARIA attribute values is often the result of a typo or other developer error. These attributes are then either ignored, or a default value is assumed by browsers and assistive technologies. This often means that a state or property which should exist is missing or has an unexpected value. This can cause issues under [success criterion 1.3.1 Info and Relationships][sc131] or [4.1.2 Name, Rule Value][sc412]. If the default value for invalid attribute values happens to match the author's intention for the value, there will not be an accessibility issue. +Using invalid ARIA attribute values is often the result of a typo or other developer error. These attributes are then either ignored, or a default value is assumed by browsers and assistive technologies. This often means that a state or property which should exist is missing or has an unexpected value. If the default value for invalid attribute values happens to match the author's intention for the value, there will not be an accessibility issue. This rule does not require the target of an `ID Reference` to exist. This is because referencing an element that does not exist, and not having the reference at all has the same end result. A common use case for using `ID Reference` for a non-existing ID is to use a static `aria-errormessage` on an `input` element, and to only insert the element with the error message if there is an actual error. There are some cases in which ID references are required. These are tested in a separate rule. diff --git a/_rules/role-attribute-valid-value-674b10.md b/_rules/role-attribute-valid-value-674b10.md index 54acdc4ba1..5c0f533103 100755 --- a/_rules/role-attribute-valid-value-674b10.md +++ b/_rules/role-attribute-valid-value-674b10.md @@ -16,9 +16,9 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.3.1: # Info and Relationship (A) - secondary: true + secondary: Because this rule does not ignore elements that do not require a role attribute, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. wcag20:4.1.2: # Name, Role, Value (A) - secondary: true + secondary: Because this rule does not ignore elements that do not require a role attribute, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. input_aspects: - DOM Tree - CSS Styling From db61a47c2c4124cc0cb9ef34ff41f7e3501ec5f5 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Wed, 26 Jul 2023 15:47:06 +0200 Subject: [PATCH 06/14] Update all secondary requirements --- _rules/aria-attr-defined-5f99a7.md | 4 ++-- _rules/aria-state-or-property-permitted-5c01ea.md | 4 ++-- .../aria-state-or-property-valid-value-6a7281.md | 4 ++-- _rules/image-no-text-0va7u6.md | 10 ++++++---- _rules/link-in-context-descriptive-5effbb.md | 8 +------- _rules/link-non-empty-accessible-name-c487ae.md | 5 +---- ...nks-identical-name-equivalent-purpose-b20e66.md | 4 +--- ...-and-context-serve-equivalent-purpose-fd3a94.md | 12 +++--------- _rules/meta-refresh-no-delay-bc659a.md | 14 ++------------ .../meta-refresh-no-delay-no-exception-bisz58.md | 2 +- _rules/meta-viewport-b4f0c3.md | 4 +--- _rules/role-attribute-valid-value-674b10.md | 6 +++--- .../role-required-states-and-properties-4e8ab6.md | 6 +++--- ...crollable-element-keyboard-accessible-0ssw9k.md | 1 - _rules/text-contrast-afw4f7.md | 2 +- _rules/text-contrast-enhanced-09o5cg.md | 2 +- _rules/video-alternative-for-visual-c5a4ea.md | 14 ++------------ 17 files changed, 32 insertions(+), 70 deletions(-) diff --git a/_rules/aria-attr-defined-5f99a7.md b/_rules/aria-attr-defined-5f99a7.md index ac68ccd48a..a2286f1a98 100755 --- a/_rules/aria-attr-defined-5f99a7.md +++ b/_rules/aria-attr-defined-5f99a7.md @@ -6,9 +6,9 @@ description: | This rule checks that each `aria-` attribute specified is defined in ARIA 1.2. accessibility_requirements: wcag20:1.3.1: # Info and Relationships (A) - secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/aria-state-or-property-permitted-5c01ea.md b/_rules/aria-state-or-property-permitted-5c01ea.md index 6a84a3212e..cf599d6818 100755 --- a/_rules/aria-state-or-property-permitted-5c01ea.md +++ b/_rules/aria-state-or-property-permitted-5c01ea.md @@ -17,9 +17,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - Accessibility Tree - CSS styling diff --git a/_rules/aria-state-or-property-valid-value-6a7281.md b/_rules/aria-state-or-property-valid-value-6a7281.md index 9b7b438f14..b70a0373fa 100755 --- a/_rules/aria-state-or-property-valid-value-6a7281.md +++ b/_rules/aria-state-or-property-valid-value-6a7281.md @@ -12,9 +12,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: Because this rule does not ignore irrelevant ARIA properties, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - DOM Tree - CSS Styling diff --git a/_rules/image-no-text-0va7u6.md b/_rules/image-no-text-0va7u6.md index bfefe9205f..be5745d8aa 100644 --- a/_rules/image-no-text-0va7u6.md +++ b/_rules/image-no-text-0va7u6.md @@ -12,7 +12,6 @@ accessibility_requirements: inapplicable: further testing needed wcag20:1.4.9: # Images of Text (No Exception) (AAA) forConformance: true - secondary: true failed: not satisfied passed: further testing needed inapplicable: further testing needed @@ -56,7 +55,7 @@ There are no accessibility support issues known. ## Background -This rule is designed specifically for [SC 1.4.5 Images of Text][sc1.4.5] which includes exceptions to the images it applies to that are not part of [SC 1.4.9 Images of Text (No Exception)][sc1.4.9]. Therefore, some images that are inapplicable for this rule can be applicable to [SC 1.4.9 Images of Text (No Exception)][sc1.4.9]. +This rule is designed specifically for [SC 1.4.5 Images of Text][sc1.4.5]. There are however only minimal differences between this criterion and [SC 1.4.9 Images of Text (No Exception)][sc1.4.9]. The two differences are that customizable images of text are allowed, and that images of text are allowed when the presentation cannot otherwise be achieved. These scenarios are so rare the rule ignores them as part of the assumptions, and so the [accessibility requirements mapping](#accessibility-requirements-mapping) of these two criteria is the same. ### Bibliography @@ -210,10 +209,13 @@ This image resource referenced by the `img` element contains text that provides This `img` element loads an SVG with text as an image resource. Because the SVG is loaded as an image resource, instead of being embedded in HTML the text cannot be selected or customized. ```html -WCAG Rocks +" +/> ``` ### Inapplicable diff --git a/_rules/link-in-context-descriptive-5effbb.md b/_rules/link-in-context-descriptive-5effbb.md index 949134e350..474ae0a581 100755 --- a/_rules/link-in-context-descriptive-5effbb.md +++ b/_rules/link-in-context-descriptive-5effbb.md @@ -11,11 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.4.9: # Link Purpose (Link Only) (AAA) - forConformance: true - secondary: true - failed: not satisfied - passed: further testing needed - inapplicable: further testing needed + secondary: This success criterion is **stricter** than this rule. This is because the rule also considers the context of the link, in addition to the link text. This is why some of the passed examples may not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree @@ -53,8 +49,6 @@ The [accessible name][] of each target element together with its [programmatical ## Background -This rule is designed specifically for [2.4.4 Link Purpose (In Context)][sc244], which requires the purpose to be clear within the context of a link. Because links that do not have this, also are not clear without that context, this rule maps to [2.4.9 Link Purpose (Link only)][sc249] as well. In order to adequately test the [expectation](#expectation), some of the passed examples do not satisfy [2.4.9 Link Purpose (Link only)][sc249]. - ### Related rules - [Link has non-empty accessible name](https://www.w3.org/WAI/standards-guidelines/act/rules/c487ae/) diff --git a/_rules/link-non-empty-accessible-name-c487ae.md b/_rules/link-non-empty-accessible-name-c487ae.md index d5385dcffb..e5b3cfa556 100755 --- a/_rules/link-non-empty-accessible-name-c487ae.md +++ b/_rules/link-non-empty-accessible-name-c487ae.md @@ -17,7 +17,6 @@ accessibility_requirements: inapplicable: further testing needed wcag20:2.4.9: # Link Purpose (Link Only) (AAA) forConformance: true - secondary: true failed: not satisfied passed: further testing needed inapplicable: further testing needed @@ -27,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.1.1: # Non-text content (A) - secondary: true + secondary: This success criterion **partially overlaps** this rule. This is because the HTML`area` element count as both a link, and as non-text content. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree @@ -66,8 +65,6 @@ The rule assumes that all links are [user interface components](https://www.w3.o ## Background -The HTML `area` element is both a link and non-text content. When this rule fails on `area` elements [success criterion 1.1.1 Non-text content][sc111] is not satisfied. - ### Related rules - [Link in context is descriptive](https://www.w3.org/WAI/standards-guidelines/act/rules/5effbb/proposed/) diff --git a/_rules/links-identical-name-equivalent-purpose-b20e66.md b/_rules/links-identical-name-equivalent-purpose-b20e66.md index ae422badad..6f1c672dce 100755 --- a/_rules/links-identical-name-equivalent-purpose-b20e66.md +++ b/_rules/links-identical-name-equivalent-purpose-b20e66.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.4.4: # Link Purpose (In Context) (A) -secondary: true +secondary: This success criterion is **less strict** than this rule. This is because the rule does not consider the context of the link. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree @@ -57,8 +57,6 @@ When followed, the links in each set of target elements resolve to the [same res ## Background -This rule is closely related to [success criterion 2.4.4 Link Purpose (In Context)][sc244]. Because this rule is stricter, links that pass this rule satisfy 2.4.4 Link Purpose (In Context). - ### Bibliography - [CSS Scoping Module Level 1 (editor's draft)](https://drafts.csswg.org/css-scoping/) diff --git a/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md b/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md index 0d0715b8fc..f09c0a2e52 100755 --- a/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md +++ b/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md @@ -11,11 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.4.9: # Link Purpose (Link Only) (AAA) - forConformance: true - secondary: true - failed: not satisfied - passed: further testing needed - inapplicable: further testing needed + secondary: This success criterion is **stricter** than this rule. This is because the rule also considers the context of the link, in addition to the link text. This is why some of the passed examples may not satisfy this success criterion. input_aspects: - DOM Tree - CSS Styling @@ -64,9 +60,7 @@ There are no accessibility support issues known. ## Background -This rule is designed specifically for [2.4.4 Link Purpose (In Context)][sc244], which requires the purpose to be clear within the context of a link. Because links that do not have this, also are not clear without that context, this rule maps to [2.4.9 Link Purpose (Link only)][sc249] as well. In order to adequately test the [expectation](#expectation), some of the passed examples do not satisfy [2.4.9 Link Purpose (Link only)][sc249]. - -There is a difference between two contexts being the *same* and being *identical*. This rule specifically targets links within the *same* context. The same context means exactly the same set of DOM nodes. Identical (but not the same) contexts might have a different set of DOM nodes, but those DOM nodes have equivalent content - such as text content, attribute values, and so on. This difference is similar to the difference in some programming languages between pointer equivalence and deep object equivalence. Links with identical name that are in identical (but not the same) contexts also fail [2.4.4 Link Purpose (In Context)][sc244]. However, defining "identical context" unambiguously has been deemed infeasible at this time, and so has been left out of this rule. +There is a difference between two contexts being the _same_ and being _identical_. This rule specifically targets links within the _same_ context. The same context means exactly the same set of DOM nodes. Identical (but not the same) contexts might have a different set of DOM nodes, but those DOM nodes have equivalent content - such as text content, attribute values, and so on. This difference is similar to the difference in some programming languages between pointer equivalence and deep object equivalence. Links with identical name that are in identical (but not the same) contexts also fail [2.4.4 Link Purpose (In Context)][sc244]. However, defining "identical context" unambiguously has been deemed infeasible at this time, and so has been left out of this rule. ### Bibliography @@ -374,7 +368,7 @@ These two `span` elements do not have a [semantic role][] of link. #### Inapplicable Example 5 -These two HTML `a` elements have the same [accessible name][] and link to the [same resource][] but different [programmatically determined link contexts][programmatically determined link context]. Even though the two contexts in this example are *identical*, they are not the *same*. That is: even though they have equivalent content, they do not consist of the same DOM elements. +These two HTML `a` elements have the same [accessible name][] and link to the [same resource][] but different [programmatically determined link contexts][programmatically determined link context]. Even though the two contexts in this example are _identical_, they are not the _same_. That is: even though they have equivalent content, they do not consist of the same DOM elements. ```html diff --git a/_rules/meta-refresh-no-delay-bc659a.md b/_rules/meta-refresh-no-delay-bc659a.md index 21a03e22c8..3c3757fb61 100755 --- a/_rules/meta-refresh-no-delay-bc659a.md +++ b/_rules/meta-refresh-no-delay-bc659a.md @@ -11,17 +11,9 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.2.4: # Interruptions (AAA) - forConformance: true - secondary: true - failed: not satisfied - passed: further testing needed - inapplicable: further testing needed + secondary: This success criterion is **stricter** than this rule. This is because the rule allows redirects longer than 20 hours. This is why some of the passed examples may not satisfy this success criterion. wcag20:3.2.5: # Change on Request (AAA) - forConformance: true - secondary: true - failed: not satisfied - passed: further testing needed - inapplicable: further testing needed + secondary: This success criterion is **stricter** than this rule. This is because the rule allows redirects longer than 20 hours. This is why some of the passed examples may not satisfy this success criterion. wcag-technique:G110: # Using an instant client-side redirect forConformance: false failed: not satisfied @@ -71,8 +63,6 @@ Not all major web browsers parse the value of the `content` attribute in the sam Because a refresh with a timing of 0 is a redirect, it is exempt from this rule. Since this can cause rapid screen flashes it is strongly recommended to avoid this. -This rule is designed specifically for [2.2.1 Timing Adjustable][sc221], which can be satisfied if the time limit is over 20 hours long. All pages that fail this because of a "refresh" `meta` element also do not satisfy [3.2.5 Change on Request][sc325]. In order to adequately test the [expectation](#expectation), some of the passed examples do not satisfy [3.2.5 Change on Request][sc325]. - ### Bibliography - [Understanding Success Criterion 2.2.1: Timing Adjustable](https://www.w3.org/WAI/WCAG21/Understanding/timing-adjustable.html) diff --git a/_rules/meta-refresh-no-delay-no-exception-bisz58.md b/_rules/meta-refresh-no-delay-no-exception-bisz58.md index 5b45841c73..e12ea75f8e 100755 --- a/_rules/meta-refresh-no-delay-no-exception-bisz58.md +++ b/_rules/meta-refresh-no-delay-no-exception-bisz58.md @@ -26,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.2.1: # Timing Adjustable (A) - secondary: Because this rule allows no exceptions, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because this criterion allows redirects longer than 20 hours. This is why some of the failed examples satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/meta-viewport-b4f0c3.md b/_rules/meta-viewport-b4f0c3.md index 17f3a02fa8..803887c6d2 100755 --- a/_rules/meta-viewport-b4f0c3.md +++ b/_rules/meta-viewport-b4f0c3.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag21:1.4.10: # Reflow (AA) - secondary: true + This success criterion **partially overlaps** this rule. This is because a page that cannot be zoomed up to 200% often does not reflow sufficiently either. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: @@ -51,8 +51,6 @@ Desktop browsers ignore the viewport `meta` element, and most modern mobile brow ## Background -This rule is designed specifically for [1.4.4 Resize text][sc144], which requires that text can be resized up to 200%. Because text that can not be resized up to 200% can not fit in an area of 320 by 256 [CSS pixels][], this rule maps to [1.4.10 Reflow][sc1410] as well. All passed examples in this rule satisfy both success criteria. - ### Bibliography - [Understanding Success Criterion 1.4.4: Resize text](https://www.w3.org/WAI/WCAG21/Understanding/resize-text) diff --git a/_rules/role-attribute-valid-value-674b10.md b/_rules/role-attribute-valid-value-674b10.md index 5c0f533103..458f3f4ed7 100755 --- a/_rules/role-attribute-valid-value-674b10.md +++ b/_rules/role-attribute-valid-value-674b10.md @@ -16,9 +16,9 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.3.1: # Info and Relationship (A) - secondary: Because this rule does not ignore elements that do not require a role attribute, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because the success criterion can be satisfied by an element's implicit role when the explicit role is incorrect. This is why some of the failed examples may satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: Because this rule does not ignore elements that do not require a role attribute, it is stricter than this success criterion. Failing this rule often results in this success criterion being not satisfied. + secondary: This success criterion is **less strict** than this rule. This is because the success criterion can be satisfied by an element's implicit role when the explicit role is incorrect. This is why some of the failed examples may satisfy this success criterion. input_aspects: - DOM Tree - CSS Styling @@ -50,7 +50,7 @@ Older browsers do not support more than one token in the value for a role attrib ## Background -Using an invalid role is often the result of a typo or other developer error. Unknown roles are ignored by browsers and assistive technologies, and the element's [implicit role][] is used. This often means that a role that should exist is missing. This can cause issues under [success criterion 1.3.1 Info and Relationships][sc131] or [4.1.2 Name, Role, Value][sc412]. If the element's implicit semantics are sufficient to communicate its intent, an invalid role may not cause an accessibility issue. +Using an invalid role is often the result of a typo or other developer error. Unknown roles are ignored by browsers and assistive technologies, and the element's [implicit role][] is used. This often means that a role that should exist is missing. The `role` attribute is a set of [space separated tokens][]. Having a [whitespace](#whitespace) separated list of more than one token in the value of the role attribute is used for what is known as _fallback roles_. If the first token is not accessibility supported (or valid), the next one will be used for determining the [semantic role][] of the element, and so forth. The rule applies to attributes containing at least one non-[ASCII whitespace][] character so that there is at least one token in the set. diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index e170a6765f..d83ba0e0d3 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -16,9 +16,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: true + secondary: This success criterion is **less strict** than this rule. This is because browsers and assistive technologies will often fall back on a non-standard default value, which may be sufficient. This is why some of the failed examples may satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: true + secondary: This success criterion is **less strict** than this rule. This is because browsers and assistive technologies will often fall back on a non-standard default value, which may be sufficient. This is why some of the failed examples may satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: @@ -50,7 +50,7 @@ This rule relies on browsers and assistive technologies to support leaving out [ ## Background -Omitting required ARIA properties is often the result of a developer error. When required properties are missing some browsers and assistive technologies will guess the property, or leave the element inaccessible. This can cause issues under [success criterion 1.3.1 Info and Relationships][sc131] or [4.1.2 Name, Rule Value][sc412]. +Omitting required ARIA properties is often the result of a developer error. When required properties are missing some browsers and assistive technologies will guess the property, or leave the element inaccessible. This rule is testing author built components, not user-agent built ones. Elements that keep their [implicit semantic role][] are mapped into conforming accessible objects, with all required properties, by user agents and are therefore not tested by this rule. Most of these mappings are defined in the [HTML Accessibility API Mappings, Attribute State and Property Mappings](https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings). diff --git a/_rules/scrollable-element-keyboard-accessible-0ssw9k.md b/_rules/scrollable-element-keyboard-accessible-0ssw9k.md index a6f4f3d2e3..833b3ae4bb 100755 --- a/_rules/scrollable-element-keyboard-accessible-0ssw9k.md +++ b/_rules/scrollable-element-keyboard-accessible-0ssw9k.md @@ -12,7 +12,6 @@ accessibility_requirements: inapplicable: further testing needed wcag20:2.1.3: # Keyboard (No Exceptions) (AAA) forConformance: true - secondary: true failed: not satisfied passed: further testing needed inapplicable: further testing needed diff --git a/_rules/text-contrast-afw4f7.md b/_rules/text-contrast-afw4f7.md index b761fba153..bf513bed5a 100755 --- a/_rules/text-contrast-afw4f7.md +++ b/_rules/text-contrast-afw4f7.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.4.6: # Contrast (Enhanced) (AAA) - secondary: Because this success criterion has a higher minimum contrast, it is stricter than the rule. This is also why some passed examples do not satisfy this success criterion. +secondary: This success criterion is **stricter** than this rule. This is because this criterion has a higher minimum contrast. This is why some of the passed examples may not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/_rules/text-contrast-enhanced-09o5cg.md b/_rules/text-contrast-enhanced-09o5cg.md index 6db499942c..ee89ba20c6 100644 --- a/_rules/text-contrast-enhanced-09o5cg.md +++ b/_rules/text-contrast-enhanced-09o5cg.md @@ -21,7 +21,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.4.3: # Contrast (Minimum) (A) - secondary: true + secondary: This success criterion is **less strict** than this rule. This is because this criterion has a lower minimum contrast. This is why some of the failed examples may satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/_rules/video-alternative-for-visual-c5a4ea.md b/_rules/video-alternative-for-visual-c5a4ea.md index fe47701007..d8ae560a0d 100755 --- a/_rules/video-alternative-for-visual-c5a4ea.md +++ b/_rules/video-alternative-for-visual-c5a4ea.md @@ -11,17 +11,9 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.2.5: # Audio Description (Prerecorded) (AA) - forConformance: true - secondary: true - failed: not satisfied - passed: further testing needed - inapplicable: further testing needed + secondary: This success criterion is **stricter** than this rule. This is because the rule allows a media alternative in place of audio description. This is why some of the passed examples may not satisfy this success criterion. wcag20:1.2.8: # Media Alternative (Prerecorded) (AAA) - forConformance: true - secondary: true - failed: not satisfied - passed: further testing needed - inapplicable: further testing needed + secondary: This success criterion is **stricter** than this rule. This is because the rule allows audio description in place of a media alternative. This is why some of the passed examples may not satisfy this success criterion. wcag-technique:G8: # Providing a movie with extended audio descriptions forConformance: false failed: not satisfied @@ -82,8 +74,6 @@ The HTML `video` element can also have a `track` element that provides an audio ## Background -This rule is designed specifically for [1.2.3 Audio Description or Media Alternative (Prerecorded)][sc123], which expects either audio description or a media alternative. If a video has neither, by definition it also fails for both [1.2.5 Audio Description (Prerecorded)][sc125] and [1.2.8 Media Alternative (Prerecorded)][sc128]. In order to adequately test the [expectation](#expectation) of this rule, some of the passed examples do not satisfy [1.2.5 Audio Description (Prerecorded)][sc125] or [1.2.8 Media Alternative (Prerecorded)][sc128]. - ### Bibliography - [Understanding Success Criterion 1.2.5: Audio Description (Prerecorded)](https://www.w3.org/WAI/WCAG21/Understanding/audio-description-prerecorded.html) From 5c2a33c157e8add8eea2cbfb26f2cb8221602c54 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Wed, 26 Jul 2023 15:51:43 +0200 Subject: [PATCH 07/14] Typos --- _rules/aria-attr-defined-5f99a7.md | 4 ++-- _rules/aria-state-or-property-permitted-5c01ea.md | 4 ++-- _rules/aria-state-or-property-valid-value-6a7281.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/_rules/aria-attr-defined-5f99a7.md b/_rules/aria-attr-defined-5f99a7.md index a2286f1a98..349696e8ba 100755 --- a/_rules/aria-attr-defined-5f99a7.md +++ b/_rules/aria-attr-defined-5f99a7.md @@ -6,9 +6,9 @@ description: | This rule checks that each `aria-` attribute specified is defined in ARIA 1.2. accessibility_requirements: wcag20:1.3.1: # Info and Relationships (A) - secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/aria-state-or-property-permitted-5c01ea.md b/_rules/aria-state-or-property-permitted-5c01ea.md index cf599d6818..2e35e0c092 100755 --- a/_rules/aria-state-or-property-permitted-5c01ea.md +++ b/_rules/aria-state-or-property-permitted-5c01ea.md @@ -17,9 +17,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - Accessibility Tree - CSS styling diff --git a/_rules/aria-state-or-property-valid-value-6a7281.md b/_rules/aria-state-or-property-valid-value-6a7281.md index b70a0373fa..469860d4db 100755 --- a/_rules/aria-state-or-property-valid-value-6a7281.md +++ b/_rules/aria-state-or-property-valid-value-6a7281.md @@ -12,9 +12,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - DOM Tree - CSS Styling From ca20b6104b0f5d4aed26a4ed1e4844afc883982f Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Wed, 26 Jul 2023 18:54:36 +0200 Subject: [PATCH 08/14] Fix failing tests --- __tests__/frontmatter.js | 4 +++- __tests__/link-to-glossary-term-valid.js | 1 + __tests__/spelling-ignore.yml | 1 + _rules/aria-attr-defined-5f99a7.md | 2 -- _rules/aria-state-or-property-permitted-5c01ea.md | 2 -- _rules/aria-state-or-property-valid-value-6a7281.md | 2 -- _rules/link-non-empty-accessible-name-c487ae.md | 1 - _rules/links-identical-name-equivalent-purpose-b20e66.md | 1 - ...tical-names-and-context-serve-equivalent-purpose-fd3a94.md | 1 - _rules/meta-refresh-no-delay-bc659a.md | 1 - _rules/meta-refresh-no-delay-no-exception-bisz58.md | 1 - _rules/meta-viewport-b4f0c3.md | 2 +- _rules/role-attribute-valid-value-674b10.md | 3 --- _rules/role-required-states-and-properties-4e8ab6.md | 2 -- _rules/video-alternative-for-visual-c5a4ea.md | 2 -- 15 files changed, 6 insertions(+), 20 deletions(-) diff --git a/__tests__/frontmatter.js b/__tests__/frontmatter.js index 5dabe16ef3..d7c13bb965 100644 --- a/__tests__/frontmatter.js +++ b/__tests__/frontmatter.js @@ -95,7 +95,9 @@ function validateRuleFrontmatter({ frontmatter }, metaData) { */ const accRequirementValues = Object.values(accessibility_requirements) test.each(accRequirementValues)('has expected keys for accessibility requirement: `%p`', accReq => { - if (accReq.secondary) { + if (!accReq) { + return + } else if (accReq.secondary) { // Note; empty strings & false won't get here, and so aren't allowed expect(['string', 'boolean']).toContain(typeof accReq.secondary) return diff --git a/__tests__/link-to-glossary-term-valid.js b/__tests__/link-to-glossary-term-valid.js index e91ed28c30..689e8865f9 100644 --- a/__tests__/link-to-glossary-term-valid.js +++ b/__tests__/link-to-glossary-term-valid.js @@ -14,6 +14,7 @@ const whitelist = [ /^#expectation(-[1-9][0-9]*)?$/, /^#assumptions$/, /^#accessibility-support$/, + /^#accessibility-requirements-mapping$/, /^#background$/, /^#test-cases$/, /^#passed(-example-[1-9][0-9]*)?$/, diff --git a/__tests__/spelling-ignore.yml b/__tests__/spelling-ignore.yml index f3078a8b64..809491bfc7 100644 --- a/__tests__/spelling-ignore.yml +++ b/__tests__/spelling-ignore.yml @@ -86,6 +86,7 @@ - RFC - rfc - webauthn +- customizable # spell checker checks against strict casing & hence some repeated words here - Autocomplete diff --git a/_rules/aria-attr-defined-5f99a7.md b/_rules/aria-attr-defined-5f99a7.md index 349696e8ba..4c4abb21ae 100755 --- a/_rules/aria-attr-defined-5f99a7.md +++ b/_rules/aria-attr-defined-5f99a7.md @@ -130,5 +130,3 @@ This `canvas` element does not have an `aria-` attribute specified. ``` [wai-aria specifications]: #wai-aria-specifications 'Definition of WAI-ARIA specifications' -[sc131]: https://www.w3.org/TR/WCAG21/#info-and-relationships -[sc412]: https://www.w3.org/TR/WCAG21/#name-role-value diff --git a/_rules/aria-state-or-property-permitted-5c01ea.md b/_rules/aria-state-or-property-permitted-5c01ea.md index 2e35e0c092..8e5773f599 100755 --- a/_rules/aria-state-or-property-permitted-5c01ea.md +++ b/_rules/aria-state-or-property-permitted-5c01ea.md @@ -233,5 +233,3 @@ This `div` element is not [included in the accessibility tree][], hence its [WAI [wai-aria state or property]: https://www.w3.org/TR/wai-aria-1.2/#state_prop_def 'Definition of ARIA States and Properties' [namespaced element]: #namespaced-element [prohibited]: https://www.w3.org/TR/wai-aria-1.2/#prohibitedattributes 'WAI-ARIA 1.2 Definition of Prohibited States and Properties' -[sc131]: https://www.w3.org/TR/WCAG21/#info-and-relationships -[sc412]: https://www.w3.org/TR/WCAG21/#name-role-value diff --git a/_rules/aria-state-or-property-valid-value-6a7281.md b/_rules/aria-state-or-property-valid-value-6a7281.md index 469860d4db..c663bb4355 100755 --- a/_rules/aria-state-or-property-valid-value-6a7281.md +++ b/_rules/aria-state-or-property-valid-value-6a7281.md @@ -242,7 +242,5 @@ The `aria-hidden` attribute is not on an [HTML or SVG element][]. ``` [html or svg element]: #namespaced-element -[sc131]: https://www.w3.org/TR/WCAG21/#info-and-relationships -[sc412]: https://www.w3.org/TR/WCAG21/#name-role-value [value type]: https://www.w3.org/TR/wai-aria-1.2/#propcharacteristic_value [wai-aria state or property]: https://www.w3.org/TR/wai-aria-1.2/#state_prop_def diff --git a/_rules/link-non-empty-accessible-name-c487ae.md b/_rules/link-non-empty-accessible-name-c487ae.md index e5b3cfa556..087eef6111 100755 --- a/_rules/link-non-empty-accessible-name-c487ae.md +++ b/_rules/link-non-empty-accessible-name-c487ae.md @@ -362,4 +362,3 @@ This `a` element does not have the role of link because it does not have an `hre [semantic role]: #semantic-role 'Definition of Semantic Role' [attribute value]: #attribute-value 'Definition of Attribute value' [html element]: #namespaced-element -[sc111]: https://www.w3.org/TR/WCAG21/#non-text-content diff --git a/_rules/links-identical-name-equivalent-purpose-b20e66.md b/_rules/links-identical-name-equivalent-purpose-b20e66.md index 6f1c672dce..062352dc9f 100755 --- a/_rules/links-identical-name-equivalent-purpose-b20e66.md +++ b/_rules/links-identical-name-equivalent-purpose-b20e66.md @@ -387,7 +387,6 @@ These `span` elements do not have a [semantic role][] of `link`. They are not va [presentational roles conflict resolution]: https://www.w3.org/TR/wai-aria-1.1/#conflict_resolution_presentation_none 'Presentational Roles Conflict Resolution' [same resource]: #same-resource 'Definition of same resource' [sc249]: https://www.w3.org/TR/WCAG21/#link-purpose-link-only 'Success Criterion 2.4.9: Link Purpose (Link Only)' -[sc244]: https://www.w3.org/TR/WCAG21/#link-purpose-in-context 'Success Criterion 2.4.4: Link Purpose (In Context)' [semantic role]: #semantic-role 'Definition of semantic role' [shadow tree]: https://dom.spec.whatwg.org/#shadow-tree 'Definition of shadow tree' [web page (html)]: #web-page-html 'Definition of web page (HTML)' diff --git a/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md b/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md index f09c0a2e52..b539757659 100755 --- a/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md +++ b/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md @@ -401,7 +401,6 @@ These two HTML `a` elements have the same [accessible name][] but different [pro [programmatically determined link context]: #programmatically-determined-link-context 'Definition of programmatically determined link context' [same resource]: #same-resource 'Definition of same resource' [sc244]: https://www.w3.org/TR/WCAG21/#link-purpose-in-context 'Success Criterion 2.4.4: Link Purpose (In Context)' -[sc249]: https://www.w3.org/TR/WCAG21/#link-purpose-link-only 'Success Criterion 2.4.9: Link Purpose (Link Only)' [semantic role]: #semantic-role 'Definition of semantic role' [shadow tree]: https://dom.spec.whatwg.org/#shadow-tree 'Definition of shadow tree' [web page (html)]: #web-page-html 'Definition of web page (HTML)' diff --git a/_rules/meta-refresh-no-delay-bc659a.md b/_rules/meta-refresh-no-delay-bc659a.md index 3c3757fb61..9e92d12e2f 100755 --- a/_rules/meta-refresh-no-delay-bc659a.md +++ b/_rules/meta-refresh-no-delay-bc659a.md @@ -272,5 +272,4 @@ This 'meta' element contains an invalid `content` attribute and will not refresh [attribute value]: #attribute-value 'Definition of Attribute Value' [meta refresh]: https://html.spec.whatwg.org/#attr-meta-http-equiv-refresh 'HTML specification of the meta refresh State' [sc221]: https://www.w3.org/TR/WCAG21/#timing-adjustable 'WCAG 2.1 Success Criterion 2.2.1 Timing Adjustable' -[sc325]: https://www.w3.org/TR/WCAG21/#change-on-request 'WCAG 2.1 Success Criterion 3.2.5 Change on Request' [shared declarative refresh steps]: https://html.spec.whatwg.org/#shared-declarative-refresh-steps 'HTML specification of the Shared Declarative Refresh Steps' diff --git a/_rules/meta-refresh-no-delay-no-exception-bisz58.md b/_rules/meta-refresh-no-delay-no-exception-bisz58.md index e12ea75f8e..f860fec8f3 100755 --- a/_rules/meta-refresh-no-delay-no-exception-bisz58.md +++ b/_rules/meta-refresh-no-delay-no-exception-bisz58.md @@ -216,4 +216,3 @@ This `meta` element has an invalid `content` attribute, and is therefore inappli [attribute value]: #attribute-value 'Definition of Attribute Value' [meta refresh]: https://html.spec.whatwg.org/#attr-meta-http-equiv-refresh 'HTML specification of the meta refresh State' [shared declarative refresh steps]: https://html.spec.whatwg.org/#shared-declarative-refresh-steps 'HTML specification of the Shared Declarative Refresh Steps' -[sc221]: https://www.w3.org/TR/WCAG21/#timing-adjustable diff --git a/_rules/meta-viewport-b4f0c3.md b/_rules/meta-viewport-b4f0c3.md index 803887c6d2..a658705baa 100755 --- a/_rules/meta-viewport-b4f0c3.md +++ b/_rules/meta-viewport-b4f0c3.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag21:1.4.10: # Reflow (AA) - This success criterion **partially overlaps** this rule. This is because a page that cannot be zoomed up to 200% often does not reflow sufficiently either. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion **partially overlaps** this rule. This is because a page that cannot be zoomed up to 200% often does not reflow sufficiently either. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/role-attribute-valid-value-674b10.md b/_rules/role-attribute-valid-value-674b10.md index 458f3f4ed7..d52d4996ea 100755 --- a/_rules/role-attribute-valid-value-674b10.md +++ b/_rules/role-attribute-valid-value-674b10.md @@ -182,10 +182,7 @@ This `role` attribute is specified on an element which is [programmatically hidd [implicit role]: #implicit-role 'Definition of Implicit Role' [programmatically hidden]: #programmatically-hidden 'Definition of Programmatically Hidden' [role attribute]: https://www.w3.org/TR/role-attribute/ 'Specification of the Role attribute' -[sc131]: https://www.w3.org/TR/WCAG21/#info-and-relationships 'Success Criterion 1.3.1 Info and Relationship' [semantic role]: #semantic-role 'Definition of Semantic Role' [space separated tokens]: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#space-separated-tokens 'Definition of space separated tokens' [wai-aria role]: https://www.w3.org/TR/wai-aria-1.2/#role_definitions 'List of WAI-ARIA roles' [wai-aria specifications]: #wai-aria-specifications 'Definition of WAI-ARIA Specifications' -[sc131]: https://www.w3.org/TR/WCAG21/#info-and-relationships -[sc412]: https://www.w3.org/TR/WCAG21/#name-role-value diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index d83ba0e0d3..f46fe56dbc 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -228,5 +228,3 @@ This `combobox` is not [included in the accessibility tree][] due to its styling [wai-aria 1.2]: https://www.w3.org/TR/wai-aria-1.2/ [html or svg element]: #namespaced-element [focusable]: #focusable -[sc131]: https://www.w3.org/TR/WCAG21/#info-and-relationships -[sc412]: https://www.w3.org/TR/WCAG21/#name-role-value diff --git a/_rules/video-alternative-for-visual-c5a4ea.md b/_rules/video-alternative-for-visual-c5a4ea.md index d8ae560a0d..f562fb4da8 100755 --- a/_rules/video-alternative-for-visual-c5a4ea.md +++ b/_rules/video-alternative-for-visual-c5a4ea.md @@ -215,5 +215,3 @@ A video element that is not [visible][]. [visible]: #visible 'Definition of visible' [sc123]: https://www.w3.org/TR/WCAG21/#audio-description-or-media-alternative-prerecorded 'WCAG 2.1, Success Criterion 1.2.3 Audio Description or Media Alternative (Prerecorded)' -[sc125]: https://www.w3.org/TR/WCAG21/#audio-description-prerecorded 'WCAG 2.1, Success Criterion 1.2.5 Audio Description (Prerecorded)' -[sc128]: https://www.w3.org/TR/WCAG21/#media-alternative-prerecorded 'WCAG 2.1, Success Criterion 1.2.8 Media Alternative (Prerecorded)' From ba3a875938447114fd3f93a040080e1a5e0896d3 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 27 Jul 2023 14:59:03 +0200 Subject: [PATCH 09/14] Update _rules/link-non-empty-accessible-name-c487ae.md Co-authored-by: Trevor R. Bostic <32486143+tbostic32@users.noreply.github.com> --- _rules/link-non-empty-accessible-name-c487ae.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/link-non-empty-accessible-name-c487ae.md b/_rules/link-non-empty-accessible-name-c487ae.md index 087eef6111..786d0e7630 100755 --- a/_rules/link-non-empty-accessible-name-c487ae.md +++ b/_rules/link-non-empty-accessible-name-c487ae.md @@ -26,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.1.1: # Non-text content (A) - secondary: This success criterion **partially overlaps** this rule. This is because the HTML`area` element count as both a link, and as non-text content. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion **partially overlaps** this rule. This is because the HTML `area` element counts as both a link and as non-text content. This is why some of the failed examples may not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree From 49cc4f5d5b71da24071fc59a6f1b53f858d0b359 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 10 Aug 2023 13:57:31 +0200 Subject: [PATCH 10/14] Tweaked the language some more --- _rules/aria-attr-defined-5f99a7.md | 4 ++-- _rules/aria-state-or-property-permitted-5c01ea.md | 4 ++-- _rules/aria-state-or-property-valid-value-6a7281.md | 4 ++-- _rules/link-in-context-descriptive-5effbb.md | 2 +- _rules/link-non-empty-accessible-name-c487ae.md | 2 +- _rules/links-identical-name-equivalent-purpose-b20e66.md | 2 +- ...tical-names-and-context-serve-equivalent-purpose-fd3a94.md | 2 +- _rules/meta-refresh-no-delay-bc659a.md | 4 ++-- _rules/meta-viewport-b4f0c3.md | 2 +- _rules/text-contrast-afw4f7.md | 2 +- _rules/video-alternative-for-visual-c5a4ea.md | 4 ++-- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/_rules/aria-attr-defined-5f99a7.md b/_rules/aria-attr-defined-5f99a7.md index 4c4abb21ae..8db58ac3b9 100755 --- a/_rules/aria-attr-defined-5f99a7.md +++ b/_rules/aria-attr-defined-5f99a7.md @@ -6,9 +6,9 @@ description: | This rule checks that each `aria-` attribute specified is defined in ARIA 1.2. accessibility_requirements: wcag20:1.3.1: # Info and Relationships (A) - secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. Some of the failed examples satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. Some of the failed examples satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/aria-state-or-property-permitted-5c01ea.md b/_rules/aria-state-or-property-permitted-5c01ea.md index 8e5773f599..a82173fd30 100755 --- a/_rules/aria-state-or-property-permitted-5c01ea.md +++ b/_rules/aria-state-or-property-permitted-5c01ea.md @@ -17,9 +17,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. Some of the failed examples satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. Some of the failed examples satisfy this success criterion. input_aspects: - Accessibility Tree - CSS styling diff --git a/_rules/aria-state-or-property-valid-value-6a7281.md b/_rules/aria-state-or-property-valid-value-6a7281.md index c663bb4355..758fff1b26 100755 --- a/_rules/aria-state-or-property-valid-value-6a7281.md +++ b/_rules/aria-state-or-property-valid-value-6a7281.md @@ -12,9 +12,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. Some of the failed examples satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the rule does not ignore irrelevant ARIA properties. Some of the failed examples satisfy this success criterion. input_aspects: - DOM Tree - CSS Styling diff --git a/_rules/link-in-context-descriptive-5effbb.md b/_rules/link-in-context-descriptive-5effbb.md index 474ae0a581..14e18c6cad 100755 --- a/_rules/link-in-context-descriptive-5effbb.md +++ b/_rules/link-in-context-descriptive-5effbb.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.4.9: # Link Purpose (Link Only) (AAA) - secondary: This success criterion is **stricter** than this rule. This is because the rule also considers the context of the link, in addition to the link text. This is why some of the passed examples may not satisfy this success criterion. + secondary: This success criterion is **more strict** than this rule. This is because the rule also considers the context of the link, in addition to the link text. Some of the passed examples do not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/_rules/link-non-empty-accessible-name-c487ae.md b/_rules/link-non-empty-accessible-name-c487ae.md index 786d0e7630..109994fbe3 100755 --- a/_rules/link-non-empty-accessible-name-c487ae.md +++ b/_rules/link-non-empty-accessible-name-c487ae.md @@ -26,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.1.1: # Non-text content (A) - secondary: This success criterion **partially overlaps** this rule. This is because the HTML `area` element counts as both a link and as non-text content. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **related** to this rule. This happens for HTML `area` elements which are both links and as non-text content. Most failed examples satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/_rules/links-identical-name-equivalent-purpose-b20e66.md b/_rules/links-identical-name-equivalent-purpose-b20e66.md index 062352dc9f..1b171cf25c 100755 --- a/_rules/links-identical-name-equivalent-purpose-b20e66.md +++ b/_rules/links-identical-name-equivalent-purpose-b20e66.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.4.4: # Link Purpose (In Context) (A) -secondary: This success criterion is **less strict** than this rule. This is because the rule does not consider the context of the link. This is why some of the failed examples may not satisfy this success criterion. +secondary: This success criterion is **less strict** than this rule. This is because the rule does not consider the context of the link. Some of the failed examples satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md b/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md index b539757659..d8b228511c 100755 --- a/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md +++ b/_rules/links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.4.9: # Link Purpose (Link Only) (AAA) - secondary: This success criterion is **stricter** than this rule. This is because the rule also considers the context of the link, in addition to the link text. This is why some of the passed examples may not satisfy this success criterion. + secondary: This success criterion is **more strict** than this rule. This is because the rule also considers the context of the link, in addition to the link text. Some of the passed examples do not satisfy this success criterion. input_aspects: - DOM Tree - CSS Styling diff --git a/_rules/meta-refresh-no-delay-bc659a.md b/_rules/meta-refresh-no-delay-bc659a.md index 9e92d12e2f..29c6822aef 100755 --- a/_rules/meta-refresh-no-delay-bc659a.md +++ b/_rules/meta-refresh-no-delay-bc659a.md @@ -11,9 +11,9 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.2.4: # Interruptions (AAA) - secondary: This success criterion is **stricter** than this rule. This is because the rule allows redirects longer than 20 hours. This is why some of the passed examples may not satisfy this success criterion. + secondary: This success criterion is **more strict** than this rule. This is because the rule allows redirects longer than 20 hours. Some of the passed examples do not satisfy this success criterion. wcag20:3.2.5: # Change on Request (AAA) - secondary: This success criterion is **stricter** than this rule. This is because the rule allows redirects longer than 20 hours. This is why some of the passed examples may not satisfy this success criterion. + secondary: This success criterion is **more strict** than this rule. This is because the rule allows redirects longer than 20 hours. Some of the passed examples do not satisfy this success criterion. wcag-technique:G110: # Using an instant client-side redirect forConformance: false failed: not satisfied diff --git a/_rules/meta-viewport-b4f0c3.md b/_rules/meta-viewport-b4f0c3.md index a658705baa..46d9ecb72e 100755 --- a/_rules/meta-viewport-b4f0c3.md +++ b/_rules/meta-viewport-b4f0c3.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag21:1.4.10: # Reflow (AA) - secondary: This success criterion **partially overlaps** this rule. This is because a page that cannot be zoomed up to 200% often does not reflow sufficiently either. This is why some of the failed examples may not satisfy this success criterion. + secondary: This success criterion is **related** to this rule. This is because a page that cannot be zoomed up to 200% often does not reflow sufficiently either. Most failed examples satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/text-contrast-afw4f7.md b/_rules/text-contrast-afw4f7.md index bf513bed5a..ba4c9f1dc9 100755 --- a/_rules/text-contrast-afw4f7.md +++ b/_rules/text-contrast-afw4f7.md @@ -11,7 +11,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.4.6: # Contrast (Enhanced) (AAA) -secondary: This success criterion is **stricter** than this rule. This is because this criterion has a higher minimum contrast. This is why some of the passed examples may not satisfy this success criterion. +secondary: This success criterion is **more strict** than this rule. This is because this criterion has a higher minimum contrast. Some of the passed examples do not satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/_rules/video-alternative-for-visual-c5a4ea.md b/_rules/video-alternative-for-visual-c5a4ea.md index f562fb4da8..bffca6022c 100755 --- a/_rules/video-alternative-for-visual-c5a4ea.md +++ b/_rules/video-alternative-for-visual-c5a4ea.md @@ -11,9 +11,9 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.2.5: # Audio Description (Prerecorded) (AA) - secondary: This success criterion is **stricter** than this rule. This is because the rule allows a media alternative in place of audio description. This is why some of the passed examples may not satisfy this success criterion. + secondary: This success criterion is **more strict** than this rule. This is because the rule allows a media alternative in place of audio description. Some of the passed examples do not satisfy this success criterion. wcag20:1.2.8: # Media Alternative (Prerecorded) (AAA) - secondary: This success criterion is **stricter** than this rule. This is because the rule allows audio description in place of a media alternative. This is why some of the passed examples may not satisfy this success criterion. + secondary: This success criterion is **more strict** than this rule. This is because the rule allows audio description in place of a media alternative. Some of the passed examples do not satisfy this success criterion. wcag-technique:G8: # Providing a movie with extended audio descriptions forConformance: false failed: not satisfied From 0102e0eaf05cd5f4311fa75c9b11e2927b7844a8 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 10 Aug 2023 14:12:50 +0200 Subject: [PATCH 11/14] Update rule design info for secondary requirements --- pages/design/atomic-template-empty.md | 2 ++ pages/design/composite-template-empty.md | 2 ++ pages/design/manual-template-empty.md | 2 ++ pages/design/rule-design.md | 15 +++++++++++++++ 4 files changed, 21 insertions(+) diff --git a/pages/design/atomic-template-empty.md b/pages/design/atomic-template-empty.md index 447ea1c52c..03e8ee814a 100755 --- a/pages/design/atomic-template-empty.md +++ b/pages/design/atomic-template-empty.md @@ -10,6 +10,8 @@ accessibility_requirements: # Remove whatever is not applicable failed: not satisfied passed: satisfied | further testing needed inapplicable: satisfied | further testing needed + wcag20:x.x.x: # (A | AA | AAA) + secondary: This success criterion is ... aria12:anchor-name: # title: Title to display forConformance: true | false diff --git a/pages/design/composite-template-empty.md b/pages/design/composite-template-empty.md index 0f83720a8e..8221315aa2 100755 --- a/pages/design/composite-template-empty.md +++ b/pages/design/composite-template-empty.md @@ -10,6 +10,8 @@ accessibility_requirements: # Remove whatever is not applicable failed: not satisfied passed: satisfied | further testing needed inapplicable: satisfied | further testing needed + wcag20:x.x.x: # (A | AA | AAA) + secondary: This success criterion is ... aria12:anchor-name: # title: Title to display forConformance: true | false diff --git a/pages/design/manual-template-empty.md b/pages/design/manual-template-empty.md index 09f1b20ffe..924e83218a 100644 --- a/pages/design/manual-template-empty.md +++ b/pages/design/manual-template-empty.md @@ -10,6 +10,8 @@ accessibility_requirements: # Remove whatever is not applicable failed: not satisfied passed: satisfied | further testing needed inapplicable: satisfied | further testing needed + wcag20:x.x.x: # (A | AA | AAA) + secondary: This success criterion is ... aria12:anchor-name: # title: Title to display forConformance: true | false diff --git a/pages/design/rule-design.md b/pages/design/rule-design.md index 5727374d87..5110420e09 100755 --- a/pages/design/rule-design.md +++ b/pages/design/rule-design.md @@ -63,6 +63,21 @@ The description is a short synopsis of what the rule does. This should be declar List all accessibility requirements that are not satisfied if one or more outcomes of a rule fails. For example, this could be one or more WCAG success criteria, or a WAI-ARIA rule. Each requirement should indicate the associated conformance level, and map the implications of each outcome, such as "satisfied", "not satisfied", or "further testing needed". +Accessibility requirements should be listed as secondary if the requirement is related to the rule. There are three scenarios: + +1. The requirement is less strict than the rule. If this occurs, and some but not all failed examples of the rule pass the accessibility requirement, the following test should be used: + + > This success criterion is **less strict** than this rule. This is because {reason}. Some of the failed examples satisfy this success criterion. + +1. The requirement is more strict than the rule. If this occurs, and some but not all passed examples of the rule fail the accessibility requirement, the following test should be used: + + > secondary: This success criterion is **more strict** than this rule. This is because {reason}. Some of the passed examples do not satisfy this success criterion. + +1. The requirement is related to, but different from the rule. This often happens when there is overlap between two accessibility requirements. If this occurs, and some but not all the failed examples of the rule fail the accessibility requirement, the following text should be used: + > This success criterion is **related** to this rule. This {is because / happens for} {reason}. Most failed examples satisfy this success criterion. + +Secondary requirements are optional, and are only necessary when fails some of the passed examples, or passes some of the failed examples. If there are no such examples, it is generally not necessary to include secondary requirements. Atomic rules used in composite rules should list the requirements from the composite rule as "more strict" secondary requirements. + **Note**: When linking to WCAG or other sources that may have several versions, use the version number where the relevant requirement was first introduced. For more details, see [ACT Rules Format: Accessibility Requirements Mapping](https://www.w3.org/TR/act-rules-format/#accessibility-requirements-mapping). From 6dd391aa951d66d7758faafeca785e4a786a9d7e Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 10 Aug 2023 14:17:42 +0200 Subject: [PATCH 12/14] Fix tests --- pages/design/atomic-template-empty.md | 4 ++-- pages/design/composite-template-empty.md | 4 ++-- pages/design/manual-template-empty.md | 4 ++-- pages/design/rule-template.md | 4 +++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pages/design/atomic-template-empty.md b/pages/design/atomic-template-empty.md index 03e8ee814a..df5fee5eba 100755 --- a/pages/design/atomic-template-empty.md +++ b/pages/design/atomic-template-empty.md @@ -10,8 +10,8 @@ accessibility_requirements: # Remove whatever is not applicable failed: not satisfied passed: satisfied | further testing needed inapplicable: satisfied | further testing needed - wcag20:x.x.x: # (A | AA | AAA) - secondary: This success criterion is ... + wcag20:z.z.z: # (A | AA | AAA) + secondary: This success criterion is ... aria12:anchor-name: # title: Title to display forConformance: true | false diff --git a/pages/design/composite-template-empty.md b/pages/design/composite-template-empty.md index 8221315aa2..a8037bd07a 100755 --- a/pages/design/composite-template-empty.md +++ b/pages/design/composite-template-empty.md @@ -10,8 +10,8 @@ accessibility_requirements: # Remove whatever is not applicable failed: not satisfied passed: satisfied | further testing needed inapplicable: satisfied | further testing needed - wcag20:x.x.x: # (A | AA | AAA) - secondary: This success criterion is ... + wcag20:z.z.z: # (A | AA | AAA) + secondary: This success criterion is ... aria12:anchor-name: # title: Title to display forConformance: true | false diff --git a/pages/design/manual-template-empty.md b/pages/design/manual-template-empty.md index 924e83218a..d619d930eb 100644 --- a/pages/design/manual-template-empty.md +++ b/pages/design/manual-template-empty.md @@ -10,8 +10,8 @@ accessibility_requirements: # Remove whatever is not applicable failed: not satisfied passed: satisfied | further testing needed inapplicable: satisfied | further testing needed - wcag20:x.x.x: # (A | AA | AAA) - secondary: This success criterion is ... + wcag20:z.z.z: # (A | AA | AAA) + secondary: This success criterion is ... aria12:anchor-name: # title: Title to display forConformance: true | false diff --git a/pages/design/rule-template.md b/pages/design/rule-template.md index 12756f3e95..6f11233b2b 100755 --- a/pages/design/rule-template.md +++ b/pages/design/rule-template.md @@ -16,11 +16,13 @@ rule_type: atomic description: | This rule checks ... accessibility_requirements: - wcag20:x.x.x: # (Name of Success Criterion) + wcag20:x.x.x: # (A | AA | AAA) forConformance: true | false failed: not satisfied passed: satisfied | further testing needed inapplicable: satisfied | further testing needed + wcag20:z.z.z: # (A | AA | AAA) + secondary: This success criterion is ... aria12:anchor-name: # title: Title to display forConformance: true | false From 629756d298681d71b1d713ff1647d022f28204b3 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Tue, 22 Aug 2023 15:23:21 +0200 Subject: [PATCH 13/14] Apply suggestions from code review Co-authored-by: Kathy Eng --- _rules/link-non-empty-accessible-name-c487ae.md | 2 +- _rules/meta-refresh-no-delay-no-exception-bisz58.md | 2 +- _rules/role-attribute-valid-value-674b10.md | 4 ++-- _rules/role-required-states-and-properties-4e8ab6.md | 4 ++-- _rules/text-contrast-enhanced-09o5cg.md | 2 +- pages/design/rule-design.md | 7 +++++-- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/_rules/link-non-empty-accessible-name-c487ae.md b/_rules/link-non-empty-accessible-name-c487ae.md index 109994fbe3..fa197b6c35 100755 --- a/_rules/link-non-empty-accessible-name-c487ae.md +++ b/_rules/link-non-empty-accessible-name-c487ae.md @@ -26,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.1.1: # Non-text content (A) - secondary: This success criterion is **related** to this rule. This happens for HTML `area` elements which are both links and as non-text content. Most failed examples satisfy this success criterion. + secondary: This success criterion is **related** to this rule. This is because HTML `area` elements are both links and non-text content. Most failed examples satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/_rules/meta-refresh-no-delay-no-exception-bisz58.md b/_rules/meta-refresh-no-delay-no-exception-bisz58.md index f860fec8f3..ac2bbf6ea2 100755 --- a/_rules/meta-refresh-no-delay-no-exception-bisz58.md +++ b/_rules/meta-refresh-no-delay-no-exception-bisz58.md @@ -26,7 +26,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:2.2.1: # Timing Adjustable (A) - secondary: This success criterion is **less strict** than this rule. This is because this criterion allows redirects longer than 20 hours. This is why some of the failed examples satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because this criterion allows redirects longer than 20 hours. Some of the failed examples satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/role-attribute-valid-value-674b10.md b/_rules/role-attribute-valid-value-674b10.md index d52d4996ea..70971c167d 100755 --- a/_rules/role-attribute-valid-value-674b10.md +++ b/_rules/role-attribute-valid-value-674b10.md @@ -16,9 +16,9 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.3.1: # Info and Relationship (A) - secondary: This success criterion is **less strict** than this rule. This is because the success criterion can be satisfied by an element's implicit role when the explicit role is incorrect. This is why some of the failed examples may satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the success criterion can be satisfied by an element's implicit role when the explicit role is incorrect. Some of the failed examples may satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because the success criterion can be satisfied by an element's implicit role when the explicit role is incorrect. This is why some of the failed examples may satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because the success criterion can be satisfied by an element's implicit role when the explicit role is incorrect. Some of the failed examples may satisfy this success criterion. input_aspects: - DOM Tree - CSS Styling diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index f46fe56dbc..295e8ead81 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -16,9 +16,9 @@ accessibility_requirements: passed: satisfied inapplicable: satisfied wcag20:1.3.1: # Info and Relationships (A) - secondary: This success criterion is **less strict** than this rule. This is because browsers and assistive technologies will often fall back on a non-standard default value, which may be sufficient. This is why some of the failed examples may satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because browsers and assistive technologies will often fall back on a non-standard default value, which may be sufficient. Some of the failed examples may satisfy this success criterion. wcag20:4.1.2: # Name, Role, Value (A) - secondary: This success criterion is **less strict** than this rule. This is because browsers and assistive technologies will often fall back on a non-standard default value, which may be sufficient. This is why some of the failed examples may satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because browsers and assistive technologies will often fall back on a non-standard default value, which may be sufficient. Some of the failed examples may satisfy this success criterion. input_aspects: - DOM Tree acknowledgments: diff --git a/_rules/text-contrast-enhanced-09o5cg.md b/_rules/text-contrast-enhanced-09o5cg.md index ee89ba20c6..25c822023c 100644 --- a/_rules/text-contrast-enhanced-09o5cg.md +++ b/_rules/text-contrast-enhanced-09o5cg.md @@ -21,7 +21,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed wcag20:1.4.3: # Contrast (Minimum) (A) - secondary: This success criterion is **less strict** than this rule. This is because this criterion has a lower minimum contrast. This is why some of the failed examples may satisfy this success criterion. + secondary: This success criterion is **less strict** than this rule. This is because this criterion has a lower minimum contrast. Some of the failed examples may satisfy this success criterion. input_aspects: - Accessibility Tree - DOM Tree diff --git a/pages/design/rule-design.md b/pages/design/rule-design.md index 5110420e09..96e94b06ae 100755 --- a/pages/design/rule-design.md +++ b/pages/design/rule-design.md @@ -63,7 +63,7 @@ The description is a short synopsis of what the rule does. This should be declar List all accessibility requirements that are not satisfied if one or more outcomes of a rule fails. For example, this could be one or more WCAG success criteria, or a WAI-ARIA rule. Each requirement should indicate the associated conformance level, and map the implications of each outcome, such as "satisfied", "not satisfied", or "further testing needed". -Accessibility requirements should be listed as secondary if the requirement is related to the rule. There are three scenarios: +Accessibility requirements should be listed as secondary if the requirement is related to the rule. There are four scenarios: 1. The requirement is less strict than the rule. If this occurs, and some but not all failed examples of the rule pass the accessibility requirement, the following test should be used: @@ -76,7 +76,10 @@ Accessibility requirements should be listed as secondary if the requirement is r 1. The requirement is related to, but different from the rule. This often happens when there is overlap between two accessibility requirements. If this occurs, and some but not all the failed examples of the rule fail the accessibility requirement, the following text should be used: > This success criterion is **related** to this rule. This {is because / happens for} {reason}. Most failed examples satisfy this success criterion. -Secondary requirements are optional, and are only necessary when fails some of the passed examples, or passes some of the failed examples. If there are no such examples, it is generally not necessary to include secondary requirements. Atomic rules used in composite rules should list the requirements from the composite rule as "more strict" secondary requirements. + +1. Atomic rules used in composite rules should list the requirements from the composite rule as "more strict" secondary requirements. + +Secondary requirements are optional and are only necessary when a requirement fails some of the passed examples or passes some of the failed examples. If there are no such examples, it is generally not necessary to include secondary requirements. **Note**: When linking to WCAG or other sources that may have several versions, use the version number where the relevant requirement was first introduced. From 6d0699a5c24707ed570668be24c6a24cd9ce1086 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Tue, 29 Aug 2023 13:06:40 +0200 Subject: [PATCH 14/14] Apply suggestions from code review Co-authored-by: Jean-Yves Moyen --- pages/design/rule-design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/design/rule-design.md b/pages/design/rule-design.md index 96e94b06ae..122d2e5093 100755 --- a/pages/design/rule-design.md +++ b/pages/design/rule-design.md @@ -65,11 +65,11 @@ List all accessibility requirements that are not satisfied if one or more outcom Accessibility requirements should be listed as secondary if the requirement is related to the rule. There are four scenarios: -1. The requirement is less strict than the rule. If this occurs, and some but not all failed examples of the rule pass the accessibility requirement, the following test should be used: +1. The requirement is less strict than the rule. If this occurs, and some but not all failed examples of the rule pass the accessibility requirement, the following text should be used: > This success criterion is **less strict** than this rule. This is because {reason}. Some of the failed examples satisfy this success criterion. -1. The requirement is more strict than the rule. If this occurs, and some but not all passed examples of the rule fail the accessibility requirement, the following test should be used: +1. The requirement is more strict than the rule. If this occurs, and some but not all passed examples of the rule fail the accessibility requirement, the following text should be used: > secondary: This success criterion is **more strict** than this rule. This is because {reason}. Some of the passed examples do not satisfy this success criterion.