UNPKG

@uuv/a11y

Version:

A javascript lib for running a11y validation based on multiple reference(RGAA, etc)

62 lines (61 loc) 2.24 kB
"use strict"; 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;