@axe-core/watcher Package Release Notes

Link to @axe-core/watcher Package Release Notes copied to clipboard

Release notes describing the changes in the @axe-core/watcher package for version 3.0.0 and later

Free Trial
Not for use with personal data

3.20.1 (March 25, 2025)

  • Features

    • Allow earlier versions of axe-core to be selected.
    • Made flushing of results to the server more robust.
  • Bug fixes

    • Fixed a problem when consolidating global configurations with user configuration overrides.
    • Fixed a race condition in the Cypress integration.
    • Fixed a problem with the Cypress integration where experimental rules weren't enabled.
    • Fixed a problem where enabling the EN 301 549 standard wasn't honored.
    • Fixed a problem with configurationOverrides if no values were set.
    • Added additional validation for Playwright and Playwright Test.
    • Fixed a problem when attempting to select versions of axe-core without a patch version number.
    • Enhanced the logic for merging user configurations with global configurations.
    • Improved handling of axe-core version when no configurationOverrides provided.
    • Improved error message for a disallowed accessibility standard in configurationOverrides.
    • Fixed error messages to include a link to troubleshooting documentation.
    • Improved error handling when sending results to the server, which previously caused the test suite to stop.

3.20.0

  • Not released

3.19.1 (February 25, 2025)

  • Fixed a problem with capturing page states.
  • Ensure that test suites specifying --disable-extensions don't disable Watcher.

3.19.0 (January 20, 2025)

  • Improved the error message with Playwright and Playwright Test versions 1.49.0 or greater when using the headless parameter when the channel parameter is set to firefox. (Only the chromium or chrome channels are supported with fully headed mode or the new headless mode.)
  • Improved version checking for axe-core.
  • Support for global configurations.

3.18.0 (December 18, 2024)

  • Fixed several session-handling problems, which could cause erroneous or empty results to appear on the website.
  • Added support for new Chromium headless in Playwright versions >= 4.91. See Try new Chromium headless in the Playwright 4.91 release notes.
  • Added custom timeout values to allow users to control session handling.

3.17.2 (December 12, 2024)

  • Features

    • Added manual mode to Watcher.
    • Running an analysis on an unsupported protocol (any protocol other than https, http, or file) or on the about:blank page will result in an error.
    • Now Watcher throws an error if it is not configured before use.
  • Bug fixes

    • Fixed a problem in Playwright Test where sessions were reused, causing results to be overwritten.
    • Fixed several other problems with creating and managing sessions.
    • In manual mode, calling the controller's start() method now marks the current page's DOM as clean, so no page state is captured.
    • In manual mode, fixed a problem where an additional page state was sometimes captured when flush() was called.
    • Fixed a problem that caused a missing page state when cy.axeWatcherAnalyze() was called after cy.click() was called without a cy.wait() call.
    • Now include an updated LICENSES-3RD-PARTY.md file with the @axe-core/watcher package.
    • The controller method stop() now analyzes the page if the DOM has changed before turning off automatic mode.
    • Changed Watcher's behavior so that if Watcher is in manual mode, don't analyze the page if the controller method stop() is called.
    • Fixed a problem in the Playwright integration that caused wrapped methods to return incorrect types.
    • Fixed a problem that prevented runOptions from accepting only one option.

3.17.1

  • Not released

3.17.0

  • Not released

3.16.1 (October 25, 2024)

  • Included third-party licenses.

3.16.0 (September 26, 2024)

  • Fixed a transitive dependency issue involving Cypress commands.

3.15.2 (September 13, 2024)

  • Added support for WebdriverIO version 9 (while retaining support for WebdriverIO versions 7 and 8).

3.15.1

  • Skipped (there was no release candidate)

3.15.0

  • Not released

3.14.3 (September 5, 2024)

  • No user-visible changes

