Features
Highlights
- new rule: Add WCAG 2.2 target-size rule (off by default) (#3616) (691f1b6)
- new rule: Add meta-refresh-no-exceptions (off by default, wcag2aaa) (#3530) (27031a8)
- identical-links-same-purpose: Disable by default (wcag2aaa rule) (#3615) (a2c2d2f)
- link-in-text-block: Remove experimental and enable by default (#3706) (37b6e7a)
- i18n: Add Norwegian Bokmål locale (#3375) (2886d33)
- i18n: Add Hebrew translation (#3438) (b4162ed)
Tags and Metadata Updates
Various changes of tags, for greater consistency with ACT Rules.
- area-alt: Remove the wcag111 tag (#3479) (1c3cc51)
- aria-hidden-focus: Remove the wcag131 tag (#3477) (36ace76)
- empty-table-headers: Rule is now best-practice and fails instead of incompletes (#3427) (0a4397d), closes #3404
- frame-title: Remove wcag241 tag (#3519) (9c6b828)
- input-image-alt: Add the wcag412 tag (#3478) (34272c6)
- label,select-name: Remove the sc131 tag (#3476) (7caef89)
- meta-viewport: Report as violation of wcag 1.4.4 (#3704) (6f7e4a9)
- metadata: Update ACT tags & actIds (#3498) (571722b)
Deprecations
- Deprecate Internet Explorer support (#3644) (11f5163)
- Deprecate sri-history.json file (#3646) (6f6a89e)
- Deprecate and replace dom.isVisible, utils.isHidden, and dom.isHiddenWithCss (#3351) (1ae2ac0)
- Deprecate only-dlitems-evaluate & only-listitems-evaluate methods (#3724) (322e9ed)
- Deprecate presentation-role-conflict-matchess (#3638) (0f02a15)
- Deprecate is-visible-matches, use is-visible-on-screen-matches (#3679) (738dd8f)
- Deprecate not-html-matches, use :not(html) instead (#3540) (e0010d9)
Others
- aria-roles: Permit fallback roles (#3683) (5665260)
- aria-required-children: Allow aria-busy on children (#3569) (3618f50)
- aria-required-children: Fail for children which are not listed as required (#3597) (b5ceabc)
- getRules: Return actIds when set (#3470) (a3d5cef)
- is-in-tab-order: Add isInTabOrder to commons (#3619) (77afe90), closes #3500
- list/definition-list: Only allow required owned roles (#3707) (a920d35)
- presentation-role-conflict: Test img elements with empty alt (#3717) (ea32fa7)
Bug Fixes
- utils: greatly improve the speed of querySelectorAll (#3423) (1cae5ea)
- aria-hidden-focus: Do not fail for focus trap bumper elements (#3667) (46b6658)
- aria-required-attr: aria-valuenow is no longer required for spinbutton (#3552) (a22cf56)
- aria-required-parent: Allow nested group and presentational roles (#3492) (4685270)
- aria-valid-attr-value: Report empty values as incomplete (#3635) (fff39db)
- avoid-inline-spacing: Add spacing threshold (#3533) (92add05)
- checks/no-focusable-disable: Don't count non-disableable elements as disabled (#3393) (bb8b5ca), closes #2466 #2934 #2934 #3315
- checks/unsupportedrole: Support unsupported dpub and fallback roles, add role to message (#3395) (3c0f10f), closes #2466 #2934 #2934 #3282
- color-contrast-enhanced: Avoid duplicates between color-contrast and color-contrast-enhanced (#3714) (2811f77)
- color-contrast: Correctly determine color contrast for element that exactly overlaps midpoint of node (#3565) (90de9aa)
- frame-focusable-content: don't fail for elements with negative tabindex (#3493) (94e75ac)
- frame-title-unique: Make frame-title-unique reviewOnly and WCAG412 (#3610) (8401b8e), closes #3487
- frame-title: ignore frames with negative tabindex (f61f825)
- frame-title: return incomplete for presentational iframe with empty title (#3594) (c2cfd84)
- is-hidden-for-everyone: count elements inside closed details as hidden (#3726) (e65e962)
- is-hidden-for-everyone: support content-visibility: hidden (#3690) (95cf6e7)
- is-visible-on-screen: ignore elements hidden by overflow:hidden (#3676) (2935950)
- label: avoid passing labels because of an input[value] (#3688) (54a8116)
- link-in-text-block: Update rule to match current guidance, revise tests (#3575) (edb88ed)
- meta-refresh: Add WCAG's 20-hour exception (#3525) (5beb6c3)
- no-autoplay-audio: add reviewOnFail and update tests (#3557) (60ec997)
- object-alt: ignore unloaded objects (#3680) (8e03e2c)
- page-has-heading-one,landmark-one-main: do not fail if modal is open (#3501) (c6af316)
- td-headers-attr: ignore hidden cells with headers attr (#3684) (e0403f4)
- td-headers-attr: ignore table elements with their role changed (#3687) (902d07c)
- utils.matches: fix attribute exists selector to match empty attributes (#3669) (4b768ea)
- valid-lang: ignore lang on elements with no text (#3523) (fd85f39)
- valid-lang: run on aria-hidden text (#3634) (a0860bd)
- video-caption: remove excludeHidden: false (#3554) (a3e4bbe)