Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8792192
chore(deps): Bump puma
dependabot[bot] Apr 27, 2026
ce9607c
chore(deps): Bump ruby/setup-ruby
dependabot[bot] Apr 27, 2026
ce6c41c
chore(deps): Bump the npm-minor-and-patch group across 5 directories …
dependabot[bot] Apr 27, 2026
13ec019
chore(deps): Bump puma from 8.0.0 to 8.0.1 in /sites/site-with-errors…
JoyceZhu Apr 28, 2026
bc65dc9
chore(deps): Bump ruby/setup-ruby from 1.302.0 to 1.306.0 in the gith…
JoyceZhu Apr 28, 2026
056191e
chore(deps): Bump the npm-minor-and-patch group across 5 directories …
JoyceZhu Apr 28, 2026
4b6d381
Update PLUGINS.md with workflow setup instructions
lindseywild Apr 30, 2026
77a9d51
Update PLUGINS.md
lindseywild Apr 30, 2026
551f29c
Apply suggestions from code review
lindseywild Apr 30, 2026
55e52b7
Update plugin instructions in PLUGINS.md
lindseywild Apr 30, 2026
95475e6
Update PLUGINS.md with workflow setup instructions (#211)
lindseywild Apr 30, 2026
5331452
Initial plan
Copilot May 1, 2026
9155530
feat: add exclude selectors input to accessibility scanner
Copilot May 1, 2026
f297368
chore(deps): Bump the npm-minor-and-patch group across 2 directories …
dependabot[bot] May 5, 2026
32beadd
chore(deps): Bump the npm-minor-and-patch group across 2 directories …
abdulahmad307 May 6, 2026
88d20c3
feat: replace exclude input with urlConfig for per-URL selector exclu…
Copilot May 6, 2026
7ca0201
adjust code
abdulahmad307 May 6, 2026
95a7f8b
fix linting
abdulahmad307 May 6, 2026
0f88383
Merge branch 'main' into copilot/add-exclude-selectors-feature
abdulahmad307 May 6, 2026
d29db52
chore(deps): Bump ruby/setup-ruby
dependabot[bot] May 12, 2026
e4b950e
chore(deps): Bump the npm-minor-and-patch group across 5 directories …
dependabot[bot] May 12, 2026
d8af1cf
chore(deps): Bump ruby/setup-ruby from 1.306.0 to 1.307.0 in the gith…
smockle May 13, 2026
ff9b5b7
Merge branch 'main' into dependabot/npm_and_yarn/npm-minor-and-patch-…
smockle May 13, 2026
588b3a8
chore(deps): Bump the npm-minor-and-patch group across 5 directories …
smockle May 13, 2026
f9f4010
Add `url_configs` input to skip CSS selectors per URL from Axe scan (…
abdulahmad307 May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions .github/actions/auth/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions .github/actions/auth/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
"license": "MIT",
"type": "module",
"dependencies": {
"@actions/core": "^3.0.0",
"playwright": "^1.59.1"
"@actions/core": "^3.0.1",
"playwright": "^1.60.0"
},
"devDependencies": {
"@types/node": "^25.6.0",
"@types/node": "^25.7.0",
"typescript": "^6.0.3"
}
}
24 changes: 12 additions & 12 deletions .github/actions/file/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions .github/actions/file/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
"license": "MIT",
"type": "module",
"dependencies": {
"@actions/core": "^3.0.0",
"@actions/core": "^3.0.1",
"@octokit/core": "^7.0.6",
"@octokit/plugin-throttling": "^11.0.3"
},
"devDependencies": {
"@types/node": "^25.6.0",
"@types/node": "^25.7.0",
"typescript": "^6.0.3"
}
}
5 changes: 4 additions & 1 deletion .github/actions/find/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ description: 'Finds potential accessibility gaps.'
inputs:
urls:
description: 'Newline-delimited list of URLs to check for accessibility issues'
required: true
required: false
multiline: true
url_configs:
description: "Stringified JSON array of URL config objects, each with a 'url' field and an optional 'excludeSelectors' field (array of CSS selectors to exclude from the Axe scan for that URL). When provided, takes precedence over the 'urls' input."
required: false
auth_context:
description: "Stringified JSON object containing 'username', 'password', 'cookies', and/or 'localStorage' from an authenticated session"
required: false
Expand Down
56 changes: 28 additions & 28 deletions .github/actions/find/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions .github/actions/find/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@
"license": "MIT",
"type": "module",
"dependencies": {
"@actions/core": "^3.0.0",
"@axe-core/playwright": "^4.11.2",
"@actions/core": "^3.0.1",
"@axe-core/playwright": "^4.11.3",
"esbuild": "^0.28.0",
"playwright": "^1.59.1"
"playwright": "^1.60.0"
},
"devDependencies": {
"@types/node": "^25.6.0",
"@types/node": "^25.7.0",
"typescript": "^6.0.3"
}
}
14 changes: 10 additions & 4 deletions .github/actions/find/src/findForUrl.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type {ColorSchemePreference, Finding, ReducedMotionPreference} from './types.d.js'
import type {ColorSchemePreference, Finding, ReducedMotionPreference, UrlConfig} from './types.d.js'
import {AxeBuilder} from '@axe-core/playwright'
import playwright from 'playwright'
import {AuthContext} from './AuthContext.js'
Expand All @@ -8,12 +8,13 @@ import {getScansContext} from './scansContextProvider.js'
import * as core from '@actions/core'

export async function findForUrl(
url: string,
urlConfig: UrlConfig,
authContext?: AuthContext,
includeScreenshots: boolean = false,
reducedMotion?: ReducedMotionPreference,
colorScheme?: ColorSchemePreference,
): Promise<Finding[]> {
const {url, excludeSelectors} = urlConfig
const browser = await playwright.chromium.launch({
headless: true,
executablePath: process.env.CI ? '/usr/bin/google-chrome' : undefined,
Expand Down Expand Up @@ -56,7 +57,7 @@ export async function findForUrl(
}

if (scansContext.shouldPerformAxeScan) {
await runAxeScan({page, addFinding})
await runAxeScan({page, addFinding, excludeSelectors})
}
} catch (e) {
core.error(`Error during accessibility scan: ${e}`)
Expand All @@ -69,13 +70,18 @@ export async function findForUrl(
async function runAxeScan({
page,
addFinding,
excludeSelectors,
}: {
page: playwright.Page
addFinding: (findingData: Finding, options?: {includeScreenshots?: boolean}) => Promise<void>
excludeSelectors?: string[]
}) {
const url = page.url()
core.info(`Scanning ${url}`)
const rawFindings = await new AxeBuilder({page}).analyze()
const axeBuilder = new AxeBuilder({page})
excludeSelectors?.forEach(selector => axeBuilder.exclude(selector))

const rawFindings = await axeBuilder.analyze()

if (rawFindings) {
for (const violation of rawFindings.violations) {
Expand Down
Loading