Ariada · Open Source · Documentation

HTML Report Renderer — the portable scan artefact

An npm package that turns any Ariada scan result JSON into a single self-contained accessible HTML file — no server, no CDN, no JavaScript framework required at render time.

Package: @ariada-org/scan-report-html Developer tooling / surface Open source · EUPL-1.2 Free Real build — not a mockup

What this module is

@ariada-org/scan-report-html is a rendering library: it accepts a scan result object (the output of @ariada-org/core-engine) and emits a fully self-contained HTML file that can be opened in any browser, emailed, checked into a repository, or served as a CI artefact — with no runtime dependencies.

Is this a design mockup? No. The renderer ships as an npm package in packages/scan-report-html. The screenshots below show the real rendered output produced by the automated Playwright harness.
Type
npm library — renderReport(result: ScanResult): string → HTML string
Where it lives
packages/scan-report-html; published to npm as @ariada-org/scan-report-html
Runtime deps
Zero — the output is a single self-contained HTML file with inlined CSS
Accessibility
The rendered report is itself built to WCAG 2.2 AA — semantic landmarks, one h1, table headers, keyboard-operable no-JS lightbox
Status
Published at 0.1.0 with Sigstore provenance; API stable

Who uses it & why

RoleHow they use itValue
CI/CD pipeline engineerAttaches a human-readable HTML report as a CI artefact on every scan runHigh — table-stakes for audit trails
DeveloperOpens the report locally after a CLI scan; shares it with stakeholdersHigh
Compliance teamArchives a dated self-contained HTML file per site per quarterHigh
Platform / SaaS builderEmbeds the renderer in their own accessibility dashboard to generate reports on demandMedium

The renderer is a utility module consumed by the CLI, the browser extension, the web demo, and any third party integrating Ariada scan results.

Distribution — free and open source

The scan-report renderer is free and open source under the EUPL-1.2 licence. There is no account and no runtime network calls to use the renderer.

CapabilityAvailability
Render any scan result to self-contained accessible HTMLFree · open source
All six compliance domains in the rendered outputFree · open source
Zero runtime dependencies in the rendered fileFree · open source
WCAG 2.2 AA-accessible output by constructionFree · open source
Everything documented on this page is part of the open toolkit. The project is funded as public-interest open source.

Getting started

  1. Discover — the CLI and browser extension both produce reports via this package; users encounter it as the exit artefact.
  2. Adoptnpm install @ariada-org/scan-report-html and call renderReport(result).
  3. Archive — commit the self-contained HTML per sprint or attach it as a CI artefact for the compliance audit trail.
  4. Build on it — the package is importable in any Node or Bun project; its zero-dependency output works anywhere a browser can open a file.

Documentation & help — current state

API
renderReport(result: ScanResult, options?: RenderOptions): string — returns the full HTML string. writeReport(result, path) writes it to disk.
Docs site
apps/docs (Astro Starlight) needs a "HTML Report" page showing the API, the output structure, and how to embed the file in GitHub Actions as an artefact.
README
Published at 0.1.0 with a minimal README; a full quick-start guide is the top docs follow-up.

AI chat & digital-adoption helpers — plan

Honest status: the renderer has no AI features and no committed AI plan. The rendered HTML is a static artefact by design. AI-powered explanations of findings (if added) would be generated upstream by the scan engine and passed in as pre-generated text within the ScanResult object — the renderer itself remains a deterministic template engine.

Screenshots — click any image to open it full size

From the end-to-end Playwright harness. Each thumbnail opens a full-size, zoomable overlay.

Populated report — desktop view with six domain columns, severity rows, and finding details
1 · Populated report — desktop
Populated report — mobile 375 px view, responsive stacked layout
2 · Populated report — mobile
Empty-state report — desktop, no findings, green all-clear per domain
3 · Empty state — desktop
Empty-state report — mobile 375 px, stacked all-clear cards
4 · Empty state — mobile

Assessment summary

Full assessment is in assessment.html. Headline: the renderer passes its own axe-core gate (the report must be accessible — the scanner's output cannot itself be inaccessible). Open gaps: no PDF export path yet; the populated report's table scrolls horizontally on 375 px without a sticky first column.

Full detail in assessment.html.