Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Negative tabindex is allowed in aria-activedescendant-has-tabindex rule #708

Merged
merged 1 commit into from
Jun 22, 2020

Conversation

jessebeach
Copy link
Collaborator

Fixes #673

@jessebeach jessebeach merged commit d4dfccb into master Jun 22, 2020
@jessebeach jessebeach deleted the 673-fix branch June 22, 2020 00:35
dummdidumm added a commit to dummdidumm/eslint-plugin-jsx-a11y that referenced this pull request Feb 22, 2023
ljharb pushed a commit to dummdidumm/eslint-plugin-jsx-a11y that referenced this pull request Aug 11, 2023
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 15, 2024
| datasource | package                | from  | to    |
| ---------- | ---------------------- | ----- | ----- |
| npm        | eslint-plugin-jsx-a11y | 6.6.1 | 6.9.0 |


##### [\`v6.9.0\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v690---2024-06-19)

##### Fixed

-   \[Fix] `img-redundant-alt`: fixed multibyte character support [`#969`](jsx-eslint/eslint-plugin-jsx-a11y#969)
-   \[meta] fix changelog links [`#960`](jsx-eslint/eslint-plugin-jsx-a11y#960)

##### Commits

-   \[New] add support for Flat Config [`6b5f096`](jsx-eslint/eslint-plugin-jsx-a11y@6b5f096)
-   Revert "\[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1" [`75d5dd7`](jsx-eslint/eslint-plugin-jsx-a11y@75d5dd7)
-   \[Robustness] use `safe-regex-test` [`4c7e781`](jsx-eslint/eslint-plugin-jsx-a11y@4c7e781)
-   \[actions] update actions/checkout [`51a1ca7`](jsx-eslint/eslint-plugin-jsx-a11y@51a1ca7)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `eslint-doc-generator`, `object.entries` [`1271ac1`](jsx-eslint/eslint-plugin-jsx-a11y@1271ac1)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `aud`, `eslint-plugin-import`, `npmignore`, `object.assign` [`540cb7a`](jsx-eslint/eslint-plugin-jsx-a11y@540cb7a)
-   \[Deps] update `@babel/runtime`, `array-includes`, `es-iterator-helpers`, `hasown`, `object.fromentries`, `safe-regex-test` [`5d14408`](jsx-eslint/eslint-plugin-jsx-a11y@5d14408)
-   \[Deps] pin `aria-query` and `axobject-query`, add `ls-engines` test to CI [`32fd82c`](jsx-eslint/eslint-plugin-jsx-a11y@32fd82c)
-   \[Dev Deps] update `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-doc-generator` [`d1b4114`](jsx-eslint/eslint-plugin-jsx-a11y@d1b4114)
-   \[Fix] ensure `summary` remains non-interactive [`6a048da`](jsx-eslint/eslint-plugin-jsx-a11y@6a048da)
-   \[Deps] remove `@babel/runtime` [`0a98ad8`](jsx-eslint/eslint-plugin-jsx-a11y@0a98ad8)
-   \[New] `no-noninteractive-element-to-interactive-role`: allow `menuitemradio` and `menuitemcheckbox` on \<li> [`c0733f9`](jsx-eslint/eslint-plugin-jsx-a11y@c0733f9)
-   \[Deps] update `@babel/runtime`, `safe-regex-test` [`0d5321a`](jsx-eslint/eslint-plugin-jsx-a11y@0d5321a)
-   \[actions] pin codecov to v3.1.5 [`961817f`](jsx-eslint/eslint-plugin-jsx-a11y@961817f)
-   \[Deps] unpin `axe-core` [`b3559cf`](jsx-eslint/eslint-plugin-jsx-a11y@b3559cf)
-   \[Deps] move `object.entries` to dev deps [`1be7b70`](jsx-eslint/eslint-plugin-jsx-a11y@1be7b70)
-   \[Deps] update `@babel/runtime` [`2a48abb`](jsx-eslint/eslint-plugin-jsx-a11y@2a48abb)
-   \[Deps] update `@babel/runtime` [`1adec35`](jsx-eslint/eslint-plugin-jsx-a11y@1adec35)
##### [\`v6.8.0\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v680---2023-11-01)

##### Merged

-   Allow `title` attribute or `aria-label` attribute instead of accessible child in the "anchor-has-content" rule [`#727`](jsx-eslint/eslint-plugin-jsx-a11y#727)

##### Fixed

-   \[Docs] `aria-activedescendant-has-tabindex`: align with changes from [#708](jsx-eslint/eslint-plugin-jsx-a11y#708) [`#924`](jsx-eslint/eslint-plugin-jsx-a11y#924)
-   \[Fix] `control-has-associated-label`: don't accept whitespace as an accessible label [`#918`](jsx-eslint/eslint-plugin-jsx-a11y#918)

##### Commits

-   \[Tests] migrate helper parsers function from `eslint-plugin-react` [`ce4d57f`](jsx-eslint/eslint-plugin-jsx-a11y@ce4d57f)
-   \[Refactor] use `es-iterator-helpers` [`52de824`](jsx-eslint/eslint-plugin-jsx-a11y@52de824)
-   \[New] `mouse-events-have-key-events`: add `hoverInHandlers`/`hoverOutHandlers` config [`db64898`](jsx-eslint/eslint-plugin-jsx-a11y@db64898)
-   \[New] add `polymorphicPropName` setting for polymorphic components [`fffb05b`](jsx-eslint/eslint-plugin-jsx-a11y@fffb05b)
-   \[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1 [`64bfea6`](jsx-eslint/eslint-plugin-jsx-a11y@64bfea6)
-   \[Refactor] use `hasown` instead of `has` [`9a8edde`](jsx-eslint/eslint-plugin-jsx-a11y@9a8edde)
-   \[actions] update used actions [`10c061a`](jsx-eslint/eslint-plugin-jsx-a11y@10c061a)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `aud`, `eslint-doc-generator`, `eslint-plugin-import`, `minimist` [`6d5022d`](jsx-eslint/eslint-plugin-jsx-a11y@6d5022d)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/register`, `eslint-doc-generator`, `eslint-plugin-import` [`4dc7f1e`](jsx-eslint/eslint-plugin-jsx-a11y@4dc7f1e)
-   \[New] `anchor-has-content`: Allow title attribute OR aria-label attribute [`e6bfd5c`](jsx-eslint/eslint-plugin-jsx-a11y@e6bfd5c)
-   \[patch] `mouse-events-have-key-events`: rport the attribute, not the node [`eadd70c`](jsx-eslint/eslint-plugin-jsx-a11y@eadd70c)
-   \[Deps] update `@babel/runtime`, `array-includes`, `array.prototype.flatmap`, `object.entries`, `object.fromentries` [`46ffbc3`](jsx-eslint/eslint-plugin-jsx-a11y@46ffbc3)
-   \[Deps] update `@babel/runtime`, `axobject-query`, `jsx-ast-utils`, `semver` [`5999555`](jsx-eslint/eslint-plugin-jsx-a11y@5999555)
-   \[Fix] pin `aria-query` and `axe-core` to fix failing tests on main [`8d8f016`](jsx-eslint/eslint-plugin-jsx-a11y@8d8f016)
-   \[patch] move `semver` from Deps to Dev Deps [`4da13e7`](jsx-eslint/eslint-plugin-jsx-a11y@4da13e7)
-   \[Deps] update `ast-types-flow` [`b755318`](jsx-eslint/eslint-plugin-jsx-a11y@b755318)
-   \[Dev Deps] update `eslint-plugin-import` [`f1c976b`](jsx-eslint/eslint-plugin-jsx-a11y@f1c976b)
-   \[Deps] unpin `language-tags` [`3d1d26d`](jsx-eslint/eslint-plugin-jsx-a11y@3d1d26d)
-   \[Docs] `no-static-element-interactions`: tabIndex is written tabindex [`1271153`](jsx-eslint/eslint-plugin-jsx-a11y@1271153)
-   \[Deps] Upgrade ast-types-flow to mitigate Docker user namespacing problems [`f0d2ddb`](jsx-eslint/eslint-plugin-jsx-a11y@f0d2ddb)
-   \[Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`0c278f4`](jsx-eslint/eslint-plugin-jsx-a11y@0c278f4)
##### [\`v6.7.1\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v671---2023-01-11)

##### Commits

-   \[Fix] `no-aria-hidden-on-focusable` rule's missing export [`b01219e`](ljharb/eslint-plugin-jsx-a11y@b01219e)
##### [\`v6.7.0\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v670---2023-01-09)

##### Merged

-   New rule: prefer-tag-over-role [`#833`](https://github.com/ljharb/eslint-plugin-jsx-a11y/pull/833)

##### Fixed

-   \[Tests] `aria-role`: add now-passing test [`#756`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/756)
-   \[Docs] `control-has-associated-label`: fix metadata [`#892`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/892)
-   \[New] add `no-aria-hidden-on-focusable` rule [`#881`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/881)

##### Commits

-   \[Docs] automate docs with `eslint-doc-generator` [`6d7a857`](ljharb/eslint-plugin-jsx-a11y@6d7a857)
-   \[Refactor] use fromEntries, flatMap, etc; better use iteration methods [`3d77c84`](ljharb/eslint-plugin-jsx-a11y@3d77c84)
-   \[New] add `anchor-ambiguous-text` rule [`7f6463e`](ljharb/eslint-plugin-jsx-a11y@7f6463e)
-   \[New] add `getAccessibleChildText` util [`630116b`](ljharb/eslint-plugin-jsx-a11y@630116b)
-   \[New] Add `isFocusable` utils method [`e199d17`](ljharb/eslint-plugin-jsx-a11y@e199d17)
-   \[Docs] update `eslint-doc-generator` to v1.0.0 [`6b9855b`](ljharb/eslint-plugin-jsx-a11y@6b9855b)
-   \[Fix] `no-noninteractive-element-interactions`: Ignore contenteditable elements in no-noninteractive-element-interactions [`9aa878b`](ljharb/eslint-plugin-jsx-a11y@9aa878b)
-   \[New] `anchor-ambiguous-text`: ignore punctuation [`bbae2c4`](ljharb/eslint-plugin-jsx-a11y@bbae2c4)
-   \[New] `anchor-ambiguous-text`, `getAccessibleChildText`: Implements check for `alt` tags on `&lt;img /&gt;` elements [`bb84abc`](ljharb/eslint-plugin-jsx-a11y@bb84abc)
-   \[meta] use `npmignore` to autogenerate an npmignore file [`6ad2312`](ljharb/eslint-plugin-jsx-a11y@6ad2312)
-   \[meta] add `auto-changelog` [`283817b`](ljharb/eslint-plugin-jsx-a11y@283817b)
-   \[Docs] missing descriptions in some rules [`79b975a`](ljharb/eslint-plugin-jsx-a11y@79b975a)
-   \[Deps] update `aria-query`, `axobject-query` [`7b3cda3`](ljharb/eslint-plugin-jsx-a11y@7b3cda3)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `aud`, `object.assign` [`0852947`](ljharb/eslint-plugin-jsx-a11y@0852947)
-   \[meta] move `.eslintignore` to `ignorePatterns` [`65be35b`](ljharb/eslint-plugin-jsx-a11y@65be35b)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `aud`, `eslint-doc-generator` [`60c2df5`](ljharb/eslint-plugin-jsx-a11y@60c2df5)
-   \[Deps] update `@babel/runtime`, `array-includes`, `axe-core` [`4abc751`](ljharb/eslint-plugin-jsx-a11y@4abc751)
-   \[Deps] update `@babel/runtime`, `axe-core` [`89f766c`](ljharb/eslint-plugin-jsx-a11y@89f766c)
-   \[meta] run the build in prepack, not prepublish [`e411ce3`](ljharb/eslint-plugin-jsx-a11y@e411ce3)
-   \[Dev Deps] update `@babel/core`, `minimist` [`cccdb62`](ljharb/eslint-plugin-jsx-a11y@cccdb62)
-   \[Dev Deps] update `markdown-magic` [`3382059`](ljharb/eslint-plugin-jsx-a11y@3382059)
-   \[Fix] expose `prefer-tag-over-role` [`38d52f8`](ljharb/eslint-plugin-jsx-a11y@38d52f8)
-   \[Docs] `label-has-for`: reran generate-list-of-rules [`9a2af01`](ljharb/eslint-plugin-jsx-a11y@9a2af01)
-   \[Deps] pin `language-tags` to `v1.0.5` [`f84bb74`](ljharb/eslint-plugin-jsx-a11y@f84bb74)
-   \[Dev Deps] update `@babel/core` [`cf3f8d0`](ljharb/eslint-plugin-jsx-a11y@cf3f8d0)
-   \[Deps] update `axe-core` [`0a73cf4`](ljharb/eslint-plugin-jsx-a11y@0a73cf4)
-   \[Deps] update `@babel/runtime` [`053f04d`](ljharb/eslint-plugin-jsx-a11y@053f04d)
-   \[Deps] update `@babel/runtime` [`bccf0ae`](ljharb/eslint-plugin-jsx-a11y@bccf0ae)
-   \[Deps] update `jsx-ast-utils` [`c9687cc`](ljharb/eslint-plugin-jsx-a11y@c9687cc)
-   \[readme] Preventing code repetition in user's eslint config file [`8b889bf`](ljharb/eslint-plugin-jsx-a11y@8b889bf)
-   \[Docs] `prefer-tag-over-role`: rename docs file [`0bdf95b`](ljharb/eslint-plugin-jsx-a11y@0bdf95b)

<!-- auto-changelog-above -->
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 15, 2024
| datasource | package                | from  | to    |
| ---------- | ---------------------- | ----- | ----- |
| npm        | eslint-plugin-jsx-a11y | 6.6.1 | 6.9.0 |


##### [\`v6.9.0\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v690---2024-06-19)

##### Fixed

-   \[Fix] `img-redundant-alt`: fixed multibyte character support [`#969`](jsx-eslint/eslint-plugin-jsx-a11y#969)
-   \[meta] fix changelog links [`#960`](jsx-eslint/eslint-plugin-jsx-a11y#960)

##### Commits

-   \[New] add support for Flat Config [`6b5f096`](jsx-eslint/eslint-plugin-jsx-a11y@6b5f096)
-   Revert "\[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1" [`75d5dd7`](jsx-eslint/eslint-plugin-jsx-a11y@75d5dd7)
-   \[Robustness] use `safe-regex-test` [`4c7e781`](jsx-eslint/eslint-plugin-jsx-a11y@4c7e781)
-   \[actions] update actions/checkout [`51a1ca7`](jsx-eslint/eslint-plugin-jsx-a11y@51a1ca7)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `eslint-doc-generator`, `object.entries` [`1271ac1`](jsx-eslint/eslint-plugin-jsx-a11y@1271ac1)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `aud`, `eslint-plugin-import`, `npmignore`, `object.assign` [`540cb7a`](jsx-eslint/eslint-plugin-jsx-a11y@540cb7a)
-   \[Deps] update `@babel/runtime`, `array-includes`, `es-iterator-helpers`, `hasown`, `object.fromentries`, `safe-regex-test` [`5d14408`](jsx-eslint/eslint-plugin-jsx-a11y@5d14408)
-   \[Deps] pin `aria-query` and `axobject-query`, add `ls-engines` test to CI [`32fd82c`](jsx-eslint/eslint-plugin-jsx-a11y@32fd82c)
-   \[Dev Deps] update `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-doc-generator` [`d1b4114`](jsx-eslint/eslint-plugin-jsx-a11y@d1b4114)
-   \[Fix] ensure `summary` remains non-interactive [`6a048da`](jsx-eslint/eslint-plugin-jsx-a11y@6a048da)
-   \[Deps] remove `@babel/runtime` [`0a98ad8`](jsx-eslint/eslint-plugin-jsx-a11y@0a98ad8)
-   \[New] `no-noninteractive-element-to-interactive-role`: allow `menuitemradio` and `menuitemcheckbox` on \<li> [`c0733f9`](jsx-eslint/eslint-plugin-jsx-a11y@c0733f9)
-   \[Deps] update `@babel/runtime`, `safe-regex-test` [`0d5321a`](jsx-eslint/eslint-plugin-jsx-a11y@0d5321a)
-   \[actions] pin codecov to v3.1.5 [`961817f`](jsx-eslint/eslint-plugin-jsx-a11y@961817f)
-   \[Deps] unpin `axe-core` [`b3559cf`](jsx-eslint/eslint-plugin-jsx-a11y@b3559cf)
-   \[Deps] move `object.entries` to dev deps [`1be7b70`](jsx-eslint/eslint-plugin-jsx-a11y@1be7b70)
-   \[Deps] update `@babel/runtime` [`2a48abb`](jsx-eslint/eslint-plugin-jsx-a11y@2a48abb)
-   \[Deps] update `@babel/runtime` [`1adec35`](jsx-eslint/eslint-plugin-jsx-a11y@1adec35)
##### [\`v6.8.0\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v680---2023-11-01)

##### Merged

-   Allow `title` attribute or `aria-label` attribute instead of accessible child in the "anchor-has-content" rule [`#727`](jsx-eslint/eslint-plugin-jsx-a11y#727)

##### Fixed

-   \[Docs] `aria-activedescendant-has-tabindex`: align with changes from [#708](jsx-eslint/eslint-plugin-jsx-a11y#708) [`#924`](jsx-eslint/eslint-plugin-jsx-a11y#924)
-   \[Fix] `control-has-associated-label`: don't accept whitespace as an accessible label [`#918`](jsx-eslint/eslint-plugin-jsx-a11y#918)

##### Commits

-   \[Tests] migrate helper parsers function from `eslint-plugin-react` [`ce4d57f`](jsx-eslint/eslint-plugin-jsx-a11y@ce4d57f)
-   \[Refactor] use `es-iterator-helpers` [`52de824`](jsx-eslint/eslint-plugin-jsx-a11y@52de824)
-   \[New] `mouse-events-have-key-events`: add `hoverInHandlers`/`hoverOutHandlers` config [`db64898`](jsx-eslint/eslint-plugin-jsx-a11y@db64898)
-   \[New] add `polymorphicPropName` setting for polymorphic components [`fffb05b`](jsx-eslint/eslint-plugin-jsx-a11y@fffb05b)
-   \[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1 [`64bfea6`](jsx-eslint/eslint-plugin-jsx-a11y@64bfea6)
-   \[Refactor] use `hasown` instead of `has` [`9a8edde`](jsx-eslint/eslint-plugin-jsx-a11y@9a8edde)
-   \[actions] update used actions [`10c061a`](jsx-eslint/eslint-plugin-jsx-a11y@10c061a)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `aud`, `eslint-doc-generator`, `eslint-plugin-import`, `minimist` [`6d5022d`](jsx-eslint/eslint-plugin-jsx-a11y@6d5022d)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/register`, `eslint-doc-generator`, `eslint-plugin-import` [`4dc7f1e`](jsx-eslint/eslint-plugin-jsx-a11y@4dc7f1e)
-   \[New] `anchor-has-content`: Allow title attribute OR aria-label attribute [`e6bfd5c`](jsx-eslint/eslint-plugin-jsx-a11y@e6bfd5c)
-   \[patch] `mouse-events-have-key-events`: rport the attribute, not the node [`eadd70c`](jsx-eslint/eslint-plugin-jsx-a11y@eadd70c)
-   \[Deps] update `@babel/runtime`, `array-includes`, `array.prototype.flatmap`, `object.entries`, `object.fromentries` [`46ffbc3`](jsx-eslint/eslint-plugin-jsx-a11y@46ffbc3)
-   \[Deps] update `@babel/runtime`, `axobject-query`, `jsx-ast-utils`, `semver` [`5999555`](jsx-eslint/eslint-plugin-jsx-a11y@5999555)
-   \[Fix] pin `aria-query` and `axe-core` to fix failing tests on main [`8d8f016`](jsx-eslint/eslint-plugin-jsx-a11y@8d8f016)
-   \[patch] move `semver` from Deps to Dev Deps [`4da13e7`](jsx-eslint/eslint-plugin-jsx-a11y@4da13e7)
-   \[Deps] update `ast-types-flow` [`b755318`](jsx-eslint/eslint-plugin-jsx-a11y@b755318)
-   \[Dev Deps] update `eslint-plugin-import` [`f1c976b`](jsx-eslint/eslint-plugin-jsx-a11y@f1c976b)
-   \[Deps] unpin `language-tags` [`3d1d26d`](jsx-eslint/eslint-plugin-jsx-a11y@3d1d26d)
-   \[Docs] `no-static-element-interactions`: tabIndex is written tabindex [`1271153`](jsx-eslint/eslint-plugin-jsx-a11y@1271153)
-   \[Deps] Upgrade ast-types-flow to mitigate Docker user namespacing problems [`f0d2ddb`](jsx-eslint/eslint-plugin-jsx-a11y@f0d2ddb)
-   \[Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`0c278f4`](jsx-eslint/eslint-plugin-jsx-a11y@0c278f4)
##### [\`v6.7.1\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v671---2023-01-11)

##### Commits

-   \[Fix] `no-aria-hidden-on-focusable` rule's missing export [`b01219e`](ljharb/eslint-plugin-jsx-a11y@b01219e)
##### [\`v6.7.0\`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v670---2023-01-09)

##### Merged

-   New rule: prefer-tag-over-role [`#833`](https://github.com/ljharb/eslint-plugin-jsx-a11y/pull/833)

##### Fixed

-   \[Tests] `aria-role`: add now-passing test [`#756`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/756)
-   \[Docs] `control-has-associated-label`: fix metadata [`#892`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/892)
-   \[New] add `no-aria-hidden-on-focusable` rule [`#881`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/881)

##### Commits

-   \[Docs] automate docs with `eslint-doc-generator` [`6d7a857`](ljharb/eslint-plugin-jsx-a11y@6d7a857)
-   \[Refactor] use fromEntries, flatMap, etc; better use iteration methods [`3d77c84`](ljharb/eslint-plugin-jsx-a11y@3d77c84)
-   \[New] add `anchor-ambiguous-text` rule [`7f6463e`](ljharb/eslint-plugin-jsx-a11y@7f6463e)
-   \[New] add `getAccessibleChildText` util [`630116b`](ljharb/eslint-plugin-jsx-a11y@630116b)
-   \[New] Add `isFocusable` utils method [`e199d17`](ljharb/eslint-plugin-jsx-a11y@e199d17)
-   \[Docs] update `eslint-doc-generator` to v1.0.0 [`6b9855b`](ljharb/eslint-plugin-jsx-a11y@6b9855b)
-   \[Fix] `no-noninteractive-element-interactions`: Ignore contenteditable elements in no-noninteractive-element-interactions [`9aa878b`](ljharb/eslint-plugin-jsx-a11y@9aa878b)
-   \[New] `anchor-ambiguous-text`: ignore punctuation [`bbae2c4`](ljharb/eslint-plugin-jsx-a11y@bbae2c4)
-   \[New] `anchor-ambiguous-text`, `getAccessibleChildText`: Implements check for `alt` tags on `&lt;img /&gt;` elements [`bb84abc`](ljharb/eslint-plugin-jsx-a11y@bb84abc)
-   \[meta] use `npmignore` to autogenerate an npmignore file [`6ad2312`](ljharb/eslint-plugin-jsx-a11y@6ad2312)
-   \[meta] add `auto-changelog` [`283817b`](ljharb/eslint-plugin-jsx-a11y@283817b)
-   \[Docs] missing descriptions in some rules [`79b975a`](ljharb/eslint-plugin-jsx-a11y@79b975a)
-   \[Deps] update `aria-query`, `axobject-query` [`7b3cda3`](ljharb/eslint-plugin-jsx-a11y@7b3cda3)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `aud`, `object.assign` [`0852947`](ljharb/eslint-plugin-jsx-a11y@0852947)
-   \[meta] move `.eslintignore` to `ignorePatterns` [`65be35b`](ljharb/eslint-plugin-jsx-a11y@65be35b)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `aud`, `eslint-doc-generator` [`60c2df5`](ljharb/eslint-plugin-jsx-a11y@60c2df5)
-   \[Deps] update `@babel/runtime`, `array-includes`, `axe-core` [`4abc751`](ljharb/eslint-plugin-jsx-a11y@4abc751)
-   \[Deps] update `@babel/runtime`, `axe-core` [`89f766c`](ljharb/eslint-plugin-jsx-a11y@89f766c)
-   \[meta] run the build in prepack, not prepublish [`e411ce3`](ljharb/eslint-plugin-jsx-a11y@e411ce3)
-   \[Dev Deps] update `@babel/core`, `minimist` [`cccdb62`](ljharb/eslint-plugin-jsx-a11y@cccdb62)
-   \[Dev Deps] update `markdown-magic` [`3382059`](ljharb/eslint-plugin-jsx-a11y@3382059)
-   \[Fix] expose `prefer-tag-over-role` [`38d52f8`](ljharb/eslint-plugin-jsx-a11y@38d52f8)
-   \[Docs] `label-has-for`: reran generate-list-of-rules [`9a2af01`](ljharb/eslint-plugin-jsx-a11y@9a2af01)
-   \[Deps] pin `language-tags` to `v1.0.5` [`f84bb74`](ljharb/eslint-plugin-jsx-a11y@f84bb74)
-   \[Dev Deps] update `@babel/core` [`cf3f8d0`](ljharb/eslint-plugin-jsx-a11y@cf3f8d0)
-   \[Deps] update `axe-core` [`0a73cf4`](ljharb/eslint-plugin-jsx-a11y@0a73cf4)
-   \[Deps] update `@babel/runtime` [`053f04d`](ljharb/eslint-plugin-jsx-a11y@053f04d)
-   \[Deps] update `@babel/runtime` [`bccf0ae`](ljharb/eslint-plugin-jsx-a11y@bccf0ae)
-   \[Deps] update `jsx-ast-utils` [`c9687cc`](ljharb/eslint-plugin-jsx-a11y@c9687cc)
-   \[readme] Preventing code repetition in user's eslint config file [`8b889bf`](ljharb/eslint-plugin-jsx-a11y@8b889bf)
-   \[Docs] `prefer-tag-over-role`: rename docs file [`0bdf95b`](ljharb/eslint-plugin-jsx-a11y@0bdf95b)

<!-- auto-changelog-above -->
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 15, 2024
| datasource | package                | from  | to    |
| ---------- | ---------------------- | ----- | ----- |
| npm        | eslint-plugin-jsx-a11y | 6.6.1 | 6.9.0 |


## [v6.9.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v690---2024-06-19)

##### Fixed

-   \[Fix] `img-redundant-alt`: fixed multibyte character support [`#969`](jsx-eslint/eslint-plugin-jsx-a11y#969)
-   \[meta] fix changelog links [`#960`](jsx-eslint/eslint-plugin-jsx-a11y#960)

##### Commits

-   \[New] add support for Flat Config [`6b5f096`](jsx-eslint/eslint-plugin-jsx-a11y@6b5f096)
-   Revert "\[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1" [`75d5dd7`](jsx-eslint/eslint-plugin-jsx-a11y@75d5dd7)
-   \[Robustness] use `safe-regex-test` [`4c7e781`](jsx-eslint/eslint-plugin-jsx-a11y@4c7e781)
-   \[actions] update actions/checkout [`51a1ca7`](jsx-eslint/eslint-plugin-jsx-a11y@51a1ca7)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `eslint-doc-generator`, `object.entries` [`1271ac1`](jsx-eslint/eslint-plugin-jsx-a11y@1271ac1)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `aud`, `eslint-plugin-import`, `npmignore`, `object.assign` [`540cb7a`](jsx-eslint/eslint-plugin-jsx-a11y@540cb7a)
-   \[Deps] update `@babel/runtime`, `array-includes`, `es-iterator-helpers`, `hasown`, `object.fromentries`, `safe-regex-test` [`5d14408`](jsx-eslint/eslint-plugin-jsx-a11y@5d14408)
-   \[Deps] pin `aria-query` and `axobject-query`, add `ls-engines` test to CI [`32fd82c`](jsx-eslint/eslint-plugin-jsx-a11y@32fd82c)
-   \[Dev Deps] update `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-doc-generator` [`d1b4114`](jsx-eslint/eslint-plugin-jsx-a11y@d1b4114)
-   \[Fix] ensure `summary` remains non-interactive [`6a048da`](jsx-eslint/eslint-plugin-jsx-a11y@6a048da)
-   \[Deps] remove `@babel/runtime` [`0a98ad8`](jsx-eslint/eslint-plugin-jsx-a11y@0a98ad8)
-   \[New] `no-noninteractive-element-to-interactive-role`: allow `menuitemradio` and `menuitemcheckbox` on \<li> [`c0733f9`](jsx-eslint/eslint-plugin-jsx-a11y@c0733f9)
-   \[Deps] update `@babel/runtime`, `safe-regex-test` [`0d5321a`](jsx-eslint/eslint-plugin-jsx-a11y@0d5321a)
-   \[actions] pin codecov to v3.1.5 [`961817f`](jsx-eslint/eslint-plugin-jsx-a11y@961817f)
-   \[Deps] unpin `axe-core` [`b3559cf`](jsx-eslint/eslint-plugin-jsx-a11y@b3559cf)
-   \[Deps] move `object.entries` to dev deps [`1be7b70`](jsx-eslint/eslint-plugin-jsx-a11y@1be7b70)
-   \[Deps] update `@babel/runtime` [`2a48abb`](jsx-eslint/eslint-plugin-jsx-a11y@2a48abb)
-   \[Deps] update `@babel/runtime` [`1adec35`](jsx-eslint/eslint-plugin-jsx-a11y@1adec35)


## [v6.8.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v680---2023-11-01)

##### Merged

-   Allow `title` attribute or `aria-label` attribute instead of accessible child in the "anchor-has-content" rule [`#727`](jsx-eslint/eslint-plugin-jsx-a11y#727)

##### Fixed

-   \[Docs] `aria-activedescendant-has-tabindex`: align with changes from [#708](jsx-eslint/eslint-plugin-jsx-a11y#708) [`#924`](jsx-eslint/eslint-plugin-jsx-a11y#924)
-   \[Fix] `control-has-associated-label`: don't accept whitespace as an accessible label [`#918`](jsx-eslint/eslint-plugin-jsx-a11y#918)

##### Commits

-   \[Tests] migrate helper parsers function from `eslint-plugin-react` [`ce4d57f`](jsx-eslint/eslint-plugin-jsx-a11y@ce4d57f)
-   \[Refactor] use `es-iterator-helpers` [`52de824`](jsx-eslint/eslint-plugin-jsx-a11y@52de824)
-   \[New] `mouse-events-have-key-events`: add `hoverInHandlers`/`hoverOutHandlers` config [`db64898`](jsx-eslint/eslint-plugin-jsx-a11y@db64898)
-   \[New] add `polymorphicPropName` setting for polymorphic components [`fffb05b`](jsx-eslint/eslint-plugin-jsx-a11y@fffb05b)
-   \[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1 [`64bfea6`](jsx-eslint/eslint-plugin-jsx-a11y@64bfea6)
-   \[Refactor] use `hasown` instead of `has` [`9a8edde`](jsx-eslint/eslint-plugin-jsx-a11y@9a8edde)
-   \[actions] update used actions [`10c061a`](jsx-eslint/eslint-plugin-jsx-a11y@10c061a)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `aud`, `eslint-doc-generator`, `eslint-plugin-import`, `minimist` [`6d5022d`](jsx-eslint/eslint-plugin-jsx-a11y@6d5022d)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/register`, `eslint-doc-generator`, `eslint-plugin-import` [`4dc7f1e`](jsx-eslint/eslint-plugin-jsx-a11y@4dc7f1e)
-   \[New] `anchor-has-content`: Allow title attribute OR aria-label attribute [`e6bfd5c`](jsx-eslint/eslint-plugin-jsx-a11y@e6bfd5c)
-   \[patch] `mouse-events-have-key-events`: rport the attribute, not the node [`eadd70c`](jsx-eslint/eslint-plugin-jsx-a11y@eadd70c)
-   \[Deps] update `@babel/runtime`, `array-includes`, `array.prototype.flatmap`, `object.entries`, `object.fromentries` [`46ffbc3`](jsx-eslint/eslint-plugin-jsx-a11y@46ffbc3)
-   \[Deps] update `@babel/runtime`, `axobject-query`, `jsx-ast-utils`, `semver` [`5999555`](jsx-eslint/eslint-plugin-jsx-a11y@5999555)
-   \[Fix] pin `aria-query` and `axe-core` to fix failing tests on main [`8d8f016`](jsx-eslint/eslint-plugin-jsx-a11y@8d8f016)
-   \[patch] move `semver` from Deps to Dev Deps [`4da13e7`](jsx-eslint/eslint-plugin-jsx-a11y@4da13e7)
-   \[Deps] update `ast-types-flow` [`b755318`](jsx-eslint/eslint-plugin-jsx-a11y@b755318)
-   \[Dev Deps] update `eslint-plugin-import` [`f1c976b`](jsx-eslint/eslint-plugin-jsx-a11y@f1c976b)
-   \[Deps] unpin `language-tags` [`3d1d26d`](jsx-eslint/eslint-plugin-jsx-a11y@3d1d26d)
-   \[Docs] `no-static-element-interactions`: tabIndex is written tabindex [`1271153`](jsx-eslint/eslint-plugin-jsx-a11y@1271153)
-   \[Deps] Upgrade ast-types-flow to mitigate Docker user namespacing problems [`f0d2ddb`](jsx-eslint/eslint-plugin-jsx-a11y@f0d2ddb)
-   \[Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`0c278f4`](jsx-eslint/eslint-plugin-jsx-a11y@0c278f4)


## [v6.7.1](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v671---2023-01-11)

##### Commits

-   \[Fix] `no-aria-hidden-on-focusable` rule's missing export [`b01219e`](ljharb/eslint-plugin-jsx-a11y@b01219e)


## [v6.7.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v670---2023-01-09)

##### Merged

-   New rule: prefer-tag-over-role [`#833`](https://github.com/ljharb/eslint-plugin-jsx-a11y/pull/833)

##### Fixed

-   \[Tests] `aria-role`: add now-passing test [`#756`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/756)
-   \[Docs] `control-has-associated-label`: fix metadata [`#892`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/892)
-   \[New] add `no-aria-hidden-on-focusable` rule [`#881`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/881)

##### Commits

-   \[Docs] automate docs with `eslint-doc-generator` [`6d7a857`](ljharb/eslint-plugin-jsx-a11y@6d7a857)
-   \[Refactor] use fromEntries, flatMap, etc; better use iteration methods [`3d77c84`](ljharb/eslint-plugin-jsx-a11y@3d77c84)
-   \[New] add `anchor-ambiguous-text` rule [`7f6463e`](ljharb/eslint-plugin-jsx-a11y@7f6463e)
-   \[New] add `getAccessibleChildText` util [`630116b`](ljharb/eslint-plugin-jsx-a11y@630116b)
-   \[New] Add `isFocusable` utils method [`e199d17`](ljharb/eslint-plugin-jsx-a11y@e199d17)
-   \[Docs] update `eslint-doc-generator` to v1.0.0 [`6b9855b`](ljharb/eslint-plugin-jsx-a11y@6b9855b)
-   \[Fix] `no-noninteractive-element-interactions`: Ignore contenteditable elements in no-noninteractive-element-interactions [`9aa878b`](ljharb/eslint-plugin-jsx-a11y@9aa878b)
-   \[New] `anchor-ambiguous-text`: ignore punctuation [`bbae2c4`](ljharb/eslint-plugin-jsx-a11y@bbae2c4)
-   \[New] `anchor-ambiguous-text`, `getAccessibleChildText`: Implements check for `alt` tags on `&lt;img /&gt;` elements [`bb84abc`](ljharb/eslint-plugin-jsx-a11y@bb84abc)
-   \[meta] use `npmignore` to autogenerate an npmignore file [`6ad2312`](ljharb/eslint-plugin-jsx-a11y@6ad2312)
-   \[meta] add `auto-changelog` [`283817b`](ljharb/eslint-plugin-jsx-a11y@283817b)
-   \[Docs] missing descriptions in some rules [`79b975a`](ljharb/eslint-plugin-jsx-a11y@79b975a)
-   \[Deps] update `aria-query`, `axobject-query` [`7b3cda3`](ljharb/eslint-plugin-jsx-a11y@7b3cda3)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `aud`, `object.assign` [`0852947`](ljharb/eslint-plugin-jsx-a11y@0852947)
-   \[meta] move `.eslintignore` to `ignorePatterns` [`65be35b`](ljharb/eslint-plugin-jsx-a11y@65be35b)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `aud`, `eslint-doc-generator` [`60c2df5`](ljharb/eslint-plugin-jsx-a11y@60c2df5)
-   \[Deps] update `@babel/runtime`, `array-includes`, `axe-core` [`4abc751`](ljharb/eslint-plugin-jsx-a11y@4abc751)
-   \[Deps] update `@babel/runtime`, `axe-core` [`89f766c`](ljharb/eslint-plugin-jsx-a11y@89f766c)
-   \[meta] run the build in prepack, not prepublish [`e411ce3`](ljharb/eslint-plugin-jsx-a11y@e411ce3)
-   \[Dev Deps] update `@babel/core`, `minimist` [`cccdb62`](ljharb/eslint-plugin-jsx-a11y@cccdb62)
-   \[Dev Deps] update `markdown-magic` [`3382059`](ljharb/eslint-plugin-jsx-a11y@3382059)
-   \[Fix] expose `prefer-tag-over-role` [`38d52f8`](ljharb/eslint-plugin-jsx-a11y@38d52f8)
-   \[Docs] `label-has-for`: reran generate-list-of-rules [`9a2af01`](ljharb/eslint-plugin-jsx-a11y@9a2af01)
-   \[Deps] pin `language-tags` to `v1.0.5` [`f84bb74`](ljharb/eslint-plugin-jsx-a11y@f84bb74)
-   \[Dev Deps] update `@babel/core` [`cf3f8d0`](ljharb/eslint-plugin-jsx-a11y@cf3f8d0)
-   \[Deps] update `axe-core` [`0a73cf4`](ljharb/eslint-plugin-jsx-a11y@0a73cf4)
-   \[Deps] update `@babel/runtime` [`053f04d`](ljharb/eslint-plugin-jsx-a11y@053f04d)
-   \[Deps] update `@babel/runtime` [`bccf0ae`](ljharb/eslint-plugin-jsx-a11y@bccf0ae)
-   \[Deps] update `jsx-ast-utils` [`c9687cc`](ljharb/eslint-plugin-jsx-a11y@c9687cc)
-   \[readme] Preventing code repetition in user's eslint config file [`8b889bf`](ljharb/eslint-plugin-jsx-a11y@8b889bf)
-   \[Docs] `prefer-tag-over-role`: rename docs file [`0bdf95b`](ljharb/eslint-plugin-jsx-a11y@0bdf95b)

<!-- auto-changelog-above -->
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 15, 2024
| datasource | package                | from  | to    |
| ---------- | ---------------------- | ----- | ----- |
| npm        | eslint-plugin-jsx-a11y | 6.6.1 | 6.9.0 |


## [v6.9.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v690---2024-06-19)

##### Fixed

-   \[Fix] `img-redundant-alt`: fixed multibyte character support [`#969`](jsx-eslint/eslint-plugin-jsx-a11y#969)
-   \[meta] fix changelog links [`#960`](jsx-eslint/eslint-plugin-jsx-a11y#960)

##### Commits

-   \[New] add support for Flat Config [`6b5f096`](jsx-eslint/eslint-plugin-jsx-a11y@6b5f096)
-   Revert "\[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1" [`75d5dd7`](jsx-eslint/eslint-plugin-jsx-a11y@75d5dd7)
-   \[Robustness] use `safe-regex-test` [`4c7e781`](jsx-eslint/eslint-plugin-jsx-a11y@4c7e781)
-   \[actions] update actions/checkout [`51a1ca7`](jsx-eslint/eslint-plugin-jsx-a11y@51a1ca7)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `eslint-doc-generator`, `object.entries` [`1271ac1`](jsx-eslint/eslint-plugin-jsx-a11y@1271ac1)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `aud`, `eslint-plugin-import`, `npmignore`, `object.assign` [`540cb7a`](jsx-eslint/eslint-plugin-jsx-a11y@540cb7a)
-   \[Deps] update `@babel/runtime`, `array-includes`, `es-iterator-helpers`, `hasown`, `object.fromentries`, `safe-regex-test` [`5d14408`](jsx-eslint/eslint-plugin-jsx-a11y@5d14408)
-   \[Deps] pin `aria-query` and `axobject-query`, add `ls-engines` test to CI [`32fd82c`](jsx-eslint/eslint-plugin-jsx-a11y@32fd82c)
-   \[Dev Deps] update `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-doc-generator` [`d1b4114`](jsx-eslint/eslint-plugin-jsx-a11y@d1b4114)
-   \[Fix] ensure `summary` remains non-interactive [`6a048da`](jsx-eslint/eslint-plugin-jsx-a11y@6a048da)
-   \[Deps] remove `@babel/runtime` [`0a98ad8`](jsx-eslint/eslint-plugin-jsx-a11y@0a98ad8)
-   \[New] `no-noninteractive-element-to-interactive-role`: allow `menuitemradio` and `menuitemcheckbox` on \<li> [`c0733f9`](jsx-eslint/eslint-plugin-jsx-a11y@c0733f9)
-   \[Deps] update `@babel/runtime`, `safe-regex-test` [`0d5321a`](jsx-eslint/eslint-plugin-jsx-a11y@0d5321a)
-   \[actions] pin codecov to v3.1.5 [`961817f`](jsx-eslint/eslint-plugin-jsx-a11y@961817f)
-   \[Deps] unpin `axe-core` [`b3559cf`](jsx-eslint/eslint-plugin-jsx-a11y@b3559cf)
-   \[Deps] move `object.entries` to dev deps [`1be7b70`](jsx-eslint/eslint-plugin-jsx-a11y@1be7b70)
-   \[Deps] update `@babel/runtime` [`2a48abb`](jsx-eslint/eslint-plugin-jsx-a11y@2a48abb)
-   \[Deps] update `@babel/runtime` [`1adec35`](jsx-eslint/eslint-plugin-jsx-a11y@1adec35)


## [v6.8.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v680---2023-11-01)

##### Merged

-   Allow `title` attribute or `aria-label` attribute instead of accessible child in the "anchor-has-content" rule [`#727`](jsx-eslint/eslint-plugin-jsx-a11y#727)

##### Fixed

-   \[Docs] `aria-activedescendant-has-tabindex`: align with changes from [#708](jsx-eslint/eslint-plugin-jsx-a11y#708) [`#924`](jsx-eslint/eslint-plugin-jsx-a11y#924)
-   \[Fix] `control-has-associated-label`: don't accept whitespace as an accessible label [`#918`](jsx-eslint/eslint-plugin-jsx-a11y#918)

##### Commits

-   \[Tests] migrate helper parsers function from `eslint-plugin-react` [`ce4d57f`](jsx-eslint/eslint-plugin-jsx-a11y@ce4d57f)
-   \[Refactor] use `es-iterator-helpers` [`52de824`](jsx-eslint/eslint-plugin-jsx-a11y@52de824)
-   \[New] `mouse-events-have-key-events`: add `hoverInHandlers`/`hoverOutHandlers` config [`db64898`](jsx-eslint/eslint-plugin-jsx-a11y@db64898)
-   \[New] add `polymorphicPropName` setting for polymorphic components [`fffb05b`](jsx-eslint/eslint-plugin-jsx-a11y@fffb05b)
-   \[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1 [`64bfea6`](jsx-eslint/eslint-plugin-jsx-a11y@64bfea6)
-   \[Refactor] use `hasown` instead of `has` [`9a8edde`](jsx-eslint/eslint-plugin-jsx-a11y@9a8edde)
-   \[actions] update used actions [`10c061a`](jsx-eslint/eslint-plugin-jsx-a11y@10c061a)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `aud`, `eslint-doc-generator`, `eslint-plugin-import`, `minimist` [`6d5022d`](jsx-eslint/eslint-plugin-jsx-a11y@6d5022d)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/register`, `eslint-doc-generator`, `eslint-plugin-import` [`4dc7f1e`](jsx-eslint/eslint-plugin-jsx-a11y@4dc7f1e)
-   \[New] `anchor-has-content`: Allow title attribute OR aria-label attribute [`e6bfd5c`](jsx-eslint/eslint-plugin-jsx-a11y@e6bfd5c)
-   \[patch] `mouse-events-have-key-events`: rport the attribute, not the node [`eadd70c`](jsx-eslint/eslint-plugin-jsx-a11y@eadd70c)
-   \[Deps] update `@babel/runtime`, `array-includes`, `array.prototype.flatmap`, `object.entries`, `object.fromentries` [`46ffbc3`](jsx-eslint/eslint-plugin-jsx-a11y@46ffbc3)
-   \[Deps] update `@babel/runtime`, `axobject-query`, `jsx-ast-utils`, `semver` [`5999555`](jsx-eslint/eslint-plugin-jsx-a11y@5999555)
-   \[Fix] pin `aria-query` and `axe-core` to fix failing tests on main [`8d8f016`](jsx-eslint/eslint-plugin-jsx-a11y@8d8f016)
-   \[patch] move `semver` from Deps to Dev Deps [`4da13e7`](jsx-eslint/eslint-plugin-jsx-a11y@4da13e7)
-   \[Deps] update `ast-types-flow` [`b755318`](jsx-eslint/eslint-plugin-jsx-a11y@b755318)
-   \[Dev Deps] update `eslint-plugin-import` [`f1c976b`](jsx-eslint/eslint-plugin-jsx-a11y@f1c976b)
-   \[Deps] unpin `language-tags` [`3d1d26d`](jsx-eslint/eslint-plugin-jsx-a11y@3d1d26d)
-   \[Docs] `no-static-element-interactions`: tabIndex is written tabindex [`1271153`](jsx-eslint/eslint-plugin-jsx-a11y@1271153)
-   \[Deps] Upgrade ast-types-flow to mitigate Docker user namespacing problems [`f0d2ddb`](jsx-eslint/eslint-plugin-jsx-a11y@f0d2ddb)
-   \[Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`0c278f4`](jsx-eslint/eslint-plugin-jsx-a11y@0c278f4)


## [v6.7.1](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v671---2023-01-11)

##### Commits

-   \[Fix] `no-aria-hidden-on-focusable` rule's missing export [`b01219e`](ljharb/eslint-plugin-jsx-a11y@b01219e)


## [v6.7.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v670---2023-01-09)

##### Merged

-   New rule: prefer-tag-over-role [`#833`](https://github.com/ljharb/eslint-plugin-jsx-a11y/pull/833)

##### Fixed

-   \[Tests] `aria-role`: add now-passing test [`#756`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/756)
-   \[Docs] `control-has-associated-label`: fix metadata [`#892`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/892)
-   \[New] add `no-aria-hidden-on-focusable` rule [`#881`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/881)

##### Commits

-   \[Docs] automate docs with `eslint-doc-generator` [`6d7a857`](ljharb/eslint-plugin-jsx-a11y@6d7a857)
-   \[Refactor] use fromEntries, flatMap, etc; better use iteration methods [`3d77c84`](ljharb/eslint-plugin-jsx-a11y@3d77c84)
-   \[New] add `anchor-ambiguous-text` rule [`7f6463e`](ljharb/eslint-plugin-jsx-a11y@7f6463e)
-   \[New] add `getAccessibleChildText` util [`630116b`](ljharb/eslint-plugin-jsx-a11y@630116b)
-   \[New] Add `isFocusable` utils method [`e199d17`](ljharb/eslint-plugin-jsx-a11y@e199d17)
-   \[Docs] update `eslint-doc-generator` to v1.0.0 [`6b9855b`](ljharb/eslint-plugin-jsx-a11y@6b9855b)
-   \[Fix] `no-noninteractive-element-interactions`: Ignore contenteditable elements in no-noninteractive-element-interactions [`9aa878b`](ljharb/eslint-plugin-jsx-a11y@9aa878b)
-   \[New] `anchor-ambiguous-text`: ignore punctuation [`bbae2c4`](ljharb/eslint-plugin-jsx-a11y@bbae2c4)
-   \[New] `anchor-ambiguous-text`, `getAccessibleChildText`: Implements check for `alt` tags on `&lt;img /&gt;` elements [`bb84abc`](ljharb/eslint-plugin-jsx-a11y@bb84abc)
-   \[meta] use `npmignore` to autogenerate an npmignore file [`6ad2312`](ljharb/eslint-plugin-jsx-a11y@6ad2312)
-   \[meta] add `auto-changelog` [`283817b`](ljharb/eslint-plugin-jsx-a11y@283817b)
-   \[Docs] missing descriptions in some rules [`79b975a`](ljharb/eslint-plugin-jsx-a11y@79b975a)
-   \[Deps] update `aria-query`, `axobject-query` [`7b3cda3`](ljharb/eslint-plugin-jsx-a11y@7b3cda3)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `aud`, `object.assign` [`0852947`](ljharb/eslint-plugin-jsx-a11y@0852947)
-   \[meta] move `.eslintignore` to `ignorePatterns` [`65be35b`](ljharb/eslint-plugin-jsx-a11y@65be35b)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `aud`, `eslint-doc-generator` [`60c2df5`](ljharb/eslint-plugin-jsx-a11y@60c2df5)
-   \[Deps] update `@babel/runtime`, `array-includes`, `axe-core` [`4abc751`](ljharb/eslint-plugin-jsx-a11y@4abc751)
-   \[Deps] update `@babel/runtime`, `axe-core` [`89f766c`](ljharb/eslint-plugin-jsx-a11y@89f766c)
-   \[meta] run the build in prepack, not prepublish [`e411ce3`](ljharb/eslint-plugin-jsx-a11y@e411ce3)
-   \[Dev Deps] update `@babel/core`, `minimist` [`cccdb62`](ljharb/eslint-plugin-jsx-a11y@cccdb62)
-   \[Dev Deps] update `markdown-magic` [`3382059`](ljharb/eslint-plugin-jsx-a11y@3382059)
-   \[Fix] expose `prefer-tag-over-role` [`38d52f8`](ljharb/eslint-plugin-jsx-a11y@38d52f8)
-   \[Docs] `label-has-for`: reran generate-list-of-rules [`9a2af01`](ljharb/eslint-plugin-jsx-a11y@9a2af01)
-   \[Deps] pin `language-tags` to `v1.0.5` [`f84bb74`](ljharb/eslint-plugin-jsx-a11y@f84bb74)
-   \[Dev Deps] update `@babel/core` [`cf3f8d0`](ljharb/eslint-plugin-jsx-a11y@cf3f8d0)
-   \[Deps] update `axe-core` [`0a73cf4`](ljharb/eslint-plugin-jsx-a11y@0a73cf4)
-   \[Deps] update `@babel/runtime` [`053f04d`](ljharb/eslint-plugin-jsx-a11y@053f04d)
-   \[Deps] update `@babel/runtime` [`bccf0ae`](ljharb/eslint-plugin-jsx-a11y@bccf0ae)
-   \[Deps] update `jsx-ast-utils` [`c9687cc`](ljharb/eslint-plugin-jsx-a11y@c9687cc)
-   \[readme] Preventing code repetition in user's eslint config file [`8b889bf`](ljharb/eslint-plugin-jsx-a11y@8b889bf)
-   \[Docs] `prefer-tag-over-role`: rename docs file [`0bdf95b`](ljharb/eslint-plugin-jsx-a11y@0bdf95b)

<!-- auto-changelog-above -->
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 16, 2024
| datasource | package                | from  | to    |
| ---------- | ---------------------- | ----- | ----- |
| npm        | eslint-plugin-jsx-a11y | 6.6.1 | 6.9.0 |


## [v6.9.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v690---2024-06-19)

##### Fixed

-   \[Fix] `img-redundant-alt`: fixed multibyte character support [`#969`](jsx-eslint/eslint-plugin-jsx-a11y#969)
-   \[meta] fix changelog links [`#960`](jsx-eslint/eslint-plugin-jsx-a11y#960)

##### Commits

-   \[New] add support for Flat Config [`6b5f096`](jsx-eslint/eslint-plugin-jsx-a11y@6b5f096)
-   Revert "\[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1" [`75d5dd7`](jsx-eslint/eslint-plugin-jsx-a11y@75d5dd7)
-   \[Robustness] use `safe-regex-test` [`4c7e781`](jsx-eslint/eslint-plugin-jsx-a11y@4c7e781)
-   \[actions] update actions/checkout [`51a1ca7`](jsx-eslint/eslint-plugin-jsx-a11y@51a1ca7)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `eslint-doc-generator`, `object.entries` [`1271ac1`](jsx-eslint/eslint-plugin-jsx-a11y@1271ac1)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `aud`, `eslint-plugin-import`, `npmignore`, `object.assign` [`540cb7a`](jsx-eslint/eslint-plugin-jsx-a11y@540cb7a)
-   \[Deps] update `@babel/runtime`, `array-includes`, `es-iterator-helpers`, `hasown`, `object.fromentries`, `safe-regex-test` [`5d14408`](jsx-eslint/eslint-plugin-jsx-a11y@5d14408)
-   \[Deps] pin `aria-query` and `axobject-query`, add `ls-engines` test to CI [`32fd82c`](jsx-eslint/eslint-plugin-jsx-a11y@32fd82c)
-   \[Dev Deps] update `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-doc-generator` [`d1b4114`](jsx-eslint/eslint-plugin-jsx-a11y@d1b4114)
-   \[Fix] ensure `summary` remains non-interactive [`6a048da`](jsx-eslint/eslint-plugin-jsx-a11y@6a048da)
-   \[Deps] remove `@babel/runtime` [`0a98ad8`](jsx-eslint/eslint-plugin-jsx-a11y@0a98ad8)
-   \[New] `no-noninteractive-element-to-interactive-role`: allow `menuitemradio` and `menuitemcheckbox` on \<li> [`c0733f9`](jsx-eslint/eslint-plugin-jsx-a11y@c0733f9)
-   \[Deps] update `@babel/runtime`, `safe-regex-test` [`0d5321a`](jsx-eslint/eslint-plugin-jsx-a11y@0d5321a)
-   \[actions] pin codecov to v3.1.5 [`961817f`](jsx-eslint/eslint-plugin-jsx-a11y@961817f)
-   \[Deps] unpin `axe-core` [`b3559cf`](jsx-eslint/eslint-plugin-jsx-a11y@b3559cf)
-   \[Deps] move `object.entries` to dev deps [`1be7b70`](jsx-eslint/eslint-plugin-jsx-a11y@1be7b70)
-   \[Deps] update `@babel/runtime` [`2a48abb`](jsx-eslint/eslint-plugin-jsx-a11y@2a48abb)
-   \[Deps] update `@babel/runtime` [`1adec35`](jsx-eslint/eslint-plugin-jsx-a11y@1adec35)


## [v6.8.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v680---2023-11-01)

##### Merged

-   Allow `title` attribute or `aria-label` attribute instead of accessible child in the "anchor-has-content" rule [`#727`](jsx-eslint/eslint-plugin-jsx-a11y#727)

##### Fixed

-   \[Docs] `aria-activedescendant-has-tabindex`: align with changes from [#708](jsx-eslint/eslint-plugin-jsx-a11y#708) [`#924`](jsx-eslint/eslint-plugin-jsx-a11y#924)
-   \[Fix] `control-has-associated-label`: don't accept whitespace as an accessible label [`#918`](jsx-eslint/eslint-plugin-jsx-a11y#918)

##### Commits

-   \[Tests] migrate helper parsers function from `eslint-plugin-react` [`ce4d57f`](jsx-eslint/eslint-plugin-jsx-a11y@ce4d57f)
-   \[Refactor] use `es-iterator-helpers` [`52de824`](jsx-eslint/eslint-plugin-jsx-a11y@52de824)
-   \[New] `mouse-events-have-key-events`: add `hoverInHandlers`/`hoverOutHandlers` config [`db64898`](jsx-eslint/eslint-plugin-jsx-a11y@db64898)
-   \[New] add `polymorphicPropName` setting for polymorphic components [`fffb05b`](jsx-eslint/eslint-plugin-jsx-a11y@fffb05b)
-   \[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1 [`64bfea6`](jsx-eslint/eslint-plugin-jsx-a11y@64bfea6)
-   \[Refactor] use `hasown` instead of `has` [`9a8edde`](jsx-eslint/eslint-plugin-jsx-a11y@9a8edde)
-   \[actions] update used actions [`10c061a`](jsx-eslint/eslint-plugin-jsx-a11y@10c061a)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `aud`, `eslint-doc-generator`, `eslint-plugin-import`, `minimist` [`6d5022d`](jsx-eslint/eslint-plugin-jsx-a11y@6d5022d)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/register`, `eslint-doc-generator`, `eslint-plugin-import` [`4dc7f1e`](jsx-eslint/eslint-plugin-jsx-a11y@4dc7f1e)
-   \[New] `anchor-has-content`: Allow title attribute OR aria-label attribute [`e6bfd5c`](jsx-eslint/eslint-plugin-jsx-a11y@e6bfd5c)
-   \[patch] `mouse-events-have-key-events`: rport the attribute, not the node [`eadd70c`](jsx-eslint/eslint-plugin-jsx-a11y@eadd70c)
-   \[Deps] update `@babel/runtime`, `array-includes`, `array.prototype.flatmap`, `object.entries`, `object.fromentries` [`46ffbc3`](jsx-eslint/eslint-plugin-jsx-a11y@46ffbc3)
-   \[Deps] update `@babel/runtime`, `axobject-query`, `jsx-ast-utils`, `semver` [`5999555`](jsx-eslint/eslint-plugin-jsx-a11y@5999555)
-   \[Fix] pin `aria-query` and `axe-core` to fix failing tests on main [`8d8f016`](jsx-eslint/eslint-plugin-jsx-a11y@8d8f016)
-   \[patch] move `semver` from Deps to Dev Deps [`4da13e7`](jsx-eslint/eslint-plugin-jsx-a11y@4da13e7)
-   \[Deps] update `ast-types-flow` [`b755318`](jsx-eslint/eslint-plugin-jsx-a11y@b755318)
-   \[Dev Deps] update `eslint-plugin-import` [`f1c976b`](jsx-eslint/eslint-plugin-jsx-a11y@f1c976b)
-   \[Deps] unpin `language-tags` [`3d1d26d`](jsx-eslint/eslint-plugin-jsx-a11y@3d1d26d)
-   \[Docs] `no-static-element-interactions`: tabIndex is written tabindex [`1271153`](jsx-eslint/eslint-plugin-jsx-a11y@1271153)
-   \[Deps] Upgrade ast-types-flow to mitigate Docker user namespacing problems [`f0d2ddb`](jsx-eslint/eslint-plugin-jsx-a11y@f0d2ddb)
-   \[Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`0c278f4`](jsx-eslint/eslint-plugin-jsx-a11y@0c278f4)


## [v6.7.1](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v671---2023-01-11)

##### Commits

-   \[Fix] `no-aria-hidden-on-focusable` rule's missing export [`b01219e`](ljharb/eslint-plugin-jsx-a11y@b01219e)


## [v6.7.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v670---2023-01-09)

##### Merged

-   New rule: prefer-tag-over-role [`#833`](https://github.com/ljharb/eslint-plugin-jsx-a11y/pull/833)

##### Fixed

-   \[Tests] `aria-role`: add now-passing test [`#756`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/756)
-   \[Docs] `control-has-associated-label`: fix metadata [`#892`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/892)
-   \[New] add `no-aria-hidden-on-focusable` rule [`#881`](https://github.com/ljharb/eslint-plugin-jsx-a11y/issues/881)

##### Commits

-   \[Docs] automate docs with `eslint-doc-generator` [`6d7a857`](ljharb/eslint-plugin-jsx-a11y@6d7a857)
-   \[Refactor] use fromEntries, flatMap, etc; better use iteration methods [`3d77c84`](ljharb/eslint-plugin-jsx-a11y@3d77c84)
-   \[New] add `anchor-ambiguous-text` rule [`7f6463e`](ljharb/eslint-plugin-jsx-a11y@7f6463e)
-   \[New] add `getAccessibleChildText` util [`630116b`](ljharb/eslint-plugin-jsx-a11y@630116b)
-   \[New] Add `isFocusable` utils method [`e199d17`](ljharb/eslint-plugin-jsx-a11y@e199d17)
-   \[Docs] update `eslint-doc-generator` to v1.0.0 [`6b9855b`](ljharb/eslint-plugin-jsx-a11y@6b9855b)
-   \[Fix] `no-noninteractive-element-interactions`: Ignore contenteditable elements in no-noninteractive-element-interactions [`9aa878b`](ljharb/eslint-plugin-jsx-a11y@9aa878b)
-   \[New] `anchor-ambiguous-text`: ignore punctuation [`bbae2c4`](ljharb/eslint-plugin-jsx-a11y@bbae2c4)
-   \[New] `anchor-ambiguous-text`, `getAccessibleChildText`: Implements check for `alt` tags on `&lt;img /&gt;` elements [`bb84abc`](ljharb/eslint-plugin-jsx-a11y@bb84abc)
-   \[meta] use `npmignore` to autogenerate an npmignore file [`6ad2312`](ljharb/eslint-plugin-jsx-a11y@6ad2312)
-   \[meta] add `auto-changelog` [`283817b`](ljharb/eslint-plugin-jsx-a11y@283817b)
-   \[Docs] missing descriptions in some rules [`79b975a`](ljharb/eslint-plugin-jsx-a11y@79b975a)
-   \[Deps] update `aria-query`, `axobject-query` [`7b3cda3`](ljharb/eslint-plugin-jsx-a11y@7b3cda3)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `aud`, `object.assign` [`0852947`](ljharb/eslint-plugin-jsx-a11y@0852947)
-   \[meta] move `.eslintignore` to `ignorePatterns` [`65be35b`](ljharb/eslint-plugin-jsx-a11y@65be35b)
-   \[Dev Deps] update `@babel/cli`, `@babel/core`, `aud`, `eslint-doc-generator` [`60c2df5`](ljharb/eslint-plugin-jsx-a11y@60c2df5)
-   \[Deps] update `@babel/runtime`, `array-includes`, `axe-core` [`4abc751`](ljharb/eslint-plugin-jsx-a11y@4abc751)
-   \[Deps] update `@babel/runtime`, `axe-core` [`89f766c`](ljharb/eslint-plugin-jsx-a11y@89f766c)
-   \[meta] run the build in prepack, not prepublish [`e411ce3`](ljharb/eslint-plugin-jsx-a11y@e411ce3)
-   \[Dev Deps] update `@babel/core`, `minimist` [`cccdb62`](ljharb/eslint-plugin-jsx-a11y@cccdb62)
-   \[Dev Deps] update `markdown-magic` [`3382059`](ljharb/eslint-plugin-jsx-a11y@3382059)
-   \[Fix] expose `prefer-tag-over-role` [`38d52f8`](ljharb/eslint-plugin-jsx-a11y@38d52f8)
-   \[Docs] `label-has-for`: reran generate-list-of-rules [`9a2af01`](ljharb/eslint-plugin-jsx-a11y@9a2af01)
-   \[Deps] pin `language-tags` to `v1.0.5` [`f84bb74`](ljharb/eslint-plugin-jsx-a11y@f84bb74)
-   \[Dev Deps] update `@babel/core` [`cf3f8d0`](ljharb/eslint-plugin-jsx-a11y@cf3f8d0)
-   \[Deps] update `axe-core` [`0a73cf4`](ljharb/eslint-plugin-jsx-a11y@0a73cf4)
-   \[Deps] update `@babel/runtime` [`053f04d`](ljharb/eslint-plugin-jsx-a11y@053f04d)
-   \[Deps] update `@babel/runtime` [`bccf0ae`](ljharb/eslint-plugin-jsx-a11y@bccf0ae)
-   \[Deps] update `jsx-ast-utils` [`c9687cc`](ljharb/eslint-plugin-jsx-a11y@c9687cc)
-   \[readme] Preventing code repetition in user's eslint config file [`8b889bf`](ljharb/eslint-plugin-jsx-a11y@8b889bf)
-   \[Docs] `prefer-tag-over-role`: rename docs file [`0bdf95b`](ljharb/eslint-plugin-jsx-a11y@0bdf95b)

<!-- auto-changelog-above -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants