Skip to content

Releases: dequelabs/axe-core

Release 4.13.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 16:52
1cc54b9

In summary, this release adds:

  1. Support Element Internals: A modern way for building accessible component libraries
    Axe-core is the first accessibility tool to support this major new web feature!
    Thanks to RedHat and Adobe for working with us to figure out the right way forward.

  2. A new Swedish translation, thanks to our a community contribution

  3. A new Finish contribution (not open source), thanks to our Scandinavian partner

  4. 10 False positives closed, including all the critical ones!

  5. And 13 updates to get Axe-core consistent with the latest web standards

This release is one of the bigger changes we've done in a few years, so likely issue numbers are going to change in adopting this version.

Features

  • aria-actions: add aria-actions to allowed ARIA attributes (#5200) (029655d), closes #4584 #5199, references #5215 #5215
  • aria-allowed-attr: flag deprecated ARIA attributes as needs-review (#5246) (518f3cc), closes #3341
  • aria-prohibited-attr: allow many elements to be named and disallow label and body from being named (#5259) (d8b1ea5)
  • aria-roles: add sectionheader and sectionfooter roles (#5238) (c36c109), closes #4734, references #4734
  • aria/get-aria-value: new function to get aria values of a node (#5109) (a7d8f3e), references #5042
  • aria/has-attr-value: new function to check if node has aria value (#5136) (61f2624), references #5109
  • aria: support role=image as equivalent to role=img (#5248) (5aa8aaf), closes #4656, references #5272
  • checks/aria: support ARIA element internals properties (#5172) (9b7f754)
  • checks/label: support ARIA element internals properties (#5170) (21c5f8b)
  • checks/navigation: support ARIA element internals properties (#5167) (2c3a98f)
  • commons/aria: support ARIA element internals properties (#5171) (31f09e7)
  • commons/dom: support ARIA element internals properties (#5163) (f0a12cf)
  • commons/forms: support ARIA element internals properties (#5165) (27a4686)
  • commons/matches/fromPrimative: deprecate in favor of correct spelling (#5270) (31cfb2e)
  • commons/text: support ARIA element internals properties (#5169) (e841a33)
  • commons/text: support form-associated labels via element internals (#5182) (57cfe0a), closes #5045, references #5170 #5039 #5151 #5039
  • dom/getResolvedRefs: new function to get the resolved virtual nodes of idrefs (#5151) (489cdea), references #5109
  • element-internals: enable ElementInternals by default (#5284) (2740d42), closes #5277
  • i18n: Add Swedish locale (#5190) (dcd13f2), references #5189
  • matches: add inSectioningContent, hasChild, and isSummaryForDetails matches (#5262) (c47cdcd)
  • rules: support ARIA element internals properties (#5168) (065baf7)
  • standards/ariaAttrs: add caseInsensitive property for attributes (#5224) (bcd791c)

Bug Fixes

  • aria-allowed-role: allow roles on a non-details summary (#5242) (3bd9875), closes #3911, references #3443 #3911
  • aria-allowed-role: restrict figure roles with child figcaption (#5240) (178a635), closes #3443
  • aria-prohibited-attr: visible aria-labelledby requires review only (#5285) (fd6fa9f)
  • axe.d.ts: make enabled property of RuleMetadata optional (#5129) (90fce18)
  • color-contrast: fix various stacking context bugs (#5214) (d5e5b04), references #8 #5213
  • gather-internals: handle non-HTMLElement nodes (#5161) (06e84c3)
  • get-selector: escape control characters in attribute selectors (#5273) (4b60ac5), closes #5204 #5204
  • image-alt: allow whitespace alt on presentational images (#5218) (c5dd0ef), closes #5216
  • landmark-unique: exclude section/form with non-landmark roles from landmark match (#5085) (c5fd013), closes #4722 #5064
  • name the image role in role-img-alt and svg-img-alt metadata (#5279) ([995a269](995a269b3...
Read more

Release 4.12.1

Choose a tag to compare

@github-actions github-actions released this 10 Jun 10:27
5d002cc

Bug FixesThis release does not impact axe results.

  • axe.d.ts: make enabled property of RuleMetadata optional (#5129) (7eb3d2d)

Release 4.12.0

Choose a tag to compare

@github-actions github-actions released this 01 Jun 17:21
e260c7e

In this release you'll find:

  1. A new aria-tab-name rule that tests role="tab" elements have an accessible name
  2. The landmark-complementary-is-top-level rule is deprecated, as ARIA no longer requires this
  3. Preparations for Element Internal support (behind a feature flag)
  4. Various other bug fixes for target-size, scrollable-region-focusable, and more

This release can see reveal new issues, as well as close out a few existing ones that might have come from false positives or the now deprecated rule.

Features

  • add gather-internals.js external script (#5099) (c61d58b), closes #5080
  • aria-allowed/prohibited-attr, aria-required-parent/children: partially support element internals role (#5080) (417b48a), closes #5039 #4259
  • axe.externalAPIs: add public api for setting elementInternal data (#5105) (63bab8f)
  • core: expose normalizeRunOptions (#4998) (b8e6a59)
  • expose axe.resetLocale() to restore the default locale (#5108) (c2b5292), closes #5107
  • getRules: include rule enabled state in returned objects (#5118) (75bf772), closes #5116
  • list,listitem: support element internals role (#5119) (7d9d696)
  • new-rule: check that aria-tab have an accessible name (#5001) (0d4e4e7), closes #4842
  • rules: deprecate landmark-complementary-is-top-level rules (#4992) (9e09139), closes #4950
  • utils: add getElementInternals function (#5077) (1c15f82)

Bug Fixes

  • aria-allowed-attr: restrict br and wbr elements to aria-hidden only (#4974) (c6245e7)
  • aria-conditional-attr: add support for radio (#5100) (8223c98)
  • aria-valid-attr-value: handle multiple aria-errormessage IDs (#4973) (0489e30)
  • aria: prevent getOwnedVirtual from returning duplicate nodes (#4987) (48ca955), closes #4840
  • commons/text: exclude natively hidden elements from aria-labelledby accessible name (#5076) (ea7202c), closes #4704
  • DqElement: avoid calling constructors with cloneNode (#5013) (0281fa1)
  • existing-rule: aria-busy now shows an error message for a use with unallowed children (#5017) (2067b87)
  • helpUrl: ensure axe.configure always updates the help URLs (#5114) (c4f60ff)
  • label-content-name-mismatch: match visible text with aria-label and exclude invisible text (#5096) (3a012a1)
  • locale: ensure all subtags are correctly set (#5112) (13005ed)
  • scrollable-region-focusable: clarify the issue is in safari (#4995) (4ec5211), closes WebKit#190870 WebKit#277290
  • scrollable-region-focusable: do not fail scroll areas when all content is visible without scrolling (#4993) (838707a)
  • target-size: determine offset using clientRects if target is display:inline (#5012) (a4b8091)
  • target-size: ignore position: fixed elements that are offscreen when page is scrolled (#5066) (1229a6e), closes #5065
  • target-size: ignore widgets that are inline with other inline elements (#5000) (a8dd81b)
  • utils/getAncestry: escape node name (#5079) (d1fabaa), closes #5078
  • utils: Add null check to parseCrossOriginStylesheet, closes #5074 (#5075) (f12ef32)
  • utils: update isShadowRoot to use spec-compliant custom element regex (#5059) (edc6ce2), closes #5030

Release 4.11.4

Choose a tag to compare

@WilcoFiers WilcoFiers released this 28 Apr 15:11
dfbc245

This release addresses an issue with ancestry selectors. It is unlikely to change the number of issues found by axe-core.

Bug Fixes

  • commons/text: exclude natively hidden elements from aria-labelledby accessible name (#5076) (df34adf), closes #4704
  • utils/getAncestry: escape node name (#5079) (6e68d0a), closes #5078

Release 4.11.3

Choose a tag to compare

@WilcoFiers WilcoFiers released this 13 Apr 18:15
c71e3dd

This release addresses a few false positives, which may reduce the number of issues on terget-size and aria-allowed-attr.

Bug Fixes

  • aria-allowed-attr: restrict br and wbr elements to aria-hidden only (#4974) (1d80163)
  • target-size: ignore position: fixed elements that are offscreen when page is scrolled (#5066) (5906273), closes #5065

Release 4.11.2

Choose a tag to compare

@WilcoFiers WilcoFiers released this 31 Mar 11:23
41093da

This release addresses a number of false positives, including ones related to target size. It adds new affordances for ARIA, and adds a clarification around the scrollable regions rule.

Bug Fixes

  • aria-valid-attr-value: handle multiple aria-errormessage IDs (#4973) (9322148)
  • aria: prevent getOwnedVirtual from returning duplicate nodes (#4987) (99d1e77), closes #4840
  • DqElement: avoid calling constructors with cloneNode (#5013) (88bc57f)
  • existing-rule: aria-busy now shows an error message for a use with unallowed children (#5017) (dded75a)
  • scrollable-region-focusable: clarify the issue is in safari (#4995) (2567afd), closes WebKit#190870 WebKit#277290
  • scrollable-region-focusable: do not fail scroll areas when all content is visible without scrolling (#4993) (240f8b5)
  • target-size: determine offset using clientRects if target is display:inline (#5012) (69d81c1)
  • target-size: ignore widgets that are inline with other inline elements (#5000) (cf8a3c0)

Release 4.11.1

Choose a tag to compare

@WilcoFiers WilcoFiers released this 06 Jan 19:10
fbd2f40

Release summary

This release addresses a number of false positives, which may result in a slightly lower number of issues reported. It also resolves a problem that caused the color contrast rule skip a page in edge cases. A page that wasn't tested because of this edge case may now be tested, and so could see new color contrast issues reported.

Lastly this rule corrects a few of the newly released RGAA tags, so when running an RGAA ruleset which rules run, and how they are mapped to RGAA is slightly different.

Bug Fixes

  • allow shadow roots in axe.run contexts (#4952) (d4aee16), closes #4941
  • color contrast fails for oklch and oklab with none (#4959) (8f249fd)
  • color-contrast: do not incomplete on textarea (#4968) (d271788), closes #4947
  • commons/color: Match browser behavior for out-of-gamut oklch colors (#4908) (5036be8)
  • don't runs rules that select html on nested html elements (#4969) (1e9a5c3)
  • replaced luminance threshold constant 0.03928 with 0.04045 (#4934) (316967d), closes #4933
  • rgaa: adjust mapping of aria-hidden-* and valid-lang (#4935) (77571f2)
  • valid-lang: update valid-langs for newer language codes (#4966) (c3f5446), closes #4963

Release 4.11.0

Choose a tag to compare

@attest-team-ci attest-team-ci released this 09 Oct 16:40
7dc4242

This release adds the new RGAA standard to many rules. Of particular note is that some best practice rules under WCAG are required under the RGAA standard: focus-order-semantics (experimental), region, skip-link, table-duplicate-name. This means that these rules are tagged as both best-practice and RGAAv4. Applications which are filtering rules based on the best-practice tags will need to update the logic in order to handle RGAA rules that are tagged best-practice.

Features

  • add RGAA tags to rules (#4862) (53a925a)
  • aria-prohibited-attr: add support for fallback roles (#4325) (62a19a9)
  • axe.d.ts: add nodeSerializer typings (#4551) (a2f3a48), closes #4093
  • DqElement: deprecate fromFrame function (#4881) (374c376), closes #4093
  • DqElement: Truncate large html strings when the element has a large outerHTML string (#4796) (404a4fb), closes #4544
  • get-xpath: return proper relative selector for id (#4846) (1035f9e), closes #4845
  • i18n: Add Portugal Portuguese translation (#4725) (5b6a65a)
  • incomplete with node on which an error occurred (#4863) (32ed8da)
  • locale: Added ru locale (#4565) (067b01d)
  • tap: some best practice rules map to RGAA (#4895) (bc33f4c)
  • td-headers-attr: report headers attribute referencing other elements as unsupported (#4589) (ec7c6c8), closes #3987

Bug Fixes

Release 4.10.3

Choose a tag to compare

@attest-team-ci attest-team-ci released this 05 Mar 16:07
f49c1c4

This release addresses a few performance issues, corrects a few typos, and addresses a few inconsistencies between axe and the latest web standards. This may, but is unlikely to reduce the total number of issues found.

Bug Fixes

  • aria-allowed-role: Add math to allowed roles for img element (#4658) (f6dddd9), closes #4657
  • captions: fix grammar in captions check incomplete message (#4661) (3ef7058)
  • consistently parse tabindex, following HTML 5 spec (#4637) (3b0a361), closes #4632
  • core: measure perf for async checks (#4609) (e7dc26e)
  • locale: fixed typos in german (DE) locale (#4631) (0740980)
  • locale: proofread and updated de.json (#4643) (910cdb2)
  • no-autoplay-audio: don't timeout for preload=none media elements (#4684) (b7f1ad1)
  • target-size: do not treat focusable tabpanels as targets (#4702) (67d4e4f), closes #4421 #4701

Release 4.10.2

Choose a tag to compare

@attest-team-ci attest-team-ci released this 23 Oct 16:43
4e226c1

This release prevents axe from sometimes crashing when a page changes in the middle of a test.

Bug Fixes

  • get-ancestry: don't error when there is no parent (#4617) (6c07102)