Skip to content

Commit 591607d

Browse files
authored
fix(aria-required-children): avoid confusing aria-busy message in failures (#4347)
Removes the confusing aria-busy message from aria-required-children failures (which we've seen several reports of). Also fixes a false negative (the new #fail13 integration test), which was related but hasn't been reported before. ~~Marks the separate `aria-busy` check as deprecated since no rule uses it after this change.~~ Moving this to separate PR per wilco's feedback @straker , note that this will have a logical merge conflict with the PRs adding new translations you're working on Closes: #4340
1 parent a99cdc6 commit 591607d

File tree

19 files changed

+111
-16
lines changed

19 files changed

+111
-16
lines changed

lib/checks/aria/aria-required-children-evaluate.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ export default function ariaRequiredChildrenEvaluate(
5555
return true;
5656
}
5757

58+
if (virtualNode.attr('aria-busy') === 'true') {
59+
this.data({ messageKey: 'aria-busy' });
60+
return true;
61+
}
62+
5863
this.data(required);
5964

6065
// Only review empty nodes when a node is both empty and does not have an aria-owns relationship

lib/checks/aria/aria-required-children.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020
"metadata": {
2121
"impact": "critical",
2222
"messages": {
23-
"pass": "Required ARIA children are present",
23+
"pass": {
24+
"default": "Required ARIA children are present",
25+
"aria-busy": "Element has an aria-busy attribute, so it is allowed to omit required children"
26+
},
2427
"fail": {
2528
"singular": "Required ARIA child role not present: ${data.values}",
2629
"plural": "Required ARIA children role not present: ${data.values}",

lib/rules/aria-required-children.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
"help": "Certain ARIA roles must contain particular children"
1111
},
1212
"all": [],
13-
"any": ["aria-required-children", "aria-busy"],
13+
"any": ["aria-required-children"],
1414
"none": []
1515
}

locales/_template.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,10 @@
497497
}
498498
},
499499
"aria-required-children": {
500-
"pass": "Required ARIA children are present",
500+
"pass": {
501+
"default": "Required ARIA children are present",
502+
"aria-busy": "Element has an aria-busy attribute, so it is allowed to omit required children"
503+
},
501504
"fail": {
502505
"singular": "Required ARIA child role not present: ${data.values}",
503506
"plural": "Required ARIA children role not present: ${data.values}",

locales/da.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,9 @@
385385
}
386386
},
387387
"aria-required-children": {
388-
"pass": "Krævet ARIA-under-elementer er til stede",
388+
"pass": {
389+
"default": "Krævet ARIA-under-elementer er til stede"
390+
},
389391
"fail": {
390392
"singular": "Krævet ARIA-under-elementers rolle er ikke til stede: ${data.values}",
391393
"plural": "Krævet ARIA-under-elements rolle er ikke til stede: ${data.values}"

locales/de.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,9 @@
497497
}
498498
},
499499
"aria-required-children": {
500-
"pass": "Alle benötigten ARIA Kinder sind vorhanden.",
500+
"pass": {
501+
"default": "Alle benötigten ARIA Kinder sind vorhanden."
502+
},
501503
"fail": {
502504
"singular": "Benötigte ARIA Kindrolle nicht vorhanden: ${data.values}",
503505
"plural": "Benötigte ARIA Kindrollen nicht vorhanden: ${data.values}",

locales/el.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,9 @@
473473
}
474474
},
475475
"aria-required-children": {
476-
"pass": "Οι απαιτούμενοι γόνοι ARIA είναι παρόντες",
476+
"pass": {
477+
"default": "Οι απαιτούμενοι γόνοι ARIA είναι παρόντες"
478+
},
477479
"fail": {
478480
"singular": "Ο απαιτούμενος θυγατρικός ρόλος ARIA δεν υπάρχει: ${data.values}",
479481
"plural": "Οι απαιτούμενοι θυγατρικόι ρόλοι ARIA δεν υπάρχουν: ${data.values}",

locales/es.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,9 @@
376376
}
377377
},
378378
"aria-required-children": {
379-
"pass": "Los hijos ARIA requeridos están presentes",
379+
"pass": {
380+
"default": "Los hijos ARIA requeridos están presentes"
381+
},
380382
"fail": {
381383
"singular": "Rol de hijos requerido en ARIA no presente: ${data.values}",
382384
"plural": "Rol de hijo requerido en ARIA no presente: ${data.values}"

locales/eu.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,9 @@
376376
}
377377
},
378378
"aria-required-children": {
379-
"pass": "Eskatutako ARIA semeak bertan daude",
379+
"pass": {
380+
"default": "Eskatutako ARIA semeak bertan daude"
381+
},
380382
"fail": {
381383
"singular": "Esktatutako ARIARren semeak ez daude : ${data.values}",
382384
"plural": "Esktatutako ARIARren semeaez dago : ${data.values}"

locales/fr.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,9 @@
457457
}
458458
},
459459
"aria-required-children": {
460-
"pass": "Les descendants ARIA requis sont présents",
460+
"pass": {
461+
"default": "Les descendants ARIA requis sont présents"
462+
},
461463
"fail": {
462464
"singular": "Le descendant ARIA requis est manquant : ${data.values}",
463465
"plural": "Les descendants ARIA requis sont manquants : ${data.values}"

0 commit comments

Comments
 (0)