in src/injected/frameCommunicators/html-element-axe-results-helper.ts [93:119]
private getFrameSelectorToResultMap(
elementResults: AxeResultsWithFrameLevel[],
): DictionaryStringTo<AxeResultsWithFrameLevel[]> {
const elementResultsByFrame: DictionaryStringTo<AxeResultsWithFrameLevel[]> = {};
for (let i = 0; i < elementResults.length; i++) {
const elementResult = elementResults[i];
const targetLength = elementResult.target.length;
if (elementResult.targetIndex == null) {
elementResult.targetIndex = 0;
}
if (targetLength === elementResult.targetIndex + 1) {
// current frame
elementResultsByFrame[''] = elementResultsByFrame[''] || [];
elementResultsByFrame[''].push(elementResult);
} else if (targetLength > elementResult.targetIndex + 1) {
const frameSelector = elementResult.target[elementResult.targetIndex++];
elementResultsByFrame[frameSelector] = elementResultsByFrame[frameSelector] || [];
elementResultsByFrame[frameSelector].push(elementResult);
} else {
this.logger.log('Unable to find selector for result ', elementResult);
}
}
return elementResultsByFrame;
}