Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@acot/logger

acot-a11y1.2kMIT0.0.19TypeScript support: included

A simple logger for acot.

acot

readme

acot

Accessibility Testing Framework

GitHub Workflow Status npm MIT LICENSE


!! THE ACOT IS STILL IN ALPHA STATUS AND MAY BE BROKEN BY THE UPGRADE !!


Overview

More accessible web, all over the world.

acot is an open-source Accessibility Testing Framework that uses headless Chrome (puppeteer) to provide means of testing any website or web app. It supports for making the Web accessible with a flexible, highly reliable rule set that leverages browser-native APIs such as the AOM and DOM.

Reliability

  • By using the results rendered by the browser, a highly reliable audit is possible.
  • acot provides original rules. In addition, it offers rules based on the proven axe.

Extensibility

  • You can use the rules published in the ESLint like plugin system.
  • It's easy to implement and publish the rule sets you need for your team.
  • The divided packages allow you to assemble a custom workflow that works best for your team.

Portability

  • You can create and publish your own configuration with Sharable Config.
  • Provides Custom Runner for integration with Storybook.

Getting Started

Install via npm:

$ npm install --save-dev @acot/cli

# or

$ npm install --save-dev @acot/cli puppeteer

You can build the configuration file and install the dependent packages with the following commands:

$ npx acot init

Running acot init command

And then, the run subcommand performs an audit based on the configuration file.

$ npx acot run

Running acot run command

See the CLI documentation for details.

Configuration

If you use acot as the CLI, you can configure the audit via configuration file.
Usually, when you create a configuration file called acot.config.js, acot will automatically use that configuration file.

The simple configuration is as follows (acot.config.js):

module.exports = {
  presets: ['@acot/wcag'],
  extends: ['preset:@acot/wcag/recommended'],
  origin: 'http://localhost:8000',
  connection: {
    command: 'npm run serve',
  },
  paths: ['/', '/path', '/path/to', '/path/to/dir'],
  rules: {
    '@acot/wcag/interactive-has-enough-size': 'warn',
    '@acot/wcag/page-has-valid-lang': 'off',
    '@example/foo/bar': [
      'error',
      {
        /* options */
      },
    ],
  },
};

See the Configuration for details.

Requirements

Documentation

Packages

acot has a feature which is divided into several packages.

Foundations

Package Description
@acot/core acot core API.
@acot/cli acot command line tool.
@acot/config A module to manipulate configs of acot.

Configs / Presets

Package Description
@acot/acot-config A basic acot rule set.
@acot/acot-preset-wcag A WCAG-based rule set for acot.
@acot/acot-preset-axe An axe rule set for acot.

Runners

Package Description
@acot/acot-runner-sitemap An acot custom runner reading audit pages from sitemap.
@acot/acot-runner-storybook An acot custom runner for Storybook.

Reporters

Package Description
@acot/acot-reporter-pretty An acot default reporter.
@acot/acot-reporter-dot A dot reporter for @acot/cli.
@acot/acot-reporter-github GitHub reporter for @acot/cli.

Utilities

Package Description
@acot/find-chrome Find Chrome available in your runtime environment.
@acot/html-pickup Use the CSS Selector to pick up the elements from the HTML string.
@acot/schema-validator A simple wrapper module for schema-utils.

FAQ

T.B.A

Contributing

We are always welcoming your contribution :clap:

See CONTRIBUTING.md.

License

MIT © wadackel

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

0.0.19 (2022-06-05)

Bug Fixes

  • acot-reporter-pretty: fix stat bugs in testcase summary (f9a2552)
  • cli: support non TTY environment on preset test (48e3ce0)

Features

  • acot-preset-wcag: add invalid-id-reference rule (2a70d7e)
  • acot-runner-sitemap: add retry behavior to sitemap fetcher (fcc1293)
  • cli: add parallel option to preset test command (32f7e1e)
  • document: add progress indicator to documentation testing (756158b)

0.0.18 (2022-05-11)

Features

  • acot-preset-wcag: add ignore option to dialog-focus rule (959bcbc)
  • acot-preset-wcag: add ignore option to img-has-name rule (36a152e)
  • acot-preset-wcag: add ignore option to interactive-has-enough-size rule (640a0aa)
  • acot-preset-wcag: add ignore option to interactive-has-name rule (bcf6119)
  • acot-preset-wcag: add ignore option to interactive-supports-focus rule (a563858)
  • acot-preset-wcag: add ignore option to link-has-name rule (97e01a5)
  • utils: add isElementMatches utilify function (53c4c58)

0.0.17 (2022-05-10)

Bug Fixes

  • acot-preset-wcag: improve rule apply for hidden elements (5f80cd8)

Features

  • utils: add isElementHidden utility function (2529cf4)

Performance Improvements

  • acot-preset-wcag: improve focusable-has-indicator performance (a795308)

0.0.17-canary.3 (2022-05-06)

Note: Version bump only for package acot

0.0.17-canary.2 (2022-05-06)

Note: Version bump only for package acot

0.0.17-canary.1 (2022-05-05)

Note: Version bump only for package acot

0.0.17-canary.0 (2022-05-05)

Bug Fixes

  • cli: fix default value for parallel option (9325b5a)

Features

  • acot-runner-sitemap: add behavior to merge config.paths with collected paths (fdcf2aa)

