38405ad [Fix] no-interactive-tabindex: allow role assignments using a ternary with literals on both sides7524e0c [Fix] no-static-element-interactions: allow role assignments using a ternary with literals on both sides (#865)1c06306 [readme] properly describe rule settings in builtin configs0c19f02 [Docs] no-noninteractive-tabindex, no-static-element-interactions: document allowExpressionValues (#870)2c6926c [Deps] unpin axe-coreb78f19d [Deps] pin axe-core to v4.4.1, due to a breaking change in a patch768910e [Deps] update @babel/runtimef0e04ce [Deps] update @babel/runtime, jsx-ast-utils93b2a9d [Dev Deps] update @babel/cli, @babel/core, @babel/eslint-parser, @babel/plugin-transform-flow-strip-types, @babel/registera962211 [Dev Deps] update @babel/cli, @babel/core, @babel/plugin-transform-flow-strip-types, @babel/register0d2bc43 [Tests] no-noninteractive-element-interactions: add passing test cases (#876)ffefbad [Tests] no-noninteractive-element-interactions: add passing tests for form with onSubmit (#871)e7d405d [Tests] no-static-element-interactions: add passing test cases566011b [New] aria-role: add allowedInvalidRoles option (#828)64dcac6 [New] Introduce a plugin-wide setting for custom components. (#844)ce2c328 [Fix] no-redundant-roles, role-supports-aria-props: Remove implicit role from dl element (#848)fb20bc4 [Refactor] role-supports-aria-props: clean up the logic a bit[].concat idiom0f1615a [Docs] no-static-element-interactions: Update error message (#843)9980d1d [Docs] Add infrastructure for auto-generating markdown table and list (#837)f878d3b [Docs] Update project readme (#831)aea7671 [Deps] update @babel/runtime, array-includes, axe-core, jsx-ast-utilsd74173a [Deps] update jsx-ast-utilsf6ba03c [Deps] update @babel/runtime, jsx-ast-utils547dab4 [Deps] update @babel/runtime, axe-core, minimatchbaaf791 [Deps] update @babel/runtime, minimatch, semverc015fef [Deps] update @babel/runtime, axe-core, damerau-levenshtein832cbd6 [meta] add export default instead of module.exports (#861)ee933a2 [meta] Add CONTRIBUTING.md to solicit contributions (#846)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-importfb3d51e [Dev Deps] update @babel/core, @babel/register, eslint-plugin-import, minimist8c1df4d [Dev Deps] pin @technote-space/doctoc because v2.5 is a breaking changefb071ab [Dev Deps] update @babel/cli, @babel/core, @babel/eslint-parser, @babel/plugin-transform-flow-strip-types, eslint-plugin-eslint-plugin5e966e5 [Dev Deps] update @babel/clif597f5b [Dev Deps] update @babel/cli, @babel/core, @babel/eslint-parser287854a [Tests] Fix npm run flow (#856)112261c [Tests] skip fragment tests in eslint < 6ea877c4 [Tests] img-redundant-alt-test: add passing tests (#832)685426d test: align usage of jest expect across tests (#827)c460a8b [Tests] move invalid test case to valid; changed in axe-core v4.40f5f582 [New] support ESLint 8.x (#810)1dbc416 [Deps] update @babel/runtime, axe-core4043d31 [Dev Deps] update @babel/cli, @babel/core, @babel/eslint-parser, @babel/plugin-transform-flow-strip-types, eslint-config-airbnb-based143cba [Docs] HTTP => HTTPS (#823)309b040 [Docs] anchor-has-content: add missing close / for jsx succeed example (#821)ba1e312 [eslint] simplify eslint commandmaster references in URLs to HEADf1414cf [Dev Deps] add eslint-plugin-eslint-plugin (#818)f44fc05 [meta] update URLsdf34872 [Refactor] switch to export default syntax for exporting rules (#819)ff26b82 [meta] fix prepublish scriptsd4a57d8 [Deps] update @babel/runtime, array-includes, axe-core, jsx-ast-utilsbd1dec6 [Dev Deps] update @babel/cli, @babel/core, @babel/eslint-parser, eslint-plugin-import, estraverse, safe-publish-latest434c4cf [Tests] do not test eslint 7 on node 11aed7a20 [Tests] use @babel/eslint-parser instead of babel-eslint (#811).github repoecf7a27 [Docs] scope: replace duplicate scope word (#799)952af25 [Fix] no-access-key: Fix wording and grammar (#800)6cf7ac0 [Dev Deps] update @babel/cli, @babel/core, @babel/plugin-transform-flow-strip-types, aud, eslint-plugin-flowtype, eslint-plugin-import79a35d4 [Deps] update @babel/runtime, axe-core, damerau-levenshtein2a9ab71 [Tests] delete src/util/getComputedRole-test.js test in node 60c1c587 [Tests] autocomplete-valid: move some failed tests to passingimport typed57887c [Tests] ensure all tests run55e5c11 Support img role for canvas (#796)36102cd [meta] use prepublishOnly script for npm 7+2501a7f Remove the link-button focus css from the anchor-is-valid doc (#662)d927625 Update recommended config to allow fieldset to have the radiogroup role (#746)5aa8db9 [Docs] Clarify the title of the strictness table in the main doc (#786)df3c7ad [Docs] Document the similarity between html-has-lang and lang (#778)426d4c2 Fix Flow warnings (#785)ecec8e4 Fully deprecate accessible-emoji rule (#782)8a0e43c [Tests] remove .travis.ymlf88bf6b [Dev Deps] update flow-bin to support aarch64 (#784)369f9db [Dev Deps] update @babel/cli, @babel/core, @babel/plugin-transform-flow-strip-types, aud, eslint-plugin-flowtype, jscodeshiftce0785f [Deps] update @babel/runtime, array-includes, axe-core, emoji-regex2c2a2ad [actions] update to use node/install actionc275964 [Docs] anchor-is-valid: general cleanup (#728)3df059e [Docs] no-redundant-roles: Adds missing closing square bracket (#775)42ce5b7 [Docs] anchor-is-valid: Add Next.js case (#769)2e5df91 [Tests] fix tests breaking on npm 7066ccff [Docs] no-noninteractive-tabindex: Add example for tabIndex on seemingly non-interactive element (#760)6b19aa5 [Tests] migrate tests to Github Actions (#764)7e158e3 [meta] run aud in posttest71f390f [Tests] stop using coverallse54b466 [meta] add Automatic Rebase and Require Allow Edits workflows7d5511d [New] label-has-associated-control: Add glob support (#749)854da0c Ran npm update; latest packages (#763)8637aa7 (source/pr/734, fork/pr/26) [patch] strict config: Turn off label-has-for (#734)d85ce54 [doc] Add link to MDN Aria documentation (#762)20b48a4 [patch] no-onchange: Remove rule from recommended/strict configs, and deprecate (#757)f8a4496 Upgrade jsx-ast-utils to v3.1.083e4ff2 [Deps] update axe-core, jsx-ast-utilseb92b07 [Dev Deps] update @babel/cli, @babel/core, @babel/plugin-transform-flow-strip-types, eslint-plugin-flowtype, eslint-plugin-import, estraverse, expect, object.assign3d98d7a [Deps] update @babel/runtime, axe-coref702f62 [readme] add Spanish translationc2ae092 [Docs] no-static-element-interactions: Fixed rule name in commentsb90e20d Fix screenreader -> screen reader645900a Fixed rule name in comments381b9d6 [fix:634] Ignore control elements that are hidden2c47f0a [Fix] autocomplete-valid: workaround for axe not being able to handle null00bd6d8 Add failing test for autocomplete with dynamic type3c49c9a Add WCAG guidelines to rule documentation4ecaf35 Add a testcase for tablist to interactive supports focusdac6864 Deprecate the accessible-emoji ruleb315698 Allow negative tabindex in aria-activedescendant-has-tabindex8e6fcd0 docs: fix travis badge now points to correct location at travis-ci.com2234df7 Account for additional control elements in label-has-associated-control5cbb718 Adding test cases for label tests66c425c Additional test case for no-redundant-roles765da0f Update to aria-query 4.2.2d528e8c Fix aria-level allowed on elements wit role heading (#704)29c6859 [meta] remove yarn registry from npmrc, so publishing worksf52c206 chore(package): update estraverse to version 5.0.0cce838a Update aria-query to 4.2.0121e8a4 Add two test cases found while upgrading to ARIA 1.28059f51 Fix test failures raised by the upgrade to ARIA 1.20d24e3a Update package.jsonb1f412a Fix test failures in role-has-required-aria-props due to ARIA 1.2 updates74cec6e Fix test failures in no-noninteractive-element-interactions due to ARIA 1.2 updates835b89e Fix test failures in role-supports-aria-props-test due to ARIA 1.2 updates730319b Account for the null semantic generic role in ARIA 1.27dfa7c9 Update aria-query from 4.0.1 to 4.0.242098b9 [Refactor] img-redundant-alt: removing a use of somea910d83 [Tests] label-has-associated-control: add test for b273fe5 [New] Support ESLint 7.x1a97632 [Deps] update @babel/runtime, array-includes, axe-core, axobject-query, damerau-levenshtein, jsx-ast-utilsb36976f [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-latest89acdc4 fix: removing the use of the some function410ae43 chore(package): update eslint-plugin-flowtype to version 5.0.0a87f83d fix(package): update emoji-regex to version 9.0.071940e6 chore(package): update babel-preset-airbnb to version 5.0.0d471f54 docs: Fix 404 links to WAI-ARIA spec42a2016 Fixes #669: use the language-tags package to check the lang rule7bcea20 [Tests] update axe-coref13dc38 [Deps] Pin axe-core version33670bb fix: require missing 'autocomplete-valid' ruleaca4c37 chore(mouse-event): revert unrelated formatting changesdf1e275 fix(mouse-event): remove check from custom elements1a16a1c chore(package): update jscodeshift to version 0.7.07a55cdd chore(package): update flow-bin to version 0.113.08e0d22b Update aria-query and axobject-query to the latest versionsdd49060 Added test cases for an empty or undefined value of aria-label and aria-labelledby in alt-text1a7b94f Updated dependencies including eslint-config-airbnb-base3aea217 chore: replace ignoreNonDOM with inputComponents1848d00 feat(autocomplete-valid): add to recommended & strict config3519c7b chore: Remove axe VirtualNode abstraction9ac55c4 autocomplete-valid: Add inline comment44c6098 Update axe-core to 3.3.082f598e [Docs] examples: add language in code block for syntax highlight2529ad3 fixing casing issue on aria-props00926f2 Update README.mdce5d121 Update README.md031574e chore(package): update flow-bin to version 0.103.0e00e1db [meta] add FUNDING.ymle1e5fae Fix readme file9980e45 [fix] Prevent Error when JSXSpreadAttribute is passed to isSemanticRoleElementf234698 [docs] add How to manage IDs9924d03 [docs] document jsx-a11y/label-has-associated-control assert option77b9870 [docs] Add newlines below headings8244e43 [docs] Add syntax highlighting to example26f41c8 [docs] Change explanation for role="presentation" escape hatch33a1f94 [fix] - Purely decorative emojis do not need descriptions.29d20f7 fix: update emoji-regex to version 7.0.20b63f73 chore: update flow-bin to version 0.88.0baa1344 [fix] Disable jsx-a11y/label-has-for in recommended2c5fb06 chore: update jscodeshift to version 0.6.087debc0 [fix] corrected no-noninteractive-element-to-interactive-role.md filed56265b chore: update flow-bin to version 0.87.0477966f [fix] Update test for implicit role of imgf484ce3 [fix] No implicit role for <img> with alt=""6c33bcb [fix] Add select to the list of default control elements in label-has-associated-control011f8d9 [fix] Dialog and Alert roles can host keyboard listeners0f6a8af [fix] More easier plugin:jsx-a11y/{recommended,strict} configs93265cb [fix] normalizedValues to values651366c [fix] Make aria-role case sensitive56d3b9a [fix] [484] Fix role-has-required-aria-props for semantic elements like input[checkbox]46e9abd [fix] Handle the type={truthy} case in jsxlabel-has-for: textareas are inputs too #470.npmignore with / so it only matches the top-level directorysrc and flow from package to resolve flow issues for consuming packages.anchor-is-valid. See documentation for configuration options. Thanks @AlmeroSteyn.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.label-has-for now allows inputs nested in label tags. Previously it was strict about requiring a for attribute. Thanks @ignatiusreza and @mjaltamirano.interactive-supports-focus. Recommended and strict configs for now contain a trimmed-down whitelist of roles that will be checked.media-has-caption. Thanks @ismail-syed.aria-props rule incorrectly threw errors for these new properties.label-has-for: add "required" option to allow customization (#240)anchor-is-valid (#224)interactive-supports-focus: Split interactive supports focus into tabbable and focusable cases (#236)anchor-is-valid: add aspects option (#251)flow directory from .npmignore to accommodate explicit imports from v5.0.2.img-has-alt rule into alt-text ruleonclick-has-role is removed. Replaced with no-static-element-interactions and no-noninteractive-element-interactions.onclick-has-focus is removed. Replaced with interactive-supports-focus.media-has-caption ruleignoreNonDOM option to no-autofocus.no-interactive-element-to-noninteractive-roleno-noninteractive-element-to-interactive-roleno-noninteractive-tabindexno-static-element-interactions and no-noninteractive-element-interactions. Options allow for fine-tuning of elements and event handlers to check.Add new rules:
jsx-a11y/accessible-emojijsx-a11y/aria-activedescendant-has-tabindexjsx-a11y/iframe-has-titlejsx-a11y/no-autofocusjsx-a11y/no-distracting-elements (breaking: consolidated no-marquee and no-blink into this rule.)jsx-a11y/no-redundant-rolesignoreNonDomaria-invalid values true and false pass for rule aria-proptypeshref-no-hash accepts new schema property specialLink to check for custom href properties on elements. (fixes #76)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.Note - see rule documentation for updated schemas.
switch aria role.x-has-content rules now pass with children prop set.tablist role to include missing property aria-multiselectable.click-events-have-key-events rule.no-static-element-interactions rule.eslint, eslint-config-airbnb, mocha to latest.error syntax over 2 syntax in recommended config.aria-checked for roles that are subclasses of checkboxanchor-has-content rule.img-redundant-alt (mainly for i18n).heading-has-content: dangerouslySetInnerHTML will pass.no-onchange rule to select menu elements only.eslint v3 as a peerDependency.eslint as a peerDependency.<ELEMENT role /> for role-supports-aria-props.img-redundant-alt rule to use getLiteralPropValue from jsx-ast-utils.heading-has-content for children content.jsx-ast-utils to use propName function. More support for namespaced names on attributes and elements.aria-unsupported-elements and role-supports-aria-props when reporting.aria-* propsrole value is a string before converting to lowercase in img-has-alt rule.tabIndex expression values, but still retain validation logic for literal tabIndex values.Button vs button).BinaryExpression type.NewExpression type.ObjectExpression type.ConditionalExpression type.onclick-has-focus.ThisExpression type.img-uses-alt to img-has-altonlick-uses-role to onclick-has-rolemouse-events-map-to-key-events to mouse-events-have-key-eventsuse-onblur-not-onchange to no-onchangelabel-uses-for to label-has-forredundant-alt to img-redundant-altno-hash-href to href-no-hash[breaking] Rename valid-aria-role to aria-role
[new] Implement aria-props rule
[new] Implement aria-proptypes rule
[new] Implement aria-unsupported-elements rule
[new] Implement onclick-has-focus rule
[new] Implement role-has-required-aria-props rule
[new] Implement role-supports-aria-props rule
[new] Implement tabindex-no-positive rule
<Component prop={foo || "foobar"} />Object.Property i.e. UX.Layout