Skip to content

Commit 1b4ea82

Browse files
committed
Fixes maranran#23
1 parent e3c5ad6 commit 1b4ea82

11 files changed

+455
-173
lines changed

.travis.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
language: node_js
2+
3+
sudo: false
4+
5+
cache:
6+
directories:
7+
- node_modules
8+
9+
node_js:
10+
- 10
11+
- 12
12+
13+
install: npm install
14+
15+
script:
16+
- npm run lint
17+
- npm run test
18+
19+
notifications:
20+
email:
21+
on_success: never
22+
on_failure: change

lib/rules/aria-props.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
const VueUtils = require('eslint-plugin-vue/lib/utils');
66
const utils = require('../utils');
77
const altRule = require('eslint-plugin-jsx-a11y/lib/rules/aria-props.js');
8-
const { generateObjSchema, arraySchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
8+
const { generateObjSchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
99
const { aria } = require('aria-query');
1010
const schema = generateObjSchema();
1111

@@ -32,7 +32,8 @@ module.exports = {
3232
}
3333
context.report({
3434
node,
35-
message: `${name}: This attribute is an invalid ARIA attribute.`
35+
message: `Attribute '{{name}}' is an invalid ARIA attribute.`,
36+
data: { name }
3637
});
3738
}
3839
}

lib/rules/aria-unsupported-elements.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
const VueUtils = require('eslint-plugin-vue/lib/utils');
66
const utils = require('../utils');
77
const altRule = require('eslint-plugin-jsx-a11y/lib/rules/aria-unsupported-elements.js');
8-
const { generateObjSchema, arraySchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
8+
const { generateObjSchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
99
const { aria, dom } = require('aria-query');
1010

1111
const schema = generateObjSchema();
@@ -31,8 +31,8 @@ module.exports = {
3131
if (invalidAttributes.indexOf(name) > -1) {
3232
context.report({
3333
node,
34-
message: `This element does not support ARIA roles, states and properties.
35-
Try removing the prop '${name}'.`
34+
message: `This element does not support ARIA roles, states and properties. Try removing the prop '{{name}}'.`,
35+
data: { name }
3636
});
3737
}
3838
})

lib/rules/form-has-label.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
const VueUtils = require('eslint-plugin-vue/lib/utils');
77
const utils = require('../utils');
8-
const { generateObjSchema, arraySchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
9-
const { getProp, getPropValue, elementType, getLiteralPropValue } = require('jsx-ast-utils');
8+
const { generateObjSchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
9+
const { getProp, getPropValue, elementType } = require('jsx-ast-utils');
1010

1111
const errorMessage = 'Each form element must have a programmatically associated label element.';
1212

@@ -93,4 +93,4 @@ module.exports = {
9393
}
9494
})
9595
}
96-
};
96+
};

lib/rules/interactive-supports-focus.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
const VueUtils = require('eslint-plugin-vue/lib/utils');
22
const utils = require('../utils');
33
const altRule = require('eslint-plugin-jsx-a11y/lib/rules/interactive-supports-focus.js');
4-
const { generateObjSchema, arraySchema, enumArraySchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
4+
const { generateObjSchema, enumArraySchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
55
const { dom, roles } = require('aria-query');
66
const { eventHandlersByType } = require('jsx-ast-utils');
7-
const errorMessage = '';
87

98

109
const schema = generateObjSchema({
@@ -56,13 +55,15 @@ module.exports = {
5655
// Always tabbable, tabIndex = 0
5756
context.report({
5857
node,
59-
message: `Elements with the '${role}' interactive role must be tabbable.`,
58+
message: `Elements with the '{{role}}' interactive role must be tabbable.`,
59+
data: { role }
6060
});
6161
} else {
6262
// Focusable, tabIndex = -1 or 0
6363
context.report({
6464
node,
65-
message: `Elements with the '${role}' interactive role must be focusable.`,
65+
message: `Elements with the '{{role}}' interactive role must be focusable.`,
66+
data: { role }
6667
});
6768
}
6869
}

lib/rules/no-redundant-roles.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ module.exports = {
5151
}
5252
context.report({
5353
node,
54-
message: `The element ${type} has an implicit role of ${implicitRole}. Defining this explicitly is redundant and should be avoided.`
54+
message: `The element {{type}} has an implicit role of {{implicitRole}}. Defining this explicitly is redundant and should be avoided.`,
55+
data: { type, implicitRole }
5556
});
5657
}
5758
}

lib/rules/role-has-required-aria-props.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
const VueUtils = require('eslint-plugin-vue/lib/utils');
77
const utils = require('../utils');
88
const altRule = require('eslint-plugin-jsx-a11y/lib/rules/role-has-required-aria-props.js');
9-
const { generateObjSchema, arraySchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
9+
const { generateObjSchema } = require('eslint-plugin-jsx-a11y/lib/util/schemas.js');
1010
const { dom, roles } = require('aria-query');
1111

1212
const errorMessage = (role, requiredProps) =>

0 commit comments

Comments
 (0)