@uuv/a11y 1.0.0-beta.3 → 1.0.0-beta.30

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 (64) hide show
  1. package/CHANGELOG.md +241 -0
  2. package/CONTRIBUTING.md +46 -0
  3. package/LICENSE +1 -1
  4. package/README.md +32 -249
  5. package/STRUCTURE.md +10 -0
  6. package/bundle/uuv-a11y.bundle.js +2 -2
  7. package/dist/CHANGELOG.md +240 -0
  8. package/dist/CONTRIBUTING.md +46 -0
  9. package/dist/README.md +32 -249
  10. package/dist/STRUCTURE.md +10 -0
  11. package/dist/lib/engine/engine.js +28 -16
  12. package/dist/lib/model/index.d.ts +1 -1
  13. package/dist/lib/model/index.js +1 -1
  14. package/dist/lib/model/reference.js +1 -1
  15. package/dist/lib/model/result.d.ts +2 -1
  16. package/dist/lib/model/result.js +1 -1
  17. package/dist/lib/model/rule.d.ts +0 -7
  18. package/dist/lib/model/rule.js +3 -5
  19. package/dist/lib/query/00-query.d.ts +6 -1
  20. package/dist/lib/query/00-query.js +10 -0
  21. package/dist/lib/query/accessible-name.query.d.ts +4 -2
  22. package/dist/lib/query/accessible-name.query.js +9 -3
  23. package/dist/lib/query/by-role.query.d.ts +4 -3
  24. package/dist/lib/query/by-role.query.js +22 -6
  25. package/dist/lib/query/by-sibling.query.d.ts +12 -0
  26. package/dist/lib/query/by-sibling.query.js +100 -0
  27. package/dist/lib/query/by-tag.query.d.ts +2 -2
  28. package/dist/lib/query/by-tag.query.js +2 -1
  29. package/dist/lib/query/compliant-attributes/attribut-specification.d.ts +34 -0
  30. package/dist/lib/query/compliant-attributes/attribut-specification.js +96 -0
  31. package/dist/lib/query/compliant-attributes/attribute-checker.d.ts +47 -0
  32. package/dist/lib/query/compliant-attributes/attribute-checker.js +73 -0
  33. package/dist/lib/query/compliant-attributes/compliant-attributes.query.d.ts +9 -0
  34. package/dist/lib/query/compliant-attributes/compliant-attributes.query.js +24 -0
  35. package/dist/lib/query/doctype.query.d.ts +2 -2
  36. package/dist/lib/query/doctype.query.js +2 -1
  37. package/dist/lib/query/form.query.d.ts +2 -2
  38. package/dist/lib/query/index.d.ts +7 -0
  39. package/dist/lib/query/index.js +7 -0
  40. package/dist/lib/query/operators/and-query.d.ts +8 -0
  41. package/dist/lib/query/operators/and-query.js +25 -0
  42. package/dist/lib/query/operators/operator-query.d.ts +8 -0
  43. package/dist/lib/query/operators/operator-query.js +14 -0
  44. package/dist/lib/query/operators/or-query.d.ts +8 -0
  45. package/dist/lib/query/operators/or-query.js +24 -0
  46. package/dist/lib/reference/rgaa/coverage/coverage-statement.json +56 -17
  47. package/dist/lib/reference/rgaa/rules/1-image.d.ts +0 -1
  48. package/dist/lib/reference/rgaa/rules/1-image.js +51 -77
  49. package/dist/lib/reference/rgaa/rules/11-form.d.ts +0 -1
  50. package/dist/lib/reference/rgaa/rules/11-form.js +0 -1
  51. package/dist/lib/reference/rgaa/rules/2-frame.d.ts +0 -1
  52. package/dist/lib/reference/rgaa/rules/2-frame.js +8 -7
  53. package/dist/lib/reference/rgaa/rules/3-color.d.ts +0 -1
  54. package/dist/lib/reference/rgaa/rules/3-color.js +0 -3
  55. package/dist/lib/reference/rgaa/rules/5-table.d.ts +12 -1
  56. package/dist/lib/reference/rgaa/rules/5-table.js +292 -1
  57. package/dist/lib/reference/rgaa/rules/6-link.d.ts +12 -1
  58. package/dist/lib/reference/rgaa/rules/6-link.js +147 -1
  59. package/dist/lib/reference/rgaa/rules/8-required-element.d.ts +0 -1
  60. package/dist/lib/reference/rgaa/rules/8-required-element.js +57 -9
  61. package/dist/lib/reference/rgaa/selector-helper.d.ts +40 -1
  62. package/dist/lib/reference/rgaa/selector-helper.js +82 -10
  63. package/dist/package.json +15 -6
  64. package/package.json +15 -6
