@uuv/a11y
Version:
A javascript lib for running a11y validation based on multiple reference(RGAA, etc)
62 lines (61 loc) • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.A11yChecklistChecker = void 0;
const reference_1 = require("./reference");
const rxjs_1 = require("rxjs");
const result_1 = require("./result");
const uuv_a11y_result_1 = require("./uuv-a11y-result");
class A11yChecklistChecker {
url;
engine;
reference;
constructor(url, engine, reference) {
this.url = url;
this.engine = engine;
this.reference = reference;
}
validate(name, script, location) {
const result = new result_1.A11yResult(this.url, this.reference);
const rules = this.rules();
const checkList = this.buildCheckList(rules);
return (0, rxjs_1.forkJoin)(checkList)
.pipe((0, rxjs_1.map)((ruleResults) => {
result.ruleResults = ruleResults;
result.computeStatus();
const issues = ruleResults.map(ruleResult => {
return {
type: uuv_a11y_result_1.IssueType.Error,
code: ruleResult.rule.id,
message: ruleResult.rule.description || "",
selector: ruleResult.getErrorNodes().map(error => error.selector).join(", "),
runnerExtras: {
rule: ruleResult.rule,
validations: ruleResult.validations,
errorNodes: ruleResult.getErrorNodes()
}
};
});
return {
name,
script,
location,
result: {
date: (new Date()).getTime(),
reference: reference_1.A11yReferenceEnum.WCAG_WEB,
issues,
rawResult: result,
status: result.status
},
};
}), (0, rxjs_1.tap)(result => {
console.debug("result");
console.debug(result);
}));
}
buildCheckList(rules) {
const checkList = [];
rules.forEach(rule => checkList.push(this.engine.buildCheckListItemFromRule(rule)));
return checkList;
}
}
exports.A11yChecklistChecker = A11yChecklistChecker;