From 92b78f04a513328b8310b58a1e382f9a376450b0 Mon Sep 17 00:00:00 2001 From: Pascal Corpet Date: Mon, 28 Mar 2022 20:40:00 +0200 Subject: [PATCH] Reverse settings logic. --- README.md | 10 +++-- __tests__/src/rules/accessible-emoji-test.js | 2 +- .../src/rules/anchor-has-content-test.js | 4 +- __tests__/src/rules/anchor-is-valid-test.js | 3 +- ...aria-activedescendant-has-tabindex-test.js | 4 +- __tests__/src/rules/aria-role-test.js | 2 +- .../rules/aria-unsupported-elements-test.js | 2 +- .../src/rules/autocomplete-valid-test.js | 2 +- .../click-events-have-key-events-test.js | 2 +- .../control-has-associated-label-test.js | 4 +- .../src/rules/heading-has-content-test.js | 4 +- __tests__/src/rules/html-has-lang-test.js | 4 +- __tests__/src/rules/iframe-has-title-test.js | 2 +- __tests__/src/rules/img-redundant-alt-test.js | 2 +- .../rules/interactive-supports-focus-test.js | 2 +- .../label-has-associated-control-test.js | 4 +- __tests__/src/rules/lang-test.js | 2 +- __tests__/src/rules/media-has-caption-test.js | 6 +-- __tests__/src/rules/no-autofocus-test.js | 2 +- .../src/rules/no-distracting-elements-test.js | 2 +- ...ive-element-to-noninteractive-role-test.js | 4 +- ...oninteractive-element-interactions-test.js | 4 +- ...active-element-to-interactive-role-test.js | 4 +- .../rules/no-noninteractive-tabindex-test.js | 4 +- __tests__/src/rules/no-onchange-test.js | 4 +- .../src/rules/no-redundant-roles-test.js | 2 +- .../no-static-element-interactions-test.js | 4 +- .../role-has-required-aria-props-test.js | 2 +- __tests__/src/rules/scope-test.js | 4 +- __tests__/src/util/getElementType-test.js | 45 +------------------ flow/eslint.js | 2 +- package.json | 1 - src/util/getElementType.js | 22 +-------- 33 files changed, 53 insertions(+), 114 deletions(-) diff --git a/README.md b/README.md index ac15c588b..214dcc7d0 100644 --- a/README.md +++ b/README.md @@ -90,15 +90,17 @@ Add `plugin:jsx-a11y/recommended` or `plugin:jsx-a11y/strict` in `extends`: ``` To enable your custom components to be checked as DOM elements, you can set global settings in your -configuration file by mapping each DOM element type to your component names. +configuration file by mapping each custom component name to a DOM element type. ```json { - "settins": { + "settings": { "jsx-a11y": { "components": { - "button": ["MyButton", "CustomButton", "RoundButton"], - "input": ["CityInput"] + "CityInput": "input", + "CustomButton": "button", + "MyButton": "button", + "RoundButton": "button" } } } diff --git a/__tests__/src/rules/accessible-emoji-test.js b/__tests__/src/rules/accessible-emoji-test.js index 891035a11..dc3d19683 100644 --- a/__tests__/src/rules/accessible-emoji-test.js +++ b/__tests__/src/rules/accessible-emoji-test.js @@ -40,7 +40,7 @@ ruleTester.run('accessible-emoji', rule, { { code: '🐼' }, { code: '🐼', - settings: { 'jsx-a11y': { components: { input: ['CustomInput'] } } }, + settings: { 'jsx-a11y': { components: { CustomInput: 'input' } } }, }, ].map(parserOptionsMapper), invalid: [ diff --git a/__tests__/src/rules/anchor-has-content-test.js b/__tests__/src/rules/anchor-has-content-test.js index b59d0d834..0935395e0 100644 --- a/__tests__/src/rules/anchor-has-content-test.js +++ b/__tests__/src/rules/anchor-has-content-test.js @@ -34,7 +34,7 @@ ruleTester.run('anchor-has-content', rule, { { code: '' }, { code: 'foo', - settings: { 'jsx-a11y': { components: { a: ['Link'] } } }, + settings: { 'jsx-a11y': { components: { Link: 'a' } } }, }, ].map(parserOptionsMapper), invalid: [ @@ -44,7 +44,7 @@ ruleTester.run('anchor-has-content', rule, { { code: '', errors: [expectedError], - settings: { 'jsx-a11y': { components: { a: ['Link'] } } }, + settings: { 'jsx-a11y': { components: { Link: 'a' } } }, }, ].map(parserOptionsMapper), }); diff --git a/__tests__/src/rules/anchor-is-valid-test.js b/__tests__/src/rules/anchor-is-valid-test.js index b9a21f386..5b368d9e7 100644 --- a/__tests__/src/rules/anchor-is-valid-test.js +++ b/__tests__/src/rules/anchor-is-valid-test.js @@ -81,7 +81,8 @@ const componentsAndSpecialLinkAndNoHrefAspect = [{ const componentsSettings = { 'jsx-a11y': { components: { - a: ['Anchor', 'Link'], + Anchor: 'a', + Link: 'a', }, }, }; diff --git a/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js b/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js index d16fe0329..6c251cf23 100644 --- a/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js +++ b/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js @@ -38,7 +38,7 @@ ruleTester.run('aria-activedescendant-has-tabindex', rule, { }, { code: ';', - settings: { 'jsx-a11y': { components: { div: ['CustomComponent'] } } }, + settings: { 'jsx-a11y': { components: { CustomComponent: 'div' } } }, }, { code: '
;', @@ -88,7 +88,7 @@ ruleTester.run('aria-activedescendant-has-tabindex', rule, { { code: ';', errors: [expectedError], - settings: { 'jsx-a11y': { components: { div: ['CustomComponent'] } } }, + settings: { 'jsx-a11y': { components: { CustomComponent: 'div' } } }, }, ].map(parserOptionsMapper), }); diff --git a/__tests__/src/rules/aria-role-test.js b/__tests__/src/rules/aria-role-test.js index 09d0addd6..9ccca139d 100644 --- a/__tests__/src/rules/aria-role-test.js +++ b/__tests__/src/rules/aria-role-test.js @@ -50,7 +50,7 @@ const ignoreNonDOMSchema = [{ const customDivSettings = { 'jsx-a11y': { components: { - div: ['Div'], + Div: 'div', }, }, }; diff --git a/__tests__/src/rules/aria-unsupported-elements-test.js b/__tests__/src/rules/aria-unsupported-elements-test.js index 54118c3e7..b29a617c5 100644 --- a/__tests__/src/rules/aria-unsupported-elements-test.js +++ b/__tests__/src/rules/aria-unsupported-elements-test.js @@ -57,7 +57,7 @@ const invalidRoleValidityTests = domElements })).concat({ code: '', errors: [errorMessage('aria-hidden')], - settings: { 'jsx-a11y': { components: { meta: ['Meta'] } } }, + settings: { 'jsx-a11y': { components: { Meta: 'meta' } } }, }); const invalidAriaValidityTests = domElements diff --git a/__tests__/src/rules/autocomplete-valid-test.js b/__tests__/src/rules/autocomplete-valid-test.js index 0e3e3df13..49f194067 100644 --- a/__tests__/src/rules/autocomplete-valid-test.js +++ b/__tests__/src/rules/autocomplete-valid-test.js @@ -31,7 +31,7 @@ const inappropriateAutocomplete = [{ const componentsSettings = { 'jsx-a11y': { components: { - input: ['Input'], + Input: 'input', }, }, }; diff --git a/__tests__/src/rules/click-events-have-key-events-test.js b/__tests__/src/rules/click-events-have-key-events-test.js index 8f7197f27..5460504f6 100644 --- a/__tests__/src/rules/click-events-have-key-events-test.js +++ b/__tests__/src/rules/click-events-have-key-events-test.js @@ -71,6 +71,6 @@ ruleTester.run('click-events-have-key-events', rule, { }, { code: ' void 0} />', errors: [expectedError] }, { code: ' void 0} />', errors: [expectedError] }, - { code: '