Gathering detailed insights and metrics for axe-puppeteer
Gathering detailed insights and metrics for axe-puppeteer
Gathering detailed insights and metrics for axe-puppeteer
Gathering detailed insights and metrics for axe-puppeteer
@axe-core/puppeteer
Provides a chainable axe API for Puppeteer and automatically injects into all frames
@wordpress/jest-puppeteer-axe
Axe API integration with Jest and Puppeteer.
@daisy/ace-axe-runner-puppeteer
Puppeteer-based Axe runner for Ace
axe-scan
A CLI tool to test web accessibility on multiple web pages based on a list of URLs in a text file.
[DEPRECATED] Provides a chainable axe API for Puppeteer and automatically injects into all frames.
npm install axe-puppeteer
Typescript
Module System
Min. Node Version
Node Version
NPM Version
TypeScript (96.96%)
Shell (1.81%)
JavaScript (1.23%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
59 Stars
81 Commits
10 Forks
7 Watchers
4 Branches
13 Contributors
Updated on Apr 28, 2024
Latest Version
1.1.1
Package Id
axe-puppeteer@1.1.1
Size
17.01 kB
NPM Version
6.14.6
Node Version
10.22.1
Published on
Oct 08, 2020
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
1
1
This repository has been deprecated. The package has been moved to axe-core-npm. The package will be available via NPM as
@axe-core/puppeteer
.
Provides a chainable axe API for Puppeteer and automatically injects into all frames.
Install Node.js if you haven't already. For running axe-puppeteer tests read more about setting up your environment.
Install Puppeteer: npm install puppeteer --no-save
Install axe-puppeteer and its dependencies: npm install axe-puppeteer
This module uses a chainable API to assist in injecting, configuring and analyzing using axe with Puppeteer. As such, it is required to pass an instance of a Puppeteer Page
or Frame
.
Here is an example of a script that will drive Puppeteer to this repository, perform analysis and then log results to the console.
1const { AxePuppeteer } = require('axe-puppeteer') 2const puppeteer = require('puppeteer') 3 4;(async () => { 5 const browser = await puppeteer.launch() 6 const page = await browser.newPage() 7 await page.setBypassCSP(true) 8 9 await page.goto('https://dequeuniversity.com/demo/mars/') 10 11 const results = await new AxePuppeteer(page).analyze() 12 console.log(results) 13 14 await page.close() 15 await browser.close() 16})()
Note: Usage examples make use of ES2017 async/await. Use of await
can only be done in a function
declared async
. If your project does not support async/await, you can just directly use the promise
async
functions return. Check here for more
information.
When trying to run axe, you might run into issues if the page you are checking has Content Security Policy enabled. To get around this, you must disable it through Page#setBypassCSP
before navigating to the site.
An alternate constructor is available which opens a page and performs the CSP bypass for you.
It closes the page after analyze
is called.
1const { loadPage } = require('axe-puppeteer') 2const puppeteer = require('puppeteer') 3 4;(async () => { 5 const browser = await puppeteer.launch() 6 const axeBuilder = await loadPage( 7 browser, 8 'https://dequeuniversity.com/demo/mars/' 9 ) 10 const results = await axeBuilder.analyze() 11 console.log(results) 12 13 await browser.close() 14})()
Constructor for the AxePuppeteer helper.
You must pass an instance of a Puppeteer Frame
or Page
as the first argument. Cannot be called without the new
keyword.
1const builder = new AxePuppeteer(page)
If you wish to run a specific version of axe-core, you can pass the source axe-core
source file in as a string. Doing so will mean axe-puppeteer runs this version of axe-core, instead of the one installed as a dependency of axe-puppeteer.
1const axeSource = fs.readFileSync('./axe-3.0.js', 'utf8')
2const builder = new AxePuppeteer(page, axeSource)
Note that you might need to bypass the Content Security Policy in some cases.
Adds a CSS selector to the list of elements to include in analysis
1new AxePuppeteer(page).include('.results-panel')
Add a CSS selector to the list of elements to exclude from analysis
1new AxePuppeteer(page) 2 .include('.results-panel') 3 .exclude('.results-panel h2')
Specifies options to be used by axe.run
. Will override any other configured options, including calls to withRules
and withTags
.
See axe-core API documentation
for information on its structure.
1new AxePuppeteer(page).options({ 2 checks: { 'valid-lang': ['orcish'] } 3})
Limits analysis to only those with the specified rule IDs. Accepts a String of a single rule ID or an Array of multiple rule IDs. Subsequent calls to AxePuppeteer#options
, AxePuppeteer#withRules
or AxePuppeteer#withRules
will override specified options.
1new AxePuppeteer(page).withRules('html-lang')
1new AxePuppeteer(page).withRules(['html-lang', 'image-alt'])
Limits analysis to only those with the specified rule IDs. Accepts a String of a single tag or an Array of multiple tags. Subsequent calls to AxePuppeteer#options
, AxePuppeteer#withRules
or AxePuppeteer#withRules
will override specified options.
1new AxePuppeteer(page).withTags('wcag2a')
1new AxePuppeteer(page).withTags(['wcag2a', 'wcag2aa'])
Skips verification of the rules provided. Accepts a String of a single rule ID or an Array of multiple rule IDs. Subsequent calls to AxePuppeteer#options
, AxePuppeteer#disableRules
will override specified options.
1new AxePuppeteer(page).disableRules('color-contrast')
or use it combined with some specified tags:
1new AxePuppeteer(page)
2 .withTags(['wcag2a', 'wcag2aa'])
3 .disableRules('color-contrast')
Inject an axe configuration object to modify the ruleset before running Analyze. Subsequent calls to this method will invalidate previous ones by calling axe.configure
and replacing the config object. See axe-core API documentation for documentation on the object structure.
1const config = { 2 checks: [Object], 3 rules: [Object] 4} 5const results = await new AxePuppeteer(page) 6 .configure(config) 7 .analyze() 8console.log(results)
Performs analysis and passes any encountered error and/or the result object to the provided callback function or promise function. Does not chain as the operation is asynchronous
Using the returned promise (optional):
1new AxePuppeteer(page) 2 .analyze() 3 .then(function(results) { 4 console.log(results) 5 }) 6 .catch(err => { 7 // Handle error somehow 8 })
Using a callback function
1new AxePuppeteer(page).analyze(function(err, results) { 2 if (err) { 3 // Handle error somehow 4 } 5 console.log(results) 6})
No vulnerabilities found.
Reason
all changesets reviewed
Reason
no binaries found in the repo
Reason
no dangerous workflow patterns detected
Reason
project is archived
Details
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
project is not fuzzed
Details
Reason
license file not detected
Details
Reason
security policy file not detected
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
32 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-07-07
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More