npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

achecker

v0.0.6

Published

API wrapper for achecker.ca

Downloads

5

Readme

AChecker

A wrapper for the AChecker API. You will need an API KEY to use the service.

Install via NPM!

npm install achecker

Example usage

'use strict';
var achecker = require('achecker');

var a = new achecker({
    key: 'YOUR_API_KEY',
    uri : 'http://www.example.com/',
    offset: 0,
    guide: 'WCAG1-AA'
}, function(result){
    console.log(result);
});

Supported options

The available options are:

  • key (required):The "Web Service ID" generated by AChecker when you register. This ID is a 40 characters long string. (Default: none)
  • uri (required): The encoded URL of the document to validate. (Default: none)
  • offset (optional): The line offset to begin validation on the html output from URI. (Default: 0)
  • guide (optional): The guidelines to validate against. Separate each guideline with comma (,). (Default: WCAG2-AA)
    • BITV1: abbreviation of guideline bitv-1.0-(level-2);
    • 508: abbreviation of guideline section-508;
    • STANCA: abbreviation of guideline stanca-act;
    • WCAG1-A: abbreviation of guideline wcag-1.0-(level-a);
    • WCAG1-AA: abbreviation of guideline wcag-1.0-(level-aa);
    • WCAG1-AAA: abbreviation of guideline wcag-1.0-(level-aaa);
    • WCAG2-A: abbreviation of guideline wcag-2.0-l1;
    • WCAG2-AA: abbreviation of guideline wcag-2.0-l2;
    • WCAG2-AAA: abbreviation of guideline wcag-2.0-l3.

Response Format

  • summary: The summary element of the validation response.
    • status: Can be one of these values: FAIL, CONDITIONAL PASS, PASS. FAIL is set when there is/are known problem(s). CONDITIONAL PASS is set when there is no known problems but there is/are likely or potential problem(s). PASS is set when there is no problems found, OR, there is no known problems and likely/potential problems have pass decisions made on.
    • errors: Counts the number of known problems.
    • likelyProblems: Counts the number of likely problems.
    • potentialProblems: Counts the number of potential problems.
  • result:
    • resultType: Can be one of these values: Error, Likely Problem, Potential Problem.
    • lineNum: Within the source code of the validated document, refers to the line where the error was detected.
    • columnNum: Within the source code of the validated document, refers to the column of the line where the error was detected.
    • errorMsg: An object with two properties, a link to more information about the error and a string of the error message.
    • errorSourceCode: The line of the source where the error/problem was detected.
    • repair: How to repair, only presented when resultType is "Error".
    • decisionPass: The actual text message of the pass decision. Only presented when resultType is "Likely Problem" or "Potential Problem"
    • decisionFail: The actual text message of the fail decision. Only presented when resultType is "Likely Problem" or "Potential Problem"

Response Example

{
  summary: {
    sessionID: "2fb79cef7f3cdf79b39154e6f8c84cdce1df0f92",
    errors: 1,
    likelyProblems: 1,
    potentialProblems: 3
  },
  results: [
    {
      resultType: "Error",
      lineNum: "2",
      columnNum: "1",
      errorMsg: {
        url: "http://achecker.ca/checker/suggestion.php?id=232",
        message: "Document does not validate."
      },
      errorSourceCode: "<html>\n<head> <title>Example Domain</title> <meta charset=\"utf-8\" /> <meta http-equiv=\" ...",
      repair: "Validate the document using a validator service."
    },
    {
      resultType: "Potential Problem",
      lineNum: "4",
      columnNum: "5",
      errorMsg: {
        url: "http://achecker.ca/checker/suggestion.php?id=54",
        message: "<code>title</code> might not describe the document."
      },
      sequenceID: "4_5_54",
      decisionPass: "<code>title</code> describes the document.",
      decisionFail: "<code>title</code> does not describe the document."
    },
    {
      resultType: "Potential Problem",
      lineNum: "44",
      columnNum: "5",
      errorMsg: {
        url: "http://achecker.ca/checker/suggestion.php?id=42",
        message: "<code>h1</code> may be used for formatting."
      },
      errorSourceCode: "<h1>Example Domain</h1>",
      sequenceID: "44_5_42",
      decisionPass: "This <code>h1</code> element is really a section header.",
      decisionFail: "This <code>h1</code> element is used to format text (not really a section header)."
    },
    {
      resultType: "Potential Problem",
      lineNum: "47",
      columnNum: "8",
      errorMsg: {
        url: "http://achecker.ca/checker/suggestion.php?id=19",
        message: "Link text may not be meaningful."
      },
      errorSourceCode: "<a href=\"http://www.iana.org/domains/example\">More information...</a>",
      sequenceID: "47_8_19",
      decisionPass: "Link text is meaningful when read alone (out of context).",
      decisionFail: "Link text is not meaningful when read alone (out of context)."
    },
    {
      resultType: "Likely Problem",
      lineNum: "47",
      columnNum: "8",
      errorMsg: {
        url: "http://achecker.ca/checker/suggestion.php?id=18",
        message: "Anchor that opens new window may be missing warning."
      },
      errorSourceCode: "<a href=\"http://www.iana.org/domains/example\">More information...</a>",
      sequenceID: "47_8_18",
      decisionPass: "There is a warning to user that anchor opens a new window.",
      decisionFail: "User is not given warning that anchor opens a new window."
    }
  ]
}