From 720e4f06b827c9d90b8bde7827067f7b83ee47db Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Tue, 4 Feb 2025 11:14:53 -0600 Subject: [PATCH 1/2] fixrule(meta_refresh_delay | meta_redirect_optional) Fix the rules to align with ACT (#2163) * Update the rules and test cases * update the baselines --- .../src/v4/rules/meta_redirect_optional.ts | 49 ++++++++++++------- .../src/v4/rules/meta_refresh_delay.ts | 42 ++++++++++++---- .../act-fail-1.html | 34 +++++++++++++ .../act-fail-2.html | 34 +++++++++++++ .../act-fail-3.html | 35 +++++++++++++ .../act-inappplicable-1.html | 19 +++++++ .../act-inappplicable-2.html | 19 +++++++ .../act-inappplicable-3.html | 19 +++++++ .../act-inappplicable-4.html | 19 +++++++ .../act-inappplicable-5.html | 19 +++++++ .../act-inappplicable-6.html | 19 +++++++ .../act-inappplicable-7.html | 19 +++++++ .../act-inappplicable-8.html | 19 +++++++ .../act-pass-1.html | 34 +++++++++++++ .../act-pass-2.html | 35 +++++++++++++ .../Meta-validRefresh.html | 4 +- .../act-fail-1.html | 34 +++++++++++++ .../act-fail-2.html | 34 +++++++++++++ .../act-fail-3.html | 35 +++++++++++++ .../act-inappplicable-1.html | 19 +++++++ .../act-inappplicable-2.html | 19 +++++++ .../act-inappplicable-3.html | 19 +++++++ .../act-inappplicable-4.html | 19 +++++++ .../act-inappplicable-5.html | 19 +++++++ .../act-inappplicable-6.html | 19 +++++++ .../act-inappplicable-7.html | 19 +++++++ .../act-inappplicable-8.html | 19 +++++++ .../act-pass-1.html | 34 +++++++++++++ .../act-pass-2.html | 35 +++++++++++++ .../aChecker.Content.Puppeteer.test.js | 28 +++++++++++ .../aChecker.Scans/aChecker.Content.test.js | 28 +++++++++++ .../aChecker.Scans/aChecker.URL.test.js | 28 +++++++++++ .../aChecker.assertionCompliance.test.js | 31 +++++++++++- .../aChecker.Content.Playwright.spec.mjs | 28 +++++++++++ .../AccessibilityCheckerPlaywrightTest.java | 28 +++++++++++ .../AccessibilityCheckerSeleniumFFTest.java | 28 +++++++++++ .../AccessibilityCheckerSeleniumTest.java | 28 +++++++++++ 37 files changed, 938 insertions(+), 32 deletions(-) create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-1.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-2.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-3.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-1.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-2.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-3.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-4.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-5.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-6.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-7.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-8.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-1.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-2.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-1.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-2.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-3.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-1.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-2.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-3.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-4.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-5.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-6.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-7.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-8.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-1.html create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-2.html diff --git a/accessibility-checker-engine/src/v4/rules/meta_redirect_optional.ts b/accessibility-checker-engine/src/v4/rules/meta_redirect_optional.ts index 3e99eed9d..206fb3199 100644 --- a/accessibility-checker-engine/src/v4/rules/meta_redirect_optional.ts +++ b/accessibility-checker-engine/src/v4/rules/meta_redirect_optional.ts @@ -11,10 +11,9 @@ limitations under the License. *****************************************************************************/ -import { FragmentUtil } from "../../v2/checker/accessibility/util/fragment"; -import { CommonUtil } from "../util/CommonUtil"; import { Rule, RuleResult, RuleFail, RuleContext, RulePass, RuleContextHierarchy } from "../api/IRule"; import { eRulePolicy, eToolkitLevel } from "../api/IRule"; +import { CacheUtil } from "../util/CacheUtil"; export const meta_redirect_optional: Rule = { id: "meta_redirect_optional", @@ -49,39 +48,51 @@ export const meta_redirect_optional: Rule = { "toolkitLevel": eToolkitLevel.LEVEL_THREE }], // Removed ACT bisz58 AAA - act: [{ + /**act: [{ "bc659a" : { "pass": "pass", "fail": "fail", "fail_longrefresh": "pass" } - }], + }],*/ + act: [ "bisz58"], // fail even if a page is redirected after more than 20 hours (7200) run: (context: RuleContext, options?: {}, contextHierarchies?: RuleContextHierarchy): RuleResult | RuleResult[] => { const ruleContext = context["dom"].node as Element; - // JCH - NO OUT OF SCOPE hidden in context + if (ruleContext.getAttribute("http-equiv").toLowerCase() !== 'refresh') { return null; } + let doc = ruleContext.ownerDocument; + if (!doc) return; + + // check if the rule already passed or failed: only the first one tridders if multiple + if (CacheUtil.getCache(doc, "meta_redirect_optional_done", false)) + return null; + let content = ruleContext.getAttribute("content").toLowerCase(); - // Invalid content field - if (!content.match(/^\d+$/) && !content.match(/^\d+;/)) { + if (!content || content.trim().length ===0) return null; + + let time:number = -1; + if (content.match(/^\d+$/)) + time = parseInt(content); + else if (content.match(/^\d+;/)) { + let pos = content.indexOf(";"); + time = parseInt(content.substring(0, pos)); } - // Only check the first one since it takes priority - if (CommonUtil.triggerOnce(FragmentUtil.getOwnerFragment(ruleContext), "meta_redirect_optional", false)) { + // Invalid content field + if (time === -1) { return null; } - let timeMatch = content.match(/^(\d+); +[^ ]/); - if (!timeMatch || parseInt(timeMatch[1]) === 0) { + + CacheUtil.setCache(doc, "meta_redirect_optional_done", true); + if (time === 0) return RulePass("pass"); - } else { - let time = parseInt(timeMatch[1]); - if (time < 72001) { - return RuleFail("fail"); - } else { - return RuleFail("fail_longrefresh"); - } - } + else if (time < 72001) + return RuleFail("fail"); + + return RuleFail("fail_longrefresh"); + } } \ No newline at end of file diff --git a/accessibility-checker-engine/src/v4/rules/meta_refresh_delay.ts b/accessibility-checker-engine/src/v4/rules/meta_refresh_delay.ts index 16a72c9e4..5f914a1e6 100644 --- a/accessibility-checker-engine/src/v4/rules/meta_refresh_delay.ts +++ b/accessibility-checker-engine/src/v4/rules/meta_refresh_delay.ts @@ -13,28 +13,29 @@ import { Rule, RuleResult, RuleContext, RulePotential, RulePass, RuleContextHierarchy } from "../api/IRule"; import { eRulePolicy, eToolkitLevel } from "../api/IRule"; +import { CacheUtil } from "../util/CacheUtil"; export const meta_refresh_delay: Rule = { id: "meta_refresh_delay", context: "dom:meta[http-equiv][content]", refactor: { "RPT_Meta_Refresh": { - "Pass_0": "Pass_0", - "Potential_1": "Potential_1" + "Pass_0": "pass", + "Potential_1": "potential_refresh" } }, help: { "en-US": { "group": "meta_refresh_delay.html", - "Pass_0": "meta_refresh_delay.html", - "Potential_1": "meta_refresh_delay.html" + "pass": "meta_refresh_delay.html", + "potential_refresh": "meta_refresh_delay.html" } }, messages: { "en-US": { "group": "Pages should not refresh automatically", - "Pass_0": "Rule Passed", - "Potential_1": "Verify page is not being caused to refresh automatically", + "pass": "Pages do not refresh automatically", + "potential_refresh": "Verify page is not being caused to refresh automatically", } }, rulesets: [{ @@ -43,18 +44,39 @@ export const meta_refresh_delay: Rule = { "level": eRulePolicy.VIOLATION, "toolkitLevel": eToolkitLevel.LEVEL_THREE }], - act: [ "bisz58", "bc659a" ], + //act: [ "bisz58", "bc659a" ], + act: [ "bc659a" ], // pass if a page is redirected after more than 20 hours (7200) run: (context: RuleContext, options?: {}, contextHierarchies?: RuleContextHierarchy): RuleResult | RuleResult[] => { const ruleContext = context["dom"].node as Element; if (ruleContext.getAttribute("http-equiv").toLowerCase() !== 'refresh') return null; + let doc = ruleContext.ownerDocument; + if (!doc) return; + + // check if the rule already passed: the first one takes priority + if (CacheUtil.getCache(doc, "meta_refresh_delay_done", false)) + return null; + let content = ruleContext.getAttribute("content").toLowerCase(); + if (!content || content.trim().length ===0) + return null; + + let time:number = -1; + if (content.match(/^\d+$/)) + time = parseInt(content); + else if (content.match(/^\d+;/)) { + let pos = content.indexOf(";"); + time = parseInt(content.substring(0, pos)); + } // Invalid content field - if (!content.match(/^\d+$/) && !content.match(/^\d+;/)) { + if (time === -1) { return null; } - let fail = !content.match(/^\d+; +[^ ]/); - return !fail ? RulePass("Pass_0") : RulePotential("Potential_1"); + + CacheUtil.setCache(doc, "meta_refresh_delay_done", true); + if (time === 0) + return RulePass("pass"); + return RulePotential("potential_refresh"); } } \ No newline at end of file diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-1.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-1.html new file mode 100644 index 000000000..2accd10a5 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-1.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-2.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-2.html new file mode 100644 index 000000000..d13f0d343 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-2.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-3.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-3.html new file mode 100644 index 000000000..382431c81 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-fail-3.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-1.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-1.html new file mode 100644 index 000000000..6293b5b1c --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-1.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-2.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-2.html new file mode 100644 index 000000000..bf0f08b5c --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-2.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-3.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-3.html new file mode 100644 index 000000000..8b0de9866 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-3.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-4.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-4.html new file mode 100644 index 000000000..5f3d2aede --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-4.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-5.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-5.html new file mode 100644 index 000000000..32e44f590 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-5.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-6.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-6.html new file mode 100644 index 000000000..b5979d370 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-6.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-7.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-7.html new file mode 100644 index 000000000..3db67244e --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-7.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-8.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-8.html new file mode 100644 index 000000000..47e811b70 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-inappplicable-8.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-1.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-1.html new file mode 100644 index 000000000..3e8bb56f6 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-1.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-2.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-2.html new file mode 100644 index 000000000..7f3c0d95f --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_redirect_optional_ruleunit/act-pass-2.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/Meta-validRefresh.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/Meta-validRefresh.html index cac3427ed..712801c83 100755 --- a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/Meta-validRefresh.html +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/Meta-validRefresh.html @@ -67,8 +67,8 @@

Meta Tests

passedXpaths: [ ], failedXpaths: [ - "/html/head/meta[2]", - "/html/head/meta[3]" + "/html/head/meta[2]" + // "/html/head/meta[3]" ] } ]; diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-1.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-1.html new file mode 100644 index 000000000..d358b4ab8 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-1.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-2.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-2.html new file mode 100644 index 000000000..7e0388b6c --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-2.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-3.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-3.html new file mode 100644 index 000000000..2d6c14955 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-fail-3.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-1.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-1.html new file mode 100644 index 000000000..6a868a119 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-1.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-2.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-2.html new file mode 100644 index 000000000..3f44dcee7 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-2.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-3.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-3.html new file mode 100644 index 000000000..0b02a4443 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-3.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-4.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-4.html new file mode 100644 index 000000000..3e0afebc3 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-4.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-5.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-5.html new file mode 100644 index 000000000..cb5f50f0e --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-5.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-6.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-6.html new file mode 100644 index 000000000..faa1cc199 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-6.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-7.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-7.html new file mode 100644 index 000000000..80708cb12 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-7.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-8.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-8.html new file mode 100644 index 000000000..4ccc970fb --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-inappplicable-8.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-1.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-1.html new file mode 100644 index 000000000..771b3b979 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-1.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-2.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-2.html new file mode 100644 index 000000000..a97b66a18 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/meta_refresh_delay_ruleunit/act-pass-2.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.Puppeteer.test.js b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.Puppeteer.test.js index 9537d1678..274151ef2 100644 --- a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.Puppeteer.test.js +++ b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.Puppeteer.test.js @@ -114,6 +114,34 @@ var skipList = [ path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "Meta-validRefresh.html"), path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-pass-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-pass-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-fail-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-fail-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-fail-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-4.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-5.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-6.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-7.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-8.html"), + + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-pass-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-pass-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-fail-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-fail-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-fail-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-4.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-5.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-6.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-7.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-8.html"), + // Blank titles are removed from the DOM path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "page_title_valid_ruleunit","Title-empty.html"), path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "page_title_valid_ruleunit","Title-invalidSpaces.html"), diff --git a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.test.js b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.test.js index 3b3b90486..095c1ef7f 100644 --- a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.test.js +++ b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.Content.test.js @@ -99,6 +99,34 @@ var skipList = [ path.join(testRoot, "meta_refresh_delay_ruleunit", "Meta-validRefresh.html"), path.join(testRoot, "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-pass-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-pass-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-3.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-3.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-4.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-5.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-6.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-7.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-8.html"), + + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-pass-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-pass-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-3.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-3.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-4.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-5.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-6.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-7.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-8.html"), + // Blank titles are removed from the DOM path.join(testRoot, "page_title_valid_ruleunit","Title-empty.html"), path.join(testRoot, "page_title_valid_ruleunit", "Title-invalidSpaces.html"), diff --git a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.URL.test.js b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.URL.test.js index bc2578d31..bcc485b52 100644 --- a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.URL.test.js +++ b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.URL.test.js @@ -99,6 +99,34 @@ var skipList = [ path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "Meta-validRefresh.html"), path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-pass-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-pass-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-fail-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-fail-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-fail-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-4.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-5.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-6.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-7.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_refresh_delay_ruleunit", "act-inapplicable-8.html"), + + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-pass-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-pass-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-fail-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-fail-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-fail-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-1.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-2.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-3.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-4.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-5.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-6.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-7.html"), + path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "meta_redirect_optional_ruleunit", "act-inapplicable-8.html"), + // Blank titles are removed from the DOM path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "page_title_valid_ruleunit","Title-empty.html"), path.join(process.cwd(), "..", "accessibility-checker-engine", "test", "v2", "checker", "accessibility", "rules", "page_title_valid_ruleunit","Title-invalidSpaces.html"), diff --git a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.assertionCompliance.test.js b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.assertionCompliance.test.js index 2517a0c56..80363db74 100644 --- a/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.assertionCompliance.test.js +++ b/accessibility-checker/test/mocha/aChecker.Fast/aChecker.Scans/aChecker.assertionCompliance.test.js @@ -49,7 +49,36 @@ var skipList = [ path.join(testRoot, "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html"), path.join(testRoot, "aria_banner_label_unique_ruleunit", "validLandMarks-testCaseFromAnn.html"), path.join(testRoot, "element_accesskey_labelled_ruleunit", "AssesskeyNeedsLabelHidden.html"), - path.join(testRoot, "aria_activedescendant_valid_ruleunit", "ActiveDescendant.html") + path.join(testRoot, "aria_activedescendant_valid_ruleunit", "ActiveDescendant.html"), + + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-pass-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-pass-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-3.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-3.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-4.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-5.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-6.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-7.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-8.html"), + + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-pass-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-pass-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-3.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-3.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-4.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-5.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-6.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-7.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-8.html") + ] var skipMap = {} skipList.forEach(function (skip) { diff --git a/accessibility-checker/test/mocha/aChecker.Playwright/aChecker.Scans/aChecker.Content.Playwright.spec.mjs b/accessibility-checker/test/mocha/aChecker.Playwright/aChecker.Scans/aChecker.Content.Playwright.spec.mjs index e355864cf..7fc6e0280 100644 --- a/accessibility-checker/test/mocha/aChecker.Playwright/aChecker.Scans/aChecker.Content.Playwright.spec.mjs +++ b/accessibility-checker/test/mocha/aChecker.Playwright/aChecker.Scans/aChecker.Content.Playwright.spec.mjs @@ -100,6 +100,34 @@ var skipList = [ path.join(testRoot, "meta_refresh_delay_ruleunit", "Meta-validRefresh.html"), path.join(testRoot, "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-pass-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-pass-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-fail-3.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-1.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-2.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-3.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-4.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-5.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-6.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-7.html"), + path.join(testRoot, "meta_refresh_delay_ruleunit", "act-inapplicable-8.html"), + + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-pass-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-pass-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-fail-3.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-1.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-2.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-3.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-4.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-5.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-6.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-7.html"), + path.join(testRoot, "meta_redirect_optional_ruleunit", "act-inapplicable-8.html"), + // CSS test issues path.join(testRoot, "style_color_misuse_ruleunit","D543.html"), path.join(testRoot, "style_before_after_review_ruleunit","D100.html"), diff --git a/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerPlaywrightTest.java b/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerPlaywrightTest.java index 8ba374e4f..b6960f466 100644 --- a/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerPlaywrightTest.java +++ b/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerPlaywrightTest.java @@ -177,6 +177,34 @@ private void listFiles(File f, java.util.List retFiles) { Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "Meta-validRefresh.html").toFile(), Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-pass-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-pass-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-4.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-5.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-6.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-7.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-8.html").toFile(), + + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-pass-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-pass-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-4.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-5.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-6.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-7.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-8.html").toFile(), + // CSS test issues Paths.get(testRootDir.getAbsolutePath(), "style_color_misuse_ruleunit","D543.html").toFile(), Paths.get(testRootDir.getAbsolutePath(), "style_before_after_review_ruleunit","D100.html").toFile(), diff --git a/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumFFTest.java b/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumFFTest.java index 2d282a7ee..2ad16e551 100644 --- a/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumFFTest.java +++ b/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumFFTest.java @@ -166,6 +166,34 @@ public void getComplianceTestsuite() throws IOException { Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "Meta-validRefresh.html").toFile(), Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-pass-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-pass-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-4.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-5.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-6.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-7.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-8.html").toFile(), + + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-pass-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-pass-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-4.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-5.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-6.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-7.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-8.html").toFile(), + // CSS test issues Paths.get(testRootDir.getAbsolutePath(), "style_color_misuse_ruleunit","D543.html").toFile(), Paths.get(testRootDir.getAbsolutePath(), "style_before_after_review_ruleunit","D100.html").toFile(), diff --git a/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumTest.java b/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumTest.java index f05d6a12d..b03459c9c 100644 --- a/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumTest.java +++ b/java-accessibility-checker/src/test/java/com/ibm/able/equalaccess/AccessibilityCheckerSeleniumTest.java @@ -236,6 +236,34 @@ private void listFiles(File f, java.util.List retFiles) { Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "Meta-validRefresh.html").toFile(), Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "Meta-RefreshZero.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-pass-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-pass-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-fail-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-4.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-5.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-6.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-7.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_refresh_delay_ruleunit", "act-inapplicable-8.html").toFile(), + + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-pass-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-pass-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-fail-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-1.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-2.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-3.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-4.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-5.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-6.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-7.html").toFile(), + Paths.get(testRootDir.getAbsolutePath(), "meta_redirect_optional_ruleunit", "act-inapplicable-8.html").toFile(), + // CSS test issues Paths.get(testRootDir.getAbsolutePath(), "style_color_misuse_ruleunit","D543.html").toFile(), Paths.get(testRootDir.getAbsolutePath(), "style_before_after_review_ruleunit","D100.html").toFile(), From dea41a2ac27a07d2fda8a4877642621341e8a7f1 Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Tue, 4 Feb 2025 11:48:53 -0600 Subject: [PATCH 2/2] fix circular structure caused by aria-owns (#2164) Co-authored-by: Tom Brunet --- accessibility-checker-engine/karma.conf.js | 6 +-- .../src/v2/aria/ARIAMapper.ts | 41 ++++++++++++++++++- .../aria_own_circular.html | 34 +++++++++++++++ 3 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 accessibility-checker-engine/test/v2/checker/accessibility/rules/aria_descendant_valid_ruleunit/aria_own_circular.html diff --git a/accessibility-checker-engine/karma.conf.js b/accessibility-checker-engine/karma.conf.js index bdd3f1d96..bb11eac75 100644 --- a/accessibility-checker-engine/karma.conf.js +++ b/accessibility-checker-engine/karma.conf.js @@ -47,12 +47,12 @@ //{ pattern: 'test/v2/checker/accessibility/rules/label_name_visible_ruleunit/label_offscreen.html', watched: true }, //{ pattern: 'test/v2/checker/accessibility/rules/aria_role_valid_ruleunit/td_attribute_invalid_copy.html', watched: true }, //{ pattern: 'test/v2/checker/accessibility/rules/text_block_heading_ruleunit/Headings-noneUsedEmphasizedText.html', watched: true }, - { pattern: 'test/v2/checker/accessibility/rules/aria_landmark_name_unique_ruleunit/*.html', watched: true }, + //{ pattern: 'test/v2/checker/accessibility/rules/aria_landmark_name_unique_ruleunit/*.html', watched: true }, // { pattern: 'test/v2/checker/accessibility/rules/aria_parent_required_ruleunit/webComponentPass2.html', watched: true }, - // { pattern: 'test/**/*_ruleunit/*.html', watched: true }, - // { pattern: 'test/**/*_ruleunit/*.htm', watched: true }, + { pattern: 'test/**/*_ruleunit/*.html', watched: true }, + { pattern: 'test/**/*_ruleunit/*.htm', watched: true }, // all files ending in "_test" // { pattern: 'test/*_test.js', watched: true }, { pattern: 'test/**/*_test.js', watched: true } diff --git a/accessibility-checker-engine/src/v2/aria/ARIAMapper.ts b/accessibility-checker-engine/src/v2/aria/ARIAMapper.ts index 1070f9d1b..2480785f3 100644 --- a/accessibility-checker-engine/src/v2/aria/ARIAMapper.ts +++ b/accessibility-checker-engine/src/v2/aria/ARIAMapper.ts @@ -95,8 +95,45 @@ export class ARIAMapper extends CommonMapper { for (let iId=0; iId < ownIds.length; ++iId) { const owned = doc.getElementById(ownIds[iId]); //ignore if the aria-owns point to the element itself - if (owned && !DOMUtil.sameNode(owner, owned)) { - CacheUtil.setCache(owned, "aria-owned", owner); + //if (owned && !DOMUtil.sameNode(owner, owned)) { + // CacheUtil.setCache(owned, "aria-owned", owner); + //} + /** + * circular hierarchy check: + * (1) the owned element is neither the same element with the owner nor any ascendant of the owner + * (2) any child with aria-owns cannot point to the owner or any ascendant of the owner + */ + if (owned && !DOMUtil.sameNode(owner, owned)) { + // check if the owned with aria-owns that points to another element + let ownedNodes = []; + const sub_owners = owned.querySelectorAll("[aria-owns]"); + for (let i = 0; i < sub_owners.length; ++i) { + const sub_owner = sub_owners[i]; + const sub_ownIds = sub_owner.getAttribute("aria-owns").split(/ +/g); + for (let j=0; j < sub_ownIds.length; ++j) { + const ownedNode = doc.getElementById(sub_ownIds[j]); + if (ownedNode) + ownedNodes.push(ownedNode); + } + } + if (ownedNodes.length === 0) { + CacheUtil.setCache(owned, "aria-owned", owner); + continue; + } + // check if any aria-owns points to the element itself or any of it's parent + let parent : Element = owner; + let circular = false; + while (parent !== null) { + const found = ownedNodes.some(item => DOMUtil.sameNode(parent, item)); + if (!found) + parent = DOMWalker.parentElement(parent); + else { + circular = true; + break; + } + } + if (!circular) + CacheUtil.setCache(owned, "aria-owned", owner); } } } diff --git a/accessibility-checker-engine/test/v2/checker/accessibility/rules/aria_descendant_valid_ruleunit/aria_own_circular.html b/accessibility-checker-engine/test/v2/checker/accessibility/rules/aria_descendant_valid_ruleunit/aria_own_circular.html new file mode 100644 index 000000000..5216c3e42 --- /dev/null +++ b/accessibility-checker-engine/test/v2/checker/accessibility/rules/aria_descendant_valid_ruleunit/aria_own_circular.html @@ -0,0 +1,34 @@ + + + + + Sandbox + + + + + + + + + + \ No newline at end of file