@qualweb/act-rules 0.0.0-develop-20231124154536 → 0.0.0-develop-20241204125016
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -76
- package/dist/ACTRulesModule.d.ts +11 -0
- package/dist/ACTRulesModule.d.ts.map +1 -0
- package/dist/ACTRulesModule.js +65 -0
- package/dist/ACTRulesRunner.d.ts +14 -0
- package/dist/ACTRulesRunner.d.ts.map +1 -0
- package/dist/ACTRulesRunner.js +44 -0
- package/dist/__webpack/act.bundle.js +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/lib/ACTRulesTester.object.d.ts +15 -0
- package/dist/lib/ACTRulesTester.object.d.ts.map +1 -0
- package/dist/lib/ACTRulesTester.object.js +150 -0
- package/dist/lib/AtomicRule.object.d.ts +7 -0
- package/dist/lib/AtomicRule.object.d.ts.map +1 -0
- package/dist/lib/AtomicRule.object.js +7 -0
- package/dist/lib/CompositeRule.object.d.ts +13 -0
- package/dist/lib/CompositeRule.object.d.ts.map +1 -0
- package/dist/lib/CompositeRule.object.js +80 -0
- package/dist/lib/Rule.object.d.ts +19 -0
- package/dist/lib/Rule.object.d.ts.map +1 -0
- package/dist/lib/Rule.object.js +76 -0
- package/dist/lib/mapping.d.ts +36 -0
- package/dist/lib/mapping.d.ts.map +1 -0
- package/dist/lib/mapping.js +38 -0
- package/dist/lib/mappingComposite.d.ts +39 -0
- package/dist/lib/mappingComposite.d.ts.map +1 -0
- package/dist/lib/mappingComposite.js +23 -0
- package/dist/lib/rules.json +1523 -0
- package/dist/lib/types.d.ts +15 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/rules/QW-ACT-R1.d.ts +7 -0
- package/dist/rules/QW-ACT-R1.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R1.js +49 -0
- package/dist/rules/QW-ACT-R10.d.ts +8 -0
- package/dist/rules/QW-ACT-R10.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R10.js +98 -0
- package/dist/rules/QW-ACT-R11.d.ts +7 -0
- package/dist/rules/QW-ACT-R11.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R11.js +40 -0
- package/dist/rules/QW-ACT-R12.d.ts +7 -0
- package/dist/rules/QW-ACT-R12.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R12.js +40 -0
- package/dist/rules/QW-ACT-R13.d.ts +9 -0
- package/dist/rules/QW-ACT-R13.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R13.js +76 -0
- package/dist/rules/QW-ACT-R14.d.ts +7 -0
- package/dist/rules/QW-ACT-R14.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R14.js +73 -0
- package/dist/rules/QW-ACT-R15.d.ts +6 -0
- package/dist/rules/QW-ACT-R15.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R15.js +26 -0
- package/dist/rules/QW-ACT-R16.d.ts +7 -0
- package/dist/rules/QW-ACT-R16.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R16.js +52 -0
- package/dist/rules/QW-ACT-R17.d.ts +7 -0
- package/dist/rules/QW-ACT-R17.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R17.js +52 -0
- package/dist/rules/QW-ACT-R19.d.ts +7 -0
- package/dist/rules/QW-ACT-R19.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R19.js +42 -0
- package/dist/rules/QW-ACT-R2.d.ts +7 -0
- package/dist/rules/QW-ACT-R2.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R2.js +40 -0
- package/dist/rules/QW-ACT-R20.d.ts +7 -0
- package/dist/rules/QW-ACT-R20.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R20.js +39 -0
- package/dist/rules/QW-ACT-R21.d.ts +8 -0
- package/dist/rules/QW-ACT-R21.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R21.js +50 -0
- package/dist/rules/QW-ACT-R22.d.ts +9 -0
- package/dist/rules/QW-ACT-R22.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R22.js +69 -0
- package/dist/rules/QW-ACT-R23.d.ts +6 -0
- package/dist/rules/QW-ACT-R23.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R23.js +26 -0
- package/dist/rules/QW-ACT-R24.d.ts +12 -0
- package/dist/rules/QW-ACT-R24.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R24.js +298 -0
- package/dist/rules/QW-ACT-R25.d.ts +7 -0
- package/dist/rules/QW-ACT-R25.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R25.js +67 -0
- package/dist/rules/QW-ACT-R26.d.ts +6 -0
- package/dist/rules/QW-ACT-R26.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R26.js +26 -0
- package/dist/rules/QW-ACT-R27.d.ts +7 -0
- package/dist/rules/QW-ACT-R27.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R27.js +55 -0
- package/dist/rules/QW-ACT-R28.d.ts +7 -0
- package/dist/rules/QW-ACT-R28.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R28.js +83 -0
- package/dist/rules/QW-ACT-R29.d.ts +6 -0
- package/dist/rules/QW-ACT-R29.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R29.js +26 -0
- package/dist/rules/QW-ACT-R30.d.ts +9 -0
- package/dist/rules/QW-ACT-R30.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R30.js +69 -0
- package/dist/rules/QW-ACT-R31.d.ts +6 -0
- package/dist/rules/QW-ACT-R31.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R31.js +26 -0
- package/dist/rules/QW-ACT-R32.d.ts +6 -0
- package/dist/rules/QW-ACT-R32.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R32.js +26 -0
- package/dist/rules/QW-ACT-R33.d.ts +8 -0
- package/dist/rules/QW-ACT-R33.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R33.js +89 -0
- package/dist/rules/QW-ACT-R34.d.ts +7 -0
- package/dist/rules/QW-ACT-R34.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R34.js +112 -0
- package/dist/rules/QW-ACT-R35.d.ts +7 -0
- package/dist/rules/QW-ACT-R35.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R35.js +40 -0
- package/dist/rules/QW-ACT-R36.d.ts +7 -0
- package/dist/rules/QW-ACT-R36.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R36.js +108 -0
- package/dist/rules/QW-ACT-R37.d.ts +23 -0
- package/dist/rules/QW-ACT-R37.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R37.js +358 -0
- package/dist/rules/QW-ACT-R38.d.ts +9 -0
- package/dist/rules/QW-ACT-R38.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R38.js +100 -0
- package/dist/rules/QW-ACT-R39.d.ts +8 -0
- package/dist/rules/QW-ACT-R39.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R39.js +155 -0
- package/dist/rules/QW-ACT-R4.d.ts +8 -0
- package/dist/rules/QW-ACT-R4.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R4.js +85 -0
- package/dist/rules/QW-ACT-R40.d.ts +7 -0
- package/dist/rules/QW-ACT-R40.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R40.js +58 -0
- package/dist/rules/QW-ACT-R41.d.ts +7 -0
- package/dist/rules/QW-ACT-R41.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R41.js +42 -0
- package/dist/rules/QW-ACT-R42.d.ts +7 -0
- package/dist/rules/QW-ACT-R42.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R42.js +40 -0
- package/dist/rules/QW-ACT-R43.d.ts +8 -0
- package/dist/rules/QW-ACT-R43.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R43.js +98 -0
- package/dist/rules/QW-ACT-R44.d.ts +8 -0
- package/dist/rules/QW-ACT-R44.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R44.js +92 -0
- package/dist/rules/QW-ACT-R48.d.ts +7 -0
- package/dist/rules/QW-ACT-R48.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R48.js +38 -0
- package/dist/rules/QW-ACT-R49.d.ts +8 -0
- package/dist/rules/QW-ACT-R49.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R49.js +83 -0
- package/dist/rules/QW-ACT-R5.d.ts +8 -0
- package/dist/rules/QW-ACT-R5.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R5.js +44 -0
- package/dist/rules/QW-ACT-R50.d.ts +8 -0
- package/dist/rules/QW-ACT-R50.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R50.js +76 -0
- package/dist/rules/QW-ACT-R51.d.ts +7 -0
- package/dist/rules/QW-ACT-R51.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R51.js +41 -0
- package/dist/rules/QW-ACT-R53.d.ts +7 -0
- package/dist/rules/QW-ACT-R53.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R53.js +41 -0
- package/dist/rules/QW-ACT-R54.d.ts +7 -0
- package/dist/rules/QW-ACT-R54.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R54.js +41 -0
- package/dist/rules/QW-ACT-R55.d.ts +7 -0
- package/dist/rules/QW-ACT-R55.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R55.js +41 -0
- package/dist/rules/QW-ACT-R56.d.ts +7 -0
- package/dist/rules/QW-ACT-R56.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R56.js +41 -0
- package/dist/rules/QW-ACT-R58.d.ts +7 -0
- package/dist/rules/QW-ACT-R58.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R58.js +33 -0
- package/dist/rules/QW-ACT-R59.d.ts +7 -0
- package/dist/rules/QW-ACT-R59.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R59.js +33 -0
- package/dist/rules/QW-ACT-R6.d.ts +7 -0
- package/dist/rules/QW-ACT-R6.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R6.js +40 -0
- package/dist/rules/QW-ACT-R60.d.ts +7 -0
- package/dist/rules/QW-ACT-R60.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R60.js +41 -0
- package/dist/rules/QW-ACT-R61.d.ts +7 -0
- package/dist/rules/QW-ACT-R61.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R61.js +41 -0
- package/dist/rules/QW-ACT-R62.d.ts +7 -0
- package/dist/rules/QW-ACT-R62.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R62.js +37 -0
- package/dist/rules/QW-ACT-R63.d.ts +8 -0
- package/dist/rules/QW-ACT-R63.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R63.js +60 -0
- package/dist/rules/QW-ACT-R64.d.ts +8 -0
- package/dist/rules/QW-ACT-R64.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R64.js +60 -0
- package/dist/rules/QW-ACT-R65.d.ts +7 -0
- package/dist/rules/QW-ACT-R65.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R65.js +58 -0
- package/dist/rules/QW-ACT-R66.d.ts +7 -0
- package/dist/rules/QW-ACT-R66.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R66.js +40 -0
- package/dist/rules/QW-ACT-R67.d.ts +12 -0
- package/dist/rules/QW-ACT-R67.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R67.js +94 -0
- package/dist/rules/QW-ACT-R68.d.ts +14 -0
- package/dist/rules/QW-ACT-R68.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R68.js +117 -0
- package/dist/rules/QW-ACT-R69.d.ts +12 -0
- package/dist/rules/QW-ACT-R69.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R69.js +94 -0
- package/dist/rules/QW-ACT-R7.d.ts +14 -0
- package/dist/rules/QW-ACT-R7.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R7.js +167 -0
- package/dist/rules/QW-ACT-R70.d.ts +7 -0
- package/dist/rules/QW-ACT-R70.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R70.js +52 -0
- package/dist/rules/QW-ACT-R71.d.ts +8 -0
- package/dist/rules/QW-ACT-R71.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R71.js +81 -0
- package/dist/rules/QW-ACT-R73.d.ts +8 -0
- package/dist/rules/QW-ACT-R73.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R73.js +60 -0
- package/dist/rules/QW-ACT-R74.d.ts +8 -0
- package/dist/rules/QW-ACT-R74.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R74.js +80 -0
- package/dist/rules/QW-ACT-R75.d.ts +6 -0
- package/dist/rules/QW-ACT-R75.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R75.js +27 -0
- package/dist/rules/QW-ACT-R76.d.ts +23 -0
- package/dist/rules/QW-ACT-R76.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R76.js +336 -0
- package/dist/rules/QW-ACT-R77.d.ts +7 -0
- package/dist/rules/QW-ACT-R77.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R77.js +53 -0
- package/dist/rules/QW-ACT-R9.d.ts +7 -0
- package/dist/rules/QW-ACT-R9.d.ts.map +1 -0
- package/dist/rules/QW-ACT-R9.js +87 -0
- package/dist/rules/index.d.ts +69 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +84 -0
- package/package.json +30 -27
- package/dist/act.bundle.js +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QW_ACT_R30 = void 0;
|
|
13
|
+
const applicability_1 = require("@qualweb/util/applicability");
|
|
14
|
+
const evaluation_1 = require("@qualweb/core/evaluation");
|
|
15
|
+
const AtomicRule_object_1 = require("../lib/AtomicRule.object");
|
|
16
|
+
class QW_ACT_R30 extends AtomicRule_object_1.AtomicRule {
|
|
17
|
+
execute(element) {
|
|
18
|
+
const test = new evaluation_1.Test();
|
|
19
|
+
const accessibleName = window.AccessibilityUtils.getAccessibleName(element);
|
|
20
|
+
const elementText = window.DomUtils.getTrimmedText(element);
|
|
21
|
+
const isIconValue = this.isIcon(elementText, accessibleName, element);
|
|
22
|
+
if (accessibleName === undefined) {
|
|
23
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
24
|
+
test.resultCode = 'F1';
|
|
25
|
+
}
|
|
26
|
+
else if (elementText === undefined || elementText === '') {
|
|
27
|
+
test.verdict = evaluation_1.Verdict.INAPPLICABLE;
|
|
28
|
+
test.resultCode = 'I1';
|
|
29
|
+
}
|
|
30
|
+
else if (!!elementText && (isIconValue || this.includesText(accessibleName, elementText))) {
|
|
31
|
+
test.verdict = evaluation_1.Verdict.PASSED;
|
|
32
|
+
test.resultCode = 'P1';
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
36
|
+
test.resultCode = 'F2';
|
|
37
|
+
}
|
|
38
|
+
test.addElement(element, true, false, true);
|
|
39
|
+
this.addTestResult(test);
|
|
40
|
+
}
|
|
41
|
+
isIcon(elementText, accessibleName, element) {
|
|
42
|
+
const iconMap = ['i', 'x'];
|
|
43
|
+
const fontStyle = element.getElementStyleProperty('font-family', null);
|
|
44
|
+
return !!accessibleName && (iconMap.includes(elementText.toLowerCase()) || fontStyle.includes('Material Icons'));
|
|
45
|
+
}
|
|
46
|
+
includesText(accessibleName, elementText) {
|
|
47
|
+
accessibleName = accessibleName
|
|
48
|
+
.toLowerCase()
|
|
49
|
+
.trim()
|
|
50
|
+
.replace(/\r?\n|\r|[^\w\s-]+/g, '')
|
|
51
|
+
.replace(/s+/g, ' ');
|
|
52
|
+
elementText = elementText
|
|
53
|
+
.toLowerCase()
|
|
54
|
+
.trim()
|
|
55
|
+
.replace(/\r?\n|\r|[^\w\s-]+/g, '')
|
|
56
|
+
.replace(/s+/g, ' ');
|
|
57
|
+
return accessibleName.includes(elementText);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.QW_ACT_R30 = QW_ACT_R30;
|
|
61
|
+
__decorate([
|
|
62
|
+
applicability_1.ElementExists,
|
|
63
|
+
applicability_1.ElementIsVisible,
|
|
64
|
+
applicability_1.ElementIsWidget,
|
|
65
|
+
applicability_1.ElementAllowsNameFromContent,
|
|
66
|
+
__metadata("design:type", Function),
|
|
67
|
+
__metadata("design:paramtypes", [Function]),
|
|
68
|
+
__metadata("design:returntype", void 0)
|
|
69
|
+
], QW_ACT_R30.prototype, "execute", null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QW-ACT-R31.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R31.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,cAAM,UAAW,SAAQ,aAAa;IAEpC,OAAO,IAAI,IAAI;CAGhB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QW_ACT_R31 = void 0;
|
|
13
|
+
const applicability_1 = require("@qualweb/util/applicability");
|
|
14
|
+
const CompositeRule_object_1 = require("../lib/CompositeRule.object");
|
|
15
|
+
class QW_ACT_R31 extends CompositeRule_object_1.CompositeRule {
|
|
16
|
+
execute() {
|
|
17
|
+
throw new Error('Method not implemented.');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.QW_ACT_R31 = QW_ACT_R31;
|
|
21
|
+
__decorate([
|
|
22
|
+
applicability_1.ElementExists,
|
|
23
|
+
__metadata("design:type", Function),
|
|
24
|
+
__metadata("design:paramtypes", []),
|
|
25
|
+
__metadata("design:returntype", void 0)
|
|
26
|
+
], QW_ACT_R31.prototype, "execute", null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QW-ACT-R32.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R32.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,cAAM,UAAW,SAAQ,aAAa;IAEpC,OAAO,IAAI,IAAI;CAGhB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QW_ACT_R32 = void 0;
|
|
13
|
+
const applicability_1 = require("@qualweb/util/applicability");
|
|
14
|
+
const CompositeRule_object_1 = require("../lib/CompositeRule.object");
|
|
15
|
+
class QW_ACT_R32 extends CompositeRule_object_1.CompositeRule {
|
|
16
|
+
execute() {
|
|
17
|
+
throw new Error('Method not implemented.');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.QW_ACT_R32 = QW_ACT_R32;
|
|
21
|
+
__decorate([
|
|
22
|
+
applicability_1.ElementExists,
|
|
23
|
+
__metadata("design:type", Function),
|
|
24
|
+
__metadata("design:paramtypes", []),
|
|
25
|
+
__metadata("design:returntype", void 0)
|
|
26
|
+
], QW_ACT_R32.prototype, "execute", null);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { QWElement } from '@qualweb/qw-element';
|
|
2
|
+
import { AtomicRule } from '../lib/AtomicRule.object';
|
|
3
|
+
declare class QW_ACT_R33 extends AtomicRule {
|
|
4
|
+
execute(element: QWElement): void;
|
|
5
|
+
private isElementADescendantOf;
|
|
6
|
+
}
|
|
7
|
+
export { QW_ACT_R33 };
|
|
8
|
+
//# sourceMappingURL=QW-ACT-R33.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QW-ACT-R33.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R33.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAEjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IA2CjC,OAAO,CAAC,sBAAsB;CA0B/B;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QW_ACT_R33 = void 0;
|
|
13
|
+
const applicability_1 = require("@qualweb/util/applicability");
|
|
14
|
+
const evaluation_1 = require("@qualweb/core/evaluation");
|
|
15
|
+
const AtomicRule_object_1 = require("../lib/AtomicRule.object");
|
|
16
|
+
class QW_ACT_R33 extends AtomicRule_object_1.AtomicRule {
|
|
17
|
+
execute(element) {
|
|
18
|
+
const roles = window.AccessibilityUtils.roles;
|
|
19
|
+
const test = new evaluation_1.Test();
|
|
20
|
+
const explicitRole = window.AccessibilityUtils.getElementValidExplicitRole(element);
|
|
21
|
+
const implicitRole = window.AccessibilityUtils.getImplicitRole(element, '');
|
|
22
|
+
const isInAT = window.AccessibilityUtils.isElementInAT(element);
|
|
23
|
+
const isValidRole = window.AccessibilityUtils.elementHasValidRole(element);
|
|
24
|
+
if (explicitRole !== null &&
|
|
25
|
+
isValidRole &&
|
|
26
|
+
explicitRole !== implicitRole &&
|
|
27
|
+
isInAT &&
|
|
28
|
+
roles[explicitRole]['requiredContextRole'] !== '') {
|
|
29
|
+
const requiredContextRole = roles[explicitRole]['requiredContextRole'];
|
|
30
|
+
const id = element.getElementAttribute('id');
|
|
31
|
+
const ariaOwns = window.qwPage.getElement('[aria-owns' + `~="${id}"]`, element);
|
|
32
|
+
if (ariaOwns !== null) {
|
|
33
|
+
const ariaOwnsRole = window.AccessibilityUtils.getElementRole(ariaOwns);
|
|
34
|
+
if (ariaOwnsRole && requiredContextRole.includes(ariaOwnsRole)) {
|
|
35
|
+
test.verdict = evaluation_1.Verdict.PASSED;
|
|
36
|
+
test.resultCode = 'P1';
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
40
|
+
test.resultCode = 'F1';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else if (this.isElementADescendantOf(element, requiredContextRole)) {
|
|
44
|
+
test.verdict = evaluation_1.Verdict.PASSED;
|
|
45
|
+
test.resultCode = 'P1';
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
49
|
+
test.resultCode = 'F1';
|
|
50
|
+
}
|
|
51
|
+
test.addElement(element);
|
|
52
|
+
this.addTestResult(test);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
isElementADescendantOf(element, roles) {
|
|
56
|
+
let parent = element.getElementParent();
|
|
57
|
+
if (!parent) {
|
|
58
|
+
const documentSelector = element.getElementAttribute('_documentSelector');
|
|
59
|
+
if (!!documentSelector && !documentSelector.includes('iframe')) {
|
|
60
|
+
parent = window.qwPage.getElement(documentSelector);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
let result = false;
|
|
64
|
+
let sameRole = false;
|
|
65
|
+
if (parent !== null) {
|
|
66
|
+
const parentRole = window.AccessibilityUtils.getElementRole(parent);
|
|
67
|
+
if (parentRole !== null) {
|
|
68
|
+
sameRole = roles.includes(parentRole);
|
|
69
|
+
}
|
|
70
|
+
result = sameRole;
|
|
71
|
+
if (parentRole === null || parentRole === 'presentation' || parentRole === 'none') {
|
|
72
|
+
return this.isElementADescendantOf(parent, roles);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.QW_ACT_R33 = QW_ACT_R33;
|
|
84
|
+
__decorate([
|
|
85
|
+
applicability_1.ElementExists,
|
|
86
|
+
__metadata("design:type", Function),
|
|
87
|
+
__metadata("design:paramtypes", [Function]),
|
|
88
|
+
__metadata("design:returntype", void 0)
|
|
89
|
+
], QW_ACT_R33.prototype, "execute", null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QW-ACT-R34.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R34.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAEjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;CA2FlC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QW_ACT_R34 = void 0;
|
|
13
|
+
const applicability_1 = require("@qualweb/util/applicability");
|
|
14
|
+
const evaluation_1 = require("@qualweb/core/evaluation");
|
|
15
|
+
const AtomicRule_object_1 = require("../lib/AtomicRule.object");
|
|
16
|
+
class QW_ACT_R34 extends AtomicRule_object_1.AtomicRule {
|
|
17
|
+
execute(element) {
|
|
18
|
+
const ariaJSON = window.AccessibilityUtils.ariaAttributesRoles;
|
|
19
|
+
const rolesJSON = window.AccessibilityUtils.roles;
|
|
20
|
+
let ariaSelector = '';
|
|
21
|
+
for (const ariaAttrib of Object.keys(ariaJSON) || []) {
|
|
22
|
+
ariaSelector = ariaSelector.concat('[', ariaAttrib, '], ');
|
|
23
|
+
}
|
|
24
|
+
ariaSelector = ariaSelector.substring(0, ariaSelector.length - 2);
|
|
25
|
+
const elementsWithAriaAttribs = element.getElements(ariaSelector);
|
|
26
|
+
for (const elem of elementsWithAriaAttribs || []) {
|
|
27
|
+
const isInAT = window.AccessibilityUtils.isElementInAT(elem);
|
|
28
|
+
let elemAttribs = elem.getElementAttributesName();
|
|
29
|
+
elemAttribs = elemAttribs.filter((elem) => elem.startsWith('ar'));
|
|
30
|
+
for (const attrib of elemAttribs !== null && elemAttribs !== void 0 ? elemAttribs : []) {
|
|
31
|
+
if (attrib in ariaJSON) {
|
|
32
|
+
const values = ariaJSON[attrib]['values'];
|
|
33
|
+
const attrValue = elem.getElementAttribute(attrib);
|
|
34
|
+
const typeValue = ariaJSON[attrib]['typeValue'];
|
|
35
|
+
let result = false;
|
|
36
|
+
if (attrValue && isInAT) {
|
|
37
|
+
if (typeValue === 'value') {
|
|
38
|
+
result = values.includes(attrValue);
|
|
39
|
+
}
|
|
40
|
+
else if (typeValue === 'string') {
|
|
41
|
+
result = values === '';
|
|
42
|
+
}
|
|
43
|
+
else if (typeValue === 'number') {
|
|
44
|
+
result = !isNaN(Number(attrValue));
|
|
45
|
+
}
|
|
46
|
+
else if (typeValue === 'integer') {
|
|
47
|
+
const regex = new RegExp('^[0-9]+$');
|
|
48
|
+
result = regex.test(attrValue);
|
|
49
|
+
}
|
|
50
|
+
else if (typeValue === 'list') {
|
|
51
|
+
const list = attrValue.split(' ');
|
|
52
|
+
let passed = true;
|
|
53
|
+
for (const value of list || []) {
|
|
54
|
+
if (passed) {
|
|
55
|
+
result = values.includes(value);
|
|
56
|
+
passed = result;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const role = window.AccessibilityUtils.getElementRole(elem);
|
|
62
|
+
let requiredAriaList;
|
|
63
|
+
if (role !== null && !!rolesJSON[role]) {
|
|
64
|
+
requiredAriaList = rolesJSON[role]['requiredAria'];
|
|
65
|
+
}
|
|
66
|
+
if (typeValue === 'id') {
|
|
67
|
+
const isRequired = requiredAriaList && requiredAriaList.includes(attrib);
|
|
68
|
+
if (isRequired)
|
|
69
|
+
result = window.qwPage.getElement('#' + attrValue) !== null;
|
|
70
|
+
else
|
|
71
|
+
result = !attrValue.includes(' ');
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const list = attrValue.split(' ');
|
|
75
|
+
const isRequired = requiredAriaList && requiredAriaList.includes(attrib);
|
|
76
|
+
if (isRequired) {
|
|
77
|
+
for (const id of list || []) {
|
|
78
|
+
if (!result) {
|
|
79
|
+
result = window.qwPage.getElement('#' + CSS.escape(id)) !== null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
result = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const test = new evaluation_1.Test();
|
|
89
|
+
if (result) {
|
|
90
|
+
test.verdict = evaluation_1.Verdict.PASSED;
|
|
91
|
+
test.resultCode = 'P1';
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
95
|
+
test.resultCode = 'F1';
|
|
96
|
+
}
|
|
97
|
+
test.description = this.translate(test.resultCode, { attr: attrib });
|
|
98
|
+
test.addElement(elem);
|
|
99
|
+
this.addTestResult(test);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.QW_ACT_R34 = QW_ACT_R34;
|
|
107
|
+
__decorate([
|
|
108
|
+
applicability_1.ElementExists,
|
|
109
|
+
__metadata("design:type", Function),
|
|
110
|
+
__metadata("design:paramtypes", [Function]),
|
|
111
|
+
__metadata("design:returntype", void 0)
|
|
112
|
+
], QW_ACT_R34.prototype, "execute", null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QW-ACT-R35.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R35.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAIjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;CAelC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QW_ACT_R35 = void 0;
|
|
13
|
+
const applicability_1 = require("@qualweb/util/applicability");
|
|
14
|
+
const evaluation_1 = require("@qualweb/core/evaluation");
|
|
15
|
+
const AtomicRule_object_1 = require("../lib/AtomicRule.object");
|
|
16
|
+
class QW_ACT_R35 extends AtomicRule_object_1.AtomicRule {
|
|
17
|
+
execute(element) {
|
|
18
|
+
const test = new evaluation_1.Test();
|
|
19
|
+
const accessibleName = window.AccessibilityUtils.getAccessibleName(element);
|
|
20
|
+
if (accessibleName && accessibleName.trim() !== '') {
|
|
21
|
+
test.verdict = evaluation_1.Verdict.PASSED;
|
|
22
|
+
test.resultCode = 'P1';
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
26
|
+
test.resultCode = 'F1';
|
|
27
|
+
}
|
|
28
|
+
test.addElement(element, true, true, true);
|
|
29
|
+
this.addTestResult(test);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.QW_ACT_R35 = QW_ACT_R35;
|
|
33
|
+
__decorate([
|
|
34
|
+
applicability_1.ElementExists,
|
|
35
|
+
(0, applicability_1.ElementHasOneOfTheFollowingRoles)(['heading']),
|
|
36
|
+
applicability_1.ElementIsInAccessibilityTree,
|
|
37
|
+
__metadata("design:type", Function),
|
|
38
|
+
__metadata("design:paramtypes", [Function]),
|
|
39
|
+
__metadata("design:returntype", void 0)
|
|
40
|
+
], QW_ACT_R35.prototype, "execute", null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QW-ACT-R36.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R36.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAEjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;CAuDlC;AAwCD,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QW_ACT_R36 = void 0;
|
|
13
|
+
const applicability_1 = require("@qualweb/util/applicability");
|
|
14
|
+
const evaluation_1 = require("@qualweb/core/evaluation");
|
|
15
|
+
const AtomicRule_object_1 = require("../lib/AtomicRule.object");
|
|
16
|
+
class QW_ACT_R36 extends AtomicRule_object_1.AtomicRule {
|
|
17
|
+
execute(element) {
|
|
18
|
+
const test = new evaluation_1.Test();
|
|
19
|
+
const parentTableElem = getFirstAncestorElementByNameOrRoles(element, ['table'], []);
|
|
20
|
+
if (parentTableElem !== null) {
|
|
21
|
+
const role = window.AccessibilityUtils.getElementRole(parentTableElem);
|
|
22
|
+
const applicableRoles = ['table', 'grid', 'treegrid'];
|
|
23
|
+
if (role !== null && !applicableRoles.includes(role)) {
|
|
24
|
+
test.verdict = evaluation_1.Verdict.INAPPLICABLE;
|
|
25
|
+
test.resultCode = 'I1';
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const isInAT = window.AccessibilityUtils.isElementInAT(parentTableElem);
|
|
29
|
+
if (isInAT) {
|
|
30
|
+
const isVisible = window.DomUtils.isElementVisible(parentTableElem);
|
|
31
|
+
if (isVisible) {
|
|
32
|
+
const headerAttributes = [];
|
|
33
|
+
const elementHeaders = element.getElementAttribute('headers');
|
|
34
|
+
const headers = (elementHeaders ? elementHeaders : '').split(' ');
|
|
35
|
+
for (const header of headers) {
|
|
36
|
+
if (headerAttributes.indexOf(header) < 0) {
|
|
37
|
+
headerAttributes.push(header);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
let i = 0;
|
|
41
|
+
let idElem, idElemRole;
|
|
42
|
+
while (test.verdict !== 'failed' && i < headerAttributes.length) {
|
|
43
|
+
idElem = getElementByIdInElement(parentTableElem, headerAttributes[i]);
|
|
44
|
+
if (idElem === null) {
|
|
45
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
46
|
+
test.description = this.translate('F1', { attr: headerAttributes[i] });
|
|
47
|
+
test.resultCode = 'F1';
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
idElemRole = window.AccessibilityUtils.getElementRole(idElem);
|
|
51
|
+
if (idElemRole !== 'rowheader' && idElemRole !== 'columnheader') {
|
|
52
|
+
test.verdict = evaluation_1.Verdict.FAILED;
|
|
53
|
+
test.description = this.translate('F2', { attr: headerAttributes[i] });
|
|
54
|
+
test.resultCode = 'F2';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
i++;
|
|
58
|
+
}
|
|
59
|
+
if (test.verdict !== 'failed') {
|
|
60
|
+
test.verdict = evaluation_1.Verdict.PASSED;
|
|
61
|
+
test.resultCode = 'P1';
|
|
62
|
+
}
|
|
63
|
+
test.addElement(element, true, true);
|
|
64
|
+
this.addTestResult(test);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.QW_ACT_R36 = QW_ACT_R36;
|
|
72
|
+
__decorate([
|
|
73
|
+
applicability_1.ElementExists,
|
|
74
|
+
__metadata("design:type", Function),
|
|
75
|
+
__metadata("design:paramtypes", [Function]),
|
|
76
|
+
__metadata("design:returntype", void 0)
|
|
77
|
+
], QW_ACT_R36.prototype, "execute", null);
|
|
78
|
+
function getFirstAncestorElementByNameOrRoles(element, names, roles) {
|
|
79
|
+
const parent = element.getElementParent();
|
|
80
|
+
let result = false;
|
|
81
|
+
let sameRole = false, sameName = false;
|
|
82
|
+
if (parent !== null) {
|
|
83
|
+
const parentName = parent.getElementTagName();
|
|
84
|
+
const parentRole = window.AccessibilityUtils.getElementRole(parent);
|
|
85
|
+
if (parentName !== null) {
|
|
86
|
+
sameName = names.includes(parentName);
|
|
87
|
+
}
|
|
88
|
+
if (parentRole !== null) {
|
|
89
|
+
sameRole = roles.includes(parentRole);
|
|
90
|
+
}
|
|
91
|
+
result = sameName || sameRole;
|
|
92
|
+
if (!result) {
|
|
93
|
+
return getFirstAncestorElementByNameOrRoles(parent, names, roles);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return parent;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function getElementByIdInElement(element, id) {
|
|
104
|
+
if (!id) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
return element.getElement(`[id="${id}"]`);
|
|
108
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { QWElement } from '@qualweb/qw-element';
|
|
2
|
+
import { Test } from '@qualweb/core/evaluation';
|
|
3
|
+
import { AtomicRule } from '../lib/AtomicRule.object';
|
|
4
|
+
declare class QW_ACT_R37 extends AtomicRule {
|
|
5
|
+
execute(element: QWElement): void;
|
|
6
|
+
getBackground(element: QWElement): string;
|
|
7
|
+
isImage(color: string): boolean;
|
|
8
|
+
evaluateGradient(test: Test, element: QWElement, parsedGradientString: any, fgColor: any, opacity: number, fontSize: string, fontWeight: string, fontStyle: string, fontFamily: string, elementText: string): boolean;
|
|
9
|
+
isHumanLanguage(text: string): boolean;
|
|
10
|
+
equals(color1: any, color2: any): boolean;
|
|
11
|
+
getGradientDirection(gradient: string): string | undefined;
|
|
12
|
+
parseGradientString(gradient: string, opacity: number): any;
|
|
13
|
+
parseRGBString(colorString: string, opacity: number): any;
|
|
14
|
+
getRelativeLuminance(red: number, green: number, blue: number): number;
|
|
15
|
+
flattenColors(fgColor: any, bgColor: any): any;
|
|
16
|
+
private isBold;
|
|
17
|
+
getContrast(bgColor: any, fgColor: any): number;
|
|
18
|
+
hasValidContrastRatio(contrast: number, fontSize: string, isBold: boolean): boolean;
|
|
19
|
+
getTextSize(font: string, fontSize: number, bold: boolean, italic: boolean, text: string): number;
|
|
20
|
+
getColorInGradient(fromColor: any, toColor: any, ratio: number): any;
|
|
21
|
+
}
|
|
22
|
+
export { QW_ACT_R37 };
|
|
23
|
+
//# sourceMappingURL=QW-ACT-R37.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QW-ACT-R37.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R37.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQrD,OAAO,EAAE,IAAI,EAAW,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAMjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IA8NjC,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM;IAczC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAS/B,gBAAgB,CACd,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,SAAS,EAClB,oBAAoB,EAAE,GAAG,EACzB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO;IAoDV,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO;IASzC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAY1D,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG;IAW3D,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG;IAiCzD,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAYtE,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,GAAG;IAU9C,OAAO,CAAC,MAAM;IAId,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM;IAW/C,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAWnF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAIjG,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG;CAOrE;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|