diff --git a/__tests__/src/rules/label-has-for-test.js b/__tests__/src/rules/label-has-for-test.js index aeb536c0..d476d1d6 100644 --- a/__tests__/src/rules/label-has-for-test.js +++ b/__tests__/src/rules/label-has-for-test.js @@ -96,7 +96,7 @@ ruleTester.run('label-has-for', rule, { { code: '', options: optionsRequiredNesting }, { code: '', options: optionsRequiredEvery }, { code: '', options: optionsChildrenAllowed }, - { code: 'Test!', options: [assign({}, optionsComponents, optionsChildrenAllowed)] }, + { code: 'Test!', options: [assign({}, optionsComponents[0], optionsChildrenAllowed[0])] }, { code: '', options: optionsChildrenAllowed }, { code: '', options: optionsChildrenAllowed }, { code: '', options: optionsChildrenAllowed }, diff --git a/src/index.js b/src/index.js index 980081e6..9619a61c 100644 --- a/src/index.js +++ b/src/index.js @@ -81,7 +81,6 @@ const recommendedRules = { 'tree', 'treegrid', ], - includeRoles: ['alert', 'dialog'], }, ], 'jsx-a11y/heading-has-content': 'error', @@ -235,7 +234,6 @@ const strictRules = { 'tree', 'treegrid', ], - includeRoles: ['alert', 'dialog'], }, ], 'jsx-a11y/heading-has-content': 'error', diff --git a/src/rules/label-has-for.js b/src/rules/label-has-for.js index 46081c97..f2d8eb95 100644 --- a/src/rules/label-has-for.js +++ b/src/rules/label-has-for.js @@ -26,6 +26,7 @@ const schema = { }, allowChildren: { type: 'boolean' }, }, + additionalProperties: false, }; // Breadth-first search, assuming that HTML for forms is shallow. function validateNesting(node) { diff --git a/src/rules/no-noninteractive-element-interactions.js b/src/rules/no-noninteractive-element-interactions.js index f31c0cdd..cf4131f7 100644 --- a/src/rules/no-noninteractive-element-interactions.js +++ b/src/rules/no-noninteractive-element-interactions.js @@ -48,7 +48,16 @@ export default ({ url: 'https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md', description: 'Non-interactive elements should not be assigned mouse or keyboard event listeners.', }, - schema: [schema], + schema: [{ + ...schema, + additionalProperties: { + type: 'array', + items: { + type: 'string', + }, + uniqueItems: true, + }, + }], }, create: (context: ESLintContext): ESLintVisitorSelectorConfig => { diff --git a/src/rules/no-noninteractive-tabindex.js b/src/rules/no-noninteractive-tabindex.js index 796b44cd..60a3fe38 100644 --- a/src/rules/no-noninteractive-tabindex.js +++ b/src/rules/no-noninteractive-tabindex.js @@ -34,6 +34,9 @@ const schema = generateObjSchema({ ...arraySchema, description: 'An array of HTML tag names', }, + allowExpressionValues: { + type: 'boolean', + }, }); export default ({ diff --git a/src/rules/no-static-element-interactions.js b/src/rules/no-static-element-interactions.js index 038d7c1e..6a3d186d 100644 --- a/src/rules/no-static-element-interactions.js +++ b/src/rules/no-static-element-interactions.js @@ -37,6 +37,9 @@ const defaultInteractiveProps = [].concat( ); const schema = generateObjSchema({ handlers: arraySchema, + allowExpressionValues: { + type: 'boolean', + }, }); export default ({ diff --git a/src/util/schemas.js b/src/util/schemas.js index ba41df63..6c822670 100644 --- a/src/util/schemas.js +++ b/src/util/schemas.js @@ -30,4 +30,5 @@ export const generateObjSchema = (properties = {}, required = undefined) => ({ type: 'object', properties, required, + additionalProperties: false, });