From 92d95731561a84fa373c867132a8ed36c54e9eea Mon Sep 17 00:00:00 2001 From: Sam Saccone Date: Thu, 4 Jul 2024 12:17:55 -0700 Subject: [PATCH] Fix defect in calling code when building the ElementRoleMap --- src/elementRoleMap.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/elementRoleMap.js b/src/elementRoleMap.js index 0d016a4..5de46e6 100644 --- a/src/elementRoleMap.js +++ b/src/elementRoleMap.js @@ -23,7 +23,25 @@ for (let i = 0; i < keys.length; i++) { if (relation.module === 'HTML') { const concept = relation.concept; if (concept) { - elementRoles.push([concept, [key]]); + const elementRoleRelation: ?ElementARIARoleRelationTuple = elementRoles.find(relation => ariaRoleRelationConceptAttributeEquals(relation[0], concept)); + let roles: RoleSet; + + if (elementRoleRelation) { + roles = elementRoleRelation[1]; + } else { + roles = []; + } + let isUnique = true; + for (let i = 0; i < roles.length; i++) { + if (roles[i] === key) { + isUnique = false; + break; + } + } + if (isUnique) { + roles.push(key); + } + elementRoles.push([concept, roles]); } } }