/evaluatory-harvard-lxp

Web page evaluation with a focus on accessibility for Harvard LXP Sites

Primary LanguageJavaScriptMIT LicenseMIT

Evaluatory (Harvard LXP)

npm Build license

Evaluatory is an open-source tool for website validation. It is mainly a wrapper around axe-core and html-validate, which test a website for accessibility and markup issues.

Evaluatory comes with some essential improvements:

  • Run checks at multiple device breakpoints at the same time (e.g. mobile, tablet and desktop). Some accessibility issues appear only at a certain breakpoint.
  • Emulate dark mode, disabled JavaScript, offline mode and more by using custom Playwright options.
  • Return a visual HTML results page, including page screenshots.
  • Support for sitemaps to check all referenced web pages at once.

This project uses a modular architecture, so in the long term it could become an alternative to tools like webhint.

Demo

Check out a demo results page at https://darekkay.com/evaluatory/demo/.

Modules

  • base: Custom built-in checks.
  • axe-core: Checks for accessibility issues using axe-core.
  • html-validate: Validates the HTML using html-validate.
  • screenshot: Takes a screenshot of the page.

Quickstart

Run evaluatory with default configuration for a single URL:

npx evaluatory https://example.com

Installation

This tool requires Node.js version 12+.

Install globally:

$ yarn add -g evaluatory     # Yarn
$ npm install -g evaluatory  # Npm

Or install as a local dependency:

$ yarn add evaluatory            # Yarn
$ npm install --save evaluatory  # Npm

Or use without installing:

$ npx evaluatory <url>

Usage

View program help:

$ evaluatory --help
Usage: evaluatory [url] [options]

Arguments:
  [url]  URL

Options:
  -c, --config       Configuration file path
  -o, --output       Output folder
  --color-scheme     Color scheme (light, dark, no-preference)
  -m, --modules      Modules to execute (comma-separated)
  --no-open-results  Don't open the results page after evaluation
  --sitemap          Sitemap URL
  --verbose          Verbose/debug mode
  -h, --help         Show help
  -v, --version      Show version number

Run default configuration for a single URL:

$ evaluatory https://example.com

Run default configuration for all URLs within a sitemap:

$ evaluatory --sitemap https://example.com/sitemap.xml

Provide a custom configuration:

$ evaluatory -c config.json

Configuration

The configuration is a valid JSON5 file. See config.example.json5 for an example and config.default.js for available options (with defaults).

License

This project and its contents are open source under the MIT license.