@a11ycore/selenium

the selenium testing helper for a11y

Usage no npm install needed!

<script type="module">
  import a11ycoreSelenium from 'https://cdn.skypack.dev/@a11ycore/selenium';
</script>

README

@a11ycore/selenium

npm version NPM

Custom [Selenium] runner matcher for aXe for testing accessibility

⚠️✋ This project does not guarantee what you build is accessible.

The GDS Accessibility team found that only ~30% of issues are found by automated testing.

Installation:

npm install --save-dev @a11ycore/selenium

Usage:

const { Builder } = require('selenium-webdriver');
const { runA11ySelenium } = require('@a11ycore/selenium');

describe("test runA11ySelenium", () => {
  let driver;
  beforeAll(async() => {
    driver = await new Builder().forBrowser('chrome').build();
  });
  afterAll(() => {
    driver.quit();
  }) 
  it('should test accessibility', async () => {
    await driver.get('http://www.google.com/ncr');
    const results = await runA11ySelenium(driver, {});
    expect(typeof results).toBe('object');
    expect(Array.isArray(results.inapplicable)).toBe(true);
    expect(Array.isArray(results.violations)).toBe(true);
    expect(results.testRunner.name).toEqual('axe');
  });
});

Refer to Developing Axe-core Rules for instructions on how to develop custom rules and checks.

Thanks

  • aXe for the wonderful axe-core that makes it so easy to do this.
  • Government Digital Service for making coding in the open the default.