@qualweb/best-practices 0.7.0-alpha → 0.7.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 (105) hide show
  1. package/README.md +51 -0
  2. package/dist/BestPracticesModule.d.ts +10 -0
  3. package/dist/BestPracticesModule.d.ts.map +1 -0
  4. package/dist/BestPracticesModule.js +19 -0
  5. package/dist/BestPracticesRunner.d.ts +9 -0
  6. package/dist/BestPracticesRunner.d.ts.map +1 -0
  7. package/dist/BestPracticesRunner.js +17 -0
  8. package/dist/__webpack/bp.bundle.js +1 -0
  9. package/dist/best-practices/QW-BP1.d.ts +7 -0
  10. package/dist/best-practices/QW-BP1.d.ts.map +1 -0
  11. package/dist/best-practices/QW-BP1.js +37 -0
  12. package/dist/best-practices/QW-BP10.d.ts +7 -0
  13. package/dist/best-practices/QW-BP10.d.ts.map +1 -0
  14. package/dist/best-practices/QW-BP10.js +35 -0
  15. package/dist/best-practices/QW-BP11.d.ts +7 -0
  16. package/dist/best-practices/QW-BP11.d.ts.map +1 -0
  17. package/dist/best-practices/QW-BP11.js +52 -0
  18. package/dist/best-practices/QW-BP12.d.ts +7 -0
  19. package/dist/best-practices/QW-BP12.d.ts.map +1 -0
  20. package/dist/best-practices/QW-BP12.js +65 -0
  21. package/dist/best-practices/QW-BP13.d.ts +7 -0
  22. package/dist/best-practices/QW-BP13.d.ts.map +1 -0
  23. package/dist/best-practices/QW-BP13.js +47 -0
  24. package/dist/best-practices/QW-BP15.d.ts +8 -0
  25. package/dist/best-practices/QW-BP15.d.ts.map +1 -0
  26. package/dist/best-practices/QW-BP15.js +44 -0
  27. package/dist/best-practices/QW-BP17.d.ts +7 -0
  28. package/dist/best-practices/QW-BP17.d.ts.map +1 -0
  29. package/dist/best-practices/QW-BP17.js +26 -0
  30. package/dist/best-practices/QW-BP18.d.ts +11 -0
  31. package/dist/best-practices/QW-BP18.d.ts.map +1 -0
  32. package/dist/best-practices/QW-BP18.js +135 -0
  33. package/dist/best-practices/QW-BP19.d.ts +7 -0
  34. package/dist/best-practices/QW-BP19.d.ts.map +1 -0
  35. package/dist/best-practices/QW-BP19.js +39 -0
  36. package/dist/best-practices/QW-BP2.d.ts +7 -0
  37. package/dist/best-practices/QW-BP2.d.ts.map +1 -0
  38. package/dist/best-practices/QW-BP2.js +51 -0
  39. package/dist/best-practices/QW-BP20.d.ts +7 -0
  40. package/dist/best-practices/QW-BP20.d.ts.map +1 -0
  41. package/dist/best-practices/QW-BP20.js +41 -0
  42. package/dist/best-practices/QW-BP21.d.ts +7 -0
  43. package/dist/best-practices/QW-BP21.d.ts.map +1 -0
  44. package/dist/best-practices/QW-BP21.js +40 -0
  45. package/dist/best-practices/QW-BP22.d.ts +7 -0
  46. package/dist/best-practices/QW-BP22.d.ts.map +1 -0
  47. package/dist/best-practices/QW-BP22.js +40 -0
  48. package/dist/best-practices/QW-BP23.d.ts +7 -0
  49. package/dist/best-practices/QW-BP23.d.ts.map +1 -0
  50. package/dist/best-practices/QW-BP23.js +44 -0
  51. package/dist/best-practices/QW-BP24.d.ts +7 -0
  52. package/dist/best-practices/QW-BP24.d.ts.map +1 -0
  53. package/dist/best-practices/QW-BP24.js +47 -0
  54. package/dist/best-practices/QW-BP25.d.ts +7 -0
  55. package/dist/best-practices/QW-BP25.d.ts.map +1 -0
  56. package/dist/best-practices/QW-BP25.js +38 -0
  57. package/dist/best-practices/QW-BP26.d.ts +7 -0
  58. package/dist/best-practices/QW-BP26.d.ts.map +1 -0
  59. package/dist/best-practices/QW-BP26.js +38 -0
  60. package/dist/best-practices/QW-BP27.d.ts +7 -0
  61. package/dist/best-practices/QW-BP27.d.ts.map +1 -0
  62. package/dist/best-practices/QW-BP27.js +38 -0
  63. package/dist/best-practices/QW-BP28.d.ts +7 -0
  64. package/dist/best-practices/QW-BP28.d.ts.map +1 -0
  65. package/dist/best-practices/QW-BP28.js +44 -0
  66. package/dist/best-practices/QW-BP29.d.ts +7 -0
  67. package/dist/best-practices/QW-BP29.d.ts.map +1 -0
  68. package/dist/best-practices/QW-BP29.js +48 -0
  69. package/dist/best-practices/QW-BP4.d.ts +7 -0
  70. package/dist/best-practices/QW-BP4.d.ts.map +1 -0
  71. package/dist/best-practices/QW-BP4.js +35 -0
  72. package/dist/best-practices/QW-BP5.d.ts +7 -0
  73. package/dist/best-practices/QW-BP5.d.ts.map +1 -0
  74. package/dist/best-practices/QW-BP5.js +21 -0
  75. package/dist/best-practices/QW-BP6.d.ts +7 -0
  76. package/dist/best-practices/QW-BP6.d.ts.map +1 -0
  77. package/dist/best-practices/QW-BP6.js +38 -0
  78. package/dist/best-practices/QW-BP7.d.ts +7 -0
  79. package/dist/best-practices/QW-BP7.d.ts.map +1 -0
  80. package/dist/best-practices/QW-BP7.js +39 -0
  81. package/dist/best-practices/QW-BP8.d.ts +8 -0
  82. package/dist/best-practices/QW-BP8.d.ts.map +1 -0
  83. package/dist/best-practices/QW-BP8.js +71 -0
  84. package/dist/best-practices/QW-BP9.d.ts +7 -0
  85. package/dist/best-practices/QW-BP9.d.ts.map +1 -0
  86. package/dist/best-practices/QW-BP9.js +53 -0
  87. package/dist/best-practices/index.d.ts +27 -0
  88. package/dist/best-practices/index.d.ts.map +1 -0
  89. package/dist/best-practices/index.js +42 -0
  90. package/dist/index.d.ts +3 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.js +7 -0
  93. package/dist/lib/BestPractice.object.d.ts +21 -0
  94. package/dist/lib/BestPractice.object.d.ts.map +1 -0
  95. package/dist/lib/BestPractice.object.js +76 -0
  96. package/dist/lib/BestPracticesTester.object.d.ts +8 -0
  97. package/dist/lib/BestPracticesTester.object.d.ts.map +1 -0
  98. package/dist/lib/BestPracticesTester.object.js +67 -0
  99. package/dist/lib/bestPractices.json +318 -0
  100. package/dist/lib/mapping.d.ts +24 -0
  101. package/dist/lib/mapping.d.ts.map +1 -0
  102. package/dist/lib/mapping.js +24 -0
  103. package/package.json +37 -28
  104. package/LICENSE +0 -15
  105. package/dist/bp.bundle.js +0 -1
