Releases
v4.2.0
Features
add axe.frameMessenger with configurable allowedOrigins (#2880 ) (b27bab3 )
aria-allowed-attr: add ARIA 1.2 prohibited attrs check (#2764 ) (4a77e88 )
empty-table-header: new rule to flag empty table headers (#2811 ) (813ee7e )
frame-focusable-content: new rule to test iframes with tabindex=-1 do not have focusable content (#2785 ) (aeb044c )
locale: missing translations for DE (#2704 ) (f312994 )
locale: Polish translation (#2677 ) (c46979f )
nested-interactive: new rule to flag nested interactive elements (#2691 ) (13a7cf1 )
role-text: add role-text rule (#2702 ) (7c05162 )
setup/teardown: add functions to setup and teardown axe-core internal data, deprecate axe._tree (#2738 ) (9d19f24 )
standards: add graphics roles (#2761 ) (22032cc )
standards/aria-roles: add presentational children property (#2689 ) (78c239c )
utils.getRule: add function to get rule by id (#2724 ) (9d0af53 )
utils/matches: support selectors level 4 :not and :is (#2742 ) (21d9b0e )
virtual-node: add attrNames property which returns list of attribute names (#2741 ) (1d864b4 )
Bug Fixes
aria-allowed-attr: error when generic elements use aria-label and aria-labelledy (#2766 ) (64379e1 )
aria-required-children: allow group and rowgroup roles (#2661 ) (5a264e4 )
aria-required-children: only match for roles that require children (#2703 ) (95de169 )
aria-valid-attr-value: pass for aria-errormessage when aria-invalid is not set or false (#2721 ) (93a765c )
aria-valid-attr-value: report when aria-labelledby ref is not in DOM (#2723 ) (116eb06 )
aria-valid-attr-value: return false when int type attribute uses invalid values (#2710 ) (ce9917e )
bypass: mark as needs review rather than failure (#2818 ) (bb41b3e )
focus-order-semantics: allow role=tooltip to pass (#2871 ) (dc526d8 )
heading-order: handle iframe as first result (#2876 ) (33428d8 )
respondable: Avoid message duplication with messageId (#2816 ) (4bd0acf )
respondable: work on iframes in shadow DOM (#2857 ) (38cad94 )
avoid 'undefined' showing in check messages (#2779 ) (3beb0b1 )
properly translate checks when building axe.js using --lang (#2848 ) (76545b0 )
aria-required-parent: only match for roles that require parents (#2707 ) (ce8281e )
color-contrast: account for text client rects that start outside the parent container (#2682 ) (a4e4a34 )
color-contrast-matches: do not pass empty string to getElementById (#2739 ) (0b0fec2 )
frame-title: update rule description to be more descriptive (#2735 ) (159e25b )
heading-order: allow partial context to pass (#2622 ) (f8baee6 )
landmark-complementary-is-top-level: allow aside inside main (#2740 ) (9388c96 )
metadata: consistenct use of 'must' and 'should' (#2770 ) (603b612 )
region: allow role=alertdialog as region (#2660 ) (b928df7 )
select-name: fix typo in accessible name help (#2676 ) (6b916b9 )
to-grid/get-headers: work with rowspan=0 (#2722 ) (508190b )
types: Add noHtml option (#2810 ) (c03c826 )
utils: fix warning thrown by Webpack (#2843 ) (0826177 ), closes #2840
utils: remove attributes from source string (#2803 ) (8e8c4fa )
add noHtml to axe.configure (#2789 ) (5c8dec8 )
do not allow postMessage with axe version of x.y.z (#2790 ) (5acda82 )
You can’t perform that action at this time.