diff --git a/accessibility-checker-engine/src/v4/rules/aria_descendant_valid.ts b/accessibility-checker-engine/src/v4/rules/aria_descendant_valid.ts
index 73304da90..6c682761c 100644
--- a/accessibility-checker-engine/src/v4/rules/aria_descendant_valid.ts
+++ b/accessibility-checker-engine/src/v4/rules/aria_descendant_valid.ts
@@ -26,6 +26,7 @@ export const aria_descendant_valid: Rule = {
"group": "aria_descendant_valid.html",
"pass": "aria_descendant_valid.html",
"potential_child_implicit_role": "aria_descendant_valid.html",
+ "recommendation_no_impact_role": "aria_descendant_valid.html",
"fail_child_explicit_role": "aria_descendant_valid.html"
}
},
@@ -34,6 +35,7 @@ export const aria_descendant_valid: Rule = {
"group": "Browsers ignore the explicit and implicit ARIA roles of the descendants of certain elements",
"pass": "The element contains valid descendants",
"potential_child_implicit_role": "The element with role \"{0}\" contains descendants with implicit roles \"{1}\" which are ignored by browsers",
+ "recommendation_no_impact_role": "The element with role \"{0}\" contains descendants with roles \"{1}\" which are ignored by browsers",
"fail_child_explicit_role": "The element with role \"{0}\" contains descendants with roles \"{1}\" which are ignored by browsers"
}
},
@@ -41,7 +43,14 @@ export const aria_descendant_valid: Rule = {
"id": ["IBM_Accessibility", "IBM_Accessibility_next", "WCAG_2_1", "WCAG_2_0", "WCAG_2_2"],
"num": ["4.1.2"],
"level": eRulePolicy.VIOLATION,
- "toolkitLevel": eToolkitLevel.LEVEL_ONE
+ "toolkitLevel": eToolkitLevel.LEVEL_ONE,
+ reasonCodes: ["pass", "potential_child_implicit_role", "fail_child_explicit_role"]
+ },{
+ "id": ["IBM_Accessibility", "IBM_Accessibility_next", "WCAG_2_1", "WCAG_2_0", "WCAG_2_2"],
+ "num": ["4.1.2"],
+ "level": eRulePolicy.RECOMMENDATION,
+ "toolkitLevel": eToolkitLevel.LEVEL_ONE,
+ reasonCodes: ["recommendation_no_impact_role"]
}],
// TODO: ACT: Verify mapping
act: ["307n5z"],
@@ -65,7 +74,7 @@ export const aria_descendant_valid: Rule = {
if (!roles || roles.length === 0)
return null;
- let tagName = ruleContext.tagName.toLowerCase();
+ // let tagName = ruleContext.tagName.toLowerCase();
// get all the children from accessibility tree,
// including ones with aria-owns
let directATChildren = AriaUtil.getDirectATChildren(ruleContext);
@@ -73,6 +82,7 @@ export const aria_descendant_valid: Rule = {
// the element with at least one non-presentational children
let explicitRoles = new Array();
let implicitRoles = new Array();
+ let noImpactRoles = new Array();
for (let j=0; j < directATChildren.length; j++) {
// ignore and