Skip to content

v2.12.0 testing#175

Merged
lindseywild merged 20 commits intov2from
main
Mar 24, 2026
Merged

v2.12.0 testing#175
lindseywild merged 20 commits intov2from
main

Conversation

@lindseywild
Copy link
Contributor

@lindseywild lindseywild commented Mar 24, 2026

Release testing & prep for v2.12.0.

lindseywild and others added 20 commits March 23, 2026 14:16
Bumps the github-actions group with 1 update in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).


Updates `ruby/setup-ruby` from 1.293.0 to 1.295.0
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](ruby/setup-ruby@dffb23f...319994f)

---
updated-dependencies:
- dependency-name: ruby/setup-ruby
  dependency-version: 1.295.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
…ub-actions group across 1 directory (#174)

Bumps the github-actions group with 1 update in the / directory:
[ruby/setup-ruby](https://github.com/ruby/setup-ruby).

Updates `ruby/setup-ruby` from 1.293.0 to 1.295.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ruby/setup-ruby/releases">ruby/setup-ruby's
releases</a>.</em></p>
<blockquote>
<h2>v1.295.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update CRuby releases on Windows by <a
href="https://github.com/ruby-builder-bot"><code>@​ruby-builder-bot</code></a>
in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/890">ruby/setup-ruby#890</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.294.0...v1.295.0">https://github.com/ruby/setup-ruby/compare/v1.294.0...v1.295.0</a></p>
<h2>v1.294.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add ruby-4.0.2 by <a
href="https://github.com/ruby-builder-bot"><code>@​ruby-builder-bot</code></a>
in <a
href="https://redirect.github.com/ruby/setup-ruby/pull/889">ruby/setup-ruby#889</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ruby/setup-ruby/compare/v1.293.0...v1.294.0">https://github.com/ruby/setup-ruby/compare/v1.293.0...v1.294.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ruby/setup-ruby/commit/319994f95fa847cf3fb3cd3dbe89f6dcde9f178f"><code>319994f</code></a>
Update CRuby releases on Windows</li>
<li><a
href="https://github.com/ruby/setup-ruby/commit/c984c1a20bb35a1cbda04477c816cea024418be9"><code>c984c1a</code></a>
Add ruby-4.0.2</li>
<li>See full diff in <a
href="https://github.com/ruby/setup-ruby/compare/dffb23f65a78bba8db45d387d5ea1bbd6be3ef18...319994f95fa847cf3fb3cd3dbe89f6dcde9f178f">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruby/setup-ruby&package-manager=github_actions&previous-version=1.293.0&new-version=1.295.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>
Adds a built-in scan that will detect if a page horizontally scrolls on
a mobile screen size (320x256).

Example reflow issue:

<img width="1247" height="1163" alt="Screen shot of a GitHub issue with
the title 'page requires horizontal scrolling', and the issue body
stating the issue is found at 320x256px"
src="https://github.com/user-attachments/assets/ed9e4111-2aeb-4ab0-8df3-a5984a846628"
/>

Updates made:
* Passes in `url` from the plugin manager so it can be accessed in the
plugins (which I can see being needed for most plugins at this point)
* Removes test plugin in favor of pointing to a real plugin, updates
docs accordingly
* Updates the pluginManager to account for an edge case with duplicate
named plugins running multiple times
* Makes `ruleId` and `html` optional in the issue body - handles
conditionals if these are not passed in and adds tests
* Adds new error to the sites/site-with-errors 404 page to check in the
site-with-errors test.

[Testing - staff only]: 
* [Workflow test w/no scans input passed
in](https://github.com/github/accessibility-scorecard/actions/runs/23449717365)
* [Workflow test w/`include_screenshots`
on](https://github.com/github/accessibility-scorecard/actions/runs/23448598781)
* [Workflow test w/`include_screenshots`
off](https://github.com/github/accessibility-scorecard/actions/runs/23449359031)
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the scanner beyond Axe-only findings by introducing a built-in “reflow” scan plugin and updating typings/issue-filing logic to support findings that don’t have ruleId/html (non-Axe scans).

Changes:

  • Add a built-in reflow-scan plugin (320x256 viewport) and wire it into CI/test expectations.
  • Make Finding.ruleId and Finding.html optional across action + test types, and update issue filing/body generation accordingly.
  • Improve plugin loading to avoid loading a built-in plugin twice when a custom plugin with the same name exists; update docs/workflow examples for the scans input.

Reviewed changes

Copilot reviewed 16 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/types.d.ts Make ruleId/html optional in test Finding type.
tests/site-with-errors.test.ts Add reflow-scan expectations; make assertions conditional for Axe-specific fields.
sites/site-with-errors/404.html Add intentionally wide element to trigger reflow finding.
README.md Document scans input usage in workflow + inputs table.
PLUGINS.md Update plugin documentation link/reference text.
.github/workflows/test.yml Run tests with scans: ["axe","reflow-scan"]; update ruby/setup-ruby pin.
.github/scanner-plugins/test-plugin/package.json Remove old test plugin metadata.
.github/scanner-plugins/test-plugin/index.js Remove old test plugin implementation.
.github/scanner-plugins/reflow-scan/package.json Add built-in reflow-scan plugin package metadata.
.github/scanner-plugins/reflow-scan/index.js Implement built-in horizontal-scroll detection scan.
.github/actions/find/tests/pluginManager.test.ts Add test coverage for skipping duplicate built-in plugin names.
.github/actions/find/src/types.d.ts Make html optional (and align with optional ruleId).
.github/actions/find/src/pluginManager.ts Make addFinding async; skip loading custom plugins that duplicate built-ins by name.
.github/actions/file/tests/openIssue.test.ts Update expected label ordering.
.github/actions/file/tests/generateIssueBody.test.ts Add coverage for missing html; make acceptance criteria scanner-agnostic.
.github/actions/file/src/updateFilingsWithNewFindings.ts Add fallback key logic when ruleId/html are absent.
.github/actions/file/src/types.d.ts Make ruleId/html optional for filing action.
.github/actions/file/src/openIssue.ts Avoid creating ruleId label when ruleId is missing.
.github/actions/file/src/generateIssueBody.ts Handle findings without html; generalize acceptance criteria language.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

| `reduced_motion` | No | Playwright `reducedMotion` setting for scan contexts. Allowed values: `reduce`, `no-preference` | `reduce` |
| `color_scheme` | No | Playwright `colorScheme` setting for scan contexts. Allowed values: `light`, `dark`, `no-preference` | `dark` |
| `scans` | No | An array of scans (or plugins) to be performed. If not provided, only Axe will be performed. | `['axe', ...other plugins]` |
| `scans` | No | An array of scans (or plugins) to be performed. If not provided, only Axe will be performed. | `'["axe", "reflow-scan", ...other plugins]'` |
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The scans example value in the inputs table isn't valid JSON (...other plugins can't be parsed). Since the action parses this input via JSON.parse, please update the example to a copy-pastable JSON string (e.g., '["axe","reflow-scan"]' or '["axe","my-custom-plugin"]').

Suggested change
| `scans` | No | An array of scans (or plugins) to be performed. If not provided, only Axe will be performed. | `'["axe", "reflow-scan", ...other plugins]'` |
| `scans` | No | An array of scans (or plugins) to be performed. If not provided, only Axe will be performed. | `'["axe","reflow-scan"]'` |

Copilot uses AI. Check for mistakes.
if (finding.ruleId && finding.html) {
return `${finding.url};${finding.ruleId};${finding.html}`
}
return `${finding.url};${finding.scannerType};${finding.problemUrl}`
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fallback getFindingKey (url;scannerType;problemUrl) can easily collide for multiple findings on the same page (e.g., plugins that report multiple elements but share the same problemUrl). Collisions will cause findings to be incorrectly associated with an existing issue, potentially dropping/merging distinct findings. Consider incorporating additional stable fields into the fallback (e.g., problemShort and/or solutionShort, or a dedicated fingerprint field on Finding for non-Axe scans).

Suggested change
return `${finding.url};${finding.scannerType};${finding.problemUrl}`
// For non-Axe scans, prefer a stable fingerprint if available; otherwise,
// include additional stable fields to reduce the risk of collisions.
if ('fingerprint' in finding && (finding as any).fingerprint) {
return `${finding.url};${finding.scannerType};${(finding as any).fingerprint}`
}
return `${finding.url};${finding.scannerType};${finding.problemUrl};${(finding as any).problemShort ?? ''};${(finding as any).solutionShort ?? ''}`

Copilot uses AI. Check for mistakes.
Copy link
Contributor

@JoyceZhu JoyceZhu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved for release testing

@lindseywild lindseywild merged commit 7866232 into v2 Mar 24, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants