Release 4.5.0
This release may increase or decrease the number of violations reported. This can be because some rules have changed in which ruleset they run (best practice to WCAG, and vice versa). It can also be because the rules themselves got stricter in some places so are able to find new violations, and got more permissive in other places in order to handle more edge cases.
Tags that indicate which success criteria a rule tests violations for have been changed for several rules. In some cases new success criteria tags were added, and in others criteria tags were removed.
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)