@@ -0,0 +1,47 @@
1
+ import { IAttributeSpecification } from "./attribut-specification";
2
+ export declare class CompliantSpecification {
3
+ readonly attribute: string;
4
+ specification: IAttributeSpecification;
5
+ constructor(attribute: string, specification: IAttributeSpecification);
6
+ }
7
+ export declare class AttributeChecker {
8
+ /**
9
+ * Check if the value of the attributeName is empty
10
+ * @param attributeName : HTMLElement attributeName
11
+ */
12
+ static emptyAttribute(attributeName: string): CompliantSpecification;
13
+ /**
14
+ * Check if the value of the attributeName is not empty
15
+ * @param attributeName : HTMLElement attributeName
16
+ */
17
+ static notEmptyAttribute(attributeName: string): CompliantSpecification;
18
+ /**
19
+ * Check that the text of the HTMLElement whose id matches the value of the attribute named attributeName another HTMLElement is empty
20
+ * @param attributeName : HTMLElement attribute name
21
+ */
22
+ static emptyHtmlNodeTargetedByTheAttribute(attributeName: string): CompliantSpecification;
23
+ /**
24
+ * Check that id attribute is not unique in current page
25
+ */
26
+ static notUniqueId(): CompliantSpecification;
27
+ /**
28
+ * Check that html element does not have the expected value
29
+ */
30
+ static notEquals(attributeName: string, expectedValueList: string[]): CompliantSpecification;
31
+ /**
32
+ * Check that html element have the expected value
33
+ */
34
+ static equals(attributeName: string, expectedValueList: string[]): CompliantSpecification;
35
+ /**
36
+ * Check that html element accessible name contains visible text ignoring case
37
+ */
38
+ static accessibleNameNotContainsVisibleText(): CompliantSpecification;
39
+ /**
40
+ * Check that html element have empty text
41
+ */
42
+ static emptyText(): CompliantSpecification;
43
+ /**
44
+ * Check that html element have not empty text
45
+ */
46
+ static notEmptyText(): CompliantSpecification;
47
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttributeChecker = exports.CompliantSpecification = void 0;
4
+ const attribut_specification_1 = require("./attribut-specification");
5
+ class CompliantSpecification {
6
+ attribute;
7
+ specification;
8
+ constructor(attribute, specification) {
9
+ this.attribute = attribute;
10
+ this.specification = specification;
11
+ }
12
+ }
13
+ exports.CompliantSpecification = CompliantSpecification;
14
+ class AttributeChecker {
15
+ /**
16
+ * Check if the value of the attributeName is empty
17
+ * @param attributeName : HTMLElement attributeName
18
+ */
19
+ static emptyAttribute(attributeName) {
20
+ return new CompliantSpecification(attributeName, new attribut_specification_1.EmptyAttributeSpecification());
21
+ }
22
+ /**
23
+ * Check if the value of the attributeName is not empty
24
+ * @param attributeName : HTMLElement attributeName
25
+ */
26
+ static notEmptyAttribute(attributeName) {
27
+ return new CompliantSpecification(attributeName, new attribut_specification_1.NotEmptyAttributeSpecification());
28
+ }
29
+ /**
30
+ * Check that the text of the HTMLElement whose id matches the value of the attribute named attributeName another HTMLElement is empty
31
+ * @param attributeName : HTMLElement attribute name
32
+ */
33
+ static emptyHtmlNodeTargetedByTheAttribute(attributeName) {
34
+ return new CompliantSpecification(attributeName, new attribut_specification_1.EmptyElementWithIdSpecification());
35
+ }
36
+ /**
37
+ * Check that id attribute is not unique in current page
38
+ */
39
+ static notUniqueId() {
40
+ return new CompliantSpecification("id", new attribut_specification_1.NotUniqueIdAttributeSpecification());
41
+ }
42
+ /**
43
+ * Check that html element does not have the expected value
44
+ */
45
+ static notEquals(attributeName, expectedValueList) {
46
+ return new CompliantSpecification(attributeName, new attribut_specification_1.NotEqualsAttributeSpecification(expectedValueList));
47
+ }
48
+ /**
49
+ * Check that html element have the expected value
50
+ */
51
+ static equals(attributeName, expectedValueList) {
52
+ return new CompliantSpecification(attributeName, new attribut_specification_1.EqualsAttributeSpecification(expectedValueList));
53
+ }
54
+ /**
55
+ * Check that html element accessible name contains visible text ignoring case
56
+ */
57
+ static accessibleNameNotContainsVisibleText() {
58
+ return new CompliantSpecification("accessibleName", new attribut_specification_1.AccessibleNameNotContainsVisibleTextSpecification());
59
+ }
60
+ /**
61
+ * Check that html element have empty text
62
+ */
63
+ static emptyText() {
64
+ return new CompliantSpecification("text", new attribut_specification_1.EmptyInnerTextSpecification());
65
+ }
66
+ /**
67
+ * Check that html element have not empty text
68
+ */
69
+ static notEmptyText() {
70
+ return new CompliantSpecification("text", new attribut_specification_1.NotEmptyInnerTextSpecification());
71
+ }
72
+ }
73
+ exports.AttributeChecker = AttributeChecker;
@@ -0,0 +1,9 @@
1
+ import { Query, QueryResult } from "../00-query";
2
+ import { CompliantSpecification } from "./attribute-checker";
3
+ export declare class CompliantAttributesQuery implements Query {
4
+ readonly subQuery: Query;
5
+ readonly attributeSpecifications: CompliantSpecification[];
6
+ constructor(subQuery: Query, attributeSpecifications: CompliantSpecification[]);
7
+ execute(): QueryResult[];
8
+ getSelector(): string;
9
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompliantAttributesQuery = void 0;
4
+ class CompliantAttributesQuery {
5
+ subQuery;
6
+ attributeSpecifications;
7
+ constructor(subQuery, attributeSpecifications) {
8
+ this.subQuery = subQuery;
9
+ this.attributeSpecifications = attributeSpecifications;
10
+ }
11
+ execute() {
12
+ return this.subQuery.execute().filter((element) => {
13
+ let result = true;
14
+ this.attributeSpecifications.forEach(attributeSpecification => {
15
+ result = result && attributeSpecification.specification.isSatisfiedBy(element.domNode, attributeSpecification.attribute);
16
+ });
17
+ return result;
18
+ });
19
+ }
20
+ getSelector() {
21
+ return `CompliantAttributes: ${this.subQuery.getSelector()}`;
22
+ }
23
+ }
24
+ exports.CompliantAttributesQuery = CompliantAttributesQuery;
@@ -1,5 +1,5 @@
1
- import { Query } from "./00-query";
1
+ import { Query, QueryResult } from "./00-query";
2
2
  export declare class DoctypeQuery implements Query {
3
- execute(): HTMLElement[];
3
+ execute(): QueryResult[];
4
4
  getSelector(): string;
5
5
  }
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DoctypeQuery = void 0;
4
+ const _00_query_1 = require("./00-query");
4
5
  class DoctypeQuery {
5
6
  execute() {
6
7
  if (document?.doctype?.name !== "html") {
7
- return [document.documentElement];
8
+ return [new _00_query_1.QueryResult(document.documentElement)];
8
9
  }
9
10
  return [];
10
11
  }
@@ -1,8 +1,8 @@
1
- import { Query } from "./00-query";
1
+ import { Query, QueryResult } from "./00-query";
2
2
  export declare class FormQuery implements Query {
3
3
  LABEL_ATTRIBUTE: string;
4
4
  FORMFIELD_SELECTORS: string[];
5
5
  FORMFIELD_LABEL_ATTRIBUTES: string[];
6
- execute(): HTMLElement[];
6
+ execute(): QueryResult[];
7
7
  getSelector(): string;
8
8
  }
@@ -3,4 +3,11 @@ export * from "./by-tag.query";
3
3
  export * from "./doctype.query";
4
4
  export * from "./form.query";
5
5
  export * from "./by-role.query";
6
+ export * from "./by-sibling.query";
7
+ export * from "./operators/operator-query";
8
+ export * from "./operators/or-query";
9
+ export * from "./operators/and-query";
6
10
  export * from "./accessible-name.query";
11
+ export * from "./compliant-attributes/compliant-attributes.query";
12
+ export * from "./compliant-attributes/attribute-checker";
13
+ export * from "./compliant-attributes/attribut-specification";
@@ -19,4 +19,11 @@ __exportStar(require("./by-tag.query"), exports);
19
19
  __exportStar(require("./doctype.query"), exports);
20
20
  __exportStar(require("./form.query"), exports);
21
21
  __exportStar(require("./by-role.query"), exports);
22
+ __exportStar(require("./by-sibling.query"), exports);
23
+ __exportStar(require("./operators/operator-query"), exports);
24
+ __exportStar(require("./operators/or-query"), exports);
25
+ __exportStar(require("./operators/and-query"), exports);
22
26
  __exportStar(require("./accessible-name.query"), exports);
27
+ __exportStar(require("./compliant-attributes/compliant-attributes.query"), exports);
28
+ __exportStar(require("./compliant-attributes/attribute-checker"), exports);
29
+ __exportStar(require("./compliant-attributes/attribut-specification"), exports);
@@ -0,0 +1,8 @@
1
+ import { IOperatorQuery } from "./operator-query";
2
+ import { Query, QueryResult } from "../00-query";
3
+ export declare class AndQuery implements IOperatorQuery, Query {
4
+ readonly queries: Query[];
5
+ constructor(queries: Query[]);
6
+ execute(): QueryResult[];
7
+ getSelector(): string;
8
+ }
@@ -0,0 +1,25 @@
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.AndQuery = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const DOM_NODE_ATTRIBUTE = "domNode";
9
+ class AndQuery {
10
+ queries;
11
+ constructor(queries) {
12
+ this.queries = queries;
13
+ }
14
+ execute() {
15
+ const queryResults = this.queries.map(query => query.execute());
16
+ return queryResults.reduce((left, right) => {
17
+ return lodash_1.default.intersectionBy(left, right, DOM_NODE_ATTRIBUTE);
18
+ });
19
+ }
20
+ getSelector() {
21
+ const result = this.queries.map(query => query.execute());
22
+ return `${lodash_1.default.intersection(...result).map(query => query.domNode).join(",")}`;
23
+ }
24
+ }
25
+ exports.AndQuery = AndQuery;
@@ -0,0 +1,8 @@
1
+ import { Query } from "../00-query";
2
+ export interface IOperatorQuery {
3
+ queries: Query[];
4
+ }
5
+ export declare class OperatorQuery {
6
+ static Or: (...queries: Query[]) => Query;
7
+ static And: (...queries: Query[]) => Query;
8
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperatorQuery = void 0;
4
+ const or_query_1 = require("./or-query");
5
+ const and_query_1 = require("./and-query");
6
+ class OperatorQuery {
7
+ static Or = (...queries) => {
8
+ return new or_query_1.OrQuery(queries);
9
+ };
10
+ static And = (...queries) => {
11
+ return new and_query_1.AndQuery(queries);
12
+ };
13
+ }
14
+ exports.OperatorQuery = OperatorQuery;
@@ -0,0 +1,8 @@
1
+ import { IOperatorQuery } from "./operator-query";
2
+ import { Query, QueryResult } from "../00-query";
3
+ export declare class OrQuery implements IOperatorQuery, Query {
4
+ readonly queries: Query[];
5
+ constructor(queries: Query[]);
6
+ execute(): QueryResult[];
7
+ getSelector(): string;
8
+ }
@@ -0,0 +1,24 @@
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.OrQuery = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const DOM_NODE_ATTRIBUTE = "domNode";
9
+ class OrQuery {
10
+ queries;
11
+ constructor(queries) {
12
+ this.queries = queries;
13
+ }
14
+ execute() {
15
+ const queryResults = this.queries.map(query => query.execute());
16
+ return queryResults.reduce((left, right) => {
17
+ return lodash_1.default.unionBy(left, right, DOM_NODE_ATTRIBUTE);
18
+ });
19
+ }
20
+ getSelector() {
21
+ return `${this.queries.map(query => query.getSelector()).join(",")}`;
22
+ }
23
+ }
24
+ exports.OrQuery = OrQuery;
@@ -3,11 +3,45 @@
3
3
  "1.1.1",
4
4
  "1.1.2",
5
5
  "1.1.3",
6
- "1.1.5"
6
+ "1.1.5",
7
+ "1.1.6",
8
+ "2.1.1",
9
+ "2.2.1",
10
+ "5.1.1",
11
+ "5.2.1",
12
+ "5.3.1",
13
+ "5.4.1",
14
+ "5.5.1",
15
+ "5.6.1",
16
+ "5.6.2",
17
+ "5.6.3",
18
+ "5.6.4",
19
+ "5.7.1",
20
+ "5.7.2",
21
+ "5.7.3",
22
+ "5.7.4",
23
+ "5.7.5",
24
+ "5.8.1",
25
+ "6.1.1",
26
+ "6.1.2",
27
+ "6.1.3",
28
+ "6.1.4",
29
+ "6.1.5",
30
+ "6.2.1",
31
+ "8.1.1",
32
+ "8.1.2",
33
+ "8.1.3",
34
+ "8.3.1",
35
+ "8.4.1",
36
+ "8.5.1",
37
+ "8.6.1",
38
+ "8.7.1",
39
+ "8.8.1",
40
+ "8.10.1",
41
+ "8.10.2"
7
42
  ],
8
43
  "inProgress": [
9
44
  "1.1.4",
10
- "1.1.6",
11
45
  "1.1.7",
12
46
  "1.1.8",
13
47
  "1.2.1",
@@ -40,51 +74,56 @@
40
74
  "1.6.4",
41
75
  "1.6.5",
42
76
  "1.6.6",
43
- "1.6.7"
77
+ "1.6.7",
78
+ "8.2.1",
79
+ "8.9.1"
44
80
  ],
45
81
  "wontBeImplemented": [
46
82
  "1.1.6"
47
83
  ],
48
84
  "comments": {
49
85
  "1": {
50
- "warning": "La différence entre une image décorative et une image porteuse d'informations étant subjective (comme précisé sur par le [W3C](https://www.w3.org/WAI/tutorials/images/informative/)), nous avons choisi de définir une image porteuse d'informations comme une image ayant une alternative textuelle pour favoriser l'automatisation des contrôles.\\\nPour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
86
+ "warning": "La différence entre une image décorative et une image porteuse d'informations étant subjective (comme précisé sur par le [W3C](https://www.w3.org/WAI/tutorials/images/informative/)), nous avons choisi de définir une image porteuse d'informations comme une image ayant une alternative textuelle pour favoriser l'automatisation des contrôles.\\\nPour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
51
87
  },
52
88
  "1.1.1": {
53
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
89
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
54
90
  },
55
91
  "1.1.2": {
56
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
92
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
57
93
  },
58
94
  "1.1.5": {
59
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
95
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
60
96
  },
61
97
  "1.1.6": {
62
- "danger": "Soit un mécanisme permet à l'utilisateur de remplacer l'élément `<object>` par un contenu alternatif.",
63
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
98
+ "danger": "Vérifier de votre côté la règle : Soit un mécanisme permet à l'utilisateur de remplacer l'élément `<object>` par un contenu alternatif.",
99
+ "warning": "nous considérons comme adjacent, le bouton et le lien url accessible avec une tabulation ou une tabulation arrière"
64
100
  },
65
101
  "1.1.7": {
66
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
102
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
67
103
  },
68
104
  "1.1.8": {
69
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
105
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
70
106
  },
71
107
  "1.2.1": {
72
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
108
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
73
109
  },
74
110
  "1.2.2": {
75
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
111
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
76
112
  },
77
113
  "1.2.3": {
78
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
114
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
79
115
  },
80
116
  "1.2.4": {
81
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
117
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
82
118
  },
83
119
  "1.2.5": {
84
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
120
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
85
121
  },
86
122
  "1.2.6": {
87
- "warning": "Pour les contrôles concernant les alternatives textutelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
123
+ "warning": "Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) qui implémente les [règles du W3C](https://w3c.github.io/accname/)"
124
+ },
125
+ "5": {
126
+ "warning": "Nous considérons qu'un *tableau de mise en forme* est une balise *table* possédant le rôle *presentation* \\\n Nous considérons qu'un *tableau avec header* est une balise *table* ou un rôle *table* possédant une balise *th* ou un élément avec un rôle *rowheader* ou un élément avec un rôle *columnheader*"
88
127
  }
89
128
  }
90
129
  }
@@ -1,7 +1,6 @@
1
1
  import { AutoCheckA11yRule } from "../../../model";
2
2
  declare const _default: (AutoCheckA11yRule & {
3
3
  attributes?: string[] | undefined;
4
- reference: string;
5
4
  criterion: string;
6
5
  wcag: string;
7
6
  id: string;