An application to scan and display a11y statistics for websites over time.
React, Next.js front-end. Allows you to submit URLs to be scanned and added to the database. Ability to view previously scanned data by URL, slug, and date of scan. Visualizations make use of d3.js.
The submission page provides feedback indicating whether scan submissions were successful or not.
The data visualization page allows for filtering and drilling down into specific pages and time periods. For each scan, a detailed list of axe violations is present.
Install dependencies:
npm install
Set environment variables. Examples in .env.example.
npm run dev
Hosts website at localhost:3000
The API layer features an express server, and handles both page scanning and database storage / retrieval. Accessibility scanning is handled using the axe-puppeteer API.
The app uses a MongoDB Database, with the mongoose library within the API.
Web Crawling. Currently have tried to use Apify Puppeteer-Crawler, but was unable to get puppeteer to launch.