@acot/core

More accessible web, all over the world.

Usage no npm install needed!

<script type="module">
  import acotCore from 'https://cdn.skypack.dev/@acot/core';
</script>

README

@acot/core

This module is a low layer of acot.

Installation

Install via npm:

$ npm install --save @acot/core

Usage

The following is an example of using the @acot/acot-preset-wcag preset package. Learn @acot/core from how to use Simple and Advanced respectively.

Simple

In the simple example, it depends on the following package.

$ npm install --save puppeteer

The following is an example of specifying all audited pages and their configuration.

import { Acot, PresetLoader } from '@acot/core';

const cwd = process.cwd();

(async () => {
  const loader = new PresetLoader(cwd);

  const acot = new Acot({
    parallel: 4,
    origin: 'http://localhost:8000',
    presets: [loader.load('@acot/wcag')],
    cwd,
  });

  acot.add('/', {
    rules: {
      '@acot/wcag/page-has-title': ['error', null],
      '@acot/wcag/page-has-valid-lang': ['warn', null],
    },
  });

  const summary = await acot.audit();

  console.log('errorCount: %f', summary.errorCount);
  console.log('warningCount: %f', summary.warningCount);
  console.log('passCount: %f', summary.passCount);
})();

Advanced

In the advanced example, the following package is used.

The following is an example of performing an audit according to the configuration file (acot.config.js).

import { loadConfig, ConfigRouter } from '@acot/config';
import { findChrome } from '@acot/find-chrome';
import { Acot } from '@acot/core';

const cwd = process.cwd();

(async () => {
  const config = await loadConfig('.', { cwd });
  const router = new ConfigRouter(config);

  const acot = new Acot({
    parallel: 4,
    origin: 'http://localhost:8000',
    presets: config.presets ?? [],
    launchOptions: {
      executablePath: (await findChrome())!.executablePath,
    },
    cwd,
  });

  config.paths?.forEach((path) => {
    const entry = router.resolve(path);

    acot.add(path, {
      rules: entry.rules,
      presets: entry.presets,
      headers: entry.headers,
    });
  });

  const summary = await acot.audit();

  console.log('errorCount: %f', summary.errorCount);
  console.log('warningCount: %f', summary.warningCount);
  console.log('passCount: %f', summary.passCount);
})();