Reverts

  • core: remove immutable rule flags (7bd940b)

0.0.16 (2022-05-01)

Bug Fixes

Features

  • acot-runner-storybook: add collect stories timeout error (c4ebb75)
  • acot-runner-storybook: add support storybook v6 (691129c)

0.0.15 (2022-03-27)

Bug Fixes

  • update aom feature flag (040a321)

Features

  • upgrade puppeteer to v13 (6598c99)

0.0.14 (2022-01-03)

Note: Version bump only for package acot

0.0.14-canary.2 (2022-01-03)

Bug Fixes

  • core: fix validation logic of rule options (ae9fdbd)

Features

  • acot-reporter-github: add debug options (e492e54)

0.0.14-canary.1 (2022-01-03)

Bug Fixes

  • acot-reporter-github: fix verbose log (fb19a81)

0.0.14-canary.0 (2022-01-03)

Features

0.0.13 (2021-10-10)

Features

  • allow multiple reporters (437022c)

0.0.13-canary.0 (2021-08-17)

Bug Fixes

  • update dependency is-ci to v3 (4282333)

Features

  • connection url includes path (652b3ae)

0.0.12 (2021-04-18)

Features

  • acot-runner-sitemap: add timeout options (1a27081)
  • acot-runner-storybook: add timeout options (41b06f9)

0.0.11 (2021-04-12)

Note: Version bump only for package acot

0.0.10 (2021-04-11)

Note: Version bump only for package acot

0.0.10-canary.0 (2021-04-04)

Bug Fixes

  • fix summary duration bug (a5fb2d3)
  • h1 (4982414)
  • update dependency boxen to v5 (271bb1f)
  • update dependency execa to v5 (456b0de)
  • update dependency fastify-static to v4 (4d69df7)
  • Fix omission of version specification in debug package (85f8ea4)
  • Minor bug fixes that occur during Audit (0ec7b94)
  • acot-preset-wcag: fix focusable-has-indicator bug (4488ca1)
  • acot-preset-wcag: fix type assertion (1a5b05a)
  • acot-runner: fix dependencies (00402e9)
  • cli: Fix a bug in init subcommand (982553b)
  • cli: Fix internal package import paths (5081a27)
  • core: Add element2selector error handling (4f1a9e5)
  • core: Fix a bug in which the queue is executed without waiting (51ddb83)
  • core: Fix a bug that BrowserPool hangs (93da5cb)
  • core: Fix a bug that prevented closing a used page (fd6e55f)
  • core: Fix navigation wait logic (1178dc9)
  • core: Human readable output log of browser console (10c6c27)
  • doc: Fix trivial typos in README.md (704019f)
  • document: fix dependencies (c49533a)
  • mock-logger: Tweak (ab9210d)
  • preset-wcag: Fix immutable flags on WCAG rules (f383f44)
  • reporter: Fix a bug that PrettyReporter hangs in the case of many URLs (7248532)
  • runner-storybook: Wait for configuring store (9daccd0)
  • Fix a bug in the rule performance tracker (07e8f36)
  • schema-validator: Fix a duplicate ValidationError export (30caad3)

Features

  • Add rule result for pretty reporter (f668f8a)
  • Improve progress display (pretty reporter) (dc4e9e1)
  • Initial implements (68f46a2)
  • acot-preset-wcag: add link-has-name (e77f56b)
  • cli: add --(reporter|runner)-with options (64944e1)
  • cli: Add --no-open options for preset serve sub-command (0a43e58)
  • cli: add @acot/sitemap to init sub-command (336196a)
  • cli: Add filter logic to debug flag (738c35d)
  • cli: add update-notifier (84fe911)
  • cli: For CI, enable verbose flag (0cd3e16)
  • cli: Improve UX for init sub-command (04e9aed)
  • cli: Skip ask about puppeteer if installed (350dc09)
  • connection: use GET request instead of HEAD request #34 (5a48d8a)
  • core: add chromium auto detection for BrowserPool (21f7228)
  • core: Add cleanup process for the page before perform immutable rule (c4e4820)
  • core: Add debug log (c0b9837)
  • core: switch to help from tags (7ac5678)
  • document: add pattern to specify test target (67c319f)
  • add @acot/acot-runner-sitemap package (9a760b7)
  • add @acot/mock package (fb6e4ba)
  • core: Performance improvements with immutable rules (572edef)
  • document: Add acot-head flag to test <head> in rule documentation (a1c5760)
  • document: Change summary extraction logic (361cd2b)
  • document: Upgrade design of preset preview server (21d555b)
  • plugin/wcag: Add page-has-title rule (4353cab)
  • preset: add dialog-focus rule (29ec6ba)
  • preset-wcag: Add page-has-valid-lang rule (8ee766c)
  • preset-wcag: add rule focusable-has-indicator (3bdc1fe)
  • preset-wcag: Add some rules to recommended set (6bafccc)
  • runner-storybook: Add filter options for storybook runner (c77d6bf)
  • types: add ComputedAccessibleNode type (bcd4322)
  • add img-has-name rule (1e72566)
  • add interactive-has-name rule to acot-plugin-wcag instead of button-has-name (95f8e2c)

Performance Improvements

  • document: Improve preset test performance (51aa3d2)