@arcaauth/eslint-plugin-jsx-a11y 6.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/.babelrc +17 -0
  2. package/.eslintrc +44 -0
  3. package/CHANGELOG.md +774 -0
  4. package/LICENSE.md +8 -0
  5. package/README.md +423 -0
  6. package/__mocks__/IdentifierMock.js +15 -0
  7. package/__mocks__/JSXAttributeMock.js +39 -0
  8. package/__mocks__/JSXElementMock.js +37 -0
  9. package/__mocks__/JSXExpressionContainerMock.js +15 -0
  10. package/__mocks__/JSXSpreadAttributeMock.js +18 -0
  11. package/__mocks__/JSXTextMock.js +17 -0
  12. package/__mocks__/LiteralMock.js +17 -0
  13. package/__mocks__/genInteractives.js +218 -0
  14. package/__tests__/__util__/axeMapping.js +6 -0
  15. package/__tests__/__util__/helpers/getESLintCoreRule.js +9 -0
  16. package/__tests__/__util__/helpers/parsers.js +186 -0
  17. package/__tests__/__util__/parserOptionsMapper.js +53 -0
  18. package/__tests__/__util__/ruleOptionsMapperFactory.js +33 -0
  19. package/__tests__/index-test.js +40 -0
  20. package/__tests__/src/rules/accessible-emoji-test.js +66 -0
  21. package/__tests__/src/rules/alt-text-test.js +291 -0
  22. package/__tests__/src/rules/anchor-ambiguous-text-test.js +117 -0
  23. package/__tests__/src/rules/anchor-has-content-test.js +54 -0
  24. package/__tests__/src/rules/anchor-is-valid-test.js +532 -0
  25. package/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js +95 -0
  26. package/__tests__/src/rules/aria-props-test.js +69 -0
  27. package/__tests__/src/rules/aria-proptypes-test.js +311 -0
  28. package/__tests__/src/rules/aria-role-test.js +118 -0
  29. package/__tests__/src/rules/aria-unsupported-elements-test.js +75 -0
  30. package/__tests__/src/rules/autocomplete-valid-test.js +77 -0
  31. package/__tests__/src/rules/click-events-have-key-events-test.js +77 -0
  32. package/__tests__/src/rules/control-has-associated-label-test.js +327 -0
  33. package/__tests__/src/rules/heading-has-content-test.js +85 -0
  34. package/__tests__/src/rules/html-has-lang-test.js +42 -0
  35. package/__tests__/src/rules/iframe-has-title-test.js +55 -0
  36. package/__tests__/src/rules/img-redundant-alt-test.js +137 -0
  37. package/__tests__/src/rules/interactive-supports-focus-test.js +267 -0
  38. package/__tests__/src/rules/label-has-associated-control-test.js +243 -0
  39. package/__tests__/src/rules/label-has-for-test.js +235 -0
  40. package/__tests__/src/rules/lang-test.js +59 -0
  41. package/__tests__/src/rules/media-has-caption-test.js +220 -0
  42. package/__tests__/src/rules/mouse-events-have-key-events-test.js +154 -0
  43. package/__tests__/src/rules/no-access-key-test.js +48 -0
  44. package/__tests__/src/rules/no-aria-hidden-on-focusable-test.js +44 -0
  45. package/__tests__/src/rules/no-autofocus-test.js +68 -0
  46. package/__tests__/src/rules/no-distracting-elements-test.js +51 -0
  47. package/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js +405 -0
  48. package/__tests__/src/rules/no-noninteractive-element-interactions-test.js +502 -0
  49. package/__tests__/src/rules/no-noninteractive-element-to-interactive-role-test.js +500 -0
  50. package/__tests__/src/rules/no-noninteractive-tabindex-test.js +123 -0
  51. package/__tests__/src/rules/no-onchange-test.js +57 -0
  52. package/__tests__/src/rules/no-redundant-roles-test.js +98 -0
  53. package/__tests__/src/rules/no-static-element-interactions-test.js +501 -0
  54. package/__tests__/src/rules/prefer-tag-over-role-test.js +63 -0
  55. package/__tests__/src/rules/role-has-required-aria-props-test.js +134 -0
  56. package/__tests__/src/rules/role-supports-aria-props-test.js +570 -0
  57. package/__tests__/src/rules/scope-test.js +50 -0
  58. package/__tests__/src/rules/tabindex-no-positive-test.js +55 -0
  59. package/__tests__/src/util/attributesComparator-test.js +91 -0
  60. package/__tests__/src/util/getAccessibleChildText-test.js +174 -0
  61. package/__tests__/src/util/getComputedRole-test.js +71 -0
  62. package/__tests__/src/util/getElementType-test.js +154 -0
  63. package/__tests__/src/util/getExplicitRole-test.js +35 -0
  64. package/__tests__/src/util/getImplicitRole-test.js +25 -0
  65. package/__tests__/src/util/getSuggestion-test.js +33 -0
  66. package/__tests__/src/util/getTabIndex-test.js +85 -0
  67. package/__tests__/src/util/hasAccessibleChild-test.js +157 -0
  68. package/__tests__/src/util/implicitRoles/input-test.js +87 -0
  69. package/__tests__/src/util/implicitRoles/menu-test.js +20 -0
  70. package/__tests__/src/util/implicitRoles/menuitem-test.js +38 -0
  71. package/__tests__/src/util/isAbstractRole-test.js +51 -0
  72. package/__tests__/src/util/isContentEditable-test.js +52 -0
  73. package/__tests__/src/util/isDOMElement-test.js +30 -0
  74. package/__tests__/src/util/isDisabledElement-test.js +88 -0
  75. package/__tests__/src/util/isFocusable-test.js +111 -0
  76. package/__tests__/src/util/isInteractiveElement-test.js +104 -0
  77. package/__tests__/src/util/isInteractiveRole-test.js +59 -0
  78. package/__tests__/src/util/isNonInteractiveElement-test.js +97 -0
  79. package/__tests__/src/util/isNonInteractiveRole-test.js +59 -0
  80. package/__tests__/src/util/isNonLiteralProperty-test.js +52 -0
  81. package/__tests__/src/util/isSemanticRoleElement-test.js +72 -0
  82. package/__tests__/src/util/mayContainChildComponent-test.js +219 -0
  83. package/__tests__/src/util/mayHaveAccessibleLabel-test.js +256 -0
  84. package/__tests__/src/util/parserOptionsMapper-test.js +93 -0
  85. package/__tests__/src/util/schemas-test.js +35 -0
  86. package/docs/rules/accessible-emoji.md +30 -0
  87. package/docs/rules/alt-text.md +168 -0
  88. package/docs/rules/anchor-ambiguous-text.md +91 -0
  89. package/docs/rules/anchor-has-content.md +64 -0
  90. package/docs/rules/anchor-is-valid.md +270 -0
  91. package/docs/rules/aria-activedescendant-has-tabindex.md +52 -0
  92. package/docs/rules/aria-props.md +29 -0
  93. package/docs/rules/aria-proptypes.md +30 -0
  94. package/docs/rules/aria-role.md +51 -0
  95. package/docs/rules/aria-unsupported-elements.md +30 -0
  96. package/docs/rules/autocomplete-valid.md +49 -0
  97. package/docs/rules/click-events-have-key-events.md +28 -0
  98. package/docs/rules/control-has-associated-label.md +113 -0
  99. package/docs/rules/heading-has-content.md +67 -0
  100. package/docs/rules/html-has-lang.md +31 -0
  101. package/docs/rules/iframe-has-title.md +37 -0
  102. package/docs/rules/img-redundant-alt.md +48 -0
  103. package/docs/rules/interactive-supports-focus.md +156 -0
  104. package/docs/rules/label-has-associated-control.md +152 -0
  105. package/docs/rules/label-has-for.md +130 -0
  106. package/docs/rules/lang.md +31 -0
  107. package/docs/rules/media-has-caption.md +48 -0
  108. package/docs/rules/mouse-events-have-key-events.md +58 -0
  109. package/docs/rules/no-access-key.md +30 -0
  110. package/docs/rules/no-aria-hidden-on-focusable.md +37 -0
  111. package/docs/rules/no-autofocus.md +43 -0
  112. package/docs/rules/no-distracting-elements.md +41 -0
  113. package/docs/rules/no-interactive-element-to-noninteractive-role.md +73 -0
  114. package/docs/rules/no-noninteractive-element-interactions.md +145 -0
  115. package/docs/rules/no-noninteractive-element-to-interactive-role.md +76 -0
  116. package/docs/rules/no-noninteractive-tabindex.md +115 -0
  117. package/docs/rules/no-onchange.md +36 -0
  118. package/docs/rules/no-redundant-roles.md +46 -0
  119. package/docs/rules/no-static-element-interactions.md +114 -0
  120. package/docs/rules/prefer-tag-over-role.md +32 -0
  121. package/docs/rules/role-has-required-aria-props.md +31 -0
  122. package/docs/rules/role-supports-aria-props.md +39 -0
  123. package/docs/rules/scope.md +30 -0
  124. package/docs/rules/tabindex-no-positive.md +32 -0
  125. package/lib/configs/flat-config-base.js +11 -0
  126. package/lib/configs/legacy-config-base.js +9 -0
  127. package/lib/index.js +209 -0
  128. package/lib/rules/accessible-emoji.js +63 -0
  129. package/lib/rules/alt-text.js +218 -0
  130. package/lib/rules/anchor-ambiguous-text.js +64 -0
  131. package/lib/rules/anchor-has-content.js +60 -0
  132. package/lib/rules/anchor-is-valid.js +122 -0
  133. package/lib/rules/aria-activedescendant-has-tabindex.js +66 -0
  134. package/lib/rules/aria-props.js +59 -0
  135. package/lib/rules/aria-proptypes.js +114 -0
  136. package/lib/rules/aria-role.js +89 -0
  137. package/lib/rules/aria-unsupported-elements.js +64 -0
  138. package/lib/rules/autocomplete-valid.js +67 -0
  139. package/lib/rules/click-events-have-key-events.js +68 -0
  140. package/lib/rules/control-has-associated-label.js +103 -0
  141. package/lib/rules/heading-has-content.js +61 -0
  142. package/lib/rules/html-has-lang.js +50 -0
  143. package/lib/rules/iframe-has-title.js +50 -0
  144. package/lib/rules/img-redundant-alt.js +88 -0
  145. package/lib/rules/interactive-supports-focus.js +87 -0
  146. package/lib/rules/label-has-associated-control.js +127 -0
  147. package/lib/rules/label-has-for.js +150 -0
  148. package/lib/rules/lang.js +68 -0
  149. package/lib/rules/media-has-caption.js +96 -0
  150. package/lib/rules/mouse-events-have-key-events.js +94 -0
  151. package/lib/rules/no-access-key.js +43 -0
  152. package/lib/rules/no-aria-hidden-on-focusable.js +47 -0
  153. package/lib/rules/no-autofocus.js +62 -0
  154. package/lib/rules/no-distracting-elements.js +54 -0
  155. package/lib/rules/no-interactive-element-to-noninteractive-role.js +81 -0
  156. package/lib/rules/no-noninteractive-element-interactions.js +95 -0
  157. package/lib/rules/no-noninteractive-element-to-interactive-role.js +80 -0
  158. package/lib/rules/no-noninteractive-tabindex.js +109 -0
  159. package/lib/rules/no-onchange.js +52 -0
  160. package/lib/rules/no-redundant-roles.js +86 -0
  161. package/lib/rules/no-static-element-interactions.js +102 -0
  162. package/lib/rules/prefer-tag-over-role.js +75 -0
  163. package/lib/rules/role-has-required-aria-props.js +88 -0
  164. package/lib/rules/role-supports-aria-props.js +78 -0
  165. package/lib/rules/scope.js +58 -0
  166. package/lib/rules/tabindex-no-positive.js +53 -0
  167. package/lib/util/attributesComparator.js +34 -0
  168. package/lib/util/getAccessibleChildText.js +55 -0
  169. package/lib/util/getComputedRole.js +19 -0
  170. package/lib/util/getElementType.js +30 -0
  171. package/lib/util/getExplicitRole.js +27 -0
  172. package/lib/util/getImplicitRole.js +24 -0
  173. package/lib/util/getSuggestion.js +32 -0
  174. package/lib/util/getTabIndex.js +34 -0
  175. package/lib/util/hasAccessibleChild.js +30 -0
  176. package/lib/util/implicitRoles/a.js +17 -0
  177. package/lib/util/implicitRoles/area.js +17 -0
  178. package/lib/util/implicitRoles/article.js +13 -0
  179. package/lib/util/implicitRoles/aside.js +13 -0
  180. package/lib/util/implicitRoles/body.js +13 -0
  181. package/lib/util/implicitRoles/button.js +13 -0
  182. package/lib/util/implicitRoles/datalist.js +13 -0
  183. package/lib/util/implicitRoles/details.js +13 -0
  184. package/lib/util/implicitRoles/dialog.js +13 -0
  185. package/lib/util/implicitRoles/form.js +13 -0
  186. package/lib/util/implicitRoles/h1.js +13 -0
  187. package/lib/util/implicitRoles/h2.js +13 -0
  188. package/lib/util/implicitRoles/h3.js +13 -0
  189. package/lib/util/implicitRoles/h4.js +13 -0
  190. package/lib/util/implicitRoles/h5.js +13 -0
  191. package/lib/util/implicitRoles/h6.js +13 -0
  192. package/lib/util/implicitRoles/hr.js +13 -0
  193. package/lib/util/implicitRoles/img.js +31 -0
  194. package/lib/util/implicitRoles/index.js +82 -0
  195. package/lib/util/implicitRoles/input.js +38 -0
  196. package/lib/util/implicitRoles/li.js +13 -0
  197. package/lib/util/implicitRoles/link.js +17 -0
  198. package/lib/util/implicitRoles/menu.js +19 -0
  199. package/lib/util/implicitRoles/menuitem.js +28 -0
  200. package/lib/util/implicitRoles/meter.js +13 -0
  201. package/lib/util/implicitRoles/nav.js +13 -0
  202. package/lib/util/implicitRoles/ol.js +13 -0
  203. package/lib/util/implicitRoles/option.js +13 -0
  204. package/lib/util/implicitRoles/output.js +13 -0
  205. package/lib/util/implicitRoles/progress.js +13 -0
  206. package/lib/util/implicitRoles/section.js +13 -0
  207. package/lib/util/implicitRoles/select.js +13 -0
  208. package/lib/util/implicitRoles/tbody.js +13 -0
  209. package/lib/util/implicitRoles/textarea.js +13 -0
  210. package/lib/util/implicitRoles/tfoot.js +13 -0
  211. package/lib/util/implicitRoles/thead.js +13 -0
  212. package/lib/util/implicitRoles/ul.js +13 -0
  213. package/lib/util/isAbstractRole.js +23 -0
  214. package/lib/util/isContentEditable.js +13 -0
  215. package/lib/util/isDOMElement.js +15 -0
  216. package/lib/util/isDisabledElement.js +23 -0
  217. package/lib/util/isFocusable.js +23 -0
  218. package/lib/util/isHiddenFromScreenReader.js +26 -0
  219. package/lib/util/isInteractiveElement.js +116 -0
  220. package/lib/util/isInteractiveRole.js +54 -0
  221. package/lib/util/isNonInteractiveElement.js +131 -0
  222. package/lib/util/isNonInteractiveRole.js +55 -0
  223. package/lib/util/isNonLiteralProperty.js +29 -0
  224. package/lib/util/isPresentationRole.js +13 -0
  225. package/lib/util/isSemanticRoleElement.js +54 -0
  226. package/lib/util/mayContainChildComponent.js +50 -0
  227. package/lib/util/mayHaveAccessibleLabel.js +95 -0
  228. package/lib/util/schemas.js +52 -0
  229. package/package.json +120 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,774 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [v6.10.2](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.10.1...v6.10.2) - 2024-10-25
