Nightwatch Accessibility

December 19, 2022 · View on GitHub

Nightwatch.js utility assertion for accessibility testing with aXe.

license release semantic

Install

npm install nightwatch-accessibility

Usage

Nightwatch >= 2.x

add nightwatch-accessibility to the plugins array

{
  plugins: ['nightwatch-accessibility']
}

Nightwatch <= 1.x

{
  custom_commands_path: ["./node_modules/nightwatch-accessibility/nightwatch/commands"],
  custom_assertions_path: ["./node_modules/nightwatch-accessibility/nightwatch/assertions"]
}

Use in your tests:

module.exports = {
  'Test': function (browser) {
    browser
      // initiate aXe
      .initAccessibility() 

      // execute accessibility check
      .assert.accessibility('#app', {
        verbose: true,
        rules: {
          'color-contrast': { enabled: false }
        }
      })
  }
}

API

browser.initAccessibility()

Injects the aXe library into the current test page.

browser.assert.accessibility(context, options)

Analyzes the defined context against applied aXe rules

NameTypeDefaultDescription
contextString'html'aXe Context Parameter
optionsObjectnullaXe Options Parameter

In addition to the standard options:

  • options.verbose set to true will log all successful aXe tests.

  • options.timeout configures the nightwatch timeout, default value is 500 milliseconds


Author: Ahmad Nassri • Twitter: @AhmadNassri