Skip to content

Commit 86109d6

Browse files
authored
Merge branch 'main' into ip-protection-tag
2 parents 9921100 + aae133e commit 86109d6

File tree

8 files changed

+146
-133
lines changed

8 files changed

+146
-133
lines changed
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
class A11yEngineError {
2-
constructor(message, error) {
3-
this.message = message;
4-
this.error = error;
5-
}
2+
constructor(message, error) {
3+
this.message = message;
4+
this.error = error;
5+
}
66
}
77

8-
export default A11yEngineError;
8+
export default A11yEngineError;

lib/core/errors/error-handler.js

Lines changed: 45 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import A11yEngineError from "./a11y-engine-error";
2-
import ErrorTypes from "./error-types";
1+
import A11yEngineError from './a11y-engine-error';
2+
import ErrorTypes from './error-types';
33

4-
let ErrorHandler = {
5-
/*
4+
const ErrorHandler = {
5+
/*
66
Error Object Structure
77
errors: {
88
check_errors: {
@@ -24,53 +24,50 @@ let ErrorHandler = {
2424
}
2525
}
2626
*/
27-
errors: {},
27+
errors: {},
2828

29-
addCheckError(checkName = "anonymous", err) {
30-
try {
31-
let error = this.errors[ErrorTypes.CHECK_ERROR] ? this.errors[ErrorTypes.CHECK_ERROR]: {};
32-
let check_error = error[checkName] ? error[checkName] : [];
33-
if(err) {
34-
check_error.push(new A11yEngineError(err.message, err.stack));
35-
}
36-
error[checkName] = check_error;
37-
this.errors[ErrorTypes.CHECK_ERROR] = error;
38-
}
39-
catch(e) {
40-
console.error("A11y Engine Error - Error in addCheckError", e);
41-
}
42-
},
43-
44-
getCheckErrors() {
45-
return this.errors[ErrorTypes.CHECK_ERROR];
46-
},
29+
addCheckError(checkName = 'anonymous', err) {
30+
try {
31+
const error = this.errors[ErrorTypes.CHECK_ERROR]
32+
? this.errors[ErrorTypes.CHECK_ERROR]
33+
: {};
34+
const checkerror = error[checkName] ? error[checkName] : [];
35+
if (err) {
36+
checkerror.push(new A11yEngineError(err.message, err.stack));
37+
}
38+
error[checkName] = checkerror;
39+
this.errors[ErrorTypes.CHECK_ERROR] = error;
40+
} catch (e) {
41+
console.error('A11y Engine Error - Error in addCheckError', e);
42+
}
43+
},
4744

48-
clearErrors() {
49-
try {
50-
this.errors = {};
51-
}
52-
catch(err) {
53-
console.error("A11y Engine Error - Error in clearErrors", err);
54-
}
55-
},
45+
getCheckErrors() {
46+
return this.errors[ErrorTypes.CHECK_ERROR];
47+
},
5648

57-
addNonCheckError(type, message, err) {
58-
try{
59-
let error = this.errors[type]? this.errors[type]: [];
60-
if(err) {
61-
error.push(new A11yEngineError(message, err.stack));
62-
}
63-
else {
64-
error.push(new A11yEngineError(message));
65-
}
66-
67-
this.errors[type] = error;
68-
}
69-
catch(e) {
70-
console.error("A11y Engine Error - Error in addNonCheckError", e);
71-
}
49+
clearErrors() {
50+
try {
51+
this.errors = {};
52+
} catch (err) {
53+
console.error('A11y Engine Error - Error in clearErrors', err);
7254
}
55+
},
56+
57+
addNonCheckError(type, message, err) {
58+
try {
59+
const error = this.errors[type] ? this.errors[type] : [];
60+
if (err) {
61+
error.push(new A11yEngineError(message, err.stack));
62+
} else {
63+
error.push(new A11yEngineError(message));
64+
}
7365

74-
}
66+
this.errors[type] = error;
67+
} catch (e) {
68+
console.error('A11y Engine Error - Error in addNonCheckError', e);
69+
}
70+
}
71+
};
7572

76-
export default ErrorHandler;
73+
export default ErrorHandler;

