Skip to content

chore(release): 4.12.1 - #5152

Merged
WilcoFiers merged 4 commits into
masterfrom
release-4.12.1
Jun 10, 2026
Merged

chore(release): 4.12.1#5152
WilcoFiers merged 4 commits into
masterfrom
release-4.12.1

Conversation

@straker

@straker straker commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Bug Fixes

  • axe.d.ts: make enabled property of RuleMetadata optional (#5129) (7eb3d2d)

straker and others added 4 commits June 9, 2026 11:46
Migrating Karma to use Web Test Runner (WTR). Out of the box it has some
problems that needed to be addressed, and some things we'll need to get
use to using a new test runner.

* WTR uses Playwright by default, but Playwright doesn't support Firefox
Nightly. We'll use the Selenium driver in order to support that
* However the Selenium driver automatically runs each test inside an
iframe, which we do not want (and also breaks our tests). The Selenium
driver doesn't have an option to disable this, so had to hack a way
around this to ensure each test ran in the root document and no iframe
* WTR runs each test file in an isolated Mocha context, so using `.only`
no longer works across test files, just within the file it's used in. A
bit annoying, but we can get use to this (tried to hack a way around
this but it became way too complicated and broke a bunch of other
stuff). `develop` still will watch files and run the changed test file
for us
* WTR `--manual` is used to replace `test:debug`. This didn't have a UI
at first, so added the `html` style mocha reporter that we are use to.
The only difference now is that the browser doesn't open automatically
(have to press 'D') and that the landing page is a list of links to each
test file
* WTR doesn't have a preprocess step like Karma had, so we had to move
it to it's own file and do the preprocessing for integration tests
before we run them

Additionally:

* Noticed that our axe.log stubbing in various tests weren't working
since we moved to ES6 modules (the code directly calls `log` and doesn't
go through `axe.log`), this meant the asserts testing the messages
weren't being run at all. So I fixed that by adding a `axe._setLogger`
helper that would let us designate the logger stub. This allows us to
both stub the logger or suppress it (so we don't have to see performance
timer logs in tests, etc.)
* Puppeteer was [failing a lot
recently](https://github.com/dequelabs/axe-core/actions/runs/26545263689/job/78398503218)
so fixed that while I was here
* WTR can support both our current test loading (relying on global axe
and properties) and es6 imports to the `lib` directory. I updated
`performance-timer` to show this being possible. This means we should be
able to remove the `_thisWillBeDeletedDoNotUse` property that was added
just to get things to the test and we can import those directly in the
tests that need them. However, this isn't something we can do right away
as the imported file is a different context from the same file being
imported in axe (since we bundle the axe files together). This means
file scope/state is different so we can't import the new `setLogger`
function directly in tests and use it as it doesn't set the axe.js
bundled `logger` variable scope.

Closes #5115
This was an accidental breaking change if anyone uses `RuleMetadata`
directly.

---------

Co-authored-by: Jonathan Garbee <[email protected]>
Co-authored-by: Chris Hutchins <[email protected]>
Co-authored-by: Wilco Fiers <[email protected]>
In preparation for #5044,
this will allow us to declaratively set aria prop values on the
`testutils-element` using `with-aria-*` attributes (mimicking the
`with-role` attribute). It handles converting idref(s) attributes to
their DOM nodes.
@straker
straker requested a review from a team as a code owner June 9, 2026 17:48

@WilcoFiers WilcoFiers left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Release audit

In hindsight, I think we should have split that PR. There are two bug fixes in a single PR. They're related to the same feature, but they're separate issues.

@WilcoFiers
WilcoFiers merged commit 5d002cc into master Jun 10, 2026
43 checks passed
@WilcoFiers
WilcoFiers deleted the release-4.12.1 branch June 10, 2026 10:18
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.

2 participants