From 80998b2905a1a250eb0d9d8dd11834acc9bda43c Mon Sep 17 00:00:00 2001 From: Carlos Duarte Date: Thu, 25 Apr 2024 11:51:43 +0100 Subject: [PATCH 1/6] Add background info to meta refresh rules (#2159) Co-authored-by: Jean-Yves Moyen --- _rules/meta-refresh-no-delay-bc659a.md | 4 ++++ _rules/meta-refresh-no-delay-no-exception-bisz58.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/_rules/meta-refresh-no-delay-bc659a.md b/_rules/meta-refresh-no-delay-bc659a.md index dd0479b293..b28b47dbab 100755 --- a/_rules/meta-refresh-no-delay-bc659a.md +++ b/_rules/meta-refresh-no-delay-bc659a.md @@ -61,6 +61,10 @@ Not all major web browsers parse the value of the `content` attribute in the sam ## Background +The `meta http-equiv="refresh"` directive is an HTML tag used to instruct browsers to automatically refresh or reload a web page after a specified time interval. This can be useful for updating content dynamically or redirecting users to another page. + +The `content` attribute in the `meta http-equiv="refresh"` directive is used to define the time interval, in seconds, after which the browser should automatically refresh or reload the web page. For example, `content="5"` would instruct the browser to refresh the page every 5 seconds. Careful consideration of the refresh interval is crucial to ensure optimal user experience and accessibility, particularly for individuals who may require more time to consume or interact with web content. + 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. ### Bibliography diff --git a/_rules/meta-refresh-no-delay-no-exception-bisz58.md b/_rules/meta-refresh-no-delay-no-exception-bisz58.md index 86d8288fd2..e8111ec362 100755 --- a/_rules/meta-refresh-no-delay-no-exception-bisz58.md +++ b/_rules/meta-refresh-no-delay-no-exception-bisz58.md @@ -61,6 +61,10 @@ Not all major web browsers parse the value of the `content` attribute in the sam ## Background +The `meta http-equiv="refresh"` directive is an HTML tag used to instruct browsers to automatically refresh or reload a web page after a specified time interval. This can be useful for updating content dynamically or redirecting users to another page. + +The `content` attribute in the `meta http-equiv="refresh"` directive is used to define the time interval, in seconds, after which the browser should automatically refresh or reload the web page. For example, `content="5"` would instruct the browser to refresh the page every 5 seconds. Careful consideration of the refresh interval is crucial to ensure optimal user experience and accessibility, particularly for individuals who may require more time to consume or interact with web content. + 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. ### Bibliography From 413e317d3d0abb1b04b5c592f35fd9d9de6592de Mon Sep 17 00:00:00 2001 From: Carlos Duarte Date: Thu, 25 Apr 2024 11:59:22 +0100 Subject: [PATCH 2/6] Update sources in inapplicable example 2 (#2158) Co-authored-by: Jean-Yves Moyen --- _rules/auto-play-audio-has-control-mechanism-4c31df.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_rules/auto-play-audio-has-control-mechanism-4c31df.md b/_rules/auto-play-audio-has-control-mechanism-4c31df.md index 24de36af87..b75666df10 100755 --- a/_rules/auto-play-audio-has-control-mechanism-4c31df.md +++ b/_rules/auto-play-audio-has-control-mechanism-4c31df.md @@ -267,8 +267,8 @@ The `src` file of this `video` element has no audio output. ```html ``` From 24a9bcd3cdf4bcec81c83b819d882f70bd6ab376 Mon Sep 17 00:00:00 2001 From: Giacomo Petri Date: Thu, 25 Apr 2024 13:09:48 +0200 Subject: [PATCH 3/6] Clarified and included CJK requirements in large text definition and updated rules affected by this change (#2121) * Update large-scale-text definition to include CJK languages with different requirements * updated rule slightly updated to reflect considerations about halfwidth and fullwidth differences * added unicode reference added unicode references * polishing definition * adding spaces * spaces * improving understandability * added bold for consistency * polishing the definition * adding passed and failed examples * fixes * cjk * fixes * add lang="ja" for Japanese examples in min contrast rule * add lang="ja" for Japanese sentences in contrast enhanced * accepted Wilco suggestion with few edits * Update large-scale-text.md * added words to dictionary * Update spelling-ignore.yml * Update large-scale-text.md * typo * Update spelling-ignore.yml * Apply suggestions from code review Co-authored-by: Jean-Yves Moyen * official to unofficial * Update large-scale-text.md * Update large-scale-text.md * replaced Japanese with Chinese * replaced Japanese with Chinese example * Update __tests__/spelling-ignore.yml * Update spelling.js * Update pages/glossary/large-scale-text.md Co-authored-by: Patrick H. Lauke * Update large-scale-text.md roll back to the original definition + note for CJK languages * Update text-contrast-afw4f7.md removed irrelevant failing examples (as there's no longer a distinction between CJK and Latin characters) and eliminated one passing example within the CJK range that was no longer pertinent based on the updated definition of large text * Update text-contrast-enhanced-09o5cg.md * Update text-contrast-afw4f7.md * Update large-scale-text.md * Update spelling-ignore.yml * Apply suggestions from code review Co-authored-by: Jean-Yves Moyen * Update large-scale-text.md * Update pages/glossary/large-scale-text.md Co-authored-by: Jean-Yves Moyen --------- Co-authored-by: Jean-Yves Moyen Co-authored-by: Wilco Fiers Co-authored-by: Patrick H. Lauke --- __tests__/spelling-ignore.yml | 4 ++++ __tests__/spelling.js | 2 +- pages/glossary/large-scale-text.md | 22 +++++++++++++++++++--- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/__tests__/spelling-ignore.yml b/__tests__/spelling-ignore.yml index c8a08a3940..436581b01b 100644 --- a/__tests__/spelling-ignore.yml +++ b/__tests__/spelling-ignore.yml @@ -126,6 +126,7 @@ # Notes and acronyms - TODO - TBD +- CJK # Tool and library names - axe-core @@ -244,6 +245,9 @@ - 000B - 000C - 000D +- 4E00 +- 9FFF +- 4E00–9FFF # JSON attributes/ metadata/ methods - testcases diff --git a/__tests__/spelling.js b/__tests__/spelling.js index 0a0d4d5db1..1d0a166ff9 100755 --- a/__tests__/spelling.js +++ b/__tests__/spelling.js @@ -109,7 +109,7 @@ function getCuratedMarkdownBody(body, options = {}) { * @returns {String[]} */ function getSpellIgnored() { - const ignoreConfigured = yaml.safeLoad(fs.readFileSync('./__tests__/spelling-ignore.yml', 'utf8')) + const ignoreConfigured = yaml.safeLoad(fs.readFileSync('./__tests__/spelling-ignore.yml', 'utf8'), {schema: yaml.FAILSAFE_SCHEMA}) //added schema due to entries starting with a non-zero digit /* Building spelling exception in the shape FOOxxx where xxx is a number. diff --git a/pages/glossary/large-scale-text.md b/pages/glossary/large-scale-text.md index a53f86a27a..7efd8dd96d 100755 --- a/pages/glossary/large-scale-text.md +++ b/pages/glossary/large-scale-text.md @@ -8,7 +8,23 @@ input_aspects: - DOM tree --- -Text nodes with a [computed](https://www.w3.org/TR/css-cascade-3/#computed-value) [font-size](https://www.w3.org/TR/css-fonts-3/#propdef-font-size) of: +A text node is large scale text if at least one of the following is true: -- at least 18 [points](https://www.w3.org/TR/css-values/#pt), or -- at least 14 [points](https://www.w3.org/TR/css-values/#pt) and a [computed](https://www.w3.org/TR/css-cascade-3/#computed-value) [font weight](https://www.w3.org/TR/css-fonts-3/#font-weight-prop) CSS property of 700 or higher. +- the text node [computed][] [font-size][] is at least 18 [points][], or +- the text node [computed][] [font-size][] is at least 14 [points][] and has a [computed][] [font weight][] of 700 or higher. + + +#### Background +In the domain of languages such as Chinese, Japanese, and Korean (CJK languages), encompassing the Unicode character range from 4E00 to 9FFF ([CJK Unified Ideographs](https://unicode.org/charts/PDF/U4E00.pdf)), it becomes crucial to acknowledge the intricate nuances in their typographic requirements. Despite sharing a common Unicode spectrum, each CJK language and its corresponding country may exhibit distinct typographic preferences and standards. + +Particularly noteworthy is the lack of uniformity in defining text sizes as either large or small within the following ranges: +- from 18 [points][] to 22 [points][] +- from 14 [points][] to 18 [points][] with a [computed][] [font weight][] of 700 or higher. + +Whether CJK characters in these ranges should be considered as "large scale" depends on the language of the text, as well as the country for which the text is designed and whose requirements must be followed. Given that these pieces of information are not readily available, the ACT rules adhere to the large text definition outlined above. This definition is applicable across all languages under the rationale of "no false positives." + + +[computed]: https://www.w3.org/TR/css-cascade-3/#computed-value +[font-size]: https://www.w3.org/TR/css-fonts-3/#propdef-font-size +[points]: https://www.w3.org/TR/css-values/#pt +[font weight]: https://www.w3.org/TR/css-fonts-3/#font-weight-prop From 4b80053d383b7092069078fec7f02ca4af1ac6d7 Mon Sep 17 00:00:00 2001 From: Giacomo Petri Date: Mon, 10 Jun 2024 16:18:39 +0200 Subject: [PATCH 4/6] [73f2c2] Autocomplete invalid - Accessibility note clarifies HTML spec's disallowed autocomplete values for specific form controls (#2161) * solving discussion in 1967 Added accessibility support note and removed "ambiguous example" * Update autocomplete-valid-value-73f2c2.md Replaced "Certain `autocomplete` attribute values are appropriate only for specific form controls. However, despite some combinations of `autocomplete` attribute values and form controls not being allowed by HTML specifications, the input purpose is programmatically available, and autocomplete functions correctly. Thus, if the input possesses the suitable autocomplete value, it fulfills the [Success Criterion 1.3.5 Identify Input Purpose](https://www.w3.org/TR/WCAG22/#identify-input-purpose), regardless of the input type." with "Authors may assign inappropriate `autocomplete` attribute values. Moreover, HTML specifications restrict certain `autocomplete` attribute values to specific form controls. Mismatches between `autocomplete` attribute values and form control types may or may not lead to a failure of [Success Criterion 1.3.5 Identify Input Purpose](https://www.w3.org/TR/WCAG22/#identify-input-purpose). However, this rule focuses exclusively on validating valid `autocomplete` attribute values, disregarding their contextual appropriateness." --------- Co-authored-by: Jean-Yves Moyen --- _rules/autocomplete-valid-value-73f2c2.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/_rules/autocomplete-valid-value-73f2c2.md b/_rules/autocomplete-valid-value-73f2c2.md index 8ce17821e7..7d6f1c4e23 100755 --- a/_rules/autocomplete-valid-value-73f2c2.md +++ b/_rules/autocomplete-valid-value-73f2c2.md @@ -58,6 +58,7 @@ The purpose of a control is programmatically identifiable even when its `autocom - Implementation of [Presentational Roles Conflict Resolution][] varies from one browser or assistive technology to another. Depending on this, some elements can have a [semantic role][] of `none` and fail this rule with some technology but users of other technologies would not experience any accessibility issue. - Some user agents treat the value of the `aria-disabled` attribute as case-sensitive. - In some user agents, querying the value of the `autocomplete` property returns an empty string ("") even when the attribute was set according to the rule's expectations. It affects assistive technologies which rely on this property to personalize input fields collecting information about the user. +- Authors may assign inappropriate `autocomplete` attribute values. Moreover, HTML specifications restrict certain `autocomplete` attribute values to specific form controls. Mismatches between `autocomplete` attribute values and form control types may or may not lead to a failure of [Success Criterion 1.3.5 Identify Input Purpose](https://www.w3.org/TR/WCAG22/#identify-input-purpose). However, this rule focuses exclusively on validating valid `autocomplete` attribute values, disregarding their contextual appropriateness. ## Background @@ -147,14 +148,6 @@ This `autocomplete` [attribute value][] list includes all allowed types of token #### Passed Example 8 -This `autocomplete` [attribute value][] only has the required token "bday-day". It remains programmatically identifiable even though it is inappropriate for the control's `type` [attribute value][] "tel". - -```html - -``` - -#### Passed Example 9 - This `autocomplete` [attribute value][] has the required token "current-password", followed by the optional "webauthn" token. ```html From dff94b2f66aa4be26af25b3d6c4c5f27364b22c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jun 2024 13:01:46 +0200 Subject: [PATCH 5/6] Bump ws from 7.5.9 to 7.5.10 (#2197) Bumps [ws](https://github.com/websockets/ws) from 7.5.9 to 7.5.10. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/7.5.9...7.5.10) --- updated-dependencies: - dependency-name: ws dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a98394489..f167048d46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11792,9 +11792,9 @@ } }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { "node": ">=8.3.0" @@ -21065,9 +21065,9 @@ } }, "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "requires": {} }, From a77f604b1b29d4d9f1b01d59f9f6706ce3c30ba3 Mon Sep 17 00:00:00 2001 From: Giacomo Petri Date: Thu, 1 Aug 2024 16:06:12 +0200 Subject: [PATCH 6/6] Update Form field has non-empty accessible name [e086e5]: Added secondary requirements for 1.3.1 and 2.5.3 (#2188) * Added secondary requirements * Update _rules/form-field-non-empty-accessible-name-e086e5.md Co-authored-by: Jean-Yves Moyen * Update _rules/form-field-non-empty-accessible-name-e086e5.md Co-authored-by: Jean-Yves Moyen * Update _rules/form-field-non-empty-accessible-name-e086e5.md Co-authored-by: Kathy Eng --------- Co-authored-by: Jean-Yves Moyen Co-authored-by: Kathy Eng --- _rules/form-field-non-empty-accessible-name-e086e5.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_rules/form-field-non-empty-accessible-name-e086e5.md b/_rules/form-field-non-empty-accessible-name-e086e5.md index d71625aff7..6882f012e5 100755 --- a/_rules/form-field-non-empty-accessible-name-e086e5.md +++ b/_rules/form-field-non-empty-accessible-name-e086e5.md @@ -10,6 +10,10 @@ accessibility_requirements: failed: not satisfied passed: further testing needed inapplicable: further testing needed + wcag20:1.3.1: # Info and Relationships (A) + secondary: This success criterion is **more strict** than this rule. This is because 1.3.1 Info and Relationship requires that information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text, while 4.1.2 Name, Role, Value only requires an accessible name. + wcag20:2.5.3: # Label in Name (A) + secondary: This success criterion is **more strict** than this rule. This is because 2.5.3 Label in Name requires that if a label is visible, the accessible name contains the label that is presented visually, while 4.1.2 Name, Role, Value only requires an accessible name. input_aspects: - Accessibility Tree - CSS styling