All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
3.1.2 (2018-09-07)
- i18n: Update Japanese locale (#1107) (8138e55)
- autocomplete appropriate to handle state terms (#1121) (35a4d11)
- banner comment in generated axe files (#1112) (e4788bf)
- ignore invalid and allow redundant role in aria-allowed-role (#1118) (a0f9b31)
3.1.1 (2018-08-28)
- Fix broken 3.1.0 release script (c3b2a52)
3.1.0 (2018-08-28)
- rule fix: Allow fallback labels when input has id (#951) (54fa569)
- rule fix: Updating aria 1.1 allowed attributes (#964) (c3249c1)
- rule fix: Allow aria-errormessage with fallback (17608b6)
- rule fix: Ignore abstracts in determining element roles (1af6088)
- rule fix: Add combobox and radio required properties (e80af7a)
- rule fix: Allow all ARIA idref(s) to be empty (1498696)
- rule fix: Allow divs as groups in dl (#1076) (f4f6df6), closes #262
- rule fix: Allow live-region and dialog in
region
rule (#1073) (fb6438b) - rule fix: Allow only-dlitem / only-listitem to have any hidden content (#1098) (6034aae), closes #1021
- rule fix: Do not flag font icons in color-contrast rule (#1095) (b6ac084), closes #1068
- rule fix: Do not require media captions / descriptions (#1075) (289f623), closes #816
- rule fix: improve messaging for hidden labels (ae07b8e)
- rule fix: Ignore abstracts in determining element roles (e3b1e1d)
- rule fix: Correctly handle role attribute on lists and listitems. (#949) (3a8729b)
- core: allow returning a Promise in jsdom from axe.run (#943) (3858a1f)
- typescript: Correct
Check.evaluate
andCheck.after
type definitions (#976) (db3ed40), closes #974 - typescript: Typescript interface updates (#973) (f8c9905), closes #972
- messages: Clearer fail message for aria-labelledby (956281b)
- messages: Consistent landmark rule/check descriptions (#1003) (d792970)
- messages: Show attribute in message (#1061) (9ff5d54)
- Check data is an array of IDs (d64bc5f)
- Don't crash with slot elements without shadowDOM (#977) (cc044af)
- Generate jsdoc(umentation) (9f9b15b)
- Stop
indexOf
override from crashing Axe (#968) (e3329ce) - Use
node.matches*
in place ofprototype.matches*
to prevent IE crash (#956) (ebdb590)
- new rule: Added new html-xml-lang-mismatch rule (#999) (7452a51)
- new rule: aria-allowed-role (#945) (c270a46)
- new rule: css-orientation-lock (wcag21) (#1081) (4ae4ea0)
- new rule: Add WCAG 2.1 autocomplete-valid rule (e6189ce)
- rule fix: Flag unsupported roles (#1064) (5515ee6)
- rule fix: Remove non-existing "text" role (#1069) (67ec1f5)
- rule fix: Break up duplicate-id rule for ARIA+labels and active elements (2ecfea7)
- rule fix: Tag aria rules as WCAG 2, SC4.1.2 issues (e7816c0)
- core: Allow rules to access CSSOM assets (#958) (5d6c1fa)
- core: Add
doT
template engine (#1024) (f6f08d4) - commons: Add aria.getRole method (1d2a0e4)
- commons: Add text.isValidAutocomplete method (8d44fe4)
- i18n: Add runtime localization support (#1036) (7d4b70f)
- i18n: Update FR (french) translation file for 3.1 release (#1089) (4a5cad0)
- i18n: Update ja (Japanese) locale for 3.1 release (#1101) (ef6cd86)
- deprecate: Deprecate audio-caption rule (#1071) (3b05fee)
3.0.3 (2018-06-04)
- Resolve markdown lint errors. (efdad94) (aa90155)
- Don't require all ARIA IDREFS to exist (#921) (130efed)
- generate unsupported aria roles and attributes. (7315662)
- Make empty role=lisbox elements as incomplete (#927) (87e979f)
- Prevent axe-core crashing on “-“ as a class name (#884) (9c4d84e)
- Right trim URLs before outputting them in getSelector (#924) (4775a23), closes #788
- td-has-heading to ignore td with its role changed (#928) (d68af4c)
- Update tags for frame-title rule (#935) (6436bbf)
- core: Define 'axe-core' as an AMD module (#859) (7b46f63), closes #849 #856 #861 #847 #844 #871 #849 #849
- Update tags to accesskey & link-name rules (#922) (a8e801c)
- rule: Layout-table does not match presentation / none roles (#828) (5651ecc)
- rule: restore labelledBy on unlabeled select (b7bdf66)
- rules: Allow focusable role=application elements (b5de450)
- typescript: Update ElementContext type (#822) (eb09248)
- generate ARIA supported documentation for roles and attributes. (6f095dd)
- generated impacts as a part of rule descriptions (#898) (6265608)
3.0.2 (2018-04-24)
- rule: Allow empty aria-labelledby values (#829) (d280c5f)
- Prevent color rules from crashing Chrome 66+ #856 (#861) (147b665)
- respondable: Identify the current axe instance by its application name when it exists (affd75c)
- respondable: Use the hard-coded axe.application name as default (ab4a49f)
- rule: Ignore hashbang URLs for skiplinks (#827) (e1f0c57)
- rule: Tag video-caption only as SC 1.2.2 (87818e7)
3.0.1 (2018-04-03)
- allow mixed casing of caption/summary (ca091ac)
- Allow title on button-name (#794) (e31fe9a)
- sri: Fix incorrect sri-history entries (#789) (f5f55f3)
3.0.0 (2018-03-19)
- Allow exclusion of Shadow DOM content (cc66eb2)
- Avoid flatTree memory leak (a902e80)
- main-is-top-level: Rename check to landmark-is-top-level for greater reuse (b405af1)
- Avoid timing issue with axe cleanup method (24ea6a7)
- correct misnamed check (1e709e0)
- Correct runOnly object for TypeScript definition (571e984)
- has-at-least-one-main: Rename check to page-has-main, for reusability (9a9c283)
- has-no-more-than-one-main: Rename check to page-no-duplicate for better reuse (e75324b)
- region: Ignore forms without accessible name as landmarks (8ad2718)
- rule: skip-link rule doesn't decode URI encoded href's (818b5cd)
- Ensure all rules have a category tag (d61e67d)
- make getSelector work with URIs that cannot be shortened (a113555)
- Make aria-level required with role=heading #740 (64b743f)
- aria: allow DPUB ARIA roles (70b48f6)
- frame-tested: Use this new rule to test if all frames are available, instead of axe.log (83cd17d)
- landmark-contentinfo-is-top-level: add rule ensuring top level contentinfo (5692e7d)
- landmark-no-more-than-one-banner: add rule ensuring no more than one banner (6617800)
- landmark-no-more-than-one-contentinfo: add rule ensuring no more than one contentinfo (82217ef)
- page-has-heading-one: Added new best-practice rule (cb8f261)
- rules: add new rule aria-dpub-role-fallback (9470c02)
- Make options.runOnly more forgiving about plurality (fa81f9d)
- Translated all 3.0 rules to Japanese (3862e7e)
- Incorrect use of runOnly now throws errors
- main-is-top-level: The check main-is-top-level is no longer available
- has-at-least-one-main: Original has-at-least-one-main check is no longer available
3.0.0-beta.3 (2018-03-08)
- Correct runOnly object for TypeScript definition (571e984)
- has-at-least-one-main: Rename check to page-has-main, for reusability (9a9c283)
- has-no-more-than-one-main: Rename check to page-no-duplicate for better reuse (e75324b)
- main-is-top-level: Rename check to landmark-is-top-level for greater reuse (b405af1)
- region: Ignore forms without accessible name as landmarks (8ad2718)
- aria-required-attr: Make aria-level required with role=heading #740 (64b743f)
- aria: allow DPUB ARIA roles (70b48f6)
- frame-tested: Use this new rule to test if all frames are available, instead of axe.log (83cd17d)
- landmark-contentinfo-is-top-level: Add rule ensuring top level contentinfo (5692e7d)
- landmark-no-more-than-one-banner: Add rule ensuring no more than one banner (6617800)
- landmark-no-more-than-one-contentinfo: Add rule ensuring no more than one contentinfo (82217ef)
- page-has-heading-one: Added new best-practice rule (cb8f261)
- rules: Add new rule aria-dpub-role-fallback (9470c02)
- main-is-top-level: The check main-is-top-level is no longer available
- has-at-least-one-main: Original has-at-least-one-main check is no longer available
3.0.0-beta.2 (2018-03-01)
- perf: Improve getSelector performance (737c81c)
- Delete Selenium example, use grunt-axe-selenium instead (063e701)
- Update Jasmin example (72d49d5)
- Update Jest+React example (5b35322)
- Update Mocha example (cf70f9f)
- Update PhantomJS example (641b5e6)
- Update QUnit example (028ae51)
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
3.0.0-beta.1 (2018-02-19)
- audio-caption: Change tag wcag122 to wcag121 #686 (#721) (9c7b9f1)
- empty-heading: Skip headings with the role changed #645 (#722) (80ef961)
- image-alt: Exclude svg[role="img"] elements (#683) (0fe74d8)
- label: Prevent label rule from crashing on input without type #678 (#730) (4498680)
- perf: improve select performance fixes #702 (3274919)
- perf: memoize axe.utils.select (c9cd122)
- perf: normalize all selectors for better cache utilization (189c165)
- perf: remove need for node sorting from select completely (7677a6a)
- performance: significantly improve the performance of the dom.findUp utility fixes #696 (9197e03)
- add shadow dom coverage to all checks (0e48413), closes #690
- bug-705: cleanupPlugins() should not throw exception when no arguments are provided (#709) (fb1d2f7)
- Remove axe.a11yCheck() (88d039f)
- use virtual methods where applicable (6ddc4e5)
- type-checking: Improve typescript axe.run call signature (#707) (de45ee3)
3.0.0-alpha.9 (2018-01-18)
- aria-errormessage: adds support for aria-errormessage (#517) (c96f58c)
- check: fix bug with async checks (441ca95)
- color-contrast: allow disabled label children (db26bc9)
- color-contrast: incl. elements w/ line breaks (a464918)
- commons/aria: allow aria-required on checkbox role (3e21c6e)
- adjust color algorithm for inline elements (7f8491e)
- Allow checkbox and radio groups with hidden aria-labelledby targets #188 (6149bde)
- Ensure overloaded Array.prototype won't crash axe (ea57ef2)
- handle contrast of multiline inline el's (f9d565f)
- Polyfills are made non-enumerable #648. (#649) (48d8703)
- Remove href-no-hash rule (342cb6e)
- Return inapplicable results (#473). (c9caeff)
- Several of fixes for IE and Edge (#577) (63e1272)
- skip-link rule now checks if a target exists (f7f9cf3)
- commons/aria: allow aria-required on radio role (58b76a6)
- commons/dom: fix isFocusable functions by checking screenreader (#658) (c665d0b), closes #647
- core/utils/querySelectorAll: Ensure that elements do not get tested twice (#666) (a76a454)
- required-children: add combobox > listbox exception (#559) (8d0991f)
- rules/region: Treat
<section>
as a landmark if it has an accessible name #640 (#642) (c11b442)
- Add rule, landmark-main-is-top-level (#462) (63040bd)
- collect-results-from-frames: add frameWaitTime option (#661) (8016ad1)
- landmark-one-main: add rule ensuring one main landmark in document (#498) (dfc6069)
- reporter: return one result of each type instead of zero when resultTypes is used (#604) (216a83b), closes #603
- rule: Flag div/p/spans/headings in focus order (ce5f3dc), closes #632
- allow options in aria-allowed-attr, aria-required-attr (#673) (61ac303)
- Enable all rules by default (18263eb)
- Improve generated selectors for namespaced elements in XHTML (#582) (9e3ca45), closes #563
- Skip-link rule no longer requires skip lins with a focusable target.
3.0.0-alpha.8 (2017-10-20)
- aria-allowed-attr: align rowcount, colcount, and colindex with 1.1 spec (#555) (10efa88)
- required-children: add combobox > listbox exception (#559) (8d0991f)
- Added message about expected contrast ratio (#381) (#562) (9e30d64)
3.0.0-alpha.6 (2017-09-27)
- aria: adding support for aria-expanded in menuitem (#521) (b30b451)
- color-contrast: Include
THEAD
andTBODY
in contrast checks (#514) (f98f8bd) - Match prerelease versions for helpUrl (#546) (5300577)
- helpUrl: Properly parse x.0 versions (#550) (a51c5ce)
- postinstall: use node, more conditionals (#520) (f5b5299)
- responsible: Restrict error construction to known errors (0128a7e)
3.0.0-alpha.5 (2017-09-25)
- aria: adding support for aria-expanded in menuitem (#521) (b30b451)
- postinstall: use node, more conditionals (#520) (f5b5299)
- Match prerelease versions for helpUrl (#546) (5300577)
3.0.0-alpha.4 (2017-09-08)
- fix(color-contrast): Include
THEAD
andTBODY
in contrast checks (#514) (f98f8bd) - fix(responsible): Restrict error construction to known errors (#513) (0128a7e)
- docs: Document how to propose axe-core rules (#507) (cabd329)
3.0.0-alpha.3 (2017-09-06)
- Additional ARIA 1.1. support and tests (#509) (9b4d2ee)
- fix: RestoreScroll was running out of sync (#508) (ff3df2d)
3.0.0-alpha.2 (2017-09-01)
- copy precommit hook as file, not a link (16f2f76)
- expand tr support for color contrast (5a77c2f)
- Ignore shadowRoots on elements that don't allow them (7f66ee8)
- only run postinstall if .git exists (1107783)
- try telling circle to skip .git/hooks (674408f)
- Use frame query that supports shadow dom (#492) (94008ff)
3.0.0-alpha.1 (2017-08-16)
- add copyright banner back in to axe.js (2aac29a)
- Adjust if formatting (2211d78)
- Align impact levels with Deque Way (28f4477)
- Allow to have no kind attribute (f996d0f)
- complete shadow support for color matches (f0fe551)
- aria: Allow implicit attribute values (b949749)
- Set relatedNodes on color/link-in-block rules (#407) (7fde0fe)
- aria: Treegrid should own rows, not treeitems (645d1fa)
- Correct flattened tree algorithm to include the shadow host (#405) (70985b0)
- Ensure all tests pass in Chrome (0b0240f)
- ensure document is fetched from correct node (b28597c)
- Exclude
any
checks from output if one passed (#466) (2dd3d68) - get tests all passing (#457) (4874327)
- get virtualNode with getNodeFromTree (9bf2870)
- getComposedParent should not return slot nodes (#438) (0478cbd)
- Have table rules use shadow DOM (453be1b)
- help-same-as-label for shadow DOM (dbbc544)
- incomplete results should have impact (fcc51eb)
- Let findUp work on shadow root children (0252218)
- Let findUp work on shadow root children (#447) (0f98481)
- Minimise scrolling in getBackgroundColor (f4551bb)
- Pass all tests that use accessibleText (7ea8d6b)
- checks/aria/required-children: add exception for native input combobox missing textbox (81ee2e4)
- use virtualNode in duplicate-img-label (82e51bc)
- is-in-text-block: Add Shadow DOM support (a125f79)
- pass virtualNode to Rule.run (4534e86)
- Properly output error stack (56f1867)
- Remove log statements (6a6bd73)
- Solve a few tests (02daad1)
- Use getAttribute(id) over .id (#374) (353b53f)
- Use testUtils in table tests (364d5cd)
- use virtualNode in title-only check (5fb06e3)
- whitespace in hidden-content test (99e8b73)
- Add aria-orientation to additional roles (bb07c2d)
- add check testUtils (6f53279)
- Add dom.getComposedParent function (aac57c0)
- Add Japanese localisation (5f8c9c8)
- Add new ARIA 1.1 values for haspopup (9f7da56)
- Add option restoreScroll (d55f3cd)
- add S.C. 2.4.4 to link-name rule. Fixes #369 (70728e6)
- add SD support to color-contrast-matches (b595b42)
- Add shadow DOM support to list checks (#439) (d92c1a1)
- Add shadow DOM to duplicate-img-label check (#443) (2c0b075)
- Add shadow DOM to landmark check (98f6023)
- add shadow support to aria-required-children (f729e25)
- add shadow support to group-labelledby (e2a9642)
- Add sri-history file and update process (#476) (25ddb47)
- Allow hidden-content to work through shadow DOM bounds (789d62e)
- fieldset check shadow DOM (da148d3)
- Make explicit check consider shadow DOM (#442) (9ddfc0f)
- Make region check work with shadow DOM (ecd222f)
- Run text.accessibleText() on virtual elements (#420) (414fcbe)
- ShadowDOM support for media checks (0f21574)
- aria: Support progressive ARIA 1.1 attributes / roles (#468) (ebb2a5d)
- aria-required-parent: add Shadow DOM support (6ed29f0)
- duplicate-id: Add shadow DOM support (439bc71)
- link-in-text-block: Add shadow DOM support (46a2cca)
- shadow DOM: Create commons virtual methods, for backward compatibility (86a4c25)
2.4.2 (2017-09-25)
- aria: adding support for aria-expanded in menuitem (#521) (b4c42fe)
- Match prerelease versions for helpUrl (#546) (c166708)
- fix(node4): use var to declare variables (#541) (c72badb)
2.4.1 (2017-09-12)
2.4.0 (2017-09-08)
- fix(color-contrast): Include
THEAD
andTBODY
in contrast checks (#514) (f98f8bd) - fix(responsible): Restrict error construction to known errors (#513) (0128a7e)
- docs: Document how to propose axe-core rules (#507) (cabd329)
2.4.0-alpha.2 (2017-09-06)
- test(aria): aria-haspopup, aria-modal for 1.1
- style(test/aria): add line breaks for readability
- test(aria): add missing roles and properties
- fix: RestoreScroll was running out of sync (#508)
- feat(ARIA 1.1): Allow row-index, setsize and posinset on more roles
2.4.0-alpha.1 (2017-08-31)
- chore: add help text for testconfig Grunt task
- fix: Properly output error stack
- doc: Add 'on mobile' to viewport rule
- fix: Ensure all tests pass in Chrome
- fix: Minimise scrolling in getBackgroundColor
- chore: Minor build chores for whitespace and lockfile
- fix: Align impact levels with Deque Way
- fix: Set relatedNodes on color/link-in-block rules
- fix: incomplete results should have impact
- fix(aria): Allow implicit attribute values
- chore: ignore growl in retire
- fix: Use getAttribute(id) over .id
- fix: Exclude
any
checks from output if one passed - fix(aria): Treegrid should own rows, not treeitems
- fix(aria): add exception for native input combobox missing textbox. Fixes #160
- test: fix aria/required-children for jshint
- feat: allow link text from single-cell layout table
- fix: expand tr support for color contrast
- chore: ignore node_modules in examples when linting
- feat: Add option
restoreScroll
- doc: add more info on testing hidden regions
- feat: add S.C. 2.4.4 to link-name rule. Fixes #369
- feat: Add Japanese localisation
- doc: Add instructions on debugging on CircleCI
- test: add unit tests for button-has-visible-text
- chore: add descriptions to Grunt tasks
- feat(aria): Support progressive ARIA 1.1 attributes / roles
- feat: Add new ARIA 1.1 values for haspopup
- feat: Add aria-orientation to additional roles
2.3.1 (2017-06-15)
- Improvements to hidden-content rule
- Deduplicated langs in valid-lang options
2.3.0 (2017-06-14)
- Overhaul of selectors API
- New experimental rule for hidden-content
- New rule for flagging aria-hidden="true" on document.body
- Color-contrast rule impact is now serious
- Color-contrast fixes for implicit labels and TR elements
- Color-contrast puts 1:1 ratio elements into Needs Review/incomplete
- List category mappings in docs
- Update axe.source to work with Firefox webdriver
2.2.3 (2017-06-01)
- Removed the disable property from link-in-text-block
2.2.2 (2017-05-25)
- Stabilize incompleteData API for backwards compatibility
- Change impact of duplicate-id rule to moderate
2.2.1 (2017-05-19)
- Remove nodes from the color contrast incompleteData API to avoid circular references
- Add configuration options for iframes: false, selectors: false, and elementRef: true
- Improve color-contrast rule for disabled elements
- Add webdriver task for testing mobile viewports
- Improve audio/video captioning rules
- Improve th-has-data-cells rule
- Expose incomplete reasons for color contrast rule as part of Needs Review
- Implement rule groupings as tags
- Allow building of axe in multiple languages
- Empty-heading rule has impact: moderate
- Move from Snyk to Retire.js
- Make CI run test-fast task instead of parallel
- Add documentation on writing integration tests and rules
- Allow a larger list of languages for HTML-valid-lang rule
- Add support for [role=img] in image-alt rule
- Fix bug with innerHeight in get-background-color
- Improve dom.is-offscreen function
- Integrate optional performance timer
- Empty include defaults to document
- Add promise-based axe.run API method in favor of axe.a11yCheck
- Move TypeScript definition to root of project
- Add Inapplicable and Can't Tell results
- New rule: frame-title-unique
- Improvements to table rules: td-has-header, th-has-data-cells
- Color contrast rule performance improvements using polyfilled elementsFromPoint
- Add better support for implicit roles
- DQElement supports xPath
- Add TypeScript definition v1
- Support for UMD pattern
- Adds 508 tagging for table rules
- Fixes race condition for iframes
- Exclude actual nodes from array checking
- Improvements to messaging for extensions
- Security improvements
- Build includes Babel/ES6
- Improvements to table rules
- aXe can be loaded in Node
- Adds support for AMD modules
- Fixes incompatibility with Webpack
- Improvements to rules and checks
- Help urls no longer hard-coded
- Improved error handling
- Adds Travis hooks
- Adds Sauce Labs
- Encodes HTML in descriptions
- Updates messages and help URLs
- Initial public release