# @axe-core/reporter-earl

> A EARL+JSON-LD reporter for axe-core

Latest version **4.14.0** (published 2026-10-15) · MPL-2.0 license · 0 weekly downloads

## Install

```sh
npm install @axe-core/reporter-earl
pnpm add @axe-core/reporter-earl
yarn add @axe-core/reporter-earl
bun add @axe-core/reporter-earl
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.14.0 |
| Published | 2026-10-15 |
| First published | 2020-06-01 |
| Weekly downloads | 0 |
| License | MPL-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=22.12.0 |
| Dependencies | 0 |
| Unpacked size | 31.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 728 |
| Author | Wilco Fiers |
| Maintainers | dqlabs, wilcofiers, dylanb, npmdeque, stephendeque |
| Keywords | axe-core, accessibility, earl, json-ld, rdf |

## Links

- npm: https://www.npmjs.com/package/@axe-core/reporter-earl
- Repository: https://github.com/dequelabs/axe-core-npm
- Homepage: https://github.com/dequelabs/axe-core-npm#readme
- Issues: https://github.com/dequelabs/axe-core-npm/issues
- npm.io page: https://npm.io/package/@axe-core/reporter-earl

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 4.14.0 (latest) — 2026-10-15
- 4.14.1-794589b.0.sha-794589b (next) — 2026-10-27
- 4.14.1-d1531a9.0.sha-d1531a9 (rc) — 2026-10-08
- 4.14.1-910faef.0.sha-910faef — 2026-10-27
- 4.14.1-55245d5.0.sha-55245d5 — 2026-10-15
- 4.13.1-6cebc91.0.sha-6cebc91 — 2026-10-09
- 4.13.1-063f669.0.sha-063f669 — 2026-10-09
- 4.13.1-304e0ca.0.sha-304e0ca — 2026-10-09
- 4.13.1-741a15f.0.sha-741a15f — 2026-10-09
- 4.13.1-0318e26.0.sha-0318e26 — 2026-10-09
- 4.13.1-4828abc.0.sha-4828abc — 2026-10-09
- 4.13.1-9435cc2.0.sha-9435cc2 — 2026-10-09
- 4.13.1-6dfe5ef.0.sha-6dfe5ef — 2026-10-09
- 4.13.1-ca3874f.0.sha-ca3874f — 2026-10-09
- 4.13.1-e8c3661.0.sha-e8c3661 — 2026-10-09
- … 633 more at https://npm.io/package/@axe-core/reporter-earl/versions

## README

# @axe-core/reporter-earl

This project is a reporter for [axe-core](https://github.com/dequelabs/axe-core). When used as part of an axe-core run, it will produce results using the [Evaluation And Reporting Language (EARL) 1.0](https://www.w3.org/TR/EARL10-Schema/). The reporter uses [JSON-LD](https://json-ld.org/spec/latest/json-ld/) to serialise the RDF data.

Previous versions of this program were maintained at [dequelabs/axe-reporter-earl](https://github.com/dequelabs/axe-reporter-earl).

## Installation

To install Axe-reporter-earl, with NPM, run:

```shell
npm install @axe-core/reporter-earl
```

## Usage

The EARL reporter can be passed to axe, either as part of configuration or as part of the run:

CommonJS Require Syntax:

```js
const reporter = require('@axe-core/reporter-earl').default;
// Define the reporter through axe.configure
axe.configure({ reporter });
axe.run().then(earlResults => console.log(earlResults));
```

```js
const reporter = require('@axe-core/reporter-earl').default;
// Use the reporter in a single axe.run call
axe.run({ reporter }).then(earlResults => console.log(earlResults));
```

ES6 Import Syntax:

```js
import reporter from '@axe-core/reporter-earl';
// Define the reporter through axe.configure
axe.configure({ reporter });
axe.run().then(earlResults => console.log(earlResults));
```

```js
import reporter from '@axe-core/reporter-earl';
// Use the reporter in a single axe.run call
axe.run({ reporter }).then(earlResults => console.log(earlResults));
```

## Format

The repoter format should look something like this:

```json
{
  "@context": {
    "@vocab": "http://www.w3.org/ns/earl#",
    "earl": "http://www.w3.org/ns/earl#",
    "WCAG20": "http://www.w3.org/TR/WCAG20/#",
    "WCAG21": "http://www.w3.org/TR/WCAG21/#",
    "auto-wcag": "https://auto-wcag.github.io/auto-wcag/rules/",
    "dct": "http://purl.org/dc/terms#",
    "sch": "https://schema.org/",
    "doap": "http://usefulinc.com/ns/doap#",
    "foaf": "http://xmlns.com/foaf/spec/#",
    "WebPage": "sch:WebPage",
    "url": "dct:source",
    "assertions": {
      "@reverse": "subject"
    },
    "assertedBy": {
      "@type": "@id"
    },
    "outcome": {
      "@type": "@id"
    },
    "mode": {
      "@type": "@id"
    },
    "pointer": {
      "@type": "ptr:CSSSelectorPointer"
    }
  },
  "@type": "WebPage",
  "url": "http://localhost/",
  "assertions": [
    {
      "assertedBy": {
        "@id": "https://github.com/dequelabs/axe-core/releases/tag/3.1.2",
        "@type": ["earl:Assertor", "earl:Software", "doap:Project"],
        "doap:name": "Axe",
        "doap:vendor": {
          "@id": "https://deque.com/",
          "@type": "foaf:Organization",
          "foaf:name": "Deque Systems"
        }
      },
      "test": {
        "@type": "TestCase",
        "@id": "https://dequeuniversity.com/rules/axe/3.1/foo"
      },
      "result": {
        "@type": "TestResult",
        "outcome": "earl:inapplicable"
      },
      "@type": "Assertion",
      "mode": "earl:automatic"
    },
    {
      "assertedBy": {
        "@id": "https://github.com/dequelabs/axe-core/releases/tag/3.1.2",
        "@type": ["earl:Assertor", "earl:Software", "doap:Project"],
        "doap:name": "Axe",
        "doap:vendor": {
          "@id": "https://deque.com/",
          "@type": "foaf:Organization",
          "foaf:name": "Deque Systems"
        }
      },
      "test": {
        "@type": "TestCase",
        "@id": "https://dequeuniversity.com/rules/axe/3.1/bar"
      },
      "result": {
        "@type": "TestResult",
        "info": "Ensures role attribute has an appropriate value for the element",
        "outcome": "earl:undefined",
        "pointer": "#foo"
      },
      "@type": "Assertion",
      "mode": "earl:automatic"
    }
  ]
}
```

---
_Source: https://npm.io/package/@axe-core/reporter-earl · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