package/README.md CHANGED
@@ -6,6 +6,46 @@ Implementation of accessibility best practices for web pages.
6
6
 
7
7
  **This is an internal module of QualWeb. To use it check either [@qualweb/cli](https://github.com/qualweb/cli) or [@qualweb/core](https://github.com/qualweb/core).**
8
8
 
9
+ ## How to use
10
+
11
+ This package is intended to be used with [@qualweb/core](https://github.com/qualweb/core).
12
+
13
+ Add both packages to your project:
14
+
15
+ ```bash
16
+ npm i --save @qualweb/core @qualweb/best-practices
17
+ ```
18
+
19
+ In your own code, pass an instance of the `BestPractices` class to QualWeb's evaluate method:
20
+
21
+ ```typescript
22
+ import { BestPractices } from '@qualweb/best-practices';
23
+ import { QualWeb } from '@qualweb/core';
24
+
25
+ async function main() {
26
+ const qw = new QualWeb();
27
+
28
+ await qw.start();
29
+
30
+ const bpInstance = new BestPractices({
31
+ // Include/exclude specific rules here. Omitting any filters implies *all*
32
+ // rules are included.
33
+ levels: ['A', 'AA'],
34
+ });
35
+
36
+ const urlToEvaluate = 'https://www.google.com';
37
+
38
+ const report = await qw.evaluate({
39
+ url: urlToEvaluate,
40
+ modules: [bpInstance],
41
+ });
42
+
43
+ await qw.stop();
44
+
45
+ console.debug(report[urlToEvaluate].metadata);
46
+ }
47
+ ```
48
+
9
49
  ## Implemented best practices
10
50
 
11
51
  | QualWeb best practice ID | Related to | Best practice Name |
@@ -27,6 +67,17 @@ Implementation of accessibility best practices for web pages.
27
67
  | QW-BP15 | CSS | At least one width attribute of an HTML element is expressed in absolute values |
28
68
  | QW-BP17 | HTML | Adding a link at the beginning of a block of repeated content to go to the end of the block |
29
69
  | QW-BP18 | CSS | Using percentage values in CSS for container sizes |
70
+ | QW-BP19 | HTML | Landmark banner is top level |
71
+ | QW-BP20 | HTML | Landmark no duplicate banner |
72
+ | QW-BP21 | HTML | Landmark no duplicate contentinfo |
73
+ | QW-BP22 | HTML | Landmark has one main |
74
+ | QW-BP23 | HTML | Listitems are used semantically |
75
+ | QW-BP24 | HTML | Lists are used correctly |
76
+ | QW-BP25 | HTML | Landmark complementary is top level |
77
+ | QW-BP26 | HTML | Landmark contentinfo is top level |
78
+ | QW-BP27 | HTML | Landmark main is top level |
79
+ | QW-BP28 | HTML | H1 element is used and unique |
80
+ | QW-BP29 | HTML | HTML page lang and xml:lang attributes have matching values |
30
81
 
31
82
  # License
32
83
 
@@ -0,0 +1,10 @@
1
+ import type { EvaluationReport, ModuleOptions } from '@qualweb/core/evaluation';
2
+ import { ExecutableModuleContext, ModuleType } from '@qualweb/core/evaluation';
3
+ import type { TranslationOptions } from '@qualweb/locale';
4
+ import type { QualwebPage } from '@qualweb/core/lib';
5
+ export declare class BestPracticesModule extends ExecutableModuleContext {
6
+ readonly name = ModuleType.BEST_PRACTICES;
7
+ protected getModulePackage(): string;
8
+ protected runModule(page: QualwebPage, options: ModuleOptions, translate: TranslationOptions): Promise<EvaluationReport>;
9
+ }
10
+ //# sourceMappingURL=BestPracticesModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BestPracticesModule.d.ts","sourceRoot":"","sources":["../src/BestPracticesModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,uBAAuB,EACvB,UAAU,EACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,mBAAoB,SAAQ,uBAAuB;IAC9D,SAAgB,IAAI,6BAA6B;IAEjD,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,SAAS,CACjB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,kBAAkB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;CAU7B"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BestPracticesModule = void 0;
4
+ const evaluation_1 = require("@qualweb/core/evaluation");
5
+ class BestPracticesModule extends evaluation_1.ExecutableModuleContext {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = evaluation_1.ModuleType.BEST_PRACTICES;
9
+ }
10
+ getModulePackage() {
11
+ return '@qualweb/best-practices';
12
+ }
13
+ runModule(page, options, translate) {
14
+ return page.evaluate((options, translate) => {
15
+ return new BestPracticesRunner(options, translate).configure(options).test({}).getReport();
16
+ }, options, translate);
17
+ }
18
+ }
19
+ exports.BestPracticesModule = BestPracticesModule;
@@ -0,0 +1,9 @@
1
+ import { ModuleTranslator } from '@qualweb/core/locale';
2
+ import { EvaluationModuleDefinition, ModuleOptions } from '@qualweb/core/evaluation';
3
+ import { BestPracticesTester } from './lib/BestPracticesTester.object';
4
+ import { TranslationOptions } from '@qualweb/locale';
5
+ export declare class BestPracticesRunner extends EvaluationModuleDefinition<BestPracticesTester> {
6
+ protected readonly translator: ModuleTranslator;
7
+ constructor(moduleOptions: ModuleOptions, translationOptions: TranslationOptions);
8
+ }
9
+ //# sourceMappingURL=BestPracticesRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BestPracticesRunner.d.ts","sourceRoot":"","sources":["../src/BestPracticesRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAA4B,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,mBAAoB,SAAQ,0BAA0B,CAAC,mBAAmB,CAAC;IACtF,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;gBAE7B,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB;CAgBxF"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BestPracticesRunner = void 0;
4
+ const locale_1 = require("@qualweb/core/locale");
5
+ const evaluation_1 = require("@qualweb/core/evaluation");
6
+ const BestPracticesTester_object_1 = require("./lib/BestPracticesTester.object");
7
+ class BestPracticesRunner extends evaluation_1.EvaluationModuleDefinition {
8
+ constructor(moduleOptions, translationOptions) {
9
+ const moduleType = evaluation_1.ModuleType.BEST_PRACTICES;
10
+ const report = new evaluation_1.ModuleReport(moduleType);
11
+ const tester = new BestPracticesTester_object_1.BestPracticesTester(report);
12
+ super(moduleType, moduleOptions, translationOptions, report, tester);
13
+ this.translator = new locale_1.ModuleTranslator(this.type, this.translate);
14
+ this.tester.init(this.translator);
15
+ }
16
+ }
17
+ exports.BestPracticesRunner = BestPracticesRunner;