9
+
10
+ ### Fixed
11
+
12
+ - [patch] `no-redundandant-roles`: allow `<img src="*.svg" role="img" />` [`#936`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/936)
13
+
14
+ ### Commits
15
+
16
+ - [meta] fix changelog URLs [`0d01a1a`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0d01a1aff796802bca70183b24978ffebdbef073)
17
+ - [Refactor] remove no-longer-needed `es-iterator-helpers` [`aa075bd`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/aa075bd1897e0b0bb61683e4da68558f38511dae)
18
+ - [Refactor] avoid spreading things that are already arrays [`d15d3ab`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/d15d3abace7afe833d0988eaf3fb7cc166c05c06)
19
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register` [`5dad7c4`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/5dad7c4fdfdc56c6e488fab54f25f602430dad30)
20
+ - [Tests] `aria-role`: Add valid test for `<svg role="img" />` [`daba189`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/daba18974473bce1301ffaafb822558a9e1738ae)
21
+ - [Docs] `label-has-associated-control`: add line breaks for readability [`0bc6378`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0bc63781c8f284ac6bef00321763c13c5bea6b9f)
22
+ - [Tests] `label-has-associated-control`: add additional test cases [`30d2318`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/30d23189d0b6354750c31a622204a9dc412dc2c1)
23
+ - [Tests] Add tests to reinforce required attributes for role="heading" [`d92446c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/d92446c6e608617a4c75173e8b0917c06be14dc6)
24
+
25
+ ## [v6.10.1](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.10.0...v6.10.1) - 2024-10-20
26
+
27
+ ### Commits
28
+
29
+ - [Fix] handle interactive/noninteractive changes from aria-query [`4925ba8`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/4925ba8d0bf80a4b1d8e8645d310590bf1b40b64)
30
+ - [Docs] Use consistent spelling of 'screen reader' [`cb6788c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/cb6788c56d7108f2faa102d041dfa37dbc0e9f59)
31
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `auto-changelog`, `eslint-plugin-import`, `tape` [`518a77e`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/518a77e1e23fb2b1df2e8a97d14bfdd08aded797)
32
+ - [Deps] update `es-iterator-helpers`, `string.prototype.includes` [`eed03a3`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/eed03a31f313442158cf7d702443723ad4800dec)
33
+ - [meta] package.json - Update jscodeshift & remove babel-jest [`2ee940c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/2ee940c5ae87bcd0d384b6dc565d630ea70e103a)
34
+ - [Docs] Remove accidental whitespace in CONTRIBUTING.md [`a262131`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/a26213142854ffe3d931fab35f0ee4e6ae101875)
35
+ - [Deps] unpin `aria-query` [`e517937`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/e51793729e5e366e30d2f3bf0f253f2bdb9e6523)
36
+
37
+ ## [v6.10.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.9.0...v6.10.0) - 2024-09-03
38
+
39
+ ### Fixed
40
+
41
+ - [New] `label-has-associated-control`: add additional error message [`#1005`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/1005)
42
+ - [Fix] `label-has-associated-control`: ignore undetermined label text [`#966`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/966)
43
+
44
+ ### Commits
45
+
46
+ - [Tests] switch from jest to tape [`a284cbf`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/a284cbf4eb21292c4cff87f02be0bfb82764757f)
47
+ - [New] add eslint 9 support [`deac4fd`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/deac4fd06eff4c0f5da27611c2a44a009b7e7fda)
48
+ - [New] add `attributes` setting [`a1ee7f8`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/a1ee7f8810efafe416eb5d7f6eb0505b52873495)
49
+ - [New] allow polymorphic linting to be restricted [`6cd1a70`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6cd1a7011446e3925f2b49c51ff26246a21491d1)
50
+ - [Tests] remove duplicate tests [`74d5dec`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/74d5decb6f2e42c05ce40a45630041fd695a2e7f)
51
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types` [`6eca235`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6eca2359f5457af72dbfba265b73297c9232cb3e)
52
+ - [readme] remove deprecated travis ci badge; add github actions badge [`0be7ea9`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0be7ea95f560c6afc6817d381054d914ebd0b2ca)
53
+ - [Tests] use `npm audit` instead of `aud` [`05a5e49`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/05a5e4992900e0d5d61e29e13046c90797b68a7c)
54
+ - [Deps] update `axobject-query` [`912e98c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/912e98c425ef9fcc2d7d22b45b4f7e3b445112a5)
55
+ - [Deps] unpin `axobject-query` [`75147aa`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/75147aa68888fc150a4efea5b99809969bdc32b2)
56
+ - [Deps] update `axe-core` [`27ff7cb`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/27ff7cbf562bf2685fd5a6062e58eb4727cb85c6)
57
+ - [readme] fix jsxA11y import name [`ce846e0`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/ce846e00414c41676a6a8601022059878bcc0b89)
58
+ - [readme] fix typo in shareable config section in readme [`cca288b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/cca288b73a39fa0932a57c02a7a88de68fc971fc)
59
+
60
+ ## [v6.9.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.8.0...v6.9.0) - 2024-06-19
61
+
62
+ ### Fixed
63
+
64
+ - [Fix] `img-redundant-alt`: fixed multibyte character support [`#969`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/969)
65
+ - [meta] fix changelog links [`#960`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/960)
66
+
67
+ ### Commits
68
+
69
+ - [New] add support for Flat Config [`6b5f096`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6b5f096f10b47326d68e2893152a48a79c8555b4)
70
+ - Revert "[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1" [`75d5dd7`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/75d5dd722bd67186d97afa7b151fd6fee5885c70)
71
+ - [Robustness] use `safe-regex-test` [`4c7e781`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/4c7e7815c12a797587bb8e3cdced7f3003848964)
72
+ - [actions] update actions/checkout [`51a1ca7`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/51a1ca7b4d83d4fbd1ea62888f7f2dc21ece6788)
73
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `eslint-doc-generator`, `object.entries` [`1271ac1`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/1271ac1d6e5dcf9a2bc2c086faaf062335629171)
74
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `aud`, `eslint-plugin-import`, `npmignore`, `object.assign` [`540cb7a`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/540cb7aefead582f237071d55a40f098d0885478)
75
+ - [Deps] update `@babel/runtime`, `array-includes`, `es-iterator-helpers`, `hasown`, `object.fromentries`, `safe-regex-test` [`5d14408`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/5d1440825a8838ae10dc94cc3a4a7e1e967644b4)
76
+ - [Deps] pin `aria-query` and `axobject-query`, add `ls-engines` test to CI [`32fd82c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/32fd82c628d7f3e4ec8c06a1994f4eca1be2be4f)
77
+ - [Dev Deps] update `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-doc-generator` [`d1b4114`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/d1b41142248a7cca45bb5f0b96ff23ee87fb9411)
78
+ - [Fix] ensure `summary` remains non-interactive [`6a048da`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6a048dacf2b98eaa204e2a5a70dc7e3d48d9463a)
79
+ - [Deps] remove `@babel/runtime` [`0a98ad8`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0a98ad83ffa7f4b66458cc1c39db2ef32bb2c480)
80
+ - [New] `no-noninteractive-element-to-interactive-role`: allow `menuitemradio` and `menuitemcheckbox` on <li> [`c0733f9`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/c0733f94031fe3eec6b4d54176afe47929bb0a84)
81
+ - [Deps] update `@babel/runtime`, `safe-regex-test` [`0d5321a`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0d5321a5457c5f0da0ca216053cc5b4f571b53ae)
82
+ - [actions] pin codecov to v3.1.5 [`961817f`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/961817f61fa56cd7815c6940c27ef08469b1516b)
83
+ - [Deps] unpin `axe-core` [`b3559cf`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/b3559cf89be6b5352cd77ffa025831b3d793d565)
84
+ - [Deps] move `object.entries` to dev deps [`1be7b70`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/1be7b709eececd83f1d5f67a60b2c97cfe9a561d)
85
+ - [Deps] update `@babel/runtime` [`2a48abb`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/2a48abb5effa911e7d1a8575e1c9768c947a33f1)
86
+ - [Deps] update `@babel/runtime` [`1adec35`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/1adec3517fc2c9797212ca4d38858deed917e7be)
87
+
88
+ ## [v6.8.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.7.1...v6.8.0) - 2023-11-01
89
+
90
+ ### Merged
91
+
92
+ - Allow `title` attribute or `aria-label` attribute instead of accessible child in the "anchor-has-content" rule [`#727`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/pull/727)
93
+
94
+ ### Fixed
95
+
96
+ - [Docs] `aria-activedescendant-has-tabindex`: align with changes from #708 [`#924`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/924)
97
+ - [Fix] `control-has-associated-label`: don't accept whitespace as an accessible label [`#918`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/918)
98
+
99
+ ### Commits
100
+
101
+ - [Tests] migrate helper parsers function from `eslint-plugin-react` [`ce4d57f`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/ce4d57f853ce7f71bd31edaa524eeb3ff1d27cf1)
102
+ - [Refactor] use `es-iterator-helpers` [`52de824`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/52de82403752bb2ccbcac3379925650a0112d4af)
103
+ - [New] `mouse-events-have-key-events`: add `hoverInHandlers`/`hoverOutHandlers` config [`db64898`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/db64898fa591f17827053ad3c2ddeafdf7297dd6)
104
+ - [New] add `polymorphicPropName` setting for polymorphic components [`fffb05b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/fffb05b38c8eee926ee758e9ceb9eae4e697fbdd)
105
+ - [Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1 [`64bfea6`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/64bfea6352a704470a760fa6ea25cfc5a50414db)
106
+ - [Refactor] use `hasown` instead of `has` [`9a8edde`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/9a8edde7f2e80b7d104dd576f91526c6c4cbebb9)
107
+ - [actions] update used actions [`10c061a`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/10c061a70cac067641e3a084d0fb464960544505)
108
+ - [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`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6d5022d4894fa88d3c15c8b858114e8b2a8a440f)
109
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/register`, `eslint-doc-generator`, `eslint-plugin-import` [`4dc7f1e`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/4dc7f1e5c611aeea2f81dc50d4ec0b206566181a)
110
+ - [New] `anchor-has-content`: Allow title attribute OR aria-label attribute [`e6bfd5c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/e6bfd5cb7c060fcaf54ede85a1be74ebe2f60d1e)
111
+ - [patch] `mouse-events-have-key-events`: rport the attribute, not the node [`eadd70c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/eadd70cb1d0478c24538ee7604cf5493a96c0715)
112
+ - [Deps] update `@babel/runtime`, `array-includes`, `array.prototype.flatmap`, `object.entries`, `object.fromentries` [`46ffbc3`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/46ffbc38512be4ed3db2f0fcd7d21af830574f63)
113
+ - [Deps] update `@babel/runtime`, `axobject-query`, `jsx-ast-utils`, `semver` [`5999555`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/5999555714f594c0fccfeeab2063c2658d9e4392)
114
+ - [Fix] pin `aria-query` and `axe-core` to fix failing tests on main [`8d8f016`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/8d8f0169dbaaa28143cf936cba3046c6e53fa134)
115
+ - [patch] move `semver` from Deps to Dev Deps [`4da13e7`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/4da13e79743ad2e1073fc2bb682197e1ba6dbea3)
116
+ - [Deps] update `ast-types-flow` [`b755318`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/b755318e675e73a33b1bb7ee809abc88c1927408)
117
+ - [Dev Deps] update `eslint-plugin-import` [`f1c976b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/f1c976b6af2d4f5237b481348868a5216e169296)
118
+ - [Deps] unpin `language-tags` [`3d1d26d`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/3d1d26d89d492947cbf69f439deec9e7cfaf9867)
119
+ - [Docs] `no-static-element-interactions`: tabIndex is written tabindex [`1271153`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/1271153653ada3f8d95b8e39f0164d5b255abea0)
120
+ - [Deps] Upgrade ast-types-flow to mitigate Docker user namespacing problems [`f0d2ddb`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/f0d2ddb65f21278ad29be43fb167a1092287b4b1)
121
+ - [Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`0c278f4`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0c278f4805ec18d8ee4d3e8dfa2f603a28d7e113)
122
+
123
+ ## [v6.7.1](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.7.0...v6.7.1) - 2023-01-11
124
+
125
+ ### Commits
126
+
127
+ - [Fix] `no-aria-hidden-on-focusable` rule's missing export [`b01219e`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/b01219edc2eb289c7a068b4fa195f2ac04e915fa)
128
+
129
+ ## [v6.7.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.6.1...v6.7.0) - 2023-01-09
130
+
131
+ ### Merged
132
+
133
+ - New rule: prefer-tag-over-role [`#833`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/pull/833)
134
+
135
+ ### Fixed
136
+
137
+ - [Tests] `aria-role`: add now-passing test [`#756`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/756)
138
+ - [Docs] `control-has-associated-label`: fix metadata [`#892`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/892)
139
+ - [New] add `no-aria-hidden-on-focusable` rule [`#881`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/881)
140
+
141
+ ### Commits
142
+
143
+ - [Docs] automate docs with `eslint-doc-generator` [`6d7a857`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6d7a857eccceb58dabfa244f6a196ad1697c01a4)
144
+ - [Refactor] use fromEntries, flatMap, etc; better use iteration methods [`3d77c84`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/3d77c845a98b6fc8cf10c810996278c02e308f35)
145
+ - [New] add `anchor-ambiguous-text` rule [`7f6463e`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/7f6463e5cffd1faa5cf22e3b0d33465e22bd10e1)
146
+ - [New] add `getAccessibleChildText` util [`630116b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/630116b334e22db853a95cd64e20b7df9f2b6dc8)
147
+ - [New] Add `isFocusable` utils method [`e199d17`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/e199d17db0b6bf1d917dab13a9690876ef6f77e3)
148
+ - [Docs] update `eslint-doc-generator` to v1.0.0 [`6b9855b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6b9855b9c3633308004960594327a10bc2551ad2)
149
+ - [Fix] `no-noninteractive-element-interactions`: Ignore contenteditable elements in no-noninteractive-element-interactions [`9aa878b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/9aa878bc39769f6c7b31c72bd1140c1370d202f1)
150
+ - [New] `anchor-ambiguous-text`: ignore punctuation [`bbae2c4`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/bbae2c46ab4ae94122be6c898f2ef313c6154c27)
151
+ - [New] `anchor-ambiguous-text`, `getAccessibleChildText`: Implements check for `alt` tags on `<img />` elements [`bb84abc`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/bb84abc793435a25398160242c5f2870b83b72ca)
152
+ - [meta] use `npmignore` to autogenerate an npmignore file [`6ad2312`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/6ad23124582741385df50e98d5ed0d070f86eafe)
153
+ - [meta] add `auto-changelog` [`283817b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/283817b82252ef4a6395c22585d8681f97305ca0)
154
+ - [Docs] missing descriptions in some rules [`79b975a`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/79b975ab7185cc4fbf6a3adea45c78fac2162d77)
155
+ - [Deps] update `aria-query`, `axobject-query` [`7b3cda3`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/7b3cda3854451affe20b2e4f2dd57cf317dd7d1b)
156
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `aud`, `object.assign` [`0852947`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0852947cfd57a34353a97c67f6de28dbcc8be0e3)
157
+ - [meta] move `.eslintignore` to `ignorePatterns` [`65be35b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/65be35b0f6c6cf8b79e9a748cb657a64b78c6535)
158
+ - [Dev Deps] update `@babel/cli`, `@babel/core`, `aud`, `eslint-doc-generator` [`60c2df5`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/60c2df5388a3f841a7780eafe1a0fbb44056743d)
159
+ - [Deps] update `@babel/runtime`, `array-includes`, `axe-core` [`4abc751`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/4abc751d87a8491219a9a3d2dacd80ea8adcb79b)
160
+ - [Deps] update `@babel/runtime`, `axe-core` [`89f766c`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/89f766cd40fd32ada2020856b251ad6e34a6f365)
161
+ - [meta] run the build in prepack, not prepublish [`e411ce3`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/e411ce35cfa58181d375544ba5204c35db83678c)
162
+ - [Dev Deps] update `@babel/core`, `minimist` [`cccdb62`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/cccdb625d6237538fb4443349870293e8df818eb)
163
+ - [Dev Deps] update `markdown-magic` [`3382059`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/3382059feb5367c79e049943772e3a6e27e77609)
164
+ - [Fix] expose `prefer-tag-over-role` [`38d52f8`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/38d52f856a18d444e6db7d16d373e0d18c5b287d)
165
+ - [Docs] `label-has-for`: reran generate-list-of-rules [`9a2af01`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/9a2af0172cefad7fdce869401b2df42536812152)
166
+ - [Deps] pin `language-tags` to `v1.0.5` [`f84bb74`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/f84bb746857cfbc075f8e7104b3a16dddb66be7c)
167
+ - [Dev Deps] update `@babel/core` [`cf3f8d0`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/cf3f8d0a6bde6dc5ad39a96a6ed1912c1ad80e89)
168
+ - [Deps] update `axe-core` [`0a73cf4`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0a73cf4ad0adca0bef0a383a10a14597acef5713)
169
+ - [Deps] update `@babel/runtime` [`053f04d`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/053f04da8b60d259e4c92f214ffba07a14f3ec61)
170
+ - [Deps] update `@babel/runtime` [`bccf0ae`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/bccf0aeab8dd337c5f134f892a6d3588fbc29bdf)
171
+ - [Deps] update `jsx-ast-utils` [`c9687cc`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/c9687cc2a1b7f5f72c8181a9fd6a47f49c373240)
172
+ - [readme] Preventing code repetition in user's eslint config file [`8b889bf`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/8b889bff2731c9db6988c88c0d76bdbff17bd3c5)
173
+ - [Docs] `prefer-tag-over-role`: rename docs file [`0bdf95b`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/commit/0bdf95b41cce32c8b7916367e7c8c663411d881c)
174
+
175
+ <!-- auto-changelog-above -->
176
+
177
+ 6.6.1 / 2022-07-21
178
+ ==================
179
+ - 38405ad [Fix] `no-interactive-tabindex`: allow role assignments using a ternary with literals on both sides
180
+ - 7524e0c [Fix] `no-static-element-interactions`: allow role assignments using a ternary with literals on both sides (#865)
181
+ - 1c06306 [readme] properly describe rule settings in builtin configs
182
+ - 0c19f02 [Docs] `no-noninteractive-tabindex`, `no-static-element-interactions`: document `allowExpressionValues` (#870)
183
+ - 2362832 [readme] added link to redirect eslint to relevant docs (#862)
184
+ - 2c6926c [Deps] unpin `axe-core`
185
+ - b78f19d [Deps] pin `axe-core` to v4.4.1, due to a breaking change in a patch
186
+ - 768910e [Deps] update `@babel/runtime`
187
+ - f0e04ce [Deps] update `@babel/runtime`, `jsx-ast-utils`
188
+ - 93b2a9d [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`
189
+ - a962211 [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`
190
+ - 0d2bc43 [Tests] `no-noninteractive-element-interactions`: add passing test cases (#876)
191
+ - ffefbad [Tests] `no-noninteractive-element-interactions`: add passing tests for form with onSubmit (#871)
192
+ - e7d405d [Tests] `no-static-element-interactions`: add passing test cases
193
+
194
+ 6.6.0 / 2022-06-23
195
+ ==================
196
+ - 566011b [New] `aria-role`: add `allowedInvalidRoles` option (#828)
197
+ - 64dcac6 [New] Introduce a plugin-wide setting for custom components. (#844)
198
+ - ce2c328 [Fix] `no-redundant-roles`, `role-supports-aria-props`: Remove implicit role from dl element (#848)
199
+ - fb20bc4 [Refactor] `role-supports-aria-props`: clean up the logic a bit
200
+ - 1826628 [Refactor] reduce egregious use of array spread, in favor of `[].concat` idiom
201
+ - 0f1615a [Docs] `no-static-element-interactions`: Update error message (#843)
202
+ - 9980d1d [Docs] Add infrastructure for auto-generating markdown table and list (#837)
203
+ - f878d3b [Docs] Update project readme (#831)
204
+ - aea7671 [Deps] update `@babel/runtime`, `array-includes`, `axe-core`, `jsx-ast-utils`
205
+ - d74173a [Deps] update `jsx-ast-utils`
206
+ - f6ba03c [Deps] update `@babel/runtime`, `jsx-ast-utils`
207
+ - 547dab4 [Deps] update `@babel/runtime`, `axe-core`, `minimatch`
208
+ - baaf791 [Deps] update `@babel/runtime`, `minimatch`, `semver`
209
+ - c015fef [Deps] update `@babel/runtime`, `axe-core`, `damerau-levenshtein`
210
+ - 832cbd6 [meta] add `export default` instead of `module.exports` (#861)
211
+ - ee933a2 [meta] Add CONTRIBUTING.md to solicit contributions (#846)
212
+ - fa3c869 [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `aud`, `eslint-plugin-eslint-plugin`, `eslint-plugin-flowtype`, `eslint-plugin-import`
213
+ - fb3d51e [Dev Deps] update `@babel/core`, `@babel/register`, `eslint-plugin-import`, `minimist`
214
+ - 8c1df4d [Dev Deps] pin `@technote-space/doctoc` because v2.5 is a breaking change
215
+ - fb071ab [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-plugin-eslint-plugin`
216
+ - 5e966e5 [Dev Deps] update `@babel/cli`
217
+ - f597f5b [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`
218
+ - 287854a [Tests] Fix `npm run flow` (#856)
219
+ - 112261c [Tests] skip fragment tests in eslint < 6
220
+ - ea877c4 [Tests] `img-redundant-alt-test`: add passing tests (#832)
221
+ - 685426d test: align usage of jest expect across tests (#827)
222
+ - c460a8b [Tests] move invalid test case to valid; changed in axe-core v4.4
223
+
224
+ 6.5.1 / 2021-11-10
225
+ ==================
226
+ - 8f7d0b0 [Fix] properly build `module.exports` (#824)
227
+ - 2fd2087 [Dev Deps] update `eslint-plugin-import`
228
+
229
+ 6.5.0 / 2021-11-09
230
+ ==================
231
+ - 0f5f582 [New] support ESLint 8.x (#810)
232
+ - 1dbc416 [Deps] update `@babel/runtime`, `axe-core`
233
+ - 4043d31 [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-config-airbnb-base`
234
+ - d143cba [Docs] HTTP => HTTPS (#823)
235
+ - 309b040 [Docs] `anchor-has-content`: add missing close / for jsx succeed example (#821)
236
+ - ba1e312 [eslint] simplify eslint command
237
+ - 0269025 [meta] change all `master` references in URLs to `HEAD`
238
+ - f1414cf [Dev Deps] add `eslint-plugin-eslint-plugin` (#818)
239
+ - f44fc05 [meta] update URLs
240
+ - df34872 [Refactor] switch to `export default` syntax for exporting rules (#819)
241
+ - ff26b82 [meta] fix prepublish scripts
242
+ - d4a57d8 [Deps] update `@babel/runtime`, `array-includes`, `axe-core`, `jsx-ast-utils`
243
+ - bd1dec6 [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `eslint-plugin-import`, `estraverse`, `safe-publish-latest`
244
+ - 434c4cf [Tests] do not test eslint 7 on node 11
245
+ - aed7a20 [Tests] use `@babel/eslint-parser` instead of `babel-eslint` (#811)
246
+ - 0021489 [actions] use codecov action
247
+ - 1251088 [meta] delete FUNDING.yml in favor of `.github` repo
248
+ - ecf7a27 [Docs] `scope`: replace duplicate `scope` word (#799)
249
+ - 952af25 [Fix] `no-access-key`: Fix wording and grammar (#800)
250
+ - 6cf7ac0 [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/plugin-transform-flow-strip-types`, `aud`, `eslint-plugin-flowtype`, `eslint-plugin-import`
251
+ - 79a35d4 [Deps] update `@babel/runtime`, `axe-core`, `damerau-levenshtein`
252
+ - 2a9ab71 [Tests] delete `src/util/getComputedRole-test.js` test in node 6
253
+ - 0c1c587 [Tests] `autocomplete-valid`: move some failed tests to passing
254
+ - 8830902 [Tests] fix eslint < 7 not understanding `import type`
255
+ - d57887c [Tests] ensure all tests run
256
+ - 55e5c11 Support img role for canvas (#796)
257
+ - 36102cd [meta] use `prepublishOnly` script for npm 7+
258
+ - 2501a7f Remove the link-button focus css from the anchor-is-valid doc (#662)
259
+ - d927625 Update recommended config to allow fieldset to have the radiogroup role (#746)
260
+ - 5aa8db9 [Docs] Clarify the title of the strictness table in the main doc (#786)
261
+ - df3c7ad [Docs] Document the similarity between html-has-lang and lang (#778)
262
+ - 426d4c2 Fix Flow warnings (#785)
263
+ - ecec8e4 Fully deprecate accessible-emoji rule (#782)
264
+ - 8a0e43c [Tests] remove .travis.yml
265
+ - f88bf6b [Dev Deps] update `flow-bin` to support aarch64 (#784)
266
+ - 369f9db [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/plugin-transform-flow-strip-types`, `aud`, `eslint-plugin-flowtype`, `jscodeshift`
267
+ - ce0785f [Deps] update `@babel/runtime`, `array-includes`, `axe-core`, `emoji-regex`
268
+ - 2c2a2ad [actions] update to use `node/install` action
269
+ - c275964 [Docs] `anchor-is-valid`: general cleanup (#728)
270
+ - 3df059e [Docs] `no-redundant-roles`: Adds missing closing square bracket (#775)
271
+ - 42ce5b7 [Docs] `anchor-is-valid`: Add Next.js case (#769)
272
+ - 2e5df91 [Tests] fix tests breaking on npm 7
273
+ - 066ccff [Docs] `no-noninteractive-tabindex`: Add example for tabIndex on seemingly non-interactive element (#760)
274
+ - 6b19aa5 [Tests] migrate tests to Github Actions (#764)
275
+ - 7e158e3 [meta] run `aud` in `posttest`
276
+ - 71f390f [Tests] stop using coveralls
277
+ - e54b466 [meta] add Automatic Rebase and Require Allow Edits workflows
278
+ - 7d5511d [New] `label-has-associated-control`: Add glob support (#749)
279
+ - 854da0c Ran npm update; latest packages (#763)
280
+ - 8637aa7 (source/pr/734, fork/pr/26) [patch] `strict` config: Turn off `label-has-for` (#734)
281
+ - d85ce54 [doc] Add link to MDN Aria documentation (#762)
282
+ - 20b48a4 [patch] `no-onchange`: Remove rule from recommended/strict configs, and deprecate (#757)
283
+
284
+ 6.4.1 / 2020-10-26
285
+ ==================
286
+ - f8a4496 Upgrade jsx-ast-utils to v3.1.0
287
+
288
+ 6.4.0 / 2020-10-26
289
+ ==================
290
+
291
+ - 83e4ff2 [Deps] update `axe-core`, `jsx-ast-utils`
292
+ - eb92b07 [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/plugin-transform-flow-strip-types`, `eslint-plugin-flowtype`, `eslint-plugin-import`, `estraverse`, `expect`, `object.assign`
293
+ - 3d98d7a [Deps] update `@babel/runtime`, `axe-core`
294
+ - f702f62 [readme] add Spanish translation
295
+ - c2ae092 [Docs] `no-static-element-interactions`: Fixed rule name in comments
296
+ - b90e20d Fix screenreader -> screen reader
297
+ - 645900a Fixed rule name in comments
298
+ - 381b9d6 [fix:634] Ignore control elements that are hidden
299
+ - 2c47f0a [Fix] `autocomplete-valid`: workaround for axe not being able to handle `null`
300
+ - 00bd6d8 Add failing test for autocomplete with dynamic type
301
+ - 3c49c9a Add WCAG guidelines to rule documentation
302
+ - 4ecaf35 Add a testcase for tablist to interactive supports focus
303
+ - dac6864 Deprecate the accessible-emoji rule
304
+ - 5191053 Update to axobject-query@2.2.0
305
+ - b315698 Allow negative tabindex in aria-activedescendant-has-tabindex
306
+ - 8e6fcd0 docs: fix travis badge now points to correct location at travis-ci.com
307
+ - 2234df7 Account for additional control elements in label-has-associated-control
308
+ - 5cbb718 Adding test cases for label tests
309
+ - 66c425c Additional test case for no-redundant-roles
310
+
311
+ 6.3.1 / 2020-06-19
312
+ ==================
313
+
314
+ - 765da0f Update to aria-query 4.2.2
315
+ - d528e8c Fix aria-level allowed on elements wit role heading (#704)
316
+ - 29c6859 [meta] remove yarn registry from npmrc, so publishing works
317
+ - f52c206 chore(package): update estraverse to version 5.0.0
318
+
319
+ 6.3.0 / 2020-06-18
320
+ ==================
321
+
322
+ - cce838a Update aria-query to 4.2.0
323
+ - 121e8a4 Add two test cases found while upgrading to ARIA 1.2
324
+ - 8059f51 Fix test failures raised by the upgrade to ARIA 1.2
325
+ - 0d24e3a Update package.json
326
+ - b1f412a Fix test failures in role-has-required-aria-props due to ARIA 1.2 updates
327
+ - 74cec6e Fix test failures in no-noninteractive-element-interactions due to ARIA 1.2 updates
328
+ - 835b89e Fix test failures in role-supports-aria-props-test due to ARIA 1.2 updates
329
+ - 730319b Account for the null semantic generic role in ARIA 1.2
330
+ - 7dfa7c9 Update aria-query from 4.0.1 to 4.0.2
331
+ - 42098b9 [Refactor] `img-redundant-alt`: removing a use of `some`
332
+ - a910d83 [Tests] `label-has-associated-control`: add test for <div><label /><input /></div>
333
+ - b273fe5 [New] Support ESLint 7.x
334
+ - 1a97632 [Deps] update `@babel/runtime`, `array-includes`, `axe-core`, `axobject-query`, `damerau-levenshtein`, `jsx-ast-utils`
335
+ - b36976f [Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/plugin-transform-flow-types`, `babel-eslint`, `babel-jest`, `coveralls`, `eslint-config-airbnb-base`, `eslint-plugin-flowtype`, `eslint-plugin-import`, `estraverse`, `in-publish`, `jest`, `minimist`, `rimraf`, `safe-publish-latest`
336
+ - 89acdc4 fix: removing the use of the some function
337
+ - 410ae43 chore(package): update eslint-plugin-flowtype to version 5.0.0
338
+ - a87f83d fix(package): update emoji-regex to version 9.0.0
339
+ - 71940e6 chore(package): update babel-preset-airbnb to version 5.0.0
340
+ - d471f54 docs: Fix 404 links to WAI-ARIA spec
341
+ - 42a2016 Fixes #669: use the `language-tags` package to check the `lang` rule
342
+ - 7bcea20 [Tests] update axe-core
343
+ - f13dc38 [Deps] Pin axe-core version
344
+ - 33670bb fix: require missing 'autocomplete-valid' rule
345
+ - aca4c37 chore(mouse-event): revert unrelated formatting changes
346
+ - df1e275 fix(mouse-event): remove check from custom elements
347
+ - 1a16a1c chore(package): update jscodeshift to version 0.7.0
348
+ - 7a55cdd chore(package): update flow-bin to version 0.113.0
349
+ - 8e0d22b Update aria-query and axobject-query to the latest versions
350
+ - dd49060 Added test cases for an empty or undefined value of aria-label and aria-labelledby in alt-text
351
+ - 1a7b94f Updated dependencies including eslint-config-airbnb-base
352
+ - 3aea217 chore: replace ignoreNonDOM with inputComponents
353
+ - 1848d00 feat(autocomplete-valid): add to recommended & strict config
354
+ - 8703840 refactor: use to axe-cre 3.4 SerialVirtualNode format
355
+ - 3519c7b chore: Remove axe VirtualNode abstraction
356
+ - 9ac55c4 autocomplete-valid: Add inline comment
357
+ - 44c6098 Update axe-core to 3.3.0
358
+ - 9916990 new autocomplete-valid rule
359
+ - 82f598e [Docs] examples: add language in code block for syntax highlight
360
+ - 2529ad3 fixing casing issue on aria-props
361
+ - 00926f2 Update README.md
362
+ - ce5d121 Update README.md
363
+ - 031574e chore(package): update flow-bin to version 0.103.0
364
+ - e00e1db [meta] add FUNDING.yml
365
+ - e1e5fae Fix readme file
366
+
367
+ 6.2.3 / 2019-06-30
368
+ =================
369
+ - [617] Add @babel/runtime to the dependencies
370
+
371
+ 6.2.2 / 2019-06-29
372
+ =================
373
+ - Update jsx-ast-utils to v2.2.1
374
+ - Add @babel/cli to the dev dependencies
375
+ - Update ESLint to v6
376
+ - Update jsx-ast-utils to 2.2.0
377
+ - Update flow-bin to version 0.102.0
378
+ - [589] Allow expression statements for attribute values in no-noninteractive-tabindexlow-bin-0.101.0
379
+ - [583] Allow expression values in attributes by configurationrror
380
+ - [596] Adding a test case for no-static-element-interactionseper/flow-bin-0.101.0) Merge branch 'master' into greenkeeper/flow-bin-0.101.0
381
+ - Only run branch test coverage on the master branch
382
+ - chore(package): update flow-bin to version 0.100.0
383
+ - Allow select as a valid child of label.
384
+ - Allow Node 4 / ESLint 3 failure to unblock ESLint upgrade in PR #568
385
+ - chore(package): update flow-bin to version 0.99.0
386
+ - Remove rootDir from Jest path configs
387
+ - (fix) Template literals with undefined evaluate to the string undefined.
388
+ - adds more tests to “anchor-is-valid”
389
+ - Fixes “anchor-is-valid” false positive for hrefs starting with the word “javascript”
390
+ - chore(package): update eslint-plugin-flowtype to version 3.5.0
391
+ - Modified no-static-element-interactions to pass on non-literal roles.
392
+ - Added isNonLiteralProperty util method
393
+ - [#399] Account for spread in parser options
394
+ - [552] control-has-associated-label should allow generic links
395
+ - [issue 392] ul role='list' test case
396
+ - chore(package): update eslint to version 5.15.2
397
+ - chore(package): update flow-bin to version 0.95.0
398
+ - chore(package): update expect to version 24.3.1
399
+ - Fix typo: defintions > definitions
400
+ - docs: add proper title to links to axe website for media-has-caption
401
+ - docs: removes deprecated rule label-has-for
402
+ - docs: fix typo and couple grammatical errors in Readme
403
+ - Ignore null/undefined values in role-supports-aria-props rule
404
+ - Ignore undefined values in aria-proptypes rule
405
+ - Ignore null values in aria-proptypes rule
406
+ - set target for node 4
407
+
408
+ 6.2.1 / 2019-02-03
409
+ =================
410
+ - 9980e45 [fix] Prevent Error when JSXSpreadAttribute is passed to isSemanticRoleElement
411
+
412
+ 6.2.0 / 2019-01-25
413
+ =================
414
+ - 5650674 [new rule] control-has-associated-label checks interactives for a label
415
+ - f234698 [docs] add How to manage IDs
416
+ - 9924d03 [docs] document jsx-a11y/label-has-associated-control assert option
417
+ - 77b9870 [docs] Add newlines below headings
418
+ - 8244e43 [docs] Add syntax highlighting to example
419
+ - 26f41c8 [docs] Change explanation for role="presentation" escape hatch
420
+ - 33a1f94 [fix] - Purely decorative emojis do not need descriptions.
421
+ - 29d20f7 [fix] (package): update emoji-regex to version 7.0.2
422
+ - 0b63f73 [chore] (package): update flow-bin to version 0.88.0
423
+ - baa1344 [fix] Disable jsx-a11y/label-has-for in recommended
424
+ - 2c5fb06 [chore] (package): update jscodeshift to version 0.6.0
425
+ - 87debc0 [fix] corrected no-noninteractive-element-to-interactive-role.md file
426
+ - d56265b [chore] (package): update flow-bin to version 0.87.0
427
+ - 477966f [fix] Update test for implicit role of `img`
428
+ - f484ce3 [fix] No implicit role for `<img>` with `alt=""`
429
+ - 6c33bcb [fix] Add select to the list of default control elements in label-has-associated-control
430
+ - 011f8d9 [fix] Dialog and Alert roles can host keyboard listeners
431
+ - 0f6a8af [fix] More easier `plugin:jsx-a11y/{recommended,strict}` configs
432
+ - 3844248 [fix] Mark the replacement for label-has-for
433
+ - 93265cb [fix] normalizedValues to values
434
+ - 651366c [fix] Make aria-role case sensitive
435
+ - 56d3b9a [fix] [484] Fix role-has-required-aria-props for semantic elements like input[checkbox]
436
+ - 46e9abd [fix] Handle the type={truthy} case in jsx
437
+
438
+ 6.1.2 / 2018-10-05
439
+ =================
440
+ - [fix] Add link-type styling recommendation to anchor-is-valid #486
441
+ - [fix] `label-has-for`: `textarea`s are inputs too #470
442
+
443
+ 6.1.1 / 2018-07-03
444
+ ==================
445
+ - [fix] aria-proptypes support for idlist, #454
446
+ - [fix] Image with expanded props throws 'The prop must be a JSXAttribute collected by the AST parser.', #459
447
+ - [fix] label-has-for: broken in v6.1.0, #455
448
+
449
+ 6.1.0 / 2018-06-26
450
+ ==================
451
+ - [new] Support for eslint v5, #451
452
+ - [new] aria-query updated to latest version
453
+ - [new] eslint-config-airbnb-base updated to the latest version
454
+ - [deprecate] The rule label-has-for is deprecated and replaced with label-has-associated-control
455
+ - [fix] heading-has-content updated to work with custom components, #431
456
+ - [fix] aria-errormessage prop is now a valid ARIA property, #424
457
+
458
+ 6.0.2 / 2017-06-28
459
+ ==================
460
+ - [fix] Prefix directories in `.npmignore` with `/` so it only matches the top-level directory
461
+
462
+
463
+ 6.0.1 / 2017-06-28
464
+ ==================
465
+ - [temporary] Remove `src` and `flow` from package to resolve flow issues for consuming packages.
466
+
467
+
468
+ 6.0.0 / 2017-06-05
469
+ =================
470
+ - [new] Add rule `anchor-is-valid`. See documentation for configuration options. Thanks @AlmeroSteyn.
471
+ - [breaking] `href-no-hash` replaced with `anchor-is-valid` in the recommended and strict configs. Use the `invalidHref` aspect (active by default) in `anchor-is-valid` to continue to apply the behavior provided by `href-no-hash`.
472
+ - [breaking] Removed support for ESLint peer dependency at version ^2.10.2.
473
+ - [update] The rule `label-has-for` now allows inputs nested in label tags. Previously it was strict about requiring a `for` attribute. Thanks @ignatiusreza and @mjaltamirano.
474
+ - [update] New configuration for `interactive-supports-focus`. Recommended and strict configs for now contain a trimmed-down whitelist of roles that will be checked.
475
+ - [fix] Incompatibility between node version 4 and 5. Thanks @evilebottnawi.
476
+ - [fix] Missing README entry for `media-has-caption`. Thanks @ismail-syed.
477
+ - [fix] README updates explaining recommended and strict configs. Thanks @Donaldini.
478
+ - [fix] Updated to aria-query@0.7.0, which includes new ARIA 1.1 properties. Previously, the `aria-props` rule incorrectly threw errors for these new properties.
479
+
480
+ 5.1.1 / 2017-07-03
481
+ ==================
482
+ - [fix] revert v6 breaking changes unintentionally added in v5.1 (#283)
483
+
484
+ 5.1.0 / 2017-06-26
485
+ ==================
486
+ - [new] Support eslint v4. (#267)
487
+ - [new] `label-has-for`: add "required" option to allow customization (#240)
488
+ - [new] add `anchor-is-valid` (#224)
489
+ - [new] `interactive-supports-focus`: Split interactive supports focus into tabbable and focusable cases (#236)
490
+ - [new] `anchor-is-valid`: add `aspects` option (#251)
491
+ - [Deps] Bump aria-query to 0.7.0
492
+
493
+ 5.0.3 / 2017-05-16
494
+ ==================
495
+ - [fix] Remove `flow` directory from `.npmignore` to accommodate explicit imports from `v5.0.2`.
496
+
497
+
498
+ 5.0.2 / 2017-05-16
499
+ ==================
500
+ - [fix] Explicitly import flow types to resolve flow failures in consuming projects.
501
+
502
+
503
+ 5.0.1 / 2017-05-07
504
+ ==================
505
+ - [fix] Polyfill Array.includes for node < 6 support.
506
+
507
+
508
+ 5.0.0 / 2017-05-05
509
+ ==================
510
+ - [breaking] Refactor `img-has-alt` rule into `alt-text` rule
511
+ - [breaking] Rule `onclick-has-role` is removed. Replaced with `no-static-element-interactions` and `no-noninteractive-element-interactions`.
512
+ - [breaking] Rule `onclick-has-focus` is removed. Replaced with `interactive-supports-focus`.
513
+ - [new] - Add rule `media-has-caption` rule
514
+ - [new] - Add `ignoreNonDOM` option to `no-autofocus`.
515
+ - [new] - Add rule `no-interactive-element-to-noninteractive-role`
516
+ - [new] - Add rule `no-noninteractive-element-to-interactive-role`
517
+ - [new] - Add rule `no-noninteractive-tabindex`
518
+ - [new] - Configs split into "recommended" and "strict".
519
+ - [enhanced] - Configuration options added to `no-static-element-interactions` and `no-noninteractive-element-interactions`. Options allow for fine-tuning of elements and event handlers to check.
520
+
521
+
522
+ 4.0.0 / 2017-02-04
523
+ ==================
524
+ Add new rules:
525
+ - `jsx-a11y/accessible-emoji`
526
+ - `jsx-a11y/aria-activedescendant-has-tabindex`
527
+ - `jsx-a11y/iframe-has-title`
528
+ - `jsx-a11y/no-autofocus`
529
+ - `jsx-a11y/no-distracting-elements` *(breaking: consolidated no-marquee and no-blink into this rule.)*
530
+ - `jsx-a11y/no-redundant-roles`
531
+ - [fix] - redundant-alt to only check full words
532
+ - [docs] - Documentation upgrades across the board.
533
+ - [new] - Add `ignoreNonDom`
534
+ - [dev] - Add script to scaffold new rule creation.
535
+
536
+
537
+ 3.0.2 / 2016-12-14
538
+ ==================
539
+ - [fix] - make `aria-invalid` values true and false pass for rule `aria-proptypes`
540
+
541
+ 3.0.1 / 2016-10-11
542
+ ==================
543
+ - [breaking] - Update all rule schemas to accept objects. This allows a future schema expansion to not be a breaking change.
544
+ - [breaking] - All rules with schemas that accepted a string OR array, now only allows an array.
545
+ - [new] - `href-no-hash` accepts new schema property `specialLink` to check for custom `href` properties on elements. (fixes [#76](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/76))
546
+ - [breaking][fix] - `img-has-alt` now prefers `alt=""` over `role="presentation"`. You can set both, but not just `role="presentation"` by itself to ensure a11y across all devices.
547
+
548
+ Note - see [rule documentation](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules) for updated schemas.
549
+
550
+ 2.2.3 / 2016-10-08
551
+ ==================
552
+ - [fix] - Add `switch` aria role.
553
+ - [devDependencies] - Updgrade dev dependencies and fix linting issues.
554
+
555
+
556
+ 2.2.2 / 2016-09-12
557
+ ==================
558
+ - [fix] `x-has-content` rules now pass with children prop set.
559
+
560
+
561
+ 2.2.1 / 2016-08-31
562
+ ==================
563
+ - [fix] Update `tablist` role to include missing property `aria-multiselectable`.
564
+
565
+
566
+ 2.2.0 / 2016-08-26
567
+ ==================
568
+ - [new] Add `click-events-have-key-events` rule.
569
+ - [new] Add `no-static-element-interactions` rule.
570
+ - [devDependencies] Upgrade `eslint`, `eslint-config-airbnb`, `mocha` to latest.
571
+ - [lint] Fix all new linting errors with upgrade
572
+ - [nit] Use `error` syntax over `2` syntax in recommended config.
573
+
574
+
575
+ 2.1.0 / 2016-08-10
576
+ ==================
577
+ - [fix] Require `aria-checked` for roles that are subclasses of `checkbox`
578
+ - [new] Add `anchor-has-content` rule.
579
+ - [refactor] Use new eslint rule syntax
580
+ - [new] Add support for custom words in `img-redundant-alt` (mainly for i18n).
581
+
582
+
583
+ 2.0.1 / 2016-07-13
584
+ ==================
585
+ - [fix] JSXElement support in expression handlers for prop types.
586
+ - [fix] `heading-has-content`: dangerouslySetInnerHTML will pass.
587
+
588
+
589
+ 2.0.0 / 2016-07-12
590
+ ==================
591
+ - [breaking] Scope `no-onchange` rule to select menu elements only.
592
+
593
+
594
+ 1.5.5 / 2016-07-05
595
+ ==================
596
+ - [fix] Add `eslint` v3 as a `peerDependency`.
597
+
598
+
599
+ 1.5.4 / 2016-07-05
600
+ ==================
601
+ - [fix] Add `eslint` as a `peerDependency`.
602
+
603
+
604
+ 1.5.3 / 2016-06-16
605
+ ==================
606
+ - [fix] Fix crash when ``<ELEMENT role />`` for `role-supports-aria-props`.
607
+
608
+
609
+ 1.5.2 / 2016-06-16
610
+ ==================
611
+ - [fix] Fix `img-redundant-alt` rule to use `getLiteralPropValue` from `jsx-ast-utils`.
612
+
613
+
614
+ 1.5.1 / 2016-06-16
615
+ ==================
616
+ - [fix] Fix checking for undefined in `heading-has-content` for children content.
617
+
618
+
619
+ 1.5.0 / 2016-06-16
620
+ ==================
621
+ - [new] Add [heading-has-content](docs/rules/heading-has-content.md) rule.
622
+ - [new] Add [html-has-lang](docs/rules/html-has-lang.md) rule.
623
+ - [new] Add [lang](docs/rules/lang.md) rule.
624
+ - [new] Add [no-marquee](docs/rules/no-marquee.md) rule.
625
+ - [new] Add [scope](docs/rules/scope.md) rule.
626
+
627
+
628
+ 1.4.2 / 2016-06-10
629
+ ==================
630
+ - [new] Integrate with latest `jsx-ast-utils` to use `propName` function. More support for namespaced names on attributes and elements.
631
+
632
+
633
+ 1.4.1 / 2016-06-10
634
+ ==================
635
+ - [fix] Handle spread props in `aria-unsupported-elements` and `role-supports-aria-props` when reporting.
636
+
637
+
638
+ 1.4.0 / 2016-06-10
639
+ ==================
640
+ - [dependency] Integrate [jsx-ast-utils](https://github.com/jsx-eslint/jsx-ast-utils)
641
+ - [fix] Better error reporting for aria-unsupported-elements indicating which prop to remove.
642
+
643
+
644
+ 1.3.0 / 2016-06-05
645
+ ==================
646
+ - [new] Spelling suggestions for incorrect `aria-*` props
647
+ - [fix] Ensure `role` value is a string before converting to lowercase in `img-has-alt` rule.
648
+
649
+
650
+ 1.2.3 / 2016-06-02
651
+ ==================
652
+ - [fix] Handle dynamic `tabIndex` expression values, but still retain validation logic for literal `tabIndex` values.
653
+
654
+
655
+ 1.2.2 / 2016-05-20
656
+ ==================
657
+ - [fix] Fix checks involving the tabIndex attribute that do not account for integer literals
658
+
659
+
660
+ 1.2.1 / 2016-05-19
661
+ ==================
662
+ - [fix] Avoid testing interactivity of wrapper components with same name but different casing
663
+ as DOM elements (such as `Button` vs `button`).
664
+
665
+
666
+ 1.2.0 / 2016-05-06
667
+ ==================
668
+ - [new] Import all roles from DPUB-ARIA.
669
+
670
+
671
+ 1.1.0 / 2016-05-06
672
+ ==================
673
+ - [new] Add expression value handler for `BinaryExpression` type.
674
+ - [new] Add expression value handler for `NewExpression` type.
675
+ - [new] Add expression value handler for `ObjectExpression` type.
676
+ - [fix] Throws error when getting an expression of type without a handler function.
677
+ - This is for more graceful error handling and better issue reporting.
678
+
679
+
680
+ 1.0.4 / 2016-04-28
681
+ ==================
682
+ - [fix] Add expression value handler for `ConditionalExpression` type.
683
+
684
+
685
+ 1.0.3 / 2016-04-25
686
+ ==================
687
+ - [fix] Fix typo in recommended rules for `onclick-has-focus`.
688
+
689
+
690
+ 1.0.2 / 2016-04-20
691
+ ==================
692
+ - [fix] Add expression value handler for `ThisExpression` type.
693
+
694
+
695
+ 1.0.1 / 2016-04-19
696
+ ==================
697
+ - [fix] Fix build to copy source JSON files to build output.
698
+
699
+
700
+ 1.0.0 / 2016-04-19
701
+ ==================
702
+ - [breaking] Rename `img-uses-alt` to `img-has-alt`
703
+ - [breaking] Rename `onlick-uses-role` to `onclick-has-role`
704
+ - [breaking] Rename `mouse-events-map-to-key-events` to `mouse-events-have-key-events`
705
+ - [breaking] Rename `use-onblur-not-onchange` to `no-onchange`
706
+ - [breaking] Rename `label-uses-for` to `label-has-for`
707
+ - [breaking] Rename `redundant-alt` to `img-redundant-alt`
708
+ - [breaking] Rename `no-hash-href` to `href-no-hash`
709
+ - [breaking] Rename `valid-aria-role` to `aria-role`
710
+
711
+ - [new] Implement `aria-props` rule
712
+ - [new] Implement `aria-proptypes` rule
713
+ - [new] Implement `aria-unsupported-elements` rule
714
+ - [new] Implement `onclick-has-focus` rule
715
+ - [new] Implement `role-has-required-aria-props` rule
716
+ - [new] Implement `role-supports-aria-props` rule
717
+ - [new] Implement `tabindex-no-positive` rule
718
+
719
+
720
+ 0.6.2 / 2016-04-08
721
+ ==================
722
+ - [fix] Fix rule details for img-uses-alt: allow alt="" or role="presentation".
723
+
724
+
725
+ 0.6.1 / 2016-04-07
726
+ ==================
727
+ - [fix] Do not infer interactivity of components that are not low-level DOM elements.
728
+
729
+
730
+ 0.6.0 / 2016-04-06
731
+ ==================
732
+ - [breaking] Allow alt="" when role="presentation" on img-uses-alt rule.
733
+ - [new] More descriptive error messaging for img-uses-alt rule.
734
+
735
+
736
+ 0.5.2 / 2016-04-05
737
+ ==================
738
+ - [fix] Handle token lists for valid-aria-role.
739
+
740
+
741
+ 0.5.1 / 2016-04-05
742
+ ==================
743
+ - [fix] Handle null valued props for valid-aria-role.
744
+
745
+
746
+ 0.5.0 / 2016-04-02
747
+ ==================
748
+ - [new] Implement valid-aria-role rule. Based on [AX_ARIA_01](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_01)
749
+
750
+
751
+ 0.4.3 / 2016-03-29
752
+ ==================
753
+ - [fix] Handle LogicalExpression attribute types when extracting values. LogicalExpressions are of form `<Component prop={foo || "foobar"} />`
754
+
755
+
756
+ 0.4.2 / 2016-03-24
757
+ ==================
758
+ - [fix] Allow component names of form `Object.Property` i.e. `UX.Layout`
759
+
760
+
761
+ 0.3.0 / 2016-03-02
762
+ ==================
763
+ - [new] Implement [no-hash-href](docs/rules/no-hash-href.md) rule.
764
+ - [fix] Fixed TemplateLiteral AST value building to get more exact values from template strings.
765
+
766
+
767
+ 0.2.0 / 2016-03-01
768
+ ==================
769
+ - [new] Implement [redunant-alt](docs/rules/redundant-alt.md) rule.
770
+
771
+
772
+ 0.1.2 / 2016-03-01
773
+ ==================
774
+ - Initial pre-release.