Comments (2)
My experience is for troubleshooting issues like this, using the --screen-capture <path>
CLI argument or screenCapture
configuration option lets you see the page to know exactly what Pa11y is analyzing. In this case you'll see that Pa11y runs Chrome with the default value, which is prefers-color-scheme: light
.
I don't know of a way to change this through the chromeLaunchConfig
settings (maybe someone else does). Puppeteer does allow this to be changed through the page
API, so without a Pa11y change it might require something like this example, which manually creates the browser
and page
so that the page
can be manipulated before passing to Pa11y.
import puppeteer from 'puppeteer';
import pa11y from 'pa11y';
const runPa11y = async (url, colorScheme) => {
const page = await browser.newPage();
await page.emulateMediaFeatures([
{ name: 'prefers-color-scheme', value: colorScheme }
]);
const results = await pa11y(url, {
browser,
page,
screenCapture: `pa11y-${colorScheme}.png`
});
await page.close();
return results;
};
const url = 'https://github.com/pa11y/pa11y/';
const testCases = [
{ url, colorScheme: 'dark' },
{ url, colorScheme: 'light' }
];
const browser = await puppeteer.launch();
const results = await Promise.all(
testCases.map(async ({ url, colorScheme }) => {
await runPa11y(url, colorScheme);
})
);
// do something with results
await browser.close();
It does seems like adding a dedicated option to simplify this would be beneficial, especially for something many users are likely to want.
from pa11y.
Related Issues (20)
- timeout error for a single url HOT 1
- CircleCI run differs from expected output. JS not running before pa11y test. HOT 1
- Using gitlab ci environment variables to authenticate HOT 1
- Can we get violations defects for after login pages using pa11y? HOT 2
- TimeoutError: Pa11y timed out HOT 6
- Inconsistencies between pa11y and other accessibility tools HOT 1
- Axe runner doesn't include wcag2aaa tag when standard is set to WCAG2AAA. HOT 2
- How do I include multiple Urls in 1 report? HOT 7
- Can I include a config file for a report? HOT 2
- Error reporting during installation HOT 1
- rules option ignored HOT 1
- Documented require() for reporters doesn't work HOT 3
- Error: Could not find expected browser (chrome) locally. Run `npm install` to download the correct Chromium revision (869685) HOT 5
- Is pa11y still maintained? HOT 6
- Fails to run once `core-js` is removed from the page. HOT 3
- Retrieving the number of items that pass the checks per rule HOT 1
- Version 7.0.0 requires an unsupported version of puppeteer HOT 5
- Certain pages result in "Cannot read properties of undefined (reading 'replace')" HOT 4
- Custom Timeout settings is not working - script is timed out with default 30000 ms HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pa11y.