3.14.2 (August 29, 2024)

  • Fixed an error accessing the timeout value in Cypress.
  • For Cypress, now throw an exception if the user tries to use Watcher without first calling cypressConfig().
  • Fixed an error that appeared under certain conditions in Cypress when importing the os module.
  • Added buildID to AxeConfiguration for parallel test runs.
  • Deprecated sessionID in AxeConfiguration in favor of buildID.
  • Fixed a problem that caused an additional page state to be captured with Puppeteer due to handling of authenticate().
  • Performance improvements in axe Watcher due to changes in code obfuscation.

3.14.1

  • Not released

3.14.0

  • Not released

3.13.1 (July 19, 2024)

  • Allow excluding URLs from the analysis scan by using the excludeUrlPatterns option. See excludUrlPatterns.

3.13.0

  • Not released

3.12.0 (July 16, 2024)

  • Improved the handling of component remounting in Cypress.
  • Ensure Watcher can be loaded in WebdriverIO version 7.
  • Added Puppeteer locator support.
  • Added configuration of runContext and runOptions for axe-core. See runContext and runOptions.

3.11.1 (June 26, 2024)

  • Fixed a problem where return values from external setupNodeEvents handlers in Cypress weren't propagated.
  • Changed behavior to allow Cypress's Chrome extension to be loaded.

3.11.0 (June 17, 2024)

  • Addressed a problem where unmounting and remounting of components would cause accessibility scans to timeout in Cypress.
  • Relaxed the browser detection logic to avoid failing even when using supported browsers.
  • Removed file-system writes when flushing results in Cypress.

3.10.0 (May 16, 2024)

  • Fixed a problem in Cypress where the config object returned from setupNodeEvents wasn't propagated correctly and any changes made to it were lost.
  • Fixed the implementation of proxied functions (for Playwright Test) that had resulted in an error with Locator objects: can be only used with Locator object.
  • Wrapped two new Playwright functions from the 1.43.1 release.

3.9.0 (April 30, 2024)

  • Added backwards compatible types for Puppeteer version 20.
  • For Cypress, deprecated axeAnalyze(), axeFlush(), axeStart(), and axeStop(). Replaced with axeWatcherAnalyze(), axeWatcherFlush(), axeWatcherStart(), and axeWatcherStop().
  • Fixed a TypeError on certain Puppeteer version 21 (and later) hooks.

3.8.0 (April 9, 2024)

  • Update the emitted JavaScript to target ECMAScript 2018 (ES2018) instead of ECMAScript 2015 (ES2015).

3.7.0 (March 21, 2024)

  • No user-visible changes

3.6.0 (March 7, 2024)

  • In the Cypress integration, prevent after:run events if no tests ran.
  • Changed the download URL format for Chromedriver because the Chromedriver team moved to a new hosting solution. Impacts WebdriverIO.

3.5.0 (January 25, 2024)

  • Fixed a problem where calling Playwright's Page.goto() method would incorrectly record two page states.
  • Fixed a problem in the Cypress integration that caused certain user configurations of setupNodeEvents to be ignored.
  • Added eventemitter3 as a required dependency.
  • Wrapped some Playwright methods that hadn't been wrapped before.

3.4.0 (December 12, 2023)

  • Fixed a problem where page states were lost or errors occurred when tests caused page navigations.
  • Removed some redundant code from the Cypress integration.

3.3.0 (December 7, 2023)

  • No user-visible changes

3.2.0 (November 9, 2023)

  • No user-visible changes

3.1.1 (October 12, 2023)

  • No user-visible changes

3.1.0 (September 14, 2023)

  • All integrations now allow --headless=new.

3.0.0 (September 8, 2023)

To address cases where analyze() was unexpectedly not called, the following functions needed to be deprecated and replaced:

Deprecated function New function
wrapPlaywright(browserContext, controller) wrapPlaywrightPage(page, controller)
wrapPuppeteer(context, controller) wrapPuppeteerPage(page, controller)

Using the deprecated functions will throw an error.