lib/core/errors/error-types.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
const ErrorTypes = Object.freeze({
2-
CHECK_ERROR: "check_errors",
3-
RUNTIME_ERROR: "runtime_errors",
4-
CONFIGURATION_ERROR: "configuration_errors",
5-
METADATA_ERROR: "metadata_errors",
6-
INSTRUMENTATION_ERROR: "instrumentation_errors"
1+
const ErrorTypes = Object.freeze({
2+
CHECK_ERROR: 'check_errors',
3+
RUNTIME_ERROR: 'runtime_errors',
4+
CONFIGURATION_ERROR: 'configuration_errors',
5+
METADATA_ERROR: 'metadata_errors',
6+
INSTRUMENTATION_ERROR: 'instrumentation_errors'
77
});
88

9-
export default ErrorTypes;
9+
export default ErrorTypes;
Lines changed: 50 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,71 @@
11
import autocompleteMatches from './autocomplete-matches';
22

3-
function nodeIsASearchFunctionality(node, currLevel=0, maxLevels=4) {
4-
if(!node) {
5-
return false;
3+
function nodeIsASearchFunctionality(actualNode, currLevel = 0, maxLevels = 4) {
4+
if (!actualNode) {
5+
return false;
66
}
77

88
function currentLevelSearch(node, currentLevel) {
9-
if(!node || currentLevel > maxLevels) {
10-
return false;
11-
}
9+
if (!node || currentLevel > maxLevels) {
10+
return false;
11+
}
1212

13-
let details = `\nLevel ${currentLevel}:\n`;
13+
let details = `\nLevel ${currentLevel}:\n`;
1414

15-
//collecting all the HTML attributes
16-
details += "Attributes:\n";
17-
if(node.hasAttributes()) {
18-
const attributes = axe.utils.getNodeAttributes(node);
19-
for (let i = 0; i < attributes.length; i++) {
20-
let attr = attributes[i];
21-
details += ` ${attr.name}: ${attr.value}\n`;
22-
}
15+
//collecting all the HTML attributes
16+
details += 'Attributes:\n';
17+
if (node.hasAttributes()) {
18+
const attributes = axe.utils.getNodeAttributes(node);
19+
for (let i = 0; i < attributes.length; i++) {
20+
const attr = attributes[i];
21+
details += ` ${attr.name}: ${attr.value}\n`;
2322
}
24-
25-
// Collect any associated labels (if node is an input, select, textarea, etc.)
26-
if (node.labels) {
27-
details += "Labels:\n";
28-
for (let j = 0; j < node.labels.length; j++) {
29-
details += ` ${node.labels[j].innerText}\n`;
30-
}
31-
} else if (node.nodeName.toLowerCase() === 'input' && node.type !== 'hidden') {
32-
let labels = document.querySelectorAll('label[for="' + node.id + '"]');
33-
details += "Labels:\n";
34-
labels.forEach(label => {
35-
details += ` ${label.innerText}\n`;
36-
});
23+
}
24+
25+
// Collect any associated labels (if node is an input, select, textarea, etc.)
26+
if (node.labels) {
27+
details += 'Labels:\n';
28+
for (let j = 0; j < node.labels.length; j++) {
29+
details += ` ${node.labels[j].innerText}\n`;
3730
}
31+
} else if (
32+
node.nodeName.toLowerCase() === 'input' &&
33+
node.type !== 'hidden'
34+
) {
35+
const labels = document.querySelectorAll('label[for="' + node.id + '"]');
36+
details += 'Labels:\n';
37+
labels.forEach(label => {
38+
details += ` ${label.innerText}\n`;
39+
});
40+
}
3841

39-
// Collect the given id
40-
details += `ID: ${node.id}\n`;
41-
// Collect all class names
42-
details += `Class Names: ${node.className.split(' ').filter(name => name).join(', ')}\n`;
42+
// Collect the given id
43+
details += `ID: ${node.id}\n`;
44+
// Collect all class names
45+
details += `Class Names: ${node.className
46+
.split(' ')
47+
.filter(name => name)
48+
.join(', ')}\n`;
4349

44-
const regex = new RegExp('search', 'i');
45-
if(regex.test(details)) {
46-
return true;
47-
} else {
48-
return currentLevelSearch(node.parentElement, currentLevel + 1);
49-
}
50+
const regex = new RegExp('search', 'i');
51+
if (regex.test(details)) {
52+
return true;
53+
} else {
54+
return currentLevelSearch(node.parentElement, currentLevel + 1);
55+
}
5056
}
51-
return currentLevelSearch(node, currLevel);
57+
return currentLevelSearch(actualNode, currLevel);
5258
}
5359

54-
function autocompleteA11yMatches(node, virtualNode) {
60+
function autocompleteA11yMatches(node, virtualNode) {
5561
const a11yEngineFlag = true;
5662
/* the flag is used to tell autocomplete matcher that it is being called
5763
by a11y-engine and thus bypass an if block
5864
The second condition is to check we are not matching with search functionality */
59-
return (autocompleteMatches(node, virtualNode, a11yEngineFlag) && !nodeIsASearchFunctionality(node));
65+
return (
66+
autocompleteMatches(node, virtualNode, a11yEngineFlag) &&
67+
!nodeIsASearchFunctionality(node)
68+
);
6069
}
6170

6271
export default autocompleteA11yMatches;

lib/rules/autocomplete-valid.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"EN-301-549",
1010
"EN-9.1.3.5",
1111
"ACT",
12-
"a11y-engine",
12+
"a11y-engine",
1313
"a11y-engine-experimental"
1414
],
1515
"actIds": ["73f2c2"],

0 commit comments

Comments
 (0)