@uuv/a11y 0.0.1

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.
Files changed (85) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +199 -0
  3. package/bundle/uuv-a11y.bundle.js +3 -0
  4. package/bundle/uuv-a11y.bundle.js.LICENSE.txt +28 -0
  5. package/dist/README.md +199 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.js +17 -0
  8. package/dist/lib/engine/engine.d.ts +12 -0
  9. package/dist/lib/engine/engine.js +123 -0
  10. package/dist/lib/index.d.ts +3 -0
  11. package/dist/lib/index.js +19 -0
  12. package/dist/lib/model/checker.d.ts +14 -0
  13. package/dist/lib/model/checker.js +35 -0
  14. package/dist/lib/model/index.d.ts +4 -0
  15. package/dist/lib/model/index.js +20 -0
  16. package/dist/lib/model/reference.d.ts +55 -0
  17. package/dist/lib/model/reference.js +66 -0
  18. package/dist/lib/model/result.d.ts +57 -0
  19. package/dist/lib/model/result.js +144 -0
  20. package/dist/lib/model/rule.d.ts +99 -0
  21. package/dist/lib/model/rule.js +53 -0
  22. package/dist/lib/query/00-query.d.ts +4 -0
  23. package/dist/lib/query/00-query.js +2 -0
  24. package/dist/lib/query/accessible-name.query.d.ts +8 -0
  25. package/dist/lib/query/accessible-name.query.js +34 -0
  26. package/dist/lib/query/by-role.query.d.ts +8 -0
  27. package/dist/lib/query/by-role.query.js +27 -0
  28. package/dist/lib/query/by-tag.query.d.ts +7 -0
  29. package/dist/lib/query/by-tag.query.js +20 -0
  30. package/dist/lib/query/doctype.query.d.ts +5 -0
  31. package/dist/lib/query/doctype.query.js +15 -0
  32. package/dist/lib/query/form.query.d.ts +8 -0
  33. package/dist/lib/query/form.query.js +87 -0
  34. package/dist/lib/query/index.d.ts +6 -0
  35. package/dist/lib/query/index.js +22 -0
  36. package/dist/lib/reference/alix/alix-checker.d.ts +0 -0
  37. package/dist/lib/reference/alix/alix-checker.js +82 -0
  38. package/dist/lib/reference/alix/alix-rules.d.ts +0 -0
  39. package/dist/lib/reference/alix/alix-rules.js +1028 -0
  40. package/dist/lib/reference/alix/index.d.ts +0 -0
  41. package/dist/lib/reference/alix/index.js +3 -0
  42. package/dist/lib/reference/index.d.ts +1 -0
  43. package/dist/lib/reference/index.js +18 -0
  44. package/dist/lib/reference/rgaa/common.d.ts +2 -0
  45. package/dist/lib/reference/rgaa/common.js +5 -0
  46. package/dist/lib/reference/rgaa/coverage/coverage-helper.d.ts +2 -0
  47. package/dist/lib/reference/rgaa/coverage/coverage-helper.js +100 -0
  48. package/dist/lib/reference/rgaa/coverage/coverage-statement.json +90 -0
  49. package/dist/lib/reference/rgaa/index.d.ts +2 -0
  50. package/dist/lib/reference/rgaa/index.js +18 -0
  51. package/dist/lib/reference/rgaa/rgaa-checker.d.ts +8 -0
  52. package/dist/lib/reference/rgaa/rgaa-checker.js +31 -0
  53. package/dist/lib/reference/rgaa/rgaa-reference.d.ts +2 -0
  54. package/dist/lib/reference/rgaa/rgaa-reference.js +44 -0
  55. package/dist/lib/reference/rgaa/rgaa_4.1.criteres.json +4144 -0
  56. package/dist/lib/reference/rgaa/rules/1-image.d.ts +14 -0
  57. package/dist/lib/reference/rgaa/rules/1-image.js +644 -0
  58. package/dist/lib/reference/rgaa/rules/10-display.d.ts +2 -0
  59. package/dist/lib/reference/rgaa/rules/10-display.js +3 -0
  60. package/dist/lib/reference/rgaa/rules/11-form.d.ts +14 -0
  61. package/dist/lib/reference/rgaa/rules/11-form.js +16 -0
  62. package/dist/lib/reference/rgaa/rules/12-navigation.d.ts +2 -0
  63. package/dist/lib/reference/rgaa/rules/12-navigation.js +3 -0
  64. package/dist/lib/reference/rgaa/rules/13-visit.d.ts +2 -0
  65. package/dist/lib/reference/rgaa/rules/13-visit.js +3 -0
  66. package/dist/lib/reference/rgaa/rules/2-frame.d.ts +14 -0
  67. package/dist/lib/reference/rgaa/rules/2-frame.js +34 -0
  68. package/dist/lib/reference/rgaa/rules/3-color.d.ts +14 -0
  69. package/dist/lib/reference/rgaa/rules/3-color.js +50 -0
  70. package/dist/lib/reference/rgaa/rules/4-multimedia.d.ts +2 -0
  71. package/dist/lib/reference/rgaa/rules/4-multimedia.js +3 -0
  72. package/dist/lib/reference/rgaa/rules/5-table.d.ts +2 -0
  73. package/dist/lib/reference/rgaa/rules/5-table.js +3 -0
  74. package/dist/lib/reference/rgaa/rules/6-link.d.ts +2 -0
  75. package/dist/lib/reference/rgaa/rules/6-link.js +3 -0
  76. package/dist/lib/reference/rgaa/rules/7-script.d.ts +2 -0
  77. package/dist/lib/reference/rgaa/rules/7-script.js +3 -0
  78. package/dist/lib/reference/rgaa/rules/8-required-element.d.ts +14 -0
  79. package/dist/lib/reference/rgaa/rules/8-required-element.js +78 -0
  80. package/dist/lib/reference/rgaa/rules/9-structure.d.ts +2 -0
  81. package/dist/lib/reference/rgaa/rules/9-structure.js +3 -0
  82. package/dist/lib/reference/rgaa/selector-helper.d.ts +17 -0
  83. package/dist/lib/reference/rgaa/selector-helper.js +33 -0
  84. package/dist/package.json +63 -0
  85. package/package.json +63 -0
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.A11yResult = exports.A11yRuleResult = exports.A11yRuleValidationResult = exports.A11yResultStatus = void 0;
4
+ var A11yResultStatus;
5
+ (function (A11yResultStatus) {
6
+ A11yResultStatus["UNKNOWN"] = "unknown";
7
+ A11yResultStatus["SUCCESS"] = "success";
8
+ A11yResultStatus["MANUAL"] = "manual";
9
+ A11yResultStatus["ERROR"] = "error";
10
+ })(A11yResultStatus = exports.A11yResultStatus || (exports.A11yResultStatus = {}));
11
+ class A11yRuleValidationResult {
12
+ criteria;
13
+ status = A11yResultStatus.UNKNOWN;
14
+ errorNodes = [];
15
+ nodesToCheckManually = [];
16
+ constructor(criteria) {
17
+ this.criteria = criteria;
18
+ }
19
+ }
20
+ exports.A11yRuleValidationResult = A11yRuleValidationResult;
21
+ class A11yRuleResult {
22
+ url;
23
+ rule;
24
+ status = A11yResultStatus.UNKNOWN;
25
+ validations = [];
26
+ constructor(url, rule) {
27
+ this.url = url;
28
+ this.rule = rule;
29
+ }
30
+ getOrAddValidation(criteria) {
31
+ let validation = this.validations.find(value => value.criteria === criteria);
32
+ if (!validation) {
33
+ validation = new A11yRuleValidationResult(criteria);
34
+ this.validations.push(validation);
35
+ }
36
+ return validation;
37
+ }
38
+ getErrorNodes() {
39
+ let nodeFound = [];
40
+ this.validations.forEach(validation => {
41
+ nodeFound = nodeFound.concat(validation.errorNodes);
42
+ });
43
+ return nodeFound;
44
+ }
45
+ getNodesToCheckManually() {
46
+ let nodeFound = [];
47
+ this.validations.forEach(validation => {
48
+ nodeFound = nodeFound.concat(validation.nodesToCheckManually);
49
+ });
50
+ return nodeFound;
51
+ }
52
+ computeStatus() {
53
+ this.status = this.getStatus();
54
+ }
55
+ getStatus() {
56
+ if (this.validations.find(validation => validation.status === A11yResultStatus.UNKNOWN)) {
57
+ return A11yResultStatus.UNKNOWN;
58
+ }
59
+ if (this.validations.find(validation => validation.status === A11yResultStatus.ERROR)) {
60
+ return A11yResultStatus.ERROR;
61
+ }
62
+ if (this.validations.find(validation => validation.status === A11yResultStatus.MANUAL)) {
63
+ return A11yResultStatus.MANUAL;
64
+ }
65
+ return A11yResultStatus.SUCCESS;
66
+ }
67
+ }
68
+ exports.A11yRuleResult = A11yRuleResult;
69
+ class A11yResult {
70
+ url;
71
+ reference;
72
+ status = A11yResultStatus.UNKNOWN;
73
+ ruleResults = [];
74
+ constructor(url, reference) {
75
+ this.url = url;
76
+ this.reference = reference;
77
+ }
78
+ computeStatus() {
79
+ this.status = computeStatus(this.ruleResults);
80
+ }
81
+ summary() {
82
+ const summary = {
83
+ status: this.status,
84
+ criteria: {}
85
+ };
86
+ this.groupRuleResultByCriterion().forEach((rulesResult, key) => {
87
+ summary.criteria[key] = this.buildSummaryForCriterion(key, rulesResult);
88
+ });
89
+ return summary;
90
+ }
91
+ buildSummaryForCriterion(criterion, criterionRulesResult) {
92
+ const criterionSummary = {
93
+ status: computeStatus(criterionRulesResult),
94
+ tests: {}
95
+ };
96
+ this.groupRuleResultByTestOfACriterion(criterion).forEach((rulesResult, key) => {
97
+ criterionSummary.tests[key] = {
98
+ status: computeStatus(rulesResult)
99
+ };
100
+ });
101
+ return criterionSummary;
102
+ }
103
+ getPosition(inputString, subString, index) {
104
+ return inputString.split(subString, index).join(subString).length;
105
+ }
106
+ groupRuleResultByLevel(ruleResults, level) {
107
+ const ruleResultPerCriteria = new Map();
108
+ ruleResults.forEach(ruleResult => {
109
+ const key = this.getKeyOfLevel(ruleResult, level);
110
+ if (!ruleResultPerCriteria.has(key)) {
111
+ ruleResultPerCriteria.set(key, []);
112
+ }
113
+ ruleResultPerCriteria.get(key)?.push(ruleResult);
114
+ });
115
+ return ruleResultPerCriteria;
116
+ }
117
+ getKeyOfLevel(ruleResult, level) {
118
+ const nextLevelPosition = this.getPosition(ruleResult.rule.id, ".", level + 1);
119
+ return ruleResult.rule.id.substring(0, nextLevelPosition > 0 ? nextLevelPosition : undefined);
120
+ }
121
+ groupRuleResultByCriterion() {
122
+ return this.groupRuleResultByLevel(this.ruleResults, 1);
123
+ }
124
+ groupRuleResultByTestOfACriterion(criterion) {
125
+ return this.groupRuleResultByLevel(this.ruleResults.filter(ruleResult => criterion === this.getKeyOfLevel(ruleResult, 1)), 2);
126
+ }
127
+ }
128
+ exports.A11yResult = A11yResult;
129
+ const computeStatus = (ruleResults) => {
130
+ ruleResults.forEach(ruleResult => ruleResult.computeStatus());
131
+ return getStatus(ruleResults);
132
+ };
133
+ const getStatus = (ruleResults) => {
134
+ if (ruleResults.find(ruleResult => ruleResult.status === A11yResultStatus.UNKNOWN)) {
135
+ return A11yResultStatus.UNKNOWN;
136
+ }
137
+ if (ruleResults.find(ruleResult => ruleResult.status === A11yResultStatus.ERROR)) {
138
+ return A11yResultStatus.ERROR;
139
+ }
140
+ if (ruleResults.find(ruleResult => ruleResult.status === A11yResultStatus.MANUAL)) {
141
+ return A11yResultStatus.MANUAL;
142
+ }
143
+ return A11yResultStatus.SUCCESS;
144
+ };
@@ -0,0 +1,99 @@
1
+ import { Query } from "../query/00-query";
2
+ export interface A11yRule {
3
+ attributes: string[];
4
+ reference: string;
5
+ check: RuleCheckEnum;
6
+ criterion: string;
7
+ wcag: string;
8
+ id: string;
9
+ elementType: string;
10
+ query: Query;
11
+ description?: string;
12
+ help?: string | string[];
13
+ shouldNotExist: boolean;
14
+ }
15
+ export declare class AutoCheckA11yRule implements A11yRule {
16
+ attributes: string[];
17
+ reference: string;
18
+ check: RuleCheckEnum;
19
+ criterion: string;
20
+ wcag: string;
21
+ id: string;
22
+ elementType: string;
23
+ query: Query;
24
+ description?: string;
25
+ help?: string | string[];
26
+ shouldNotExist: boolean;
27
+ static from(input: {
28
+ attributes?: string[];
29
+ reference: string;
30
+ criterion: string;
31
+ wcag: string;
32
+ id: string;
33
+ elementType: string;
34
+ query: Query;
35
+ description?: string;
36
+ help?: string | string[];
37
+ shouldNotExist?: boolean;
38
+ }): AutoCheckA11yRule & {
39
+ attributes?: string[] | undefined;
40
+ reference: string;
41
+ criterion: string;
42
+ wcag: string;
43
+ id: string;
44
+ elementType: string;
45
+ query: Query;
46
+ description?: string | undefined;
47
+ help?: string | string[] | undefined;
48
+ shouldNotExist?: boolean | undefined;
49
+ };
50
+ }
51
+ export declare class ManualCheckA11yRule implements A11yRule {
52
+ attributes: string[];
53
+ reference: string;
54
+ check: RuleCheckEnum;
55
+ criterion: string;
56
+ wcag: string;
57
+ id: string;
58
+ elementType: string;
59
+ query: Query;
60
+ description?: string;
61
+ help?: string | string[];
62
+ shouldNotExist: boolean;
63
+ static from(input: {
64
+ attributes?: string[];
65
+ reference: string;
66
+ criterion: string;
67
+ wcag: string;
68
+ id: string;
69
+ elementType: string;
70
+ query: Query;
71
+ description?: string;
72
+ help?: string;
73
+ shouldNotExist?: boolean;
74
+ }): ManualCheckA11yRule & {
75
+ attributes?: string[] | undefined;
76
+ reference: string;
77
+ criterion: string;
78
+ wcag: string;
79
+ id: string;
80
+ elementType: string;
81
+ query: Query;
82
+ description?: string | undefined;
83
+ help?: string | undefined;
84
+ shouldNotExist?: boolean | undefined;
85
+ };
86
+ }
87
+ export declare enum RuleCheckEnum {
88
+ MANUAL = "MANUAL",
89
+ AUTO = "AUTO"
90
+ }
91
+ export declare enum CustomFilter {
92
+ DOCTYPE = "$DOCTYPE",
93
+ FORM_FIELD = "$FORMFIELD"
94
+ }
95
+ export declare enum RuleTypeEnum {
96
+ TAG = "TAG",
97
+ ROLE = "ROLE",
98
+ COLOR = "COLOR"
99
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuleTypeEnum = exports.CustomFilter = exports.RuleCheckEnum = exports.ManualCheckA11yRule = exports.AutoCheckA11yRule = void 0;
4
+ class AutoCheckA11yRule {
5
+ attributes;
6
+ reference;
7
+ check = RuleCheckEnum.AUTO;
8
+ criterion;
9
+ wcag;
10
+ id;
11
+ elementType;
12
+ query;
13
+ description;
14
+ help;
15
+ shouldNotExist = true;
16
+ static from(input) {
17
+ return Object.assign(new AutoCheckA11yRule(), input);
18
+ }
19
+ }
20
+ exports.AutoCheckA11yRule = AutoCheckA11yRule;
21
+ class ManualCheckA11yRule {
22
+ attributes = [];
23
+ reference;
24
+ check = RuleCheckEnum.MANUAL;
25
+ criterion;
26
+ wcag;
27
+ id;
28
+ elementType;
29
+ query;
30
+ description;
31
+ help;
32
+ shouldNotExist = true;
33
+ static from(input) {
34
+ return Object.assign(new ManualCheckA11yRule(), input);
35
+ }
36
+ }
37
+ exports.ManualCheckA11yRule = ManualCheckA11yRule;
38
+ var RuleCheckEnum;
39
+ (function (RuleCheckEnum) {
40
+ RuleCheckEnum["MANUAL"] = "MANUAL";
41
+ RuleCheckEnum["AUTO"] = "AUTO";
42
+ })(RuleCheckEnum = exports.RuleCheckEnum || (exports.RuleCheckEnum = {}));
43
+ var CustomFilter;
44
+ (function (CustomFilter) {
45
+ CustomFilter["DOCTYPE"] = "$DOCTYPE";
46
+ CustomFilter["FORM_FIELD"] = "$FORMFIELD";
47
+ })(CustomFilter = exports.CustomFilter || (exports.CustomFilter = {}));
48
+ var RuleTypeEnum;
49
+ (function (RuleTypeEnum) {
50
+ RuleTypeEnum["TAG"] = "TAG";
51
+ RuleTypeEnum["ROLE"] = "ROLE";
52
+ RuleTypeEnum["COLOR"] = "COLOR";
53
+ })(RuleTypeEnum = exports.RuleTypeEnum || (exports.RuleTypeEnum = {}));
@@ -0,0 +1,4 @@
1
+ export interface Query {
2
+ execute(): HTMLElement[];
3
+ getSelector(): string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { Query } from "./00-query";
2
+ export declare class AccessibleNameQuery implements Query {
3
+ readonly subQuery: Query;
4
+ readonly shouldBeEmpty: boolean;
5
+ constructor(subQuery: Query, shouldBeEmpty: boolean);
6
+ execute(): HTMLElement[];
7
+ getSelector(): string;
8
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AccessibleNameQuery = void 0;
7
+ const dom_accessibility_api_1 = require("dom-accessibility-api");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ class AccessibleNameQuery {
10
+ subQuery;
11
+ shouldBeEmpty;
12
+ constructor(subQuery, shouldBeEmpty) {
13
+ this.subQuery = subQuery;
14
+ this.shouldBeEmpty = shouldBeEmpty;
15
+ }
16
+ execute() {
17
+ return this.subQuery.execute().filter(element => {
18
+ const accessibleName = (0, dom_accessibility_api_1.computeAccessibleName)(element);
19
+ if (this.shouldBeEmpty && lodash_1.default.isEmpty(accessibleName)) {
20
+ return true;
21
+ }
22
+ else if (!this.shouldBeEmpty && !lodash_1.default.isEmpty(accessibleName)) {
23
+ return true;
24
+ }
25
+ else {
26
+ return false;
27
+ }
28
+ });
29
+ }
30
+ getSelector() {
31
+ return `AccessibleName: ${this.subQuery.getSelector()}`;
32
+ }
33
+ }
34
+ exports.AccessibleNameQuery = AccessibleNameQuery;
@@ -0,0 +1,8 @@
1
+ import { Query } from "./00-query";
2
+ export declare class ByRoleQuery implements Query {
3
+ readonly role: string;
4
+ readonly attributes: string[];
5
+ constructor(role: string, attributes?: string[]);
6
+ execute(): HTMLElement[];
7
+ getSelector(): string;
8
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ByRoleQuery = void 0;
4
+ const dom_1 = require("@testing-library/dom");
5
+ class ByRoleQuery {
6
+ role;
7
+ attributes;
8
+ constructor(role, attributes = []) {
9
+ this.role = role;
10
+ this.attributes = attributes;
11
+ }
12
+ execute() {
13
+ return (0, dom_1.queryAllByRole)(window.document.documentElement, this.role)
14
+ ?.filter((element) => {
15
+ if (this.attributes.length == 0) {
16
+ return true;
17
+ }
18
+ return this.attributes.filter(value => {
19
+ return element.getAttribute(value);
20
+ }).length > 0;
21
+ });
22
+ }
23
+ getSelector() {
24
+ return `ByRole(${this.role}, ${this.attributes})`;
25
+ }
26
+ }
27
+ exports.ByRoleQuery = ByRoleQuery;
@@ -0,0 +1,7 @@
1
+ import { Query } from "./00-query";
2
+ export declare class ByTagQuery implements Query {
3
+ readonly selectors: string[];
4
+ constructor(selectors: string[]);
5
+ execute(): HTMLElement[];
6
+ getSelector(): string;
7
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ByTagQuery = void 0;
7
+ const jquery_1 = __importDefault(require("jquery"));
8
+ class ByTagQuery {
9
+ selectors;
10
+ constructor(selectors) {
11
+ this.selectors = selectors;
12
+ }
13
+ execute() {
14
+ return (0, jquery_1.default)(this.selectors.join(",")).toArray();
15
+ }
16
+ getSelector() {
17
+ return `${this.selectors}`;
18
+ }
19
+ }
20
+ exports.ByTagQuery = ByTagQuery;
@@ -0,0 +1,5 @@
1
+ import { Query } from "./00-query";
2
+ export declare class DoctypeQuery implements Query {
3
+ execute(): HTMLElement[];
4
+ getSelector(): string;
5
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DoctypeQuery = void 0;
4
+ class DoctypeQuery {
5
+ execute() {
6
+ if (document?.doctype?.name !== "html") {
7
+ return [document.documentElement];
8
+ }
9
+ return [];
10
+ }
11
+ getSelector() {
12
+ return "doctype";
13
+ }
14
+ }
15
+ exports.DoctypeQuery = DoctypeQuery;
@@ -0,0 +1,8 @@
1
+ import { Query } from "./00-query";
2
+ export declare class FormQuery implements Query {
3
+ LABEL_ATTRIBUTE: string;
4
+ FORMFIELD_SELECTORS: string[];
5
+ FORMFIELD_LABEL_ATTRIBUTES: string[];
6
+ execute(): HTMLElement[];
7
+ getSelector(): string;
8
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormQuery = void 0;
4
+ class FormQuery {
5
+ LABEL_ATTRIBUTE = "$LABEL";
6
+ FORMFIELD_SELECTORS = [
7
+ "input[type=text]",
8
+ "input[type=password]",
9
+ "input[type=search]",
10
+ "input[type=email]",
11
+ "input[type=number]",
12
+ "input[type=tel]",
13
+ "input[type=url]",
14
+ "textarea",
15
+ "input[type=checkbox]",
16
+ "input[type=radio]",
17
+ "input[type=date]",
18
+ "input[type=range]",
19
+ "input[type=color]",
20
+ "input[type=time]",
21
+ "input[type=month]",
22
+ "input[type=week]",
23
+ "input[type=datetime]",
24
+ "select",
25
+ "datalist",
26
+ "optgroup",
27
+ "option",
28
+ "input[type=file]",
29
+ "output",
30
+ "progress",
31
+ "meter",
32
+ "progressbar",
33
+ "slider",
34
+ "spinbutton",
35
+ "textbox",
36
+ "listbox",
37
+ "searchbox",
38
+ "combobox",
39
+ "checkbox",
40
+ "radio",
41
+ "switch",
42
+ "input[type=submit]",
43
+ "input[type=reset]",
44
+ "input[type=hidden]",
45
+ "input[type=image]",
46
+ "input[type=button]",
47
+ "button"
48
+ ];
49
+ FORMFIELD_LABEL_ATTRIBUTES = [
50
+ "aria-labelledby",
51
+ "aria-label",
52
+ "title",
53
+ "$LABEL"
54
+ ];
55
+ execute() {
56
+ // const foundElements = $(this.FORMFIELD_SELECTORS.join(","));
57
+ // const elements: HTMLElement[] = [];
58
+ // let counter = 0;
59
+ // while (counter < foundElements.length - 1) {
60
+ // const element = foundElements[counter];
61
+ // const attributeFound = rule.attributes.filter(value => {
62
+ // return element.getAttribute(value);
63
+ // });
64
+ // if (attributeFound.length === 0) {
65
+ // if (rule.attributes.includes(CustomAttribute.LABEL.toString())) {
66
+ // if (!element.id) {
67
+ // elements.push(element);
68
+ // counter++;
69
+ // } else {
70
+ // const foundLabelElements = jquery(`label[for=${element.id}]`);
71
+ // if (foundLabelElements.length === 0) {
72
+ // elements.push(element);
73
+ // counter++;
74
+ // }
75
+ // }
76
+ // }
77
+ // }
78
+ // counter++;
79
+ // }
80
+ //TODO implements filter
81
+ return [];
82
+ }
83
+ getSelector() {
84
+ return "FormFilter";
85
+ }
86
+ }
87
+ exports.FormQuery = FormQuery;
@@ -0,0 +1,6 @@
1
+ export * from "./00-query";
2
+ export * from "./by-tag.query";
3
+ export * from "./doctype.query";
4
+ export * from "./form.query";
5
+ export * from "./by-role.query";
6
+ export * from "./accessible-name.query";
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./00-query"), exports);
18
+ __exportStar(require("./by-tag.query"), exports);
19
+ __exportStar(require("./doctype.query"), exports);
20
+ __exportStar(require("./form.query"), exports);
21
+ __exportStar(require("./by-role.query"), exports);
22
+ __exportStar(require("./accessible-name.query"), exports);
File without changes
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ // import {
3
+ // AutoCheckRule,
4
+ // CheckRelevantSummary,
5
+ // ErrorSummary, LogTypeEnum,
6
+ // ManualCheckRule, Reference,
7
+ // RuleTypeEnum,
8
+ // ThirdPartyReferenceEnum,
9
+ // ThirdPartyTypeEnum
10
+ // } from "../../model";
11
+ // import { searchByRoleWithoutAttribute, searchByTag } from "../core";
12
+ // import { alix } from "@uuv/runner-commons";
13
+ // import { Observable } from "rxjs";
14
+ //
15
+ //
16
+ // abstract class AlixChecker implements Reference {
17
+ // constructor(public version: string) {}
18
+ //
19
+ // getErrorLogCommand(type: LogTypeEnum): string {
20
+ // throw new Error("Method not implemented.");
21
+ // }
22
+ // getCheckLogCommand(type: LogTypeEnum): string {
23
+ // throw new Error("Method not implemented.");
24
+ // }
25
+ //
26
+ // type = ThirdPartyTypeEnum.UNKNOWN;
27
+ // errorSummary = new ErrorSummary(ThirdPartyReferenceEnum.ALIX);
28
+ // checkRelevantSummary = new CheckRelevantSummary(ThirdPartyReferenceEnum.ALIX);
29
+ // emitter: Observable<boolean> = new Observable();
30
+ //
31
+ // checkCriteria(): void {
32
+ // cy.url({ log: false }).then(url => {
33
+ // this.errorSummary.url = url;
34
+ // this.checkRelevantSummary.url = url;
35
+ // alix.rules.sort((a: any, b: any) => {
36
+ // if (a.check > b.check) {
37
+ // return 1;
38
+ // }
39
+ // if (a.check < b.check) {
40
+ // return -1;
41
+ // }
42
+ // return 0;
43
+ // }).filter((elem) => {
44
+ // return elem.elementType.includes(this.type.toString());
45
+ // })
46
+ // .forEach((rule: any, index: number, array: any[]) => {
47
+ // const isLast = index + 1 === array.length;
48
+ // if (rule.type === RuleTypeEnum.ROLE) {
49
+ // searchByRoleWithoutAttribute(Object.assign(new ManualCheckRule, rule), this, isLast);
50
+ // }
51
+ // if (rule.type === RuleTypeEnum.TAG) {
52
+ // searchByTag(rule as AutoCheckRule, this, isLast);
53
+ // }
54
+ // });
55
+ // });
56
+ // }
57
+ // }
58
+ //
59
+ // export class AlixError extends AlixChecker implements Reference {
60
+ // override type: ThirdPartyTypeEnum = ThirdPartyTypeEnum.ERROR;
61
+ // override getErrorLogCommand(type: LogTypeEnum): string {
62
+ // return `[${type.toString()}] error!`;
63
+ // }
64
+ // }
65
+ // export class AlixWarning extends AlixChecker implements Reference {
66
+ // override type: ThirdPartyTypeEnum = ThirdPartyTypeEnum.WARNING;
67
+ // override getErrorLogCommand(type: LogTypeEnum): string {
68
+ // return `[${type.toString()}] warning!`;
69
+ // }
70
+ // }
71
+ // export class AlixAdvice extends AlixChecker implements Reference {
72
+ // override type: ThirdPartyTypeEnum = ThirdPartyTypeEnum.ADVICE;
73
+ // override getErrorLogCommand(type: LogTypeEnum): string {
74
+ // return `[${type.toString()}] advice!`;
75
+ // }
76
+ // }
77
+ // export class AlixObsolete extends AlixChecker implements Reference {
78
+ // override type: ThirdPartyTypeEnum = ThirdPartyTypeEnum.OBSOLETE;
79
+ // override getErrorLogCommand(type: LogTypeEnum): string {
80
+ // return `[${type.toString()}] obsolete!`;
81
+ // }
82
+ // }
File without changes