Skip to content

Release v4.4.0

Compare
Choose a tag to compare
@straker straker released this 31 Jan 17:25
· 629 commits to master since this release
2c6f028

Features

  • add new ARIA roles (#3138) (61be7e5)
  • aria-allowed-attr: report violation for non-global ARIA attrs on element without role (#3342) (fb5d990)
  • aria-allowed-attr: report violations for non-global ARIA attributes on elements without a role (#3102) (87cfc0b)
  • color-contrast: add support for CSS mix-blend-mode (#3226) (d497f40)
  • commons: deprecate shadowElementsFromPoint (#3311) (c3a7d16)
  • configure: Deprecate branding: Object, use a string instead. (#3278) (1f01309)
  • dpub: upgrade to DPUB 1.1 and report deprecated roles (#3280) (034a846)
  • options: make axe.ping configurable with pingWaitTime (#3273) (ce4dfaf)
  • rule: add new color-contrast-enhanced rule (WCAG AAA) (#3235) (bec20fc), closes #2934

Bug Fixes

  • allowed-role: area without href can have a button or link role (#3275) (bf7e60a)
  • aria-allowed-attr: check for invalid aria-attributes for role="row" (#3160) (cfa900d)
  • aria-allowed-attr: revert violation for non-global ARIA attrs on element without role (#3243) (112b960)
  • aria-allowed-children,aria-allowed-parent: allow group role in listbox (#3195) (cb01975)
  • aria-allowed-role: allow title, aria-label and aria-labelledby on a img element with a supported role (#3224) (006a681)
  • aria-allowed-role: landmark roles banner on header and contentinfo on footer to only report on top-level rule (#3142) (1fd4b00)
  • aria-allowed-roles: allow role=radio on img with non-empty name (#3320) (accafdf)
  • aria-allowed-roles: update role allowances for section element (#3238) (99676ec), closes #3237
  • aria-allowed-role: Update allowed roles based on ARIA spec updates (#3124) (00f6efc)
  • aria-allowed-role: updates the allowed roles for the wbr element to none and presentation (#3192) (2f439b3), closes #3177
  • aria-prohibited-attr: update metadata message (#3206) (d1a768e)
  • autocomplete-valid: Allow custom autocomplete attribute values (#3225) (6076ee8)
  • axe.configure: do not remove newline characters from locale doT strings (#3216) (ea2ce17)
  • axe.d.ts: allow Node for include/exclude object (#3338) (e699939)
  • axe.run: add option to increase iframe ping timeout (#3233) (ec937e3)
  • check for hidden elements on aria-errormessage (#3156) (95d37dd)
  • color-contrast: account for 0 width scroll regions with children (#3172) (5908f0d)
  • color-contrast: account for elements that do not fill entire bounding size (#3186) (699697b)
  • color-contrast: check bg on fg contrast for thin text-shadows (#3350) (d92a7e5)
  • color-contrast: correctly apply page background color (#3207) (fbc581d)
  • color-contrast: correctly compute color-contrast of truncated children (#3203) (ac7b2b5)
  • color-contrast: correctly handle nested scroll regions (#3212) (22db29c)
  • color-contrast: correctly work with positioned elements without z-index (#3209) (725a20c)
  • color-contrast: inconsistency of bgOverlap message based on scroll (#3310) (25eff98)
  • color-contrast: properly blend multiple alpha colors (#3193) (e930a70)
  • core: Incomplete fallback was missing, and could cause infinite loop (#3302) (f23d8c8)
  • custom-elms: Don't error on custom Element.children prop (#3326) (2ad92f6)
  • d.ts: Add PartialResults type (#3126) (544b6d5)
  • get-selector: do not URL encode or token escape attribute selectors (#3215) (6f7e183)
  • getFrameContext: option.iframe=false always returns an empty array (#3279) (dfa9725)
  • greater consistency of help / description text (#3204) (0677565)
  • is-visible: do not error if window.Node does not exist (#3168) (4046087)
  • jsdoc: typo Sting -> String (d1cc205)
  • label-content-name-mismatch: account for formatting elements (#3349) (53a6684)
  • label-title-only: allow hidden labels (#3183) (cad3994)
  • listitem: allow as child of menu (#3286) (4bf7d35)
  • nativeSelectValue: update selected value on change (#3154) (1ee88cb)
  • nested-interactive/aria-text: allow "tabindex=-1" on elements with no role (#3165) (0ddc00b), closes #2466 #2934 #2934
  • nested-interactive: add focusable descendants as related nodes (#3261) (3b2fdda)
  • nested-interactive: add message for negative tabindex (#3194) (b445291), closes #2466 #2934 /github.com/dequelabs/axe-core/issues/3163#issuecomment-949804464
  • nested-interactive: update negative tabindex message to include asssistive technologies (#3262) (b985776)
  • p-as-heading: p-as-heading rule to account for textContent length (#3145) (400a230)
  • prohibited-attr: always report incomplete if there is text in the subtree (#3347) (2e27dca)
  • region: Allow skip menu buttons (#3277) (6b6f2e3)
  • remove optional crypto dependency (webpack compatibility) (#3358) (aa9d095)
  • reporter: Run inside isolated contexts (#3129) (afe6675)
  • respondable: avoid crashes if the data in window.postMessage is null (#3249) (b37b2f6)
  • scrollable-region-focusable: treat overflow:clip as hidden (#3304) (ef45377)
  • Separate Level AAA rules from A and best-practices (#3191) (828e526)
  • skip-link: work with absolute and relative paths (#2875) (ee49d3e)
  • typescript: allow passing a NodeList to ElementContext (#3161) (ad4b165)