Output Formats
After a scan completes, Vesper Audit writes its results to your configured output folder. This page documents every output file and format.
Output folder structure
All files are written flat to your output folder - no subfolders. Each file is named after the audited domain and the date the scan ran:
~/Desktop/Vesper-Audits/
example-com - Accessibility Report - April-05-2026.pdf
example-com--2026-04-05-09-14-22.json
The output folder defaults to ~/Desktop/Vesper-Audits and can be changed in Settings > Output Folder.
Results JSON file
After every scan, Vesper Audit automatically writes a .json results file to your output folder. This happens regardless of other export settings and cannot be disabled.
The JSON file is the data source for the in-app report viewer. It contains the complete structured results of the scan: every page audited, every violation found, impact levels, WCAG references, affected elements, and scan metadata. It is not intended for manual editing, but it is human-readable if you need to inspect it.
To open a results file from a previous scan, use Open Report... in the Reports tab toolbar.
PDF report
The PDF report is a formatted, print-ready document suited for delivery to clients or stakeholders. It is optional - enable it in Scanner Options > Export as PDF.
The PDF contains:
- A cover page with the site name, scan date, and a summary of findings by severity
- A violations section listing every affected page with its violations, impact badges, WCAG references, and affected elements
- A PDFs found section (when PDF scanning is enabled and PDFs were found)
- A broken links section (when broken link checking is enabled and broken links were found)
The PDF is generated using Electron's native print-to-PDF capability. No external dependencies are required.
In-App Report Viewer
The Reports tab in Vesper Audit lets you browse scan results without opening any external app. After every scan, click Open in Viewer on the result card to open the Reports tab with your results loaded automatically.
The viewer sidebar lists all scanned pages sorted by violation count, with clean pages at the bottom. Clicking a page shows all violations found on that page, including impact level, WCAG criterion link, fix guidance, and affected HTML elements. Where a Vesper Guide exists for the violation rule, a guide link appears in the card. Page URLs are clickable and open the live page in your browser.
To open results from a previous scan, click Open Report... in the Reports tab toolbar and select any .json results file. See In-App Report Viewer for full documentation.
Notion output
When Notion export is enabled, Vesper Audit creates a structured set of pages under your configured Notion parent page after each scan:
Your Notion Parent Page
Audit: example.com - April 5, 2026
Audit Report
PDFs Found (N) ← only created when PDFs are present
Broken Links (N) ← only created when broken links are found
Audit Log
Suppressed Errors ← only created when suppressions matched
Notion sync runs in the background after a scan completes. A sync strip in the Audit panel shows progress - you can start a new audit while a previous sync is still running. See Notion Integration for setup instructions.
Custom checks
In addition to axe-core, Vesper Audit runs three built-in checks on every page that axe-core does not cover.
Ambiguous link text (vesper-ambiguous-link, moderate) - Flags links whose accessible name falls into any of the following categories:
- Generic phrase - accessible name matches a known ambiguous phrase: "click here", "here", "read more", "more", "learn more", "see more", "view more", "find out more", "details", "info", "information", "continue", "download", and similar.
- Raw URL - accessible name starts with
http://,https://, orwww.. Screen readers announce raw URLs character by character, which is disorienting. - Raw phone number - a
tel:link whose accessible name consists only of digits, spaces, dashes, dots, parentheses, and plus signs with no descriptive text. - Raw email address - a
mailto:link whose accessible name is a bare email address with no descriptive text.
Both map to WCAG 2.4.4 Link Purpose (In Context) - Level A (opens in a new tab).
Duplicate link text to different destinations (vesper-duplicate-link-text, serious) - Flags groups of links on the same page that share an identical accessible name but point to different URLs. For example, ten "Watch on YouTube" links each going to a different video would all be flagged. Links that share an accessible name and a destination are not flagged. Also maps to WCAG 2.4.4.
Empty heading (vesper-empty-heading, moderate) - Flags <h1> through <h6> elements whose accessible name is empty or consists only of whitespace. Empty headings create phantom structure: screen readers announce that a heading exists but read nothing aloud. Maps to WCAG 2.4.6 Headings and Labels - Level AA (opens in a new tab).
Configuring which outputs are generated
You can control output formats in the Scanner Options section on the Audit panel:
- Toggle WCAG violations scan on/off
- Toggle best practices scan on/off
- Toggle PDF export on/off
- Toggle PDF scanner on/off
- Toggle broken links check on/off
- Toggle Notion export on/off
The results JSON file is always written after every scan and cannot be disabled.
Report Filter
The Report Filter badge row in Scanner Options lets you narrow the accessibility output to one or more rule categories. All rules is the default and runs everything. Selecting one or more categories - Links, Images, Forms, Color & contrast, Page structure, or Keyboard & focus - limits the violations in every output to only those rule categories.
All axe-core rules still run during the scan. The filter is applied after the crawl, before results are written to any output format. Violation counts in the summary, PDF, Notion, and viewer all reflect the filtered set.
When a filter is active, every output is clearly labeled:
- PDF - an amber "Filtered: [categories]" badge appears on the cover alongside the WCAG 2.2 A/AA and audit type badges; a Rules row is added to the scope strip at the bottom of the cover page.
- Notion - a yellow callout block appears near the top of the parent audit page noting which rule categories were active.
- In-app viewer - an amber notice bar appears below the viewer toolbar when a filtered report is loaded.
The filter selection persists between sessions. Selecting all six categories is treated the same as All rules and reverts automatically.
Scan mode
Vesper Audit supports two scan modes, selectable above the Run button on the Audit panel:
- Full Site - the default. The crawler starts at your URL and follows all internal links, auditing every page it finds.
- Single Page - audits only the URL you enter. No link following. Useful for spot-checking a specific page without waiting for a full crawl.
PDF collection and broken link checking still run normally in Single Page mode, scoped to the one page being audited. The mode you choose persists across sessions.
Omit scanner attribution
By default, reports include a line crediting Vesper Audit as the tool that produced them. The Settings > Report Options > Omit scanner attribution toggle removes this line from all report formats before they go to clients.
When the toggle is on, the "Audited by Vesper Audit" line is omitted from Notion output and the footer strip is removed from PDF output. The line is not replaced with alternative text - it is simply absent.
Output folder location
The default output folder is ~/Desktop/Vesper-Audits. You can change this in Settings > Output Folder. The folder is created automatically if it does not exist.