testaro-issues 0.1.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jonathan Pool
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # testaro-issues
2
+
3
+ A classification of about 1300 rules of 10 rule engines into about 350 issues. The rule engines are those in the ensemble of [Testaro](https://github.com/YRA-tech/testaro), which tests web pages for front-end quality (accessibility, usability, and standards conformance).
4
+
5
+ A _rule engine_ is an application, such as HTML CodeSniffer, that tests software.
6
+
7
+ An _issue_ is a problem, such as a link that does not tell the user what it links to.
8
+
9
+ A `rule` is a requirement defined by a rule engine.
10
+
11
+ When multiple rule engines define rules that require approximately the same thing, the rule engines may test differently and therefore report different results, so [it is advantageous to run an ensemble of rule engines](https://arxiv.org/abs/2304.07591) instead of only one, but it is also helpful to group their reports on similar rules so you can examine their results efficiently. This repository provides such grouping.
12
+
13
+ ## Data
14
+
15
+ The data exported by this repository consist of three objects, defined in `index.ts`:
16
+
17
+ - `issues`: An object that describes the issues.
18
+ - `rules`: An object that describes the rules and maps them to issues.
19
+ - `issueRules`: An object that describes the issues and maps them to rules.
20
+
21
+ The data underlying the `issues` and `rules` objects are statically defined. Those objects are deep-frozen copies of the data. In other words, `issues` and `rules` and every object within them are protected from modification. The `issueRules` object (not frozen) is generated from the `issues` and `rules` objects by the `makeIssueRules` function.
22
+
23
+ ## Installation
24
+
25
+ `npm install testaro-issues`
26
+
27
+ ## Usage
28
+
29
+ ### As is
30
+
31
+ To use the data as-is, import the three exported objects:
32
+
33
+ ```js
34
+ const {issues, rules, issueRules} = require('testaro-issues'); // If your application is CommonJS
35
+ import {issues, rules, issueRules} from 'testaro-issues'; // If your application is ESM
36
+ ```
37
+
38
+ ### Customized
39
+
40
+ The `issues` and `rules` objects represent more than a thousand individual decisions, and you may well want to override some of them by revising the objects. You may want to split an issue, combine two issues, assign a rule to a different issue, or adjust the quality score of a rule. You are welcome to work on that purpose in any of three ways:
41
+
42
+ - Propose a change in this repository by submitting an [issue](https://github.com/jrpool/testaro-issues/issues).
43
+ - Fork this repository, perform the installation and build steps described under “Development” below, revise the `issuesData` and/or `rulesData` objects, and submit a [pull request](https://github.com/jrpool/testaro-issues/pulls).
44
+ - Customize the data in your own application as follows, **not** as shown above under “As is”:
45
+
46
+ ```js
47
+ const {getEditableData, makeIssueRules} = require('testaro-issues'); // If your application is CommonJS
48
+ import {getEditableData, makeIssueRules} from 'testaro-issues'; // If your application is ESM
49
+ const {issues, rules} = getEditableData();
50
+ // Modify issues and/or rules. Then:
51
+ const issueRules = makeIssueRules(rules, issues);
52
+ // If you introduced any inconsistency, you will get an error message
53
+ ```
54
+
55
+ ## Development
56
+
57
+ - Clone the repository.
58
+ - Install the dev dependencies: `npm install`.
59
+ - Build the CommonJS and ESM bundles plus type declarations into `dist/`: `npm run build`