Skip to content

chore(release): v4.13.0 - #5288

Merged
WilcoFiers merged 72 commits into
masterfrom
release-2026-08-05
Aug 5, 2026
Merged

chore(release): v4.13.0#5288
WilcoFiers merged 72 commits into
masterfrom
release-2026-08-05

Conversation

@attest-team-ci

Copy link
Copy Markdown
Contributor

All notable changes to this project will be documented in this file. See commit-and-tag-version for commit guidelines.

4.13.0 (2026-08-05)

Features

  • aria-actions: add aria-actions to allowed ARIA attributes (#5200) (029655d), closes #4584 #5199, references #5215 #5215
  • aria-allowed-attr: flag deprecated ARIA attributes as needs-review (#5246) (518f3cc), closes #3341
  • aria-prohibited-attr: allow many elements to be named and disallow label and body from being named (#5259) (d8b1ea5)
  • aria-roles: add sectionheader and sectionfooter roles (#5238) (c36c109), closes #4734, references #4734
  • aria/get-aria-value: new function to get aria values of a node (#5109) (a7d8f3e), references #5042
  • aria/has-attr-value: new function to check if node has aria value (#5136) (61f2624), references #5109
  • aria: support role=image as equivalent to role=img (#5248) (5aa8aaf), closes #4656, references #5272
  • checks/aria: support ARIA element internals properties (#5172) (9b7f754)
  • checks/label: support ARIA element internals properties (#5170) (21c5f8b)
  • checks/navigation: support ARIA element internals properties (#5167) (2c3a98f)
  • commons/aria: support ARIA element internals properties (#5171) (31f09e7)
  • commons/dom: support ARIA element internals properties (#5163) (f0a12cf)
  • commons/forms: support ARIA element internals properties (#5165) (27a4686)
  • commons/matches/fromPrimative: deprecate in favor of correct spelling (#5270) (31cfb2e)
  • commons/text: support ARIA element internals properties (#5169) (e841a33)
  • commons/text: support form-associated labels via element internals (#5182) (57cfe0a), closes #5045, references #5170 #5039 #5151 #5039
  • dom/getResolvedRefs: new function to get the resolved virtual nodes of idrefs (#5151) (489cdea), references #5109
  • element-internals: enable ElementInternals by default (#5284) (2740d42), closes #5277
  • i18n: Add Swedish locale (#5190) (dcd13f2), references #5189
  • matches: add inSectioningContent, hasChild, and isSummaryForDetails matches (#5262) (c47cdcd)
  • rules: support ARIA element internals properties (#5168) (065baf7)
  • standards/ariaAttrs: add caseInsensitive property for attributes (#5224) (bcd791c)

Bug Fixes

  • aria-allowed-role: allow roles on a non-details summary (#5242) (3bd9875), closes #3911, references #3443 #3911
  • aria-allowed-role: restrict figure roles with child figcaption (#5240) (178a635), closes #3443
  • aria-prohibited-attr: visible aria-labelledby requires review only (#5285) (fd6fa9f)
  • axe.d.ts: make enabled property of RuleMetadata optional (#5129) (90fce18)
  • color-contrast: fix various stacking context bugs (#5214) (d5e5b04), references #8 #5213
  • gather-internals: handle non-HTMLElement nodes (#5161) (06e84c3)
  • get-selector: escape control characters in attribute selectors (#5273) (4b60ac5), closes #5204 #5204
  • image-alt: allow whitespace alt on presentational images (#5218) (c5dd0ef), closes #5216
  • landmark-unique: exclude section/form with non-landmark roles from landmark match (#5085) (c5fd013), closes #4722 #5064
  • name the image role in role-img-alt and svg-img-alt metadata (#5279) (995a269), closes #5272, references #5248 #5248
  • standards: update aria-errormessage and aria-details to be idrefs (#5157) (fb94f8a)

This PR was opened by a robot 🤖 🎉

straker and others added 30 commits June 1, 2026 15:31
…5109)

The `getAriaValue` function gets the value from the 3 different
locations for aria data (attribute, property, element internals). The
function will always return am object of `{ value: String, source:
String }` or null. However this is a slight problem when an idref(s)
property is used as they return DOM nodes or arrays of such. In order to
still report what the value is as a string, the function massages the
data into a string by taking the node name of the DOM node as that's
probably the easiest way to report it to the user. This would result in
something like `node.ariaLabelledbyElements = [div, div];` having a
value of `'[div,div]'` instead of `''` if we only used the attribute
value.

In a separate PR we'll create two functions for resolving idref(s)
values into vNodes that should be used 99% of the time instead of
`getAriaValue`. `getAriaValue` for idref(s) should only be used when
reporting the value to the user (such as in `aria-validate-attr-value`).

Closes: #5042

---------

Co-authored-by: Chris Hutchins <[email protected]>
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.
…ue (#5136)

Companion to #5109 but replaces `vNode.hasAttr`.

This resulted in finding a bug in Firefox which crashes the browser when
trying to access an empty array set to an idrefs property in element
internals. This is why the Firefox tests are failing (technically
crashing). Filled here
https://bugzilla.mozilla.org/show_bug.cgi?id=2045887.
- Replaces all uses of grunt with build scripts.
- Migrate build dir to .mjs
- Remove grunt from qunit test example
…5154)

Bumps the npm-low-risk group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
|
[@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core)
| `7.29.0` | `7.29.7` |
|
[@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env)
| `7.29.5` | `7.29.7` |
|
[@babel/runtime-corejs3](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime-corejs3)
| `7.29.2` | `7.29.7` |
| [jsdom](https://github.com/jsdom/jsdom) | `29.0.2` | `29.1.1` |
| [mocha](https://github.com/mochajs/mocha) | `11.7.5` | `11.7.6` |
| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) |
`4.43.0` | `4.44.0` |
|
[start-server-and-test](https://github.com/bahmutov/start-server-and-test)
| `3.0.2` | `3.0.6` |


Updates `@babel/core` from 7.29.0 to 7.29.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/releases">@​babel/core's
releases</a>.</em></p>
<blockquote>
<h2>v7.29.7 (2026-05-25)</h2>
<p>Re-release all packages with npm provenance attestations</p>
<h2>v7.29.6 (2026-05-25)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/18014">#18014</a>
Catchup source map position in preserveFormat (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/18001">#18001</a>
[7.x packport]Improve input source map handling (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>, <code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17998">#17998</a>
Preserve original identifier names from input sourcemaps (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/17992">#17992</a>)
(<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 3</h4>
<ul>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Mateusz Burzyński (<a
href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li>
<li>Nicolò Ribaudo (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
<h2>v7.29.5 (2026-05-05)</h2>
<h4>:house:  Internal</h4>
<ul>
<li><code>babel-preset-env</code>
<ul>
<li>Update <code>@babel/*</code> dependencies</li>
</ul>
</li>
</ul>
<h2>v7.29.4 (2026-05-05)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-modules-systemjs</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17974">#17974</a>
[7.x backport]fix(systemjs): improve module string name support (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
<h2>v7.29.3 (2026-04-30)</h2>
<h4>:eyeglasses: Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17923">#17923</a>
Support flow extends bound (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-helper-create-class-features-plugin</code>,
<code>babel-plugin-proposal-decorators</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17931">#17931</a>
fix(decorators): replace super within all removed static elements (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-register</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix
thread synchronization issues in <code>@babel/register</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-compat-data</code>,
<code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>,
<code>babel-preset-env</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add
bugfix plugin for Safari array rest destructuring bug (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:nail_care: Polish</h4>
<ul>
<li><code>babel-parser</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a>
v7.29.7</li>
<li><a
href="https://github.com/babel/babel/commit/04ea6b27fdac8f40c3481aec2080ac9678779509"><code>04ea6b2</code></a>
v7.29.6</li>
<li><a
href="https://github.com/babel/babel/commit/99f498a9b9fa0b900d603fbe8f6601bb3b9e42bb"><code>99f498a</code></a>
[7.x packport]Improve input source map handling (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/18001">#18001</a>)</li>
<li><a
href="https://github.com/babel/babel/commit/feba0a3654c596bd369d1ef1231f5d56666d56dc"><code>feba0a3</code></a>
Preserve original identifier names from input sourcemaps (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/17992">#17992</a>)
(<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/17998">#17998</a>)</li>
<li>See full diff in <a
href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-core">compare
view</a></li>
</ul>
</details>
<br />

Updates `@babel/preset-env` from 7.29.5 to 7.29.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/releases">@​babel/preset-env's
releases</a>.</em></p>
<blockquote>
<h2>v7.29.7 (2026-05-25)</h2>
<p>Re-release all packages with npm provenance attestations</p>
<h2>v7.29.6 (2026-05-25)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/18014">#18014</a>
Catchup source map position in preserveFormat (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/18001">#18001</a>
[7.x packport]Improve input source map handling (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>, <code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17998">#17998</a>
Preserve original identifier names from input sourcemaps (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env/issues/17992">#17992</a>)
(<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 3</h4>
<ul>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Mateusz Burzyński (<a
href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li>
<li>Nicolò Ribaudo (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a>
v7.29.7</li>
<li>See full diff in <a
href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-env">compare
view</a></li>
</ul>
</details>
<br />

Updates `@babel/runtime-corejs3` from 7.29.2 to 7.29.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/releases">@​babel/runtime-corejs3's
releases</a>.</em></p>
<blockquote>
<h2>v7.29.7 (2026-05-25)</h2>
<p>Re-release all packages with npm provenance attestations</p>
<h2>v7.29.6 (2026-05-25)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/18014">#18014</a>
Catchup source map position in preserveFormat (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/18001">#18001</a>
[7.x packport]Improve input source map handling (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>, <code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17998">#17998</a>
Preserve original identifier names from input sourcemaps (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-runtime-corejs3/issues/17992">#17992</a>)
(<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 3</h4>
<ul>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Mateusz Burzyński (<a
href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li>
<li>Nicolò Ribaudo (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
<h2>v7.29.5 (2026-05-05)</h2>
<h4>:house:  Internal</h4>
<ul>
<li><code>babel-preset-env</code>
<ul>
<li>Update <code>@babel/*</code> dependencies</li>
</ul>
</li>
</ul>
<h2>v7.29.4 (2026-05-05)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-modules-systemjs</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17974">#17974</a>
[7.x backport]fix(systemjs): improve module string name support (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
<h2>v7.29.3 (2026-04-30)</h2>
<h4>:eyeglasses: Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17923">#17923</a>
Support flow extends bound (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-helper-create-class-features-plugin</code>,
<code>babel-plugin-proposal-decorators</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17931">#17931</a>
fix(decorators): replace super within all removed static elements (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-register</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix
thread synchronization issues in <code>@babel/register</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-compat-data</code>,
<code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>,
<code>babel-preset-env</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add
bugfix plugin for Safari array rest destructuring bug (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:nail_care: Polish</h4>
<ul>
<li><code>babel-parser</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a>
v7.29.7</li>
<li>See full diff in <a
href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-runtime-corejs3">compare
view</a></li>
</ul>
</details>
<br />

Updates `jsdom` from 29.0.2 to 29.1.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jsdom/jsdom/releases">jsdom's
releases</a>.</em></p>
<blockquote>
<h2>v29.1.1</h2>
<ul>
<li>Fixed <code>'border-radius'</code> computed style serialization. (<a
href="https://github.com/asamuzaK"><code>@​asamuzaK</code></a>)</li>
<li>Fixed computed style computation when using
<code>'background-origin'</code> and <code>'background-clip'</code> CSS
properties. (<a
href="https://github.com/asamuzaK"><code>@​asamuzaK</code></a>)</li>
<li>Significantly optimized initial calls to
<code>getComputedStyle()</code>, before the cache warms up. (<a
href="https://github.com/asamuzaK"><code>@​asamuzaK</code></a>)</li>
</ul>
<h2>v29.1.0</h2>
<ul>
<li>Added basic support for the ratio CSS type. (<a
href="https://github.com/asamuzaK"><code>@​asamuzaK</code></a>)</li>
<li>Fixed <code>getComputedStyle()</code> sometimes returning outdated
results after CSS was modified. (<a
href="https://github.com/asamuzaK"><code>@​asamuzaK</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jsdom/jsdom/commit/9b9ea7e10b7842cd38c61458a38774cc3b60c24c"><code>9b9ea7e</code></a>
29.1.1</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/07efb7821c992108ec6d4d5fa603f1666e704b1a"><code>07efb78</code></a>
Optimize computed style comparison</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/5f6632990297dddf82b1e0b369870ca27c11da90"><code>5f66329</code></a>
Fix background-origin/background-clip in background shorthand</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/ad8af77ecc76a572ccd139770df0f27c7c06217a"><code>ad8af77</code></a>
Fix border shorthand handling</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/5a3e88ea9b13d22457165c8296df7377ce243b24"><code>5a3e88e</code></a>
29.1.0</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/73db2041724bb498ed55b4e863ffba7012e79675"><code>73db204</code></a>
Update dependencies and dev dependencies</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/a7168a579d26e43e8ea5599b7beb9b8f74c7f412"><code>a7168a5</code></a>
Support ratio CSS unit type</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/15346e055b070d4e4ed890b68e832b6dba1b9132"><code>15346e0</code></a>
Fix style cache invalidation</li>
<li>See full diff in <a
href="https://github.com/jsdom/jsdom/compare/v29.0.2...v29.1.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `mocha` from 11.7.5 to 11.7.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mochajs/mocha/releases">mocha's
releases</a>.</em></p>
<blockquote>
<h2>v11.7.6</h2>
<h2><a
href="https://github.com/mochajs/mocha/compare/v11.7.5...v11.7.6">11.7.6</a>
(2026-02-14)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li>make <code>describe().timeout()</code> work (<a
href="https://github.com/mochajs/mocha/commit/aafe6fd8c8f0a897c35cfb228aa8ecf43805b697">aafe6fd</a>)</li>
<li><strong>test:</strong> replace <code>wmic</code> usage with native
Windows API (<a
href="https://redirect.github.com/mochajs/mocha/issues/5694">#5694</a>)
(<a
href="https://github.com/mochajs/mocha/commit/73ebdfadb95198704ca57ec8087d97f7f3a7a37a">73ebdfa</a>)</li>
</ul>
<h3>🧹 Chores</h3>
<ul>
<li>format all code (<a
href="https://redirect.github.com/mochajs/mocha/issues/5629">#5629</a>)
(<a
href="https://github.com/mochajs/mocha/commit/0696784dd2d7f9b11471acd5854603fa57fe6fab">0696784</a>)</li>
<li>remove Netlify (<a
href="https://redirect.github.com/mochajs/mocha/issues/5630">#5630</a>)
(<a
href="https://github.com/mochajs/mocha/commit/8d01d335becbcb12439328be90ce75351418d787">8d01d33</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mochajs/mocha/blob/v11.7.6/CHANGELOG.md">mocha's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/mochajs/mocha/compare/v11.7.5...v11.7.6">11.7.6</a>
(2026-02-14)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li>make <code>describe().timeout()</code> work (<a
href="https://github.com/mochajs/mocha/commit/aafe6fd8c8f0a897c35cfb228aa8ecf43805b697">aafe6fd</a>)</li>
<li><strong>test:</strong> replace <code>wmic</code> usage with native
Windows API (<a
href="https://redirect.github.com/mochajs/mocha/issues/5694">#5694</a>)
(<a
href="https://github.com/mochajs/mocha/commit/73ebdfadb95198704ca57ec8087d97f7f3a7a37a">73ebdfa</a>)</li>
</ul>
<h3>🧹 Chores</h3>
<ul>
<li>format all code (<a
href="https://redirect.github.com/mochajs/mocha/issues/5629">#5629</a>)
(<a
href="https://github.com/mochajs/mocha/commit/0696784dd2d7f9b11471acd5854603fa57fe6fab">0696784</a>)</li>
<li>remove Netlify (<a
href="https://redirect.github.com/mochajs/mocha/issues/5630">#5630</a>)
(<a
href="https://github.com/mochajs/mocha/commit/8d01d335becbcb12439328be90ce75351418d787">8d01d33</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mochajs/mocha/commit/3765ba0d9bd9e8918405b681991b982d3f8d4d7e"><code>3765ba0</code></a>
chore(v11.x): release 11.7.6 (<a
href="https://redirect.github.com/mochajs/mocha/issues/5632">#5632</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/73ebdfadb95198704ca57ec8087d97f7f3a7a37a"><code>73ebdfa</code></a>
fix(test): replace <code>wmic</code> usage with native Windows API (<a
href="https://redirect.github.com/mochajs/mocha/issues/5694">#5694</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/aafe6fd8c8f0a897c35cfb228aa8ecf43805b697"><code>aafe6fd</code></a>
fix: make <code>describe().timeout()</code> work</li>
<li><a
href="https://github.com/mochajs/mocha/commit/0696784dd2d7f9b11471acd5854603fa57fe6fab"><code>0696784</code></a>
chore: format all code (<a
href="https://redirect.github.com/mochajs/mocha/issues/5629">#5629</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/8d01d335becbcb12439328be90ce75351418d787"><code>8d01d33</code></a>
chore: remove Netlify (<a
href="https://redirect.github.com/mochajs/mocha/issues/5630">#5630</a>)</li>
<li>See full diff in <a
href="https://github.com/mochajs/mocha/compare/v11.7.5...v11.7.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `selenium-webdriver` from 4.43.0 to 4.44.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/SeleniumHQ/selenium/releases">selenium-webdriver's
releases</a>.</em></p>
<blockquote>
<h2>Selenium 4.44.0</h2>
<h2>Detailed Changelogs by Component</h2>
<p><!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG">Java</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES">Python</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG">DotNet</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES">Ruby</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md">JavaScript</a></strong>
<!-- raw HTML omitted --></p>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<!-- raw HTML omitted -->
<ul>
<li>fix(documentation): update artifact naming for generated docs by <a
href="https://github.com/diemol"><code>@​diemol</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17332">SeleniumHQ/selenium#17332</a></li>
<li>fix(ruby): retrieve devtools version dynamically for package
verification by <a
href="https://github.com/diemol"><code>@​diemol</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17335">SeleniumHQ/selenium#17335</a></li>
<li>[dotnet] Don't truncate internal log messages at error/warn levels
by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17333">SeleniumHQ/selenium#17333</a></li>
<li>[dotnet] Safe modifications of internal log handlers by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17334">SeleniumHQ/selenium#17334</a></li>
<li>[dotnet] Remove planned obsoleted members for 4.44 by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17328">SeleniumHQ/selenium#17328</a></li>
<li>[dotnet] [bidi] Statically declare commands by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17330">SeleniumHQ/selenium#17330</a></li>
<li>[dotnet] [bidi] Statically declared events by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17331">SeleniumHQ/selenium#17331</a></li>
<li>[dotnet] Add C# 14 extension to polyfill
<code>ArgumentNullException.ThrowIfNull</code> by <a
href="https://github.com/RenderMichael"><code>@​RenderMichael</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/16697">SeleniumHQ/selenium#16697</a></li>
<li>[dotnet] [bidi] Align SetDownloadBehavior command by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17336">SeleniumHQ/selenium#17336</a></li>
<li>[dotnet] [bidi] Align ContinueWithAuth command by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17337">SeleniumHQ/selenium#17337</a></li>
<li>[dotnet] [bidi] Align SetGeolocation polymorphic command by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17338">SeleniumHQ/selenium#17338</a></li>
<li>[dotnet] [test] In-process test webserver by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17339">SeleniumHQ/selenium#17339</a></li>
<li>[java] deprecate the 'native' methods inside the HttpClient
interface by <a
href="https://github.com/joerg1985"><code>@​joerg1985</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17340">SeleniumHQ/selenium#17340</a></li>
<li>CDDL 2 Python generator by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/16914">SeleniumHQ/selenium#16914</a></li>
<li>Fix py:local_dev rake task by <a
href="https://github.com/cgoldberg"><code>@​cgoldberg</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17342">SeleniumHQ/selenium#17342</a></li>
<li>[grid] Accept legacy session-closed event payloads by <a
href="https://github.com/VietND96"><code>@​VietND96</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17343">SeleniumHQ/selenium#17343</a></li>
<li>[java] specify nullability in package
<code>org.openqa.selenium.remote</code> by <a
href="https://github.com/asolntsev"><code>@​asolntsev</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17325">SeleniumHQ/selenium#17325</a></li>
<li>fix NPE when response status is null by <a
href="https://github.com/asolntsev"><code>@​asolntsev</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17348">SeleniumHQ/selenium#17348</a></li>
<li>[java] fix NoSuchElementException for custom By locators by <a
href="https://github.com/Chandan25sharma"><code>@​Chandan25sharma</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17287">SeleniumHQ/selenium#17287</a></li>
<li>[py] Update docs with pytest example and minor formatting fixes by
<a href="https://github.com/cgoldberg"><code>@​cgoldberg</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17351">SeleniumHQ/selenium#17351</a></li>
<li>[dotnet] Fix stopping of network monitoring via DevTools by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17352">SeleniumHQ/selenium#17352</a></li>
<li>[dotnet] [test] Update tests to target .NET 10 by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17353">SeleniumHQ/selenium#17353</a></li>
<li>[build] Clean extra tools from GHA runner to free disk space by <a
href="https://github.com/cgoldberg"><code>@​cgoldberg</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17360">SeleniumHQ/selenium#17360</a></li>
<li>Initial Creation of the Selenium CLI Tool by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17327">SeleniumHQ/selenium#17327</a></li>
<li>[java] fix some nullability warnings by <a
href="https://github.com/asolntsev"><code>@​asolntsev</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17362">SeleniumHQ/selenium#17362</a></li>
<li>[py] Use generated Bidi files instead of hand curated ones by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17266">SeleniumHQ/selenium#17266</a></li>
<li>[docs] Add AI-assisted contribution policy by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17043">SeleniumHQ/selenium#17043</a></li>
<li>[Agents] Update agents to make sure do linting. by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17366">SeleniumHQ/selenium#17366</a></li>
<li>[py] Bump dependencies by <a
href="https://github.com/cgoldberg"><code>@​cgoldberg</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17368">SeleniumHQ/selenium#17368</a></li>
<li>[git] update gitignore to exclude mempalace by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17369">SeleniumHQ/selenium#17369</a></li>
<li>[java] remove field <code>ChromiumDriver.capabilities</code> by <a
href="https://github.com/asolntsev"><code>@​asolntsev</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17363">SeleniumHQ/selenium#17363</a></li>
<li>[spec] Use http_file for the cddl files by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17372">SeleniumHQ/selenium#17372</a></li>
<li>[dotnet] [bidi] Obsolete Type(string) method in Input module by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17377">SeleniumHQ/selenium#17377</a></li>
<li>Fix Network failures by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17381">SeleniumHQ/selenium#17381</a></li>
<li>[java] [test] Unignore bidi network conditions tests for Firefox by
<a href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17385">SeleniumHQ/selenium#17385</a></li>
<li>[dotnet] [test] Unignore network conditions tests for Firefox by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17386">SeleniumHQ/selenium#17386</a></li>
<li>[dotnet] [test] Migrate to MTP by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17384">SeleniumHQ/selenium#17384</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca"><code>da2039b</code></a>
[build] Prepare for release of selenium-4.44.0 (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17444">#17444</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/d56867b3163eaa25541843ebfdd8c632a01fbf52"><code>d56867b</code></a>
Fix prerelease (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17442">#17442</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/331becdcd9be0a34b733818c9d05ed209411783d"><code>331becd</code></a>
[dotnet][rb][java][js][py] Automated Browser Version Update (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17440">#17440</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/65bb32ebd5a72f0374934da3ed2355757bb3b068"><code>65bb32e</code></a>
[build] do not auto-merge browser updates (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17432">#17432</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/fd1d36d41053a8886164ed6b12c706fbc602507f"><code>fd1d36d</code></a>
[build] dynamically add and remove rulesets for release (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17439">#17439</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/c799aff2b94666c6cab94c0dec8762ce962bb107"><code>c799aff</code></a>
[build] fix release workflow (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17437">#17437</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/83ce01eb2ea710bdd9cb34e2ce4eda08a9c890f1"><code>83ce01e</code></a>
[dotnet] [bidi] Add DisownData command in Network module (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17436">#17436</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/f342feeeb5d4f2760e8c2c1083815151f25327c7"><code>f342fee</code></a>
[dotnet] [bidi] Additional Event streaming (breaking change) (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17349">#17349</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/dfcc86ead1ad4b8291cc89e139f5e25fa011a475"><code>dfcc86e</code></a>
[JavaScript] Move 'isDisplayed' atom to be typescript (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17316">#17316</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/cc26ec89c1bdd4a63cd994d5b185c5d169652858"><code>cc26ec8</code></a>
[js][py] Convert getAttribute atom from Closure to TypeScript (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17370">#17370</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/SeleniumHQ/selenium/compare/selenium-4.43.0...selenium-4.44.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `start-server-and-test` from 3.0.2 to 3.0.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bahmutov/start-server-and-test/releases">start-server-and-test's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.6</h2>
<h2><a
href="https://github.com/bahmutov/start-server-and-test/compare/v3.0.5...v3.0.6">3.0.6</a>
(2026-06-02)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> remove bluebird and use native Promise (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/467">#467</a>)
(<a
href="https://github.com/bahmutov/start-server-and-test/commit/c74811716ee98858cb00e4e03f68dcf4907785b3">c748117</a>)</li>
</ul>
<h2>v3.0.5</h2>
<h2><a
href="https://github.com/bahmutov/start-server-and-test/compare/v3.0.4...v3.0.5">3.0.5</a>
(2026-05-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update dependency wait-on to v9.0.10 (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/466">#466</a>)
(<a
href="https://github.com/bahmutov/start-server-and-test/commit/21965ecb9d8020333d818a8d0d88c5a0e2e4f653">21965ec</a>)</li>
</ul>
<h2>v3.0.4</h2>
<h2><a
href="https://github.com/bahmutov/start-server-and-test/compare/v3.0.3...v3.0.4">3.0.4</a>
(2026-05-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update dependency wait-on to v9.0.6 (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/465">#465</a>)
(<a
href="https://github.com/bahmutov/start-server-and-test/commit/9fb66805ae262bcd3e30b9cad2f5521fc865a787">9fb6680</a>)</li>
</ul>
<h2>v3.0.3</h2>
<h2><a
href="https://github.com/bahmutov/start-server-and-test/compare/v3.0.2...v3.0.3">3.0.3</a>
(2026-05-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>improve check for already exited processes on windows (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/464">#464</a>)
(<a
href="https://github.com/bahmutov/start-server-and-test/commit/bc51feed0ee463fb95f6ba9067bc51688c111ef6">bc51fee</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/c74811716ee98858cb00e4e03f68dcf4907785b3"><code>c748117</code></a>
fix(deps): remove bluebird and use native Promise (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/467">#467</a>)</li>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/a5e1cfbb0901cc5aaef53c53f2a37e565026b990"><code>a5e1cfb</code></a>
chore: add .gitattributes to enforce LF line endings (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/468">#468</a>)</li>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/719581b35dc2238daaf6ed24658a82102775a2dd"><code>719581b</code></a>
chore(deps): add minimum release age for installation / updating (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/470">#470</a>)</li>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/21965ecb9d8020333d818a8d0d88c5a0e2e4f653"><code>21965ec</code></a>
fix(deps): update dependency wait-on to v9.0.10 (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/466">#466</a>)</li>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/9fb66805ae262bcd3e30b9cad2f5521fc865a787"><code>9fb6680</code></a>
fix(deps): update dependency wait-on to v9.0.6 (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/465">#465</a>)</li>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/bc51feed0ee463fb95f6ba9067bc51688c111ef6"><code>bc51fee</code></a>
fix: improve check for already exited processes on windows (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/464">#464</a>)</li>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/e5118f0b74b97c9a2c5e81b60b1333ba3f89ed56"><code>e5118f0</code></a>
chore(ci): add Node.js 26 to tests (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/463">#463</a>)</li>
<li>See full diff in <a
href="https://github.com/bahmutov/start-server-and-test/compare/v3.0.2...v3.0.6">compare
view</a></li>
</ul>
</details>
<br />


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>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [sinon](https://github.com/sinonjs/sinon) from 21.1.2 to 22.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sinonjs/sinon/blob/main/docs/changelog.md">sinon's
changelog</a>.</em></p>
<blockquote>
<h2>22.0.0</h2>
<ul>
<li><a
href="https://github.com/sinonjs/sinon/commit/ed911df50d2967d52f9ca341f1f15c8b4def8878"><code>ed911df5</code></a>
Update Ruby gems (Carl-Erik Kopseng)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/75a1e5b80d9aab698fadd8bb8c30998f109e1841"><code>75a1e5b8</code></a>
Update to Node 26 (Carl-Erik Kopseng)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/197d660899fc8f9ac523e8ad9712f600c72cdbd2"><code>197d6608</code></a>
Update documentation on faking timers to reflect the current state of
fake-timers (Carl-Erik Kopseng)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/c5ddf80bd8653ad9a3e539103a3c801e7bec112c"><code>c5ddf80b</code></a>
Update [email protected]: includes new Temporal API (Carl-Erik
Kopseng)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/f4ab02f6b78d4602401369d5797bbbb2a1110c7e"><code>f4ab02f6</code></a>
Update updatable packages (Carl-Erik Kopseng)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/0536afc8fedd1db7dbc3557a2d162d1d8a1d12aa"><code>0536afc8</code></a>
Quality: Global mutable call id can grow unbounded across long-lived
processes (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2691">#2691</a>)
(tuanaiseo)
<blockquote>
<ul>
<li>refactor: global mutable call id can grow unbounded across l</li>
</ul>
<p><code>callId</code> is module-scoped and incremented on every
invocation. In long-running test runners or embedded usage, this can
grow indefinitely and eventually lose integer precision semantics for
strict ordering comparisons.</p>
<p>Affected files: proxy-invoke.js</p>
<p>Signed-off-by: tuanaiseo <a
href="mailto:[email protected]">[email protected]</a></p>
<ul>
<li>Wrap around for all values that are too high</li>
</ul>
<hr />
<p>Signed-off-by: tuanaiseo <a
href="mailto:[email protected]">[email protected]</a>
Co-authored-by: Carl-Erik Kopseng <a
href="mailto:[email protected]">[email protected]</a></p>
</blockquote>
</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/f4f7d93bc6bd664400e74d153fd5812dae84d222"><code>f4f7d93b</code></a>
Perform additional cleanup when calling callThrough() (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2670">#2670</a>)
(Cyrille)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/6199e9e43db4440ea350961e2ef204236ca4ca4f"><code>6199e9e4</code></a>
improve GitHubworkflows by introducing zizmor for monitoring (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2686">#2686</a>)
(Till!)
<blockquote>
<ul>
<li>fix(workflows): fetch-depth is for actions/checkout</li>
<li>chore(workflows): update</li>
</ul>
<ul>
<li>pin all actions to precise commits</li>
<li>avoid credential leakage from actions/checkout</li>
<li>group action updates going forward</li>
<li>add zimor config to ignore &quot;secrets outside env&quot;</li>
<li>add job to keep validating workflows</li>
</ul>
</blockquote>
</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/f7476b59deda4893f9fa5b1e1dcfa74a059d4d4e"><code>f7476b59</code></a>
Use path.normalize() for path normalization (Carl-Erik Kopseng)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/2c975393f19b33c611cf7c4221f585cdffa3a619"><code>2c975393</code></a>
fix: make build and node test scripts cross-platform (laplace
young)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/a76929179340333cb7e9d55d8c00791683d674a5"><code>a7692917</code></a>
fix: isolate walk state from Object prototype (laplace young)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/66df977a5cb7139de221512f80ca36504e8eb671"><code>66df977a</code></a>
Fix sinon.restore() cascade-restoring sub-sandboxes (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2704">#2704</a>)
(Charlie Leitheiser)
<blockquote>
<p>The ESM port of <code>createApi</code> (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2683">#2683</a>,
shipped in 21.1.0) replaced <code>createSandbox: createSandbox</code>
with a wrapper that pushes every newly-created sandbox into the root
sandbox's fake collection:</p>
</blockquote>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sinonjs/sinon/commit/52555af4463c5a41ba4e24d9c42937b0e306a1e6"><code>52555af</code></a>
22.0.0</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/ed911df50d2967d52f9ca341f1f15c8b4def8878"><code>ed911df</code></a>
Update Ruby gems</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/75a1e5b80d9aab698fadd8bb8c30998f109e1841"><code>75a1e5b</code></a>
Update to Node 26</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/197d660899fc8f9ac523e8ad9712f600c72cdbd2"><code>197d660</code></a>
Update documentation on faking timers to reflect the current state of
fake-ti...</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/c5ddf80bd8653ad9a3e539103a3c801e7bec112c"><code>c5ddf80</code></a>
Update [email protected]: includes new Temporal API</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/f4ab02f6b78d4602401369d5797bbbb2a1110c7e"><code>f4ab02f</code></a>
Update updatable packages</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/0536afc8fedd1db7dbc3557a2d162d1d8a1d12aa"><code>0536afc</code></a>
Quality: Global mutable call id can grow unbounded across long-lived
processe...</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/f4f7d93bc6bd664400e74d153fd5812dae84d222"><code>f4f7d93</code></a>
Perform additional cleanup when calling callThrough() (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2670">#2670</a>)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/6199e9e43db4440ea350961e2ef204236ca4ca4f"><code>6199e9e</code></a>
improve GitHubworkflows by introducing zizmor for monitoring (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2686">#2686</a>)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/1519009d5faaa5b8fab96e07f96e1b4bffa0bf07"><code>1519009</code></a>
Merge <a
href="https://redirect.github.com/sinonjs/sinon/issues/2703">#2703</a>:
isolate walk state from Object prototype</li>
<li>Additional commits viewable in <a
href="https://github.com/sinonjs/sinon/compare/v21.1.2...v22.0.0">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from
16.4.0 to 17.0.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/releases">lint-staged's
releases</a>.</em></p>
<blockquote>
<h2>v17.0.7</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1806">#1806</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/e692e58ced9eae65b2077435b7e799c632f3db07"><code>e692e58</code></a>
- Update dependency <code>tinyexec@^1.2.4</code>.</li>
</ul>
<h2>v17.0.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1803">#1803</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/bdf27700a6e25b40333672eef4d438984a2d0383"><code>bdf2770</code></a>
- Run all tests with <a href="https://deno.com">Deno</a>, in addition to
Node.js and Bun.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1796">#1796</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/75082727cdd070adb59d62c9040515da3bbbb2f9"><code>7508272</code></a>
- Fix performance regression of <em>lint-staged</em> v17 by going back
to using <code>git add</code> to stage task modifications. This was
changed to <code>git update-index --again</code> in v17 for less manual
work, but unfortunately the <code>update-index</code> command gets
slower in very large Git repos.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1797">#1797</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/7b2505a1f8fb8735e6306c7dabdd5295632f8c1a"><code>7b2505a</code></a>
- This version of <em>lint-staged</em> uses the new <a
href="https://docs.npmjs.com/staged-publishing">staged publishing for
npm packages</a> feature. Releases are already published from GitHub
Actions with <a href="https://docs.npmjs.com/trusted-publishers">trusted
publishing</a>, but now an additional approval with two-factor
authentication is also required.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1802">#1802</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/321b0a972a434006f5b5fac18867974ef040d037"><code>321b0a9</code></a>
- Downgrade dependency <code>[email protected]</code> to avoid issues in
version 1.2.3.</p>
</li>
</ul>
<h2>v17.0.5</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1792">#1792</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/1f672718b6fa67e0f00aafe107cb9f084f4d9102"><code>1f67271</code></a>
- Correctly set the <code>--max-arg-length</code> default value based on
the running platform. This controls how very long lists of staged files
are split into multiple chunks.</li>
</ul>
<h2>v17.0.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1788">#1788</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/f95c1f8df3368758c44c2052e568aac1b3d4c767"><code>f95c1f8</code></a>
- Another fix for making sure <em>lint-staged</em> adds task
modifications correctly to the commit in the following cases:</p>
<ul>
<li>after editing <code>&lt;file&gt;</code> it is staged with <code>git
add &lt;file&gt;</code>, and then committed with <code>git
commit</code></li>
<li>after editing <code>&lt;file&gt;</code> it is committed with
<code>git commit --all</code> without explicit <code>git add</code></li>
<li>after editing <code>&lt;file&gt;</code> it is committed with
<code>git commit &lt;pathspec&gt;</code> without explicit <code>git
add</code></li>
</ul>
<p>There's new test cases which actually setup the Git
<code>pre_commit</code> hook to run <em>lint-staged</em> and verify
them. These issues started in <strong>v17.0.0</strong> when trying to
improve support for committig without having explicitly staged
files.</p>
</li>
</ul>
<h2>v17.0.3</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1782">#1782</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/06813f9ab661db987e7720086ef9ec3f552ee097"><code>06813f9</code></a>
Thanks <a href="https://github.com/iiroj"><code>@​iiroj</code></a>! -
Fix <em>lint-staged</em> behavior when implicitly committing files
without using <code>git add</code> by either:
<ul>
<li><code>git commit -am &quot;my commit message&quot;</code> where
<code>-a</code> (<code>--all</code>) means to automatically stage all
tracked modified and deleted files</li>
<li><code>git commit -m &quot;my commit message&quot; .</code> where
<code>.</code> is an example of a <a
href="https://git-scm.com/docs/git-commit#Documentation/git-commit.txt-pathspec"><em>pathspec</em></a>
where matching files will be staged</li>
</ul>
</li>
</ul>
<h2>v17.0.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1779">#1779</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/88670ca2278200f6348ed663358895ddc4bfff3c"><code>88670ca</code></a>
Thanks <a href="https://github.com/iiroj"><code>@​iiroj</code></a>! -
Enable immutable GitHub releases</li>
</ul>
<h2>v17.0.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1776">#1776</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/4a5664be63af19590ec37940f705dad870ac5cfb"><code>4a5664b</code></a>
Thanks <a href="https://github.com/iiroj"><code>@​iiroj</code></a>! -
Adjust GitHub Actions workflow so that automatic publishing works with
signed commits.</li>
</ul>
<h2>v17.0.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md">lint-staged's
changelog</a>.</em></p>
<blockquote>
<h2>17.0.7</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1806">#1806</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/e692e58ced9eae65b2077435b7e799c632f3db07"><code>e692e58</code></a>
- Update dependency <code>tinyexec@^1.2.4</code>.</li>
</ul>
<h2>17.0.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1803">#1803</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/bdf27700a6e25b40333672eef4d438984a2d0383"><code>bdf2770</code></a>
- Run all tests with <a href="https://deno.com">Deno</a>, in addition to
Node.js and Bun.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1796">#1796</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/75082727cdd070adb59d62c9040515da3bbbb2f9"><code>7508272</code></a>
- Fix performance regression of <em>lint-staged</em> v17 by going back
to using <code>git add</code> to stage task modifications. This was
changed to <code>git update-index --again</code> in v17 for less manual
work, but unfortunately the <code>update-index</code> command gets
slower in very large Git repos.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1797">#1797</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/7b2505a1f8fb8735e6306c7dabdd5295632f8c1a"><code>7b2505a</code></a>
- This version of <em>lint-staged</em> uses the new <a
href="https://docs.npmjs.com/staged-publishing">staged publishing for
npm packages</a> feature. Releases are already published from GitHub
Actions with <a href="https://docs.npmjs.com/trusted-publishers">trusted
publishing</a>, but now an additional approval with two-factor
authentication is also required.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1802">#1802</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/321b0a972a434006f5b5fac18867974ef040d037"><code>321b0a9</code></a>
- Downgrade dependency <code>[email protected]</code> to avoid issues in
version 1.2.3.</p>
</li>
</ul>
<h2>17.0.5</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1792">#1792</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/1f672718b6fa67e0f00aafe107cb9f084f4d9102"><code>1f67271</code></a>
- Correctly set the <code>--max-arg-length</code> default value based on
the running platform. This controls how very long lists of staged files
are split into multiple chunks.</li>
</ul>
<h2>17.0.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1788">#1788</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/f95c1f8df3368758c44c2052e568aac1b3d4c767"><code>f95c1f8</code></a>
- Another fix for making sure <em>lint-staged</em> adds task
modifications correctly to the commit in the following cases:</p>
<ul>
<li>after editing <code>&lt;file&gt;</code> it is staged with <code>git
add &lt;file&gt;</code>, and then committed with <code>git
commit</code></li>
<li>after editing <code>&lt;file&gt;</code> it is committed with
<code>git commit --all</code> without explicit <code>git add</code></li>
<li>after editing <code>&lt;file&gt;</code> it is committed with
<code>git commit &lt;pathspec&gt;</code> without explicit <code>git
add</code></li>
</ul>
<p>There's new test cases which actually setup the Git
<code>pre_commit</code> hook to run <em>lint-staged</em> and verify
them. These issues started in <strong>v17.0.0</strong> when trying to
improve support for committig without having explicitly staged
files.</p>
</li>
</ul>
<h2>17.0.3</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1782">#1782</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/06813f9ab661db987e7720086ef9ec3f552ee097"><code>06813f9</code></a>
Thanks <a href="https://github.com/iiroj"><code>@​iiroj</code></a>! -
Fix <em>lint-staged</em> behavior when implicitly committing files
without using <code>git add</code> by either:
<ul>
<li><code>git commit -am &quot;my commit message&quot;</code> where
<code>-a</code> (<code>--all</code>) means to automatically stage all
tracked modified and deleted files</li>
<li><code>git commit -m &quot;my commit message&quot; .</code> where
<code>.</code> is an example of a <a
href="https://git-scm.com/docs/git-commit#Documentation/git-commit.txt-pathspec"><em>pathspec</em></a>
where matching files will be staged</li>
</ul>
</li>
</ul>
<h2>17.0.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1779">#1779</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/88670ca2278200f6348ed663358895ddc4bfff3c"><code>88670ca</code></a>
Thanks <a href="https://github.com/iiroj"><code>@​iiroj</code></a>! -
Enable immutable GitHub releases</li>
</ul>
<h2>17.0.1</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/cd11fec419c59b4900aab194f288adf6bb4afdd1"><code>cd11fec</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1807">#1807</a>
from lint-staged/changeset-release/main</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/15a8ee0df4ffb4c6fc65ea6828133cc32740c9c4"><code>15a8ee0</code></a>
chore(changeset): release</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/797bbd943a7adab888640915449c09b8a67cc11d"><code>797bbd9</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1808">#1808</a>
from lint-staged/add-stashing-faq</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/504e307c819a8b2decdf6c791d5350c4db0b15ed"><code>504e307</code></a>
docs: add FAQ entry on how stashing works</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/eff5cd19633ce51ca62ac17a9e66d972a2aaf104"><code>eff5cd1</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1806">#1806</a>
from lint-staged/update-tinyexec</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/e692e58ced9eae65b2077435b7e799c632f3db07"><code>e692e58</code></a>
build(deps): update <code>tinyexec@^1.2.4</code></li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/a2dd4ea97b1ff36486d88d9bad285834acef7ea6"><code>a2dd4ea</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1805">#1805</a>
from lint-staged/update-github-templates</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/c92851945ff4fa604841e53fe044b47177b159b8"><code>c928519</code></a>
docs: update GitHub templates</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/094ba56a3caeeda2cf83ad0a0c83df38ab2f6d06"><code>094ba56</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1798">#1798</a>
from lint-staged/changeset-release/main</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/88e19fe3d81b8e1516564e7afaf6681f09f83b16"><code>88e19fe</code></a>
chore(changeset): release</li>
<li>Additional commits viewable in <a
href="https://github.com/lint-staged/lint-staged/compare/v16.4.0...v17.0.7">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…odes of idrefs (#5151)

A new function that is very similar to `commons.dom.idrefs` function,
but understands handling ARIA idrefs properties and element internals
properties and additionally returns virtual nodes rather than DOM nodes.
This was the leftover work from #5109 to handle idrefs being a string
(attribute) or array of nodes (property).

I also update the `queryShadowFixture` function to allow both `#shadow`
and `#target` ids to exist in the light DOM. I looked at all uses of
`queryShadowFixture` and almost all of them use the `#shadow` in the
light DOM and `#target` in the shadow DOM, though a few rely on
`#target` in the light DOM (but no `#shadow`). The changes prioritize
the order of find things so that `#shadow` is used first as the
container, then `#target` (instead of the other way around) and the
target selector is found in the shadow DOM first, then in the light DOM
after (instead of the other way around). Lastly to support changing
either selector I allowed the 3rd parameter to be an object that could
define them (no current uses of `queryShadowFixture` pass a 3rd
parameter, but I left the option to just pass the target selector as a
string).

---------

Co-authored-by: Chris Hutchins <[email protected]>
Co-authored-by: Wilco Fiers <[email protected]>
This started because `chromedriver` wasn't the latest version in the
package-lock so every time I switched between the grunt removal branch
and any other branch I had to reinstall chromedriver to the latest. It
then spiraled to looking at all the npm warnings and updating what made
sense.

* `@babel/plugin-proposal-object-rest-spread` was deprecated as it was
merged into the spec and we can now use the actual package
`@babel/plugin-transform-object-rest-spread`
* `standard-version` was deprecated and they recommend using
`commit-and-tag-version`
* `glob` was prevented from updating to v11 as it removed node version
<20 and we still test under node 18. But looking at the code now we only
use glob when we build, which we [already restore a cache
version](https://github.com/dequelabs/axe-core/blob/develop/.github/workflows/test.yml#L236-L237)
of before we test our code using different node versions. so we should
be able to update it now

The remaining warns can't be fixed at the moment.

* `[email protected]` and `[email protected]` are both used by
latest `commit-and-tag-version`. [an issue exists about
it](absolute-version/commit-and-tag-version#295)
* `[email protected]` is used by latest `http-server`. [an issue
exists about it](http-party/http-server#973)
* `[email protected]` is used by `node-notifier`, which hasn't been updated in
several years. we could move to
https://github.com/Aetherinox/node-toasted-notifier which is a fork of
it, but I wasn't sure if we wanted to or not. Alternatively we could
just drop the package, it's only used 1 time in our build to notify when
axe-core build is completed (a nice to have but not necessary).
* `[email protected]` is used by latest `mocha`, but the next major mocha
version looks like it updates to the latest glob
…nals (#5164)

Discovered as part of the [conversion of
commons/dom](#5163).
@chutchins25 had pointed out that the `null` only check would fail if
the value was ever `undefined`, but since all browsers supported `null`
on all ARIA prop values I didn't think it was necessary. Well turns out
that when we set the internals to an object for the external api code,
the values no longer return `null` when missing but `undefined`. So need
to add the `undefined` check for those cases.

Is `chore` as we don't need to announce this fix in the changelog as the
feature hasn't be released yet
Updates the `commons/forms` directory to use the new `getAriaValue` or
`hasAriaValue` functions where it makes sense. Also updated the test
files to use `queryFixture` instead of appending to fixture directly and
trying to find the node after.

Here's a report of the full directory:

* `commons/forms/is-native-textbox` - looks at `type` attribute, keep
.attr

Refs: #5142
This allows `queryFixture` to now support declarative shadow DOM,
replacing the need for `queryShadowFixture` and `createNestedShadowDom`.
I wanted the detection to be conditional so we didn't need to do the
expensive calls of `setHTMLUnsafe` and querying for every shadow on
every test. So the code only does the expensive operations when it
detects a declarative shadow DOM. Alternatively if we don't like the
regex we could just have the `options.shadow` be passed into the
`queryFixture`, but that would be a bit odd when the 2nd param is the
query, but would be fine for the few times we actually use the
functions: `queryFixture('<div>', '#target', { shadow: true });`
Updates the `commons/dom` directory to use the new `getAriaValue` or
`hasAriaValue` functions where it makes sense. Also update any uses of
`node.getAttribute` or `node.hasAttribute` where it made sense as well.

Here's a report of the full directory:

* `commons/dom/focus-disabled` - hasAttr(disabled), disabled (not
aria-disabled) is not an ARIA prop so remains hasAttr
* `commons/dom/get-element-by-reference` - looks up non-aria attrs,
should still use .attr, but do we need to split the logic to handle
non-aria vs aria attributes differently?
* `commons/dom/tabbable-elements` - looks at tabindex, should still use
.attr
* `commons/dom/has-lang-text` - looks at lang attr, should still use
.attr
* `commons/dom/idrefs` - superceded by `get-resolved-refs` so won't
update uses
* `Commons/dom/inserted-into-focus-order` - looks at tabindex, should
still use .attr
* `commons/dom/is-current-page-link` - looks at href, should still use
.attr (or getAttribute in this case since it has to deal with html
anchor only properties)
* `commons/dom/is-focusable` - tabindex, use .attr
* `commons/dom/is-in-tab-order` - tabindex, use .attr
* `commons/dom/is-inert` - inert, use .hasAttr
* `commons/dom/is-natively-focusable` - href, use .hasAttr
* `commons/dom/is-visibile (deprecated)` - no conversion
* `commons/dom/url-props-from-attribute` - needs node (`ownerSVGElement`
prop), so no conversion from getAttribute
* `commons/dom/visibility-methods` - only the aria-hidden use should
move to getAriaValue, others are non-aria attrs

Refs: #5142
Refs: #5043
Updates the `checks/aria` directory to use the new `getAriaValue`,
`hasAriaValue`, and `getResolvedRefs` functions where it makes sense.

Here's a report of the full directory:

* `checks/aria/aria-busy` - aria-busy → getAriaValue with `{ lowercase:
true }` (boolean type)
* `checks/aria/aria-conditional-checkbox-attr` - aria-checked →
getAriaValue with `{ lowercase: true }` (normalizeAriaChecked calls
toLowerCase)
* `checks/aria/aria-conditional-radio-attr` - aria-checked →
getAriaValue with `{ lowercase: true }` (same reason as checkbox)
* `checks/aria/aria-conditional-row-attr` - checks
aria-rowindex/aria-colspan, but only via `.attrNames` presence check, no
value access
* `checks/aria/aria-errormessage` - aria-errormessage → getAriaValue +
hasAriaValue; aria-invalid → getAriaValue + hasAriaValue; `idrefs()` →
getResolvedRefs; since getResolvedRefs returns a VirtualNode, changed
`idref.getAttribute('aria-live')` to `idref.attr('aria-live')`;
aria-describedby → getAriaValue
* `checks/aria/aria-hidden-body` - aria-hidden → getAriaValue (nmtoken
type, no toLowerCase since original didn't use it)
* `checks/aria/aria-level` - aria-level → getAriaValue (int type, no
toLowerCase)
* `checks/aria/aria-required-attr` - aria-valuetext → getAriaValue;
aria-expanded → getAriaValue (in isClosedCombobox); required attr
presence check → hasAriaValue (so internals-set required attrs are
recognized)
* `checks/aria/aria-required-children` - aria-busy → getAriaValue with
`{ lowercase: true }` (boolean type, two uses)
* `checks/aria/aria-valid-attr-value` - preCheck functions for
aria-haspopup, aria-controls, aria-expanded, aria-selected,
aria-current, aria-owns, aria-describedby, aria-labelledby →
getAriaValue; the main attrNames loop and `const attrValue =
virtualNode.attr(attrName)` remain as-is since validation iterates over
actual HTML attributes only
* `checks/aria/braille-label-equivalent` - aria-braillelabel →
getAriaValue (string type)
* `checks/aria/braille-roledescription-equivalent` -
aria-brailleroledescription and aria-roledescription → getAriaValue
(both string type); defaulted roleDesc to null so `typeof roleDesc !==
'string'` check is preserved
* `checks/aria/abstractrole` - checks role attribute, not an ARIA prop
* `checks/aria/aria-allowed-attr` / `aria-allowed-attr-elm` /
`aria-prohibited-attr` / `aria-unsupported-attr` / `aria-valid-attr` -
iterate over `attrNames`, validate ARIA attribute names (not values)
* `checks/aria/aria-allowed-role` - checks role attribute, not an ARIA
prop
* `checks/aria/aria-required-parent` - checks role hierarchy, no ARIA
attr value access
* `checks/aria/aria-roledescription` - checks aria-roledescription
presence via `attrNames`, no value access
* `checks/aria/deprecatedrole` / `fallbackrole` / `invalidrole` /
`unsupportedrole` - check role attribute, not an ARIA prop
* `checks/aria/has-global-aria-attribute` - checks for presence of any
global ARIA attr via `attrNames`, no value access
* `checks/aria/has-widget-role` - checks role, not an ARIA prop
* `checks/aria/is-element-focusable` - checks focusability, no ARIA attr
value access
* `checks/aria/no-implicit-explicit-label` /
`valid-scrollable-semantics` - no ARIA attr value access

Refs: #5142
…5167)

Updates the `checks/navigation` directory to use the new `getAriaValue`
function where it makes sense.

Here's a report of the full directory:

* `checks/navigation/heading-order` - aria-level → getAriaValue
* `checks/navigation/identical-links-same-purpose` - compares accessible
names, no ARIA attr access
* `checks/navigation/internal-link-present` - checks href, no ARIA attr
access
* `checks/navigation/meta-refresh` - checks meta content attribute, not
an ARIA prop
* `checks/navigation/p-as-heading` - checks text styles, no ARIA attr
access
* `checks/navigation/region` - aria-live → getAriaValue
* `checks/navigation/skip-link` - checks link destination, no ARIA attr
access
* `checks/navigation/unique-frame-title` - checks title attribute, not
an ARIA prop

Closes: #5148
Updates the `commons/text` directory to use the new `getAriaValue` and
`hasAriaValue` functions where it makes sense.

Here's a report of the full directory:

* `commons/text/form-control-value` - aria-selected → getAriaValue;
aria-valuenow → hasAriaValue + getAriaValue
* `commons/text/accessible-text` / `accessible-text-virtual` - computes
accessible names via commons/aria functions; no direct ARIA attr access
* `commons/text/label-text` / `label-virtual` / `label` - delegates to
commons/aria functions; no direct ARIA attr access
* `commons/text/native-text-alternative` / `native-text-methods` /
`native-element-type` - checks native HTML semantics (type, value,
placeholder, etc.), not ARIA props
* `commons/text/title-text` - checks title attribute, not an ARIA prop
* `commons/text/visible-virtual` / `visible` / `visible-text-nodes` /
`subtree-text` - text visibility utilities, no ARIA attr access
* `commons/text/sanitize` / `unicode` / `has-unicode` / `remove-unicode`
/ `is-human-interpretable` / `is-icon-ligature` /
`is-valid-autocomplete` - text processing utilities, no ARIA attr access

Closes: #5141
Use `Node` instead of `HTMLElement` when checking the element internals
prop value so we include all node types, such as SVGs. This is the
follow up to a [similar problem in the `get-aria-value`
pr](#5109 (comment)).

I also added an eslint rule to prevent us from using `HTMLElements` in
the future so we don't make the same mistake again.
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to
7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>block checking out fork pr for pull_request_target and workflow_run
by <a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
<li>Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2458">actions/checkout#2458</a></li>
<li>Bump flatted from 3.3.1 to 3.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2460">actions/checkout#2460</a></li>
<li>Bump js-yaml from 4.1.0 to 4.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2461">actions/checkout#2461</a></li>
<li>Bump <code>@​actions/core</code> and
<code>@​actions/tool-cache</code> and Remove uuid by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2459">actions/checkout#2459</a></li>
<li>upgrade module to esm and update dependencies by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2463">actions/checkout#2463</a></li>
<li>Bump the minor-npm-dependencies group across 1 directory with 3
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2462">actions/checkout#2462</a></li>
<li>getting ready for checkout v7 release by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2464">actions/checkout#2464</a></li>
<li>update error wording by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2467">actions/checkout#2467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.3...v7.0.0">https://github.com/actions/checkout/compare/v6.0.3...v7.0.0</a></p>
<h2>v6.0.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update changelog by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2357">actions/checkout#2357</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>Update changelog for v6.0.3 by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2446">actions/checkout#2446</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/yaananth"><code>@​yaananth</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6...v6.0.3">https://github.com/actions/checkout/compare/v6...v6.0.3</a></p>
<h2>v6.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID
is set by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2355">actions/checkout#2355</a></li>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.1...v6.0.2">https://github.com/actions/checkout/compare/v6.0.1...v6.0.2</a></p>
<h2>v6.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update all references from v5 and v4 to v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2314">actions/checkout#2314</a></li>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
<li>Clarify v6 README by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2328">actions/checkout#2328</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6...v6.0.1">https://github.com/actions/checkout/compare/v6...v6.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0"><code>9c091bb</code></a>
update error wording (<a
href="https://redirect.github.com/actions/checkout/issues/2467">#2467</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/1044a6dea927916f2c38ba5aeffbc0a847b1221a"><code>1044a6d</code></a>
getting ready for checkout v7 release (<a
href="https://redirect.github.com/actions/checkout/issues/2464">#2464</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/f0282184c7ce73ab54c7e4ab5a617122602e575f"><code>f028218</code></a>
Bump the minor-npm-dependencies group across 1 directory with 3 updates
(<a
href="https://redirect.github.com/actions/checkout/issues/2462">#2462</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/d914b262ffc244530a203ab40decab34c3abf34d"><code>d914b26</code></a>
upgrade module to esm and update dependencies (<a
href="https://redirect.github.com/actions/checkout/issues/2463">#2463</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/537c7ef99cef6e5ddb5e7ff5d16d14510503801d"><code>537c7ef</code></a>
Bump <code>@​actions/core</code> and <code>@​actions/tool-cache</code>
and Remove uuid (<a
href="https://redirect.github.com/actions/checkout/issues/2459">#2459</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/130a169078a413d3a5246a393625e8e742f387f6"><code>130a169</code></a>
Bump js-yaml from 4.1.0 to 4.2.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2461">#2461</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/7d09575332117a40b46e5e020664df234cd416f3"><code>7d09575</code></a>
Bump flatted from 3.3.1 to 3.4.2 (<a
href="https://redirect.github.com/actions/checkout/issues/2460">#2460</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/0f9f3aa320cb53abeb534aeb54048075d9697a0e"><code>0f9f3aa</code></a>
Bump actions/publish-immutable-action (<a
href="https://redirect.github.com/actions/checkout/issues/2458">#2458</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/f9e715a95fcd1f9253f77dd28f11e88d2d6460c7"><code>f9e715a</code></a>
block checking out fork pr for pull_request_target and workflow_run (<a
href="https://redirect.github.com/actions/checkout/issues/2454">#2454</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/v6...v7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=6&new-version=7)](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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the npm-low-risk group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@axe-core/webdriverjs](https://github.com/dequelabs/axe-core-npm) |
`4.11.3` | `4.12.1` |
| [globals](https://github.com/sindresorhus/globals) | `17.6.0` |
`17.7.0` |
| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.7` |
`17.0.8` |
| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) |
`4.44.0` | `4.45.0` |
|
[start-server-and-test](https://github.com/bahmutov/start-server-and-test)
| `3.0.10` | `3.0.11` |

Updates `@axe-core/webdriverjs` from 4.11.3 to 4.12.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/dequelabs/axe-core-npm/blob/develop/CHANGELOG.md">@​axe-core/webdriverjs's
changelog</a>.</em></p>
<blockquote>
<h1><a
href="https://github.com/dequelabs/axe-core-npm/compare/v4.11.3...v4.12.1">4.12.1</a>
(2026-06-22)</h1>
<h3>Features</h3>
<ul>
<li>Update axe-core to v4.12.1 (<a
href="https://redirect.github.com/dequelabs/axe-core-npm/issues/1378">#1378</a>)
(<a
href="https://github.com/dequelabs/axe-core-npm/commit/4263054240dc10bbfac0005ae2904f48651891d3">4263054</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/dequelabs/axe-core-npm/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `globals` from 17.6.0 to 17.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/globals/releases">globals's
releases</a>.</em></p>
<blockquote>
<h2>v17.7.0</h2>
<ul>
<li>Update globals (2026-06-22) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/345">#345</a>)
33b75f9</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0">https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sindresorhus/globals/commit/a19670cc86c1218e915657c55ea02ba3e7623834"><code>a19670c</code></a>
17.7.0</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/9611620bad0ea45531ae0261b986ce694374e42c"><code>9611620</code></a>
Update actions (<a
href="https://redirect.github.com/sindresorhus/globals/issues/346">#346</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/33b75f9ddeb6f9ddd81251b043667eb8104a8d15"><code>33b75f9</code></a>
Update globals (2026-06-22) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/345">#345</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/887dd529bde24486b7f9e31d1b2c515df2b7cf5c"><code>887dd52</code></a>
Fix build script (<a
href="https://redirect.github.com/sindresorhus/globals/issues/344">#344</a>)</li>
<li>See full diff in <a
href="https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `lint-staged` from 17.0.7 to 17.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/releases">lint-staged's
releases</a>.</em></p>
<blockquote>
<h2>v17.0.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1809">#1809</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/179b4372b2528f6fa66f927337d238711694d0e0"><code>179b437</code></a>
- Fix <em>lint-staged</em> discarding the ongoing merge conflict status
(<code>.git/MERGE_HEAD</code>) when using the
<code>--hide-unstaged</code> or <code>--hide-all</code> options.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1811">#1811</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/3d0b2c0709a2a39aa7b134e3741fed21250d808e"><code>3d0b2c0</code></a>
- Fix issues with Git commands that are successful but also emit
warnings to <code>stderr</code>, by ignoring the <code>stderr</code>
output completely when the process exits with code 0. This was the
behavior when using <code>nano-spawn</code> and <code>execa</code>, but
when switching to <code>tinyexec</code> in 16.3.0 both
<code>stdout</code> and <code>stderr</code> were used as interleaved
output.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md">lint-staged's
changelog</a>.</em></p>
<blockquote>
<h2>17.0.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1809">#1809</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/179b4372b2528f6fa66f927337d238711694d0e0"><code>179b437</code></a>
- Fix <em>lint-staged</em> discarding the ongoing merge conflict status
(<code>.git/MERGE_HEAD</code>) when using the
<code>--hide-unstaged</code> or <code>--hide-all</code> options.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1811">#1811</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/3d0b2c0709a2a39aa7b134e3741fed21250d808e"><code>3d0b2c0</code></a>
- Fix issues with Git commands that are successful but also emit
warnings to <code>stderr</code>, by ignoring the <code>stderr</code>
output completely when the process exits with code 0. This was the
behavior when using <code>nano-spawn</code> and <code>execa</code>, but
when switching to <code>tinyexec</code> in 16.3.0 both
<code>stdout</code> and <code>stderr</code> were used as interleaved
output.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/5f3b8f28e895972bd5a2cdba733327b49859b91f"><code>5f3b8f2</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1812">#1812</a>
from lint-staged/changeset-release/main</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/43a9b8d759443d3c313514b8a54af37108b19ac5"><code>43a9b8d</code></a>
chore(changeset): release</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/630e2f60abc9e3964cf62f3f833594a19cdaf3cd"><code>630e2f6</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1809">#1809</a>
from lint-staged/restore-merge-status</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/179b4372b2528f6fa66f927337d238711694d0e0"><code>179b437</code></a>
fix: restore Git merge status after creating backup stash</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/6bae2e2aac7fd2981cf0b24e266631191760186c"><code>6bae2e2</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1811">#1811</a>
from lint-staged/exec-git-ignore-stderr</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/b82a83099ddef36fccc26937761f184dfbe7c370"><code>b82a830</code></a>
ci: run npm audit omitting dev, including prod dependencies</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/0b19b80233efc83b8e7c6df3f117d87fe760752c"><code>0b19b80</code></a>
build(deps): update dependencies</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/3d0b2c0709a2a39aa7b134e3741fed21250d808e"><code>3d0b2c0</code></a>
fix: ignore stderr when doing Git operations</li>
<li>See full diff in <a
href="https://github.com/lint-staged/lint-staged/compare/v17.0.7...v17.0.8">compare
view</a></li>
</ul>
</details>
<br />

Updates `selenium-webdriver` from 4.44.0 to 4.45.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/SeleniumHQ/selenium/releases">selenium-webdriver's
releases</a>.</em></p>
<blockquote>
<h2>Selenium 4.45.0</h2>
<h2>Detailed Changelogs by Component</h2>
<p><!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG">Java</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES">Python</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG">DotNet</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES">Ruby</a></strong>
    |    <!-- raw HTML omitted --> <strong><a
href="https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md">JavaScript</a></strong>
<!-- raw HTML omitted --></p>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<ul>
<li>[build] derive PR diff base from HEAD^1 instead of trunk tip by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17438">SeleniumHQ/selenium#17438</a></li>
<li>[build] setup trusted publishing from Github to npmrc by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17445">SeleniumHQ/selenium#17445</a></li>
<li>[build] generate release notes from previous minor release tag by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17449">SeleniumHQ/selenium#17449</a></li>
<li>[build] fix when to update lock files during the release process by
<a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17450">SeleniumHQ/selenium#17450</a></li>
<li>[java] remove deprecated logging classes by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17453">SeleniumHQ/selenium#17453</a></li>
<li>[grid] Close pre-handshake race in WebSocket proxy by <a
href="https://github.com/shs96c"><code>@​shs96c</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17435">SeleniumHQ/selenium#17435</a></li>
<li>[JavaScript] Correct handling for older browsers and missing casing
by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17451">SeleniumHQ/selenium#17451</a></li>
<li>Use pyproject for Python runtime deps lock input by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17452">SeleniumHQ/selenium#17452</a></li>
<li>[rb] deprecate curb http client support by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17443">SeleniumHQ/selenium#17443</a></li>
<li>[javascript] Migrate find-elements atom from Closure to TypeScript
by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17458">SeleniumHQ/selenium#17458</a></li>
<li>[py] replace rules_python sphinxdocs with local sphinx_docs rule by
<a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17461">SeleniumHQ/selenium#17461</a></li>
<li>[build] Configure Renovate dashboard approval by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17464">SeleniumHQ/selenium#17464</a></li>
<li>[js] update vulnerable dependency with a range by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17466">SeleniumHQ/selenium#17466</a></li>
<li>[build] remove duplicated grid ui tests by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17468">SeleniumHQ/selenium#17468</a></li>
<li>[build] update java graphpql dependency by filtering out bad
reference by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17469">SeleniumHQ/selenium#17469</a></li>
<li>[rb] upgrade to steep 2.0 by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17470">SeleniumHQ/selenium#17470</a></li>
<li>[rust] update dependencies by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17472">SeleniumHQ/selenium#17472</a></li>
<li>[build] update GitHub Actions to latest major versions by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17475">SeleniumHQ/selenium#17475</a></li>
<li>[dotnet] update dev dependencies by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17474">SeleniumHQ/selenium#17474</a></li>
<li>[dotnet] fix template caching by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17476">SeleniumHQ/selenium#17476</a></li>
<li>[dotnet] update system.text.json to 8.0.6 by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17477">SeleniumHQ/selenium#17477</a></li>
<li>[js] update dev dependencies by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17479">SeleniumHQ/selenium#17479</a></li>
<li>[dotnet] upgrade paket from v9 to v10 by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17481">SeleniumHQ/selenium#17481</a></li>
<li>[build] bump bazel version to 9.1 by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17480">SeleniumHQ/selenium#17480</a></li>
<li>[rust] update zip to v8 by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17485">SeleniumHQ/selenium#17485</a></li>
<li>[js] update eslint to v10 with fixes by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17482">SeleniumHQ/selenium#17482</a></li>
<li>[rb] Update ruby to 3.3.9 by <a
href="https://github.com/aguspe"><code>@​aguspe</code></a> in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17484">SeleniumHQ/selenium#17484</a></li>
<li>[dotnet] include snupkg files when packaging things up and allow the
use of sourcelink by <a
href="https://github.com/AutomatedTester"><code>@​AutomatedTester</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17467">SeleniumHQ/selenium#17467</a></li>
<li>[build] update download-artifact to v8 by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17493">SeleniumHQ/selenium#17493</a></li>
<li>[dotnet] run format against slnx instead of looping csproj by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17483">SeleniumHQ/selenium#17483</a></li>
<li>[build] bump low-risk Bazel module dependencies by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17494">SeleniumHQ/selenium#17494</a></li>
<li>[rust] update reqwest to 0.13 by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17488">SeleniumHQ/selenium#17488</a></li>
<li>[dotnet] [build] Fix remote linkage in SourceLink by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17495">SeleniumHQ/selenium#17495</a></li>
<li>[build] remove renovate update requests pending work done in <a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17427">#17427</a>
by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17498">SeleniumHQ/selenium#17498</a></li>
<li>[dotnet] [build] Support deterministic build output by <a
href="https://github.com/nvborisenko"><code>@​nvborisenko</code></a> in
<a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17497">SeleniumHQ/selenium#17497</a></li>
<li>[build] bump ruby versions to latest patch releases by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17496">SeleniumHQ/selenium#17496</a></li>
<li>[js] remove npm dependency by using bazel for everything by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17499">SeleniumHQ/selenium#17499</a></li>
<li>[build] bump rules_jvm_external by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17501">SeleniumHQ/selenium#17501</a></li>
<li>[build] bump rules_closure version by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17500">SeleniumHQ/selenium#17500</a></li>
<li>[build] clarify dependency pin and update tasks by <a
href="https://github.com/titusfortner"><code>@​titusfortner</code></a>
in <a
href="https://redirect.github.com/SeleniumHQ/selenium/pull/17463">SeleniumHQ/selenium#17463</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/cd6a3cdfca6970f62e5bc8344109d0fe0e2af05e"><code>cd6a3cd</code></a>
[build] Prepare for release of selenium-4.45.0 (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17680">#17680</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/15fad06cba4d0eb577bf3891954ecaf81e9a11d8"><code>15fad06</code></a>
[build] Automated Browser Version Update (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17679">#17679</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/cb9b6fdbabdc1ed68a8bdbf31a4222c0396fe2fd"><code>cb9b6fd</code></a>
[grid] Add support Redis-backed for SessionQueue (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17678">#17678</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/18bb1d97d3db196522aa9b3873a350dc40d3ccb8"><code>18bb1d9</code></a>
[py] terminate driver service process when start() fails to connect (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17651">#17651</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/b3164ef7d071b5add6750d686ffbae1b936cadf0"><code>b3164ef</code></a>
[grid] add HtmlUnit browser logo to Grid UI (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17656">#17656</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/bb741bd07b1c5e36054328627903b4507eaca9f5"><code>bb741bd</code></a>
[build] Automated Browser Version Update (<a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17658">#17658</a>)</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/887237c468022cb5e4637aa98404fac2de0c8d23"><code>887237c</code></a>
[py] translate continue_request/continue_response kwargs to BiDi wire
format ...</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/f53de51c263c5ab0e598253a46286777a794ede0"><code>f53de51</code></a>
[rb] run minimize test on linux now that <a
href="https://redirect.github.com/SeleniumHQ/selenium/issues/17644">#17644</a>
fixed fluxbox startup</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/3f37cce5cd7be6500ba90f44c994e140e27e3108"><code>3f37cce</code></a>
[rb] set window state before each window test instead of resetting
driver</li>
<li><a
href="https://github.com/SeleniumHQ/selenium/commit/2bfb9904f65649d7bcb6b4a678ac37c9909d2d22"><code>2bfb990</code></a>
[rb] skip Safari double_click action tests</li>
<li>Additional commits viewable in <a
href="https://github.com/SeleniumHQ/selenium/compare/selenium-4.44.0...selenium-4.45.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `start-server-and-test` from 3.0.10 to 3.0.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bahmutov/start-server-and-test/releases">start-server-and-test's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.11</h2>
<h2><a
href="https://github.com/bahmutov/start-server-and-test/compare/v3.0.10...v3.0.11">3.0.11</a>
(2026-06-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>register --expected as an alias of --expect (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/484">#484</a>)
(<a
href="https://github.com/bahmutov/start-server-and-test/commit/57c221d7892e8375bb76033628edff7b301b4e1a">57c221d</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bahmutov/start-server-and-test/commit/57c221d7892e8375bb76033628edff7b301b4e1a"><code>57c221d</code></a>
fix: register --expected as an alias of --expect (<a
href="https://redirect.github.com/bahmutov/start-server-and-test/issues/484">#484</a>)</li>
<li>See full diff in <a
href="https://github.com/bahmutov/start-server-and-test/compare/v3.0.10...v3.0.11">compare
view</a></li>
</ul>
</details>
<br />


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>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from
149.0.2 to 150.0.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/giggio/node-chromedriver/commit/85919db4badaeccb1a61d0abfd0741d16188dca7"><code>85919db</code></a>
Bump version to 150.0.0</li>
<li><a
href="https://github.com/giggio/node-chromedriver/commit/7d81064131319a559cc91a694225c560997cf0a0"><code>7d81064</code></a>
Bump version to 149.0.4</li>
<li><a
href="https://github.com/giggio/node-chromedriver/commit/14ab6c2952ea36ee3c3cf1656e45f0dedf1c3629"><code>14ab6c2</code></a>
Bump version to 149.0.3</li>
<li>See full diff in <a
href="https://github.com/giggio/node-chromedriver/compare/149.0.2...150.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chromedriver&package-manager=npm_and_yarn&previous-version=149.0.2&new-version=150.0.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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#5178)

The `context.md` examples labeled "Test a Node list" and "Test
everything except these DOM nodes" used `document.querySelector(...)`,
which only ever returns a single node, so they didn't actually show a
NodeList. Switched both to `document.querySelectorAll(...)` and tweaked
the comments so the examples demonstrate the NodeList support that
already works. Also added two `Context` unit tests: one for a NodeList
passed as the bare context, and one for NodeLists passed via
`include`/`exclude`. (`doc/API.md` already lists NodeList as an accepted
context, so it didn't need a change.)

Heads up: I couldn't get the browser test runner going in my
environment, so the new assertions were checked against the built
`axe.js` bundle under jsdom rather than web-test-runner — prettier and
eslint are clean. Worth a CI run to confirm in-browser.

Closes: #3348
…nflict resolution (#5175)

Audited `lib/checks/shared` for the #5044 conversion — no
`getAriaValue`/`hasAriaValue` conversion applies:

- `aria-label` / `aria-labelledby` checks delegate to the
already-converted `commons/aria` helpers (`arialabelText` /
`arialabelledbyText`), so they're internals-aware transitively.
- `presentational-role` uses one global-ARIA **presence** check for role
conflict resolution, which stays `hasAttr` — element internals must
**not** trigger conflict resolution (no browser supports it yet; see
#5162). This matches the convention already set in #5172
(`has-global-aria-attribute`) and #5171 (`get-role`).

So this is a **test-only** change: it adds a test demonstrating that a
global ARIA attribute supplied via element internals does **not**
override a presentational role. No production code changes.

Closes #5145
Updates the `checks/label` directory to use the new `getAriaValue`,
`hasAriaValue`, and `getResolvedRefs` functions where it makes sense.

Here's a report of the full directory:

* `checks/label/help-same-as-label` - aria-describedby: replaced
`node.getAttribute` + `idrefs()` with `hasAriaValue` +
`getResolvedRefs`; since `getResolvedRefs` returns VirtualNodes, updated
`accessibleText(thing)` to `accessibleText(thing.actualNode)`
* `checks/label/multiple-label` - aria-labelledby: replaced `idrefs()`
with `getResolvedRefs`; since VirtualNodes are returned, updated
`.includes(domNode)` to `.some(ref => ref?.actualNode === domNode)`
* `checks/label/title-only` - aria-describedby: replaced `.attr()`
truthy check with `hasAriaValue` since only presence is needed
* `checks/label/alt-space-value` - checks alt attribute, not an ARIA
prop
* `checks/label/duplicate-img-label` - compares accessible names, no
direct ARIA attr access
* `checks/label/explicit` - checks label[for] association, no ARIA attr
access
* `checks/label/hidden-explicit-label` - checks label visibility, no
ARIA attr access
* `checks/label/implicit` - checks implicit label wrapping, no ARIA attr
access
* `checks/label/label-content-name-mismatch` - computes accessible
names, no direct ARIA attr access
* `checks/label/no-implicit-explicit-label` - no direct ARIA attr access
(in aria directory, not label)

Closes: #5146

---------

Co-authored-by: Chris Hutchins <[email protected]>
Co-authored-by: JC Franco <[email protected]>
Ignoring the breaking tests until we can update our code to handle them.

See #5207
## Summary

Adds `aria-actions` to axe-core's known ARIA attributes so it is
recognized as valid, allowed, and prohibited on the roles the spec
prohibits it on — and re-enables the APG `tabs-actions` example that had
been disabled for lack of `aria-actions` support.

Per the [spec draft](w3c/aria#1805),
`aria-actions`:

- **Value type:** ID reference list → `idrefs`
- **Global:** yes (like `aria-describedby`)
- **Empty allowed:** yes — the spec permits `aria-actions=""` (the
deferred-DOM case) → `allowEmpty: true`
- **Prohibited roles:** the name-prohibited roles the spec also
prohibits it on (all axe `prohibitedAttrs` roles except
`none`/`presentation`, which the spec still permits)
- **ElementInternals reflection:** `ariaActionsElements`

## Accessibility-supported rationale

Following the [Impact on
ARIA](https://github.com/dequelabs/axe-core/blob/develop/doc/accessibility-supported.md#impact-on-aria)
decision framework:

1. Supported by all platforms? No — shipped in WebKit and Firefox;
**Chromium pending**.
2. Does its use negatively impact accessibility? **No** — unsupported
browsers simply ignore the attribute (progressive enhancement), and the
spec hard-guards exposure. → **allow.**

> **Note for reviewers:** the ARIA spec change is still [PR
#1805](w3c/aria#1805), not yet merged — this
aligns to the two engines shipping ahead of spec approval. We can patch
the config later in the unlikely event the spec shifts.

## Changes

**Attribute recognition** — `lib/standards/aria-attrs.js`: add the
`aria-actions` entry (`idrefs`, global, `allowEmpty`).

**Prohibited-on-role** — `lib/standards/aria-roles.js`: add
`aria-actions` to `prohibitedAttrs` for `caption`, `code`, `deletion`,
`emphasis`, `insertion`, `mark`, `paragraph`, `strong`, `subscript`,
`superscript`, `suggestion`. Per
[w3c/aria#1805](w3c/aria#1805) these roles
prohibit it; `none`/`presentation` do not, so they are left unchanged.

**APG test re-enable (Closes #4584)** — bump `aria-practices` to latest
`main` (the `tabs-actions` page did not exist at the previously pinned
commit) and remove it from `skippedPages`. axe recognizes the attribute
but not the authoring *pattern*, so `aria-required-children`
(tabs-actions) and `nested-interactive` (listbox-actions) are disabled
per-page pending #5215.

**Review feedback** — update the stale `wai-aria-1.1` `Source:` comment
to the unversioned WAI-ARIA URL; add an `aria-actions=""` pass case
exercising `allowEmpty`.

## Testing

- `get-global-aria-attrs`, `aria-prohibited-attr` (check +
virtual-rule), `aria-valid-attr`, `aria-allowed-attr`,
`aria-valid-attr-value` unit + integration tests ✓
- Full APG suite green (76 passing) ✓
- `npm run build` clean; no auto-generated committed files change

## Follow-ups

- #5215 — teach `aria-required-children` / `nested-interactive` about
the `aria-actions` pattern, then remove the per-page disables in
`apg.spec.js`

Closes #5199
Closes #4584
The tests only set up the virtual tree from the `fixture` down. This
causes problems in our tests when code walks up the DOM tree (not the
virtual tree) and tries to get virtual nodes from the walk. This causes
tests to fail when it wouldn't fail in an actual run (as doing `axe.run`
setups the virtual tree for the entire page).

This updates the testutils functions to set up the virtual tree using
the entire DOM to parity an actual run.
Garbee and others added 26 commits July 29, 2026 08:30
## What changed

- **Lockfile:** `package-lock.json` removed, `pnpm-lock.yaml` seeded via
`pnpm import` so resolutions carry over. `packageManager` in
`package.json` pins pnpm 11; pnpm honors that field itself, so
contributors only need pnpm installed, not a specific version (and never
Corepack, which is gone in Node 25+).
- **Patching:** `patch-package` is dropped in favor of pnpm's native
`patchedDependencies`. The `colorjs.io` patch moves to pnpm's naming,
and `prepare` no longer has to run a patch step — which also removes the
`npm run prepare && npm run build` pairing from every workflow.
- **Build scripts:** `pnpm-workspace.yaml` declares `allowBuilds`
explicitly. `esbuild` and `chromedriver` need their postinstall; the
`core-js` family and `es5-ext` do not. The two git-hosted W3C test
corpora are keyed by resolved tarball spec, so bumping either pin means
updating that key too. The nightly jobs that install those corpora from
a floating branch can't know the resolved commit ahead of time, so they
opt into all builds for that install.
- **Strict `node_modules`:** `core-js-pure` was being used through npm's
hoisting and is now a direct dependency.
- **CI:** every workflow gains `pnpm/action-setup` ahead of `setup-node`
(needed for `cache: pnpm` to resolve the store path) and uses `pnpm ci`.
- **Deploy pipeline:** `pnpm publish` needs `--no-git-checks` because
the version bump is uncommitted and the branch isn't `master`. `pnpm
version` has no `--ignore-scripts`, so the bump writes the manifest
field directly. Package validation no longer touches global
package-manager state: `validate-package.mjs` symlinks the repo into its
own `node_modules` instead of `npm link`, and `validate-npm-deploy.sh`
installs into a throwaway project instead of globally.
- **Docs:** setup instructions and command examples across
`CONTRIBUTING.md`, `doc/`, and the example projects now use pnpm.

Closes: #5111

---------

Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Adds the new ARIA 1.3 `sectionheader` and `sectionfooter` roles to
axe-core's standards data.

## What & why

Per [w3c/aria#1931](w3c/aria#1931) (merged into
the ARIA spec `main`), `sectionheader` and `sectionfooter` are new
**concrete structural roles** with superclass `section`. axe-core did
not recognize them, so `role="sectionheader"` / `role="sectionfooter"`
were flagged as invalid roles.

Definitions were grounded directly against the spec source (`w3c/aria`
`main`):
- `roleInfo.js` — `parentRoles: ["section"]`, no required / prohibited /
local (non-global) properties.
- `index.html` characteristics table — **Is Abstract:** no (concrete),
**Name From:** author (so no `nameFromContent`), **Accessible Name
Required:** no.

They are modeled on the existing `blockquote` precedent (`type:
'structure', superclassRole: ['section']`).

## Note on scope — bundling `sectionfooter`

The issue (#4734) names only `sectionheader`, but the spec introduced
`sectionheader` and `sectionfooter` together and there is no separate
`sectionfooter` issue. They are bundled here as one cohesive "ARIA 1.3
section header/footer roles" change.

## Out of scope / follow-up

The updated HTML-AAM implicit-role mapping (`<header>` / `<footer>`
scoped inside sectioning content → implicit `sectionheader` /
`sectionfooter`) is **not** included here — it has a much larger blast
radius (landmark/region computations, `aria-allowed-role`) and will be
tracked as a separate issue.

## Tests
- `aria-roles` integration HTML/JSON — pass cases for both roles.
- `aria-roles` virtual-rule — pass cases for both roles.
- Verified `abstractrole` / `fallbackrole` / `unsupportedrole` /
`aria-allowed-role` check suites still pass.

Closes #4734
…iew (#5246)

Flags the deprecated ARIA attributes `aria-grabbed` and
`aria-dropeffect` as "needs review".

## What & why

WAI-ARIA 1.1 deprecated `aria-grabbed` and `aria-dropeffect` globally,
but axe had no signal for deprecated ARIA *attributes* (it already
handles deprecated *roles* via `aria-deprecated-role`).

Following the approach in the issue thread
([@WilcoFiers](#3341)): add
a new **`aria-deprecated-attr` check to the existing `aria-allowed-attr`
rule** (rather than a standalone rule), which **incompletes** an element
using deprecated ARIA, or lets the rule **fail** when the element also
uses an unsupported/unallowed attribute.

## Implementation

- `deprecated: true` on `aria-grabbed` / `aria-dropeffect` in
`lib/standards/aria-attrs.js`.
- New data-driven `aria-deprecated-attr` check: returns **incomplete**
when any attribute with `deprecated: true` is present, pass otherwise.
- Added to the `aria-allowed-attr` rule's `all` array. Because a failing
sibling check (`aria-allowed-attr` / `aria-unsupported-attr`) outranks
an incomplete, an element with a deprecated attribute is:
  - **needs review** when that's its only ARIA issue, or
  - a **violation** when it also has an unsupported/unallowed attribute.

## Behavior change

Any element using `aria-grabbed` or `aria-dropeffect` now reports under
`aria-allowed-attr` (needs-review, or a violation when combined with an
unsupported attribute). The `passes.html` integration fixture used these
two as "global attribute" filler on 68 pass blocks; they've been removed
from those blocks (each still tests global-attribute allowance via its
other global attributes), with dedicated incomplete/failure coverage
added.

## Tests
- New `aria-deprecated-attr` check unit — incomplete (single/multiple),
data-driven via `axe.configure`, and an open **Shadow DOM** case.
- `aria-allowed-attr` virtual-rule — incomplete for a deprecated attr;
violation when combined with an unallowed attr.
- `aria-allowed-attr` integration — `incomplete.html` (deprecated-only,
singular + plural) and `failures.html` (#fail12: deprecated + unallowed
→ violation); 68 pass blocks updated.

## Follow-up

Per the issue discussion, a separate ticket will track a future
standards mechanism to return "needs review" for
not-recommended-but-valid roles/attributes generally.

Closes #3341

---------

Co-authored-by: Steven Lambert <[email protected]>
Just adds the `aria-allowed-role` integration cases for the `<button>`
element (`separator`, `slider`, `treeitem`; `gridcell` was already
covered), which is all #4142 needs on top of #4398.

Closes #4142

---------

Co-authored-by: Steven Lambert <[email protected]>
…elling (#5270)

Corrects the spelling of `fromPrimative` to `fromPrimitive` and
deprecates the former function.
Adds support for `role="image"` as a valid role equivalent to
`role="img"` (ARIA 1.3,
[w3c/aria#1370](w3c/aria#1370)).

## What & why

ARIA 1.3 adds `image` as an alias of `img` with an identical mapping;
axe previously treated `role="image"` as an invalid role.

Per the review discussion, this does **not** use a synonym-normalization
mechanism (which would force every reporting path to remember the role
the author used vs. the one our code resolved it to). Instead, `image`
is a first-class role that shares `img`'s definition and is allowed
wherever `img` is:

- `image` is added to `lib/standards/aria-roles.js`, spread from a
shared `imgRole` object so it stays in sync with `img`.
- `image` is added to every `html-elms` `allowedRoles` list that
includes `img` (`embed`, `iframe`, `object`). `svg` needs no change — it
is `allowedRoles: true`, so it already accepts any role.
- The `role-img-alt` and `svg-img-alt` selectors match both roles via
`:is([role='img'], [role='image'])`. Without the `svg-img-alt` change,
`<svg role="image">` matched neither rule — `svg-img-alt`'s selector
omitted it and `role-img-alt` is gated by `html-namespace-matches` — so
axe accepted the role and then never checked for an accessible name.
- `image` is added to the `aria-roledescription` check's
`supportedRoles`, so `role="image"` passes where `role="img"` does.

Because there is no synonym resolution, an unallowed `role="image"`
reports **`image`** (the role the author used), not `img`.

## Tests

- `is-valid-role` / `aria-roles` integration — `image` is a valid role.
- `get-element-unallowed-roles` — `image` allowed on
`svg`/`embed`/`object`/`iframe`; reported as authored when unallowed
(e.g. on `hr`).
- `role-img-alt` integration + virtual-rules — matches `role="image"`.
- `svg-img-alt` integration + virtual-rules — matches `role="image"`.
- `aria-roledescription` — `role="image"` passes against the check's
default `supportedRoles`.
- ACT specs `7d6734` and `23a2a8` still pass with the broadened
selectors.

## Not in scope

`role-img-alt` and `svg-img-alt` metadata still name only `img` in their
`description`/`help` strings. Updating them regenerates
`locales/_template.json`, invalidates those translations, and needs a
matching axe-rule-help change — tracked in #5272.

Closes #4656

---------

Co-authored-by: Steven Lambert <[email protected]>
…ails matches (#5262)

This should allow us to handle the variant matching in `htmlElms` needed
for header, footer,
[figure](#3443), and
[summary](#3911).

```js
{
  header: {
    variant: {
      sectioned: {
        matches: {
          inSectioningContent: true
        }
      }
    } 
  },

  figure: {
    variant: {
      figcaption: {
        matches: {
          hasChild: 'figcaption'
        }
      }
    } 
  },

  summary: {
    variant: {
      details: {
        matches: {
          isSummaryForDetails: true
        }
      }
    } 
  }
}
```

---------

Co-authored-by: Chris Hutchins <[email protected]>
Bumps the npm-low-risk group with 4 updates:
[eslint](https://github.com/eslint/eslint),
[lint-staged](https://github.com/lint-staged/lint-staged),
[prettier](https://github.com/prettier/prettier) and
[sinon](https://github.com/sinonjs/sinon).

Updates `eslint` from 10.7.0 to 10.8.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v10.8.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1"><code>2fee9bb</code></a>
feat: export <code>ConfigObject</code> from <code>eslint/config</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/21082">#21082</a>)
(sethamus)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8"><code>6b8d2f7</code></a>
fix: escape reserved characters in rule id in <code>html</code>
formatter (<a
href="https://redirect.github.com/eslint/eslint/issues/21129">#21129</a>)
(Francesco Trotta)</li>
<li><a
href="https://github.com/eslint/eslint/commit/90910715011211a20d011d807d398a7005127f35"><code>9091071</code></a>
fix: prevent <code>no-unreachable-loop</code> crash when all loop types
are ignored (<a
href="https://redirect.github.com/eslint/eslint/issues/21116">#21116</a>)
(Pixel)</li>
<li><a
href="https://github.com/eslint/eslint/commit/e23fafe8d4b15355adef6cdebef414c3a2019454"><code>e23fafe</code></a>
fix: prefer-object-spread add semicolon when adding parenthesis (<a
href="https://redirect.github.com/eslint/eslint/issues/21081">#21081</a>)
(synthex-byte)</li>
<li><a
href="https://github.com/eslint/eslint/commit/20b5ad052360a443786a202e94624a3f81846511"><code>20b5ad0</code></a>
fix: quadratic-time regex in <code>prefer-template</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21096">#21096</a>)
(Milos Djermanovic)</li>
<li><a
href="https://github.com/eslint/eslint/commit/8b6f6c0b33411f34485512456d94f221daf7321f"><code>8b6f6c0</code></a>
fix: apply ignore configs to computed methods in class-methods-use-this
(<a
href="https://redirect.github.com/eslint/eslint/issues/21094">#21094</a>)
(Pixel)</li>
<li><a
href="https://github.com/eslint/eslint/commit/b2c608c014a396800a24a89343265d0616bee2d8"><code>b2c608c</code></a>
fix: NewExpression with parenthesized callee in
<code>preserve-caught-error</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21083">#21083</a>)
(Francesco Trotta)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea"><code>6ddf858</code></a>
docs: fix broken Specify Parser Options anchor link (<a
href="https://redirect.github.com/eslint/eslint/issues/21106">#21106</a>)
(Minsu)</li>
<li><a
href="https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0"><code>784dfbe</code></a>
docs: Clarify <code>no-eq-null</code> description (<a
href="https://redirect.github.com/eslint/eslint/issues/21120">#21120</a>)
(Park Harin)</li>
<li><a
href="https://github.com/eslint/eslint/commit/7ec733a3ba5acb053a73ac656030a3879aa48fda"><code>7ec733a</code></a>
docs: Fix typos and grammar in glossary (<a
href="https://redirect.github.com/eslint/eslint/issues/21095">#21095</a>)
(Marry (Subin Yang))</li>
<li><a
href="https://github.com/eslint/eslint/commit/92bb13f13065db72d62454b9830d3ae52db15c76"><code>92bb13f</code></a>
docs: replace quake link (<a
href="https://redirect.github.com/eslint/eslint/issues/21108">#21108</a>)
(Jung Hyeon Jun)</li>
<li><a
href="https://github.com/eslint/eslint/commit/68eb4a57572409dbdcfeb3bc5c92ddbba46bc770"><code>68eb4a5</code></a>
docs: fix broken Specify Globals anchor links in rule pages (<a
href="https://redirect.github.com/eslint/eslint/issues/21103">#21103</a>)
(Minsu)</li>
<li><a
href="https://github.com/eslint/eslint/commit/d28f697e0d32d7446c825fd89c362db028450134"><code>d28f697</code></a>
docs: replace Code Climate CLI links with Qlty CLI links (<a
href="https://redirect.github.com/eslint/eslint/issues/21099">#21099</a>)
(Jung Hyeon Jun)</li>
<li><a
href="https://github.com/eslint/eslint/commit/eccc68d42564e46bc9020d19ec52d2988f3b7bfa"><code>eccc68d</code></a>
docs: correct --suppressions-location option description (<a
href="https://redirect.github.com/eslint/eslint/issues/21093">#21093</a>)
(Ga eun Lee)</li>
<li><a
href="https://github.com/eslint/eslint/commit/c5963f74bfa82a5b7ccc0607dcdcc695b8c97a31"><code>c5963f7</code></a>
docs: Update README (GitHub Actions Bot)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490"><code>4fbf46d</code></a>
test: pin <code>webpack</code> version to 5.108.4 (<a
href="https://redirect.github.com/eslint/eslint/issues/21137">#21137</a>)
(Francesco Trotta)</li>
<li><a
href="https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320"><code>2d063e2</code></a>
chore: update HTTP URLs to HTTPS in JSDoc and comments (<a
href="https://redirect.github.com/eslint/eslint/issues/21101">#21101</a>)
(Bo Hyun Kim)</li>
<li><a
href="https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74"><code>eccbe7b</code></a>
test: add error locations to <code>no-class-assign</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21123">#21123</a>)
(devoil)</li>
<li><a
href="https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc"><code>e7d1e43</code></a>
ci: bump actions/setup-go from 6 to 7 (<a
href="https://redirect.github.com/eslint/eslint/issues/21118">#21118</a>)
(dependabot[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/e9d66d0cde1a7752c29dee53ab7b62632835a87a"><code>e9d66d0</code></a>
ci: bump actions/setup-node from 6 to 7 (<a
href="https://redirect.github.com/eslint/eslint/issues/21119">#21119</a>)
(dependabot[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/ee225b60c26f0cc5f4d71641888a5bd2ec5626d6"><code>ee225b6</code></a>
test: Add error location details to <code>no-eq-null</code> rule (<a
href="https://redirect.github.com/eslint/eslint/issues/21117">#21117</a>)
(Park Harin)</li>
<li><a
href="https://github.com/eslint/eslint/commit/044a627fa3e28ee1410d515acc5378eb4b49f8ba"><code>044a627</code></a>
chore: update minimatch to ^10.2.5 (<a
href="https://redirect.github.com/eslint/eslint/issues/21107">#21107</a>)
(김채영)</li>
<li><a
href="https://github.com/eslint/eslint/commit/fb09aa8ff09730d3ccf68859e065f99666b52466"><code>fb09aa8</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/21115">#21115</a>)
(ESLint Bot)</li>
<li><a
href="https://github.com/eslint/eslint/commit/5abd878740fe417fd8a910cac3741f2a0317b365"><code>5abd878</code></a>
test: add error locations to <code>no-proto</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21114">#21114</a>)
(Gihyeon Jeong / 정기현)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9715887ec94a5ff936447d7b680d039fbe2f0541"><code>9715887</code></a>
test: Add error location details to <code>no-div-regex</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21110">#21110</a>)
(Park Harin)</li>
<li><a
href="https://github.com/eslint/eslint/commit/a746ec6ea4a2249b1eb3f512264da5f4d5f7c886"><code>a746ec6</code></a>
test: add error locations to <code>no-new-wrappers</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21109">#21109</a>)
(Gihyeon Jeong / 정기현)</li>
<li><a
href="https://github.com/eslint/eslint/commit/8dde64570e240f3ef8af873d59a752db6d8519aa"><code>8dde645</code></a>
test: add error locations to <code>no-ex-assign</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21102">#21102</a>)
(devoil)</li>
<li><a
href="https://github.com/eslint/eslint/commit/13ab0ec447650c079d8a5e5d67222f79e69c741e"><code>13ab0ec</code></a>
test: add error locations to <code>no-label-var</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21098">#21098</a>)
(Gihyeon Jeong / 정기현)</li>
<li><a
href="https://github.com/eslint/eslint/commit/a99906ffb8342dde03336b5c6372b5658f21d5f2"><code>a99906f</code></a>
test: Add error location details to <code>no-delete-var</code> rule (<a
href="https://redirect.github.com/eslint/eslint/issues/21105">#21105</a>)
(Park Harin)</li>
<li><a
href="https://github.com/eslint/eslint/commit/c47e8dc9bbfba797430db45ae08cb6f7392cfc9d"><code>c47e8dc</code></a>
chore: add missing backticks to <code>languages/js/index.js</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21104">#21104</a>)
(beeen)</li>
<li><a
href="https://github.com/eslint/eslint/commit/0174428dd7543d118cf67a823b98dd97032fe68c"><code>0174428</code></a>
chore: add missing backticks to <code>translate-cli-options.js</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/21097">#21097</a>)
(dongkyu lee)</li>
<li><a
href="https://github.com/eslint/eslint/commit/3d36589a4917326500f0707bb41745160f387d00"><code>3d36589</code></a>
chore: add missing backticks to <code>serialization.js</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21091">#21091</a>)
(이규환)</li>
<li><a
href="https://github.com/eslint/eslint/commit/dcc9312c1081931de0fe1b555fbb6aa82fe696b9"><code>dcc9312</code></a>
test: add error locations to <code>eqeqeq</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21090">#21090</a>)
(Ga eun Lee)</li>
<li><a
href="https://github.com/eslint/eslint/commit/2710b182472cd1a95e4aff6186cb2c4fbadb4ee0"><code>2710b18</code></a>
ci: Add explicit permissions to rebuild-docs-sites workflow (<a
href="https://redirect.github.com/eslint/eslint/issues/21089">#21089</a>)
(Marry (Subin Yang))</li>
<li><a
href="https://github.com/eslint/eslint/commit/5d2f8663ee60701e9036b0b0933a12efd9d93269"><code>5d2f866</code></a>
chore: update dependency prettier to v3.9.5 (<a
href="https://redirect.github.com/eslint/eslint/issues/21086">#21086</a>)
(renovate[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/d584e31098f262563b97dc5d5f23a63a187879a0"><code>d584e31</code></a>
chore: fix failing ecosystem test for <code>eslint-plugin-unicorn</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/21084">#21084</a>)
(Francesco Trotta)</li>
<li><a
href="https://github.com/eslint/eslint/commit/bf3eda049bd690f1e9a5a0c4520a6329b3e4ec85"><code>bf3eda0</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/21079">#21079</a>)
(ESLint Bot)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/749dfed106f44d77bf3af2402ebfae20cdbf59ee"><code>749dfed</code></a>
10.8.0</li>
<li><a
href="https://github.com/eslint/eslint/commit/4bd0d75b22ffd44809a92659f113c972c5be0770"><code>4bd0d75</code></a>
Build: changelog update for 10.8.0</li>
<li><a
href="https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490"><code>4fbf46d</code></a>
test: pin <code>webpack</code> version to 5.108.4 (<a
href="https://redirect.github.com/eslint/eslint/issues/21137">#21137</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea"><code>6ddf858</code></a>
docs: fix broken Specify Parser Options anchor link (<a
href="https://redirect.github.com/eslint/eslint/issues/21106">#21106</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0"><code>784dfbe</code></a>
docs: Clarify <code>no-eq-null</code> description (<a
href="https://redirect.github.com/eslint/eslint/issues/21120">#21120</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8"><code>6b8d2f7</code></a>
fix: escape reserved characters in rule id in <code>html</code>
formatter (<a
href="https://redirect.github.com/eslint/eslint/issues/21129">#21129</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320"><code>2d063e2</code></a>
chore: update HTTP URLs to HTTPS in JSDoc and comments (<a
href="https://redirect.github.com/eslint/eslint/issues/21101">#21101</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74"><code>eccbe7b</code></a>
test: add error locations to <code>no-class-assign</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21123">#21123</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1"><code>2fee9bb</code></a>
feat: export <code>ConfigObject</code> from <code>eslint/config</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/21082">#21082</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc"><code>e7d1e43</code></a>
ci: bump actions/setup-go from 6 to 7 (<a
href="https://redirect.github.com/eslint/eslint/issues/21118">#21118</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint/eslint/compare/v10.7.0...v10.8.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `lint-staged` from 17.0.8 to 17.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/releases">lint-staged's
releases</a>.</em></p>
<blockquote>
<h2>v17.2.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1823">#1823</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/ee156cc7039494f1db11f389b1233c78f588238c"><code>ee156cc</code></a>
- The chunking of tasks based on maximum command line argument length
has been re-implemented to be more precise. Now the chunking happens
based on the final generated command string, instead of just the list of
staged files like previously. This benefits mainly Windows platforms and
function commands like:</p>
<pre lang="js"><code>/** @type {import('lint-staged').Configuration} */
export default {
&quot;*.ts&quot;: () =&gt; &quot;tsc&quot;, // Run &quot;tsc&quot; when
any TS file is changed (for entire project)
};
</code></pre>
<p>Where the spawned command is literally <code>&quot;tsc&quot;</code>
without any extra arguments. Previously, this was still chunked when a
lot of files were staged. Now, it probably won't be chunked because the
length of the command is just three letters.</p>
<p>Also, native JavaScript/Node.js function tasks won't be chunked at
all, when previously they were run multiple times when chunked:</p>
<pre lang="js"><code>/** @type {import('lint-staged').Configuration} */
export default {
  &quot;*.js&quot;: {
    title: &quot;Log staged JS files to console&quot;,
    task: async (files) =&gt; {
      console.log(&quot;Staged JS files:&quot;, files);
    },
  },
};
</code></pre>
</li>
</ul>
<h2>v17.1.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1820">#1820</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/a626a9f269d9ff6498a9b8245490e096f90c4bb7"><code>a626a9f</code></a>
- It's now possible to set <code>--max-arg-length=Infinity</code> to
effectively disable chunking of tasks based on the number of staged
files. The parsing and validation of the numeric CLI options
<code>--max-arg-length</code> and <code>--concurrency</code> has been
improved.</li>
</ul>
<h2>v17.1.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1816">#1816</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/7568d4fb15ba3c3317a7aec36195461cb2f272d7"><code>7568d4f</code></a>
- The console output of <em>lint-staged</em> has been simplified so that
there's less interactive spinners and more explicit messages like
<em>&quot;Started…</em>&quot; -&gt; &quot;<em>Done!</em>&quot;. The
primary purpose of this was to remove <a
href="https://github.com/listr2/listr2"><code>Listr2</code></a>, a very
large dependency.</p>
<p><strong>Before:</strong></p>
<p>Size of <code>node_modules/</code> after installing: <code>1561.7
kB</code> with 29 packages.</p>
<p>Fancy interactive spinners, but output dynamically changes:</p>
<pre lang="shell"><code>✔ Backed up original state in git stash
(0b191303)
✔ Running tasks for staged files...
✔ Staging changes from tasks...
✔ Cleaning up temporary files...
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md">lint-staged's
changelog</a>.</em></p>
<blockquote>
<h2>17.2.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1823">#1823</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/ee156cc7039494f1db11f389b1233c78f588238c"><code>ee156cc</code></a>
- The chunking of tasks based on maximum command line argument length
has been re-implemented to be more precise. Now the chunking happens
based on the final generated command string, instead of just the list of
staged files like previously. This benefits mainly Windows platforms and
function commands like:</p>
<pre lang="js"><code>/** @type {import('lint-staged').Configuration} */
export default {
&quot;*.ts&quot;: () =&gt; &quot;tsc&quot;, // Run &quot;tsc&quot; when
any TS file is changed (for entire project)
};
</code></pre>
<p>Where the spawned command is literally <code>&quot;tsc&quot;</code>
without any extra arguments. Previously, this was still chunked when a
lot of files were staged. Now, it probably won't be chunked because the
length of the command is just three letters.</p>
<p>Also, native JavaScript/Node.js function tasks won't be chunked at
all, when previously they were run multiple times when chunked:</p>
<pre lang="js"><code>/** @type {import('lint-staged').Configuration} */
export default {
  &quot;*.js&quot;: {
    title: &quot;Log staged JS files to console&quot;,
    task: async (files) =&gt; {
      console.log(&quot;Staged JS files:&quot;, files);
    },
  },
};
</code></pre>
</li>
</ul>
<h2>17.1.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1820">#1820</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/a626a9f269d9ff6498a9b8245490e096f90c4bb7"><code>a626a9f</code></a>
- It's now possible to set <code>--max-arg-length=Infinity</code> to
effectively disable chunking of tasks based on the number of staged
files. The parsing and validation of the numeric CLI options
<code>--max-arg-length</code> and <code>--concurrency</code> has been
improved.</li>
</ul>
<h2>17.1.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1816">#1816</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/7568d4fb15ba3c3317a7aec36195461cb2f272d7"><code>7568d4f</code></a>
- The console output of <em>lint-staged</em> has been simplified so that
there's less interactive spinners and more explicit messages like
<em>&quot;Started…</em>&quot; -&gt; &quot;<em>Done!</em>&quot;. The
primary purpose of this was to remove <a
href="https://github.com/listr2/listr2"><code>Listr2</code></a>, a very
large dependency.</p>
<p><strong>Before:</strong></p>
<p>Size of <code>node_modules/</code> after installing: <code>1561.7
kB</code> with 29 packages.</p>
<p>Fancy interactive spinners, but output dynamically changes:</p>
<pre lang="shell"><code>✔ Backed up original state in git stash
(0b191303)
✔ Running tasks for staged files...
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/fb540fba1513a83a6be3fa31aeed4eae679c3e31"><code>fb540fb</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1824">#1824</a>
from lint-staged/changeset-release/main</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/dc0a738a1b39033804667b3df3fb0f71cb03708a"><code>dc0a738</code></a>
chore(changeset): release</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/60cbb8818f8c0d51d6d1e4c59c7a9e558d8fffe1"><code>60cbb88</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1823">#1823</a>
from lint-staged/reimplement-chunk-files</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/2354dc42686e2c2bff4a5dff3abd57f3cc69624e"><code>2354dc4</code></a>
build(deps): update dependencies</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/0516e7fa9bc8a05aee922872f4ebe5d9c21a8213"><code>0516e7f</code></a>
docs: adjust debug logs</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/e22f6ede988cc6efe7c0065dcb8cb1408f2584dd"><code>e22f6ed</code></a>
style: run <code>oxfmt</code> on README.md</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/37e8e1ad73a58c0b187716bd5172744ad50f36d1"><code>37e8e1a</code></a>
fix: restore chunking of git add command after running tasks</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/2c75f1d0f2cc2c28c7191c48beafb281e3d1e78e"><code>2c75f1d</code></a>
chore: remove unused file</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/ee156cc7039494f1db11f389b1233c78f588238c"><code>ee156cc</code></a>
feat: add improved lazy-chunking of command strings</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/baa7c987f68e0c338b1fd5ad751da05e9cbe238d"><code>baa7c98</code></a>
feat: remove current <code>chunkFiles</code> implementation</li>
<li>Additional commits viewable in <a
href="https://github.com/lint-staged/lint-staged/compare/v17.0.8...v17.2.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `prettier` from 3.9.5 to 3.9.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.9.6</h2>
<h2>What's Changed</h2>
<ul>
<li>Preserve quotes for methods named <code>new</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19621">prettier/prettier#19621</a>
by <a href="https://github.com/kovsu"><code>@​kovsu</code></a>)</li>
<li>Support <code>import defer</code> in <code>typescript</code> parser
(<a
href="https://redirect.github.com/prettier/prettier/pull/19624">prettier/prettier#19624</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19675">prettier/prettier#19675</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</li>
<li>Added a new official plugin <a
href="https://github.com/prettier/prettier/tree/3.9.6/packages/plugin-yuku"><code>@prettier/plugin-yuku</code>
🚀</a> (<a
href="https://redirect.github.com/prettier/prettier/pull/19628">prettier/prettier#19628</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19629">prettier/prettier#19629</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.6/CHANGELOG.md#396">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.9.6</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.9.5...3.9.6">diff</a></p>
<h4>TypeScript: Preserve quotes for methods named <code>new</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19621">#19621</a>
by <a href="https://github.com/kovsu"><code>@​kovsu</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="tsx"><code>// Input
interface Container {
  &quot;new&quot;(id: string): number;
}
<p>// Prettier 3.9.5<br />
interface Container {<br />
new(id: string): number;<br />
}</p>
<p>// Prettier 3.9.6<br />
interface Container {<br />
&quot;new&quot;(id: string): number;<br />
}<br />
</code></pre></p>
<h4>TypeScript: Support <code>import defer</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19624">#19624</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19675">#19675</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="tsx"><code>// Input
import defer * as foo from &quot;foo&quot;;
<p>// Prettier 3.9.5<br />
import * as foo from &quot;foo&quot;;</p>
<p>// Prettier 3.9.6<br />
import defer * as foo from &quot;foo&quot;;<br />
</code></pre></p>
<h4>JavaScript: Added a new official plugin
<code>@prettier/plugin-yuku</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19628">#19628</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19629">#19629</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<p><code>@prettier/plugin-yuku</code> is powered by <a
href="https://yuku.fyi/">Yuku</a> (A high-performance
JavaScript/TypeScript compiler toolchain written in Zig).</p>
<p>This plugin includes two new parsers: <code>yuku</code> (JavaScript
syntax) and <code>yuku-ts</code> (TypeScript syntax).</p>
<p><strong>To use this plugin:</strong></p>
<ol>
<li>
<p>Install the plugin:</p>
<pre lang="bash"><code>yarn add --dev prettier @prettier/plugin-yuku
</code></pre>
</li>
</ol>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prettier/prettier/commit/8f0c95057cc91d5836409466cd9d9af3bb901e84"><code>8f0c950</code></a>
Release 3.9.6</li>
<li><a
href="https://github.com/prettier/prettier/commit/e9107647d0497d8ff1cacbb0f970d4543df77c1c"><code>e910764</code></a>
Update changelog</li>
<li><a
href="https://github.com/prettier/prettier/commit/ec3f1c7bd74495992bc6954323a1a7fc8368808e"><code>ec3f1c7</code></a>
Update typescript-eslint to v8.65.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/19675">#19675</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/73d2efc2c6cba6f579585c88ef171132d90834ec"><code>73d2efc</code></a>
Update Yuku parser to v0.7.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/19664">#19664</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/dd5e24eabeab1f75ad573c79781e5fd408bcfad3"><code>dd5e24e</code></a>
Preserve quotes for <code>TSMethodSignature</code> nodes named
<code>new</code> (<a
href="https://redirect.github.com/prettier/prettier/issues/19621">#19621</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/c03ab4e71c23154d6b11537eee3c938f0d0f67d3"><code>c03ab4e</code></a>
Update dependency eslint-plugin-unicorn to v72 (<a
href="https://redirect.github.com/prettier/prettier/issues/19633">#19633</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/b74dd53076c7208291a6b2e585c310844b41d35f"><code>b74dd53</code></a>
Update Yuku parser to v0.6.5 (<a
href="https://redirect.github.com/prettier/prettier/issues/19654">#19654</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/f1b594ea1db1520c383d0e281d623551f671f824"><code>f1b594e</code></a>
Update dependency eslint-plugin-simple-import-sort to v14 (<a
href="https://redirect.github.com/prettier/prettier/issues/19655">#19655</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/0d9dfb61530986373000dd107ea58ceebb79e233"><code>0d9dfb6</code></a>
Update Yuku parser to v0.6.4 (<a
href="https://redirect.github.com/prettier/prettier/issues/19650">#19650</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/3bbb8159eb55575d4042653aa99f5f92a1416c19"><code>3bbb815</code></a>
Remove <code>typescript-only</code> directory (<a
href="https://redirect.github.com/prettier/prettier/issues/19636">#19636</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.9.5...3.9.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `sinon` from 22.0.0 to 22.1.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sinonjs/sinon/blob/main/CHANGES.md">sinon's
changelog</a>.</em></p>
<blockquote>
<h2>22.1.0</h2>
<ul>
<li><a
href="https://github.com/sinonjs/sinon/commit/d36e921baf382598cfa9323cb672c87ce85e2ad5"><code>d36e921b</code></a>
fix: let returns override returnsArg (王胜)
<blockquote>
<p>Signed-off-by: 王胜 <a
href="mailto:[email protected]">[email protected]</a></p>
</blockquote>
</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/40c4caa0f47b8fb184319a8873bac616c3eef871"><code>40c4caa0</code></a>
fix: align restoreObject docs test with idempotent behavior (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2745">#2745</a>)
(Julia Miller)
<blockquote>
<p>restoreObject was made idempotent in <a
href="https://redirect.github.com/sinonjs/sinon/issues/2737">#2737</a> —
it no longer throws
for objects with no restorable methods. Updates the docs page
and its corresponding test to reflect this.</p>
</blockquote>
</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/a68dac198c6d0d9ce797dc9178d0c57ea6455aab"><code>a68dac19</code></a>
fix: throw a clear error when throwArg index equals the argument count
(<a
href="https://redirect.github.com/sinonjs/sinon/issues/2743">#2743</a>)
(spokodev)
<blockquote>
<ul>
<li>fix: throw a clear error when throwArg index equals the argument
count</li>
</ul>
<p>spyCall.throwArg(pos) guarded with pos &gt; this.args.length, so
calling it
with pos equal to the number of recorded arguments slipped past the
guard
and reached throw this.args[pos], throwing undefined instead of the
intended TypeError. A thrown undefined cannot be inspected as an Error
and
is reported by test frameworks as no exception thrown.</p>
<p>Use &gt;= to match ensureArgs in behavior.js and the sibling callArg
helpers,
which already reject an out-of-range index with a clear error.</p>
</blockquote>
</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/9ea504e317e9a27c376a9740bc04ec75f699ed30"><code>9ea504e3</code></a>
feat: make sinon.restoreObject idempotent (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2737">#2737</a>)
(Ilia Choly)
<blockquote>
<p>Passing an object with no live fakes to restoreObject now restores
nothing instead of throwing, giving it symmetry with sinon.restore()
and sandbox.restore(). The strict &quot;found no methods&quot; check is
retained
for spy(object) and stub(object), which now use a dedicated
walkObjectStrict export, while restoreObject uses the loose walkObject.
Passing a falsy value still throws.</p>
<p>Fixes <a
href="https://redirect.github.com/sinonjs/sinon/issues/2736">#2736</a></p>
</blockquote>
</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/4db4feffe19d3f117d46b9015b4890187a282cf0"><code>4db4feff</code></a>
fix: preserve fake undefined argument validation (Vishal Kumar
Singh)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/755a40d772b02a7ba7e9a1d465a5f26d486ebbdb"><code>755a40d7</code></a>
fix: isolate callId counter per sandbox for parallel test support
(Vishal Kumar Singh)
<blockquote>
<p>The global callId counter in proxy-invoke.js caused
calledImmediatelyBefore
and calledImmediatelyAfter to fail when tests run in parallel with
separate
sandboxes. Each sandbox now maintains its own callId counter, passed
through
the spy/stub/fake creation chain via a context object.</p>
<p>Fixes <a
href="https://redirect.github.com/sinonjs/sinon/issues/2472">#2472</a></p>
</blockquote>
</li>
</ul>
<p><em>Released by Morgan Roderick on 2026-07-20.</em></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sinonjs/sinon/commit/ab289e92cdd76caf8cec2b0a8c9a391283e6c9df"><code>ab289e9</code></a>
22.1.0</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/bb3b75ad7422f0e2e74b10d71378598b6ea475c3"><code>bb3b75a</code></a>
chore: remove Jekyll steps from version hook</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/bb38f25179598e9306c3b8cbd76a74887e6d5836"><code>bb38f25</code></a>
chore: run docs tests in preversion hook</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/d36e921baf382598cfa9323cb672c87ce85e2ad5"><code>d36e921</code></a>
fix: let returns override returnsArg</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/11db21399208b1ece7834031bbe9f86559cef79d"><code>11db213</code></a>
ci: run docs tests on every PR (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2746">#2746</a>)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/40c4caa0f47b8fb184319a8873bac616c3eef871"><code>40c4caa</code></a>
fix: align restoreObject docs test with idempotent behavior (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2745">#2745</a>)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/5ccb7fd4ee1556ca528b7f7168a8a5bd4cadab15"><code>5ccb7fd</code></a>
build(deps): bump the action-deps group with 4 updates (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2744">#2744</a>)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/a68dac198c6d0d9ce797dc9178d0c57ea6455aab"><code>a68dac1</code></a>
fix: throw a clear error when throwArg index equals the argument count
(<a
href="https://redirect.github.com/sinonjs/sinon/issues/2743">#2743</a>)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/9ea504e317e9a27c376a9740bc04ec75f699ed30"><code>9ea504e</code></a>
feat: make sinon.restoreObject idempotent (<a
href="https://redirect.github.com/sinonjs/sinon/issues/2737">#2737</a>)</li>
<li><a
href="https://github.com/sinonjs/sinon/commit/cf5d9e8de1a5307ed7b329b6306ee86982453db7"><code>cf5d9e8</code></a>
fix: remove dead link and exclude code example URLs from link check</li>
<li>Additional commits viewable in <a
href="https://github.com/sinonjs/sinon/compare/v22.0.0...v22.1.0">compare
view</a></li>
</ul>
</details>
<br />


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>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version)
from 12.7.3 to 13.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/absolute-version/commit-and-tag-version/releases">commit-and-tag-version's
releases</a>.</em></p>
<blockquote>
<h2>v13.1.0</h2>
<h2><a
href="https://github.com/absolute-version/commit-and-tag-version/compare/v13.0.0...v13.1.0">13.1.0</a>
(2026-07-21)</h2>
<h3>Features</h3>
<ul>
<li>support ESM configuration files (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/306">#306</a>)
(<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/9e0e5ab7ec8cf8a465b63d3858634126cd040542">9e0e5ab</a>)</li>
</ul>
<h2>v13.0.0</h2>
<h2><a
href="https://github.com/absolute-version/commit-and-tag-version/compare/v12.7.3...v13.0.0">13.0.0</a>
(2026-07-18)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Update all conventional-changelog dependencies to their modern
version. There are a few breaking changes that will affect users with
custom presets, please see MIGRATION.md. This also raises the node
minimum to node 22.</li>
<li>This package is now pure ESM. CLI uses should be unaffected. This
raises the minimum engine to 20.19, and anyone using require will need
to <code>require('commit-and-tag-version').default</code></li>
</ul>
<h3>deps</h3>
<ul>
<li>Update all conventional-changelog dependencies to their modern
version. There are a few breaking changes that will affect users with
custom presets, please see MIGRATION.md. This also raises the node
minimum to node 22. (<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/c2d26bf0b5692de6c357104613557f5bd41c95da">c2d26bf</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>maven:</strong> preserve comments in pom.xml (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/294">#294</a>)
(<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/cbb60100f194877924d9cb98587aa8b2591b8318">cbb6010</a>)</li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li>This package is now pure ESM. CLI uses should be unaffected. This
raises the minimum engine to 20.19, and anyone using require will need
to <code>require('commit-and-tag-version').default</code> (<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/89ba82eae4e2a167a5272c88a51d24a4e0a6b5da">89ba82e</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/absolute-version/commit-and-tag-version/blob/master/CHANGELOG.md">commit-and-tag-version's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/absolute-version/commit-and-tag-version/compare/v13.0.0...v13.1.0">13.1.0</a>
(2026-07-21)</h2>
<h3>Features</h3>
<ul>
<li>support ESM configuration files (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/306">#306</a>)
(<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/9e0e5ab7ec8cf8a465b63d3858634126cd040542">9e0e5ab</a>)</li>
</ul>
<h2><a
href="https://github.com/absolute-version/commit-and-tag-version/compare/v12.7.3...v13.0.0">13.0.0</a>
(2026-07-18)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Update all conventional-changelog dependencies to their modern
version. There are a few breaking changes that will affect users with
custom presets, please see MIGRATION.md. This also raises the node
minimum to node 22.</li>
<li>This package is now pure ESM. CLI uses should be unaffected. This
raises the minimum engine to 20.19, and anyone using require will need
to <code>require('commit-and-tag-version').default</code></li>
</ul>
<h3>deps</h3>
<ul>
<li>Update all conventional-changelog dependencies to their modern
version. There are a few breaking changes that will affect users with
custom presets, please see MIGRATION.md. This also raises the node
minimum to node 22. (<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/c2d26bf0b5692de6c357104613557f5bd41c95da">c2d26bf</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>maven:</strong> preserve comments in pom.xml (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/294">#294</a>)
(<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/cbb60100f194877924d9cb98587aa8b2591b8318">cbb6010</a>)</li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li>This package is now pure ESM. CLI uses should be unaffected. This
raises the minimum engine to 20.19, and anyone using require will need
to <code>require('commit-and-tag-version').default</code> (<a
href="https://github.com/absolute-version/commit-and-tag-version/commit/89ba82eae4e2a167a5272c88a51d24a4e0a6b5da">89ba82e</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/2a344ca68e36892311b3a35dacf9cd6302a55510"><code>2a344ca</code></a>
chore(master): release 13.1.0 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/307">#307</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/9e215d6658620fd81aa1c877d5538192691f9cd2"><code>9e215d6</code></a>
build(deps): bump detect-indent from 6.1.0 to 7.0.2 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/284">#284</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/14e37e56c724faf6018dde7e61b95be6eeb40e41"><code>14e37e5</code></a>
build(deps-dev): bump strip-ansi from 6.0.1 to 7.2.0 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/286">#286</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/9e0e5ab7ec8cf8a465b63d3858634126cd040542"><code>9e0e5ab</code></a>
feat: support ESM configuration files (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/306">#306</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/7c74df63be9c61745ad93eb2bff8f7268c943f17"><code>7c74df6</code></a>
build(deps): bump actions/checkout from 7.0.0 to 7.0.1 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/303">#303</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/98ac008d75a80127e14282982875d431d7c215ec"><code>98ac008</code></a>
build(deps): bump actions/setup-node from 6 to 7 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/304">#304</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/00c0a5ed4b9f93d76b3e34a1177e5fec4797e87c"><code>00c0a5e</code></a>
build(deps): bump chalk from 2.4.2 to 5.6.2 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/305">#305</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/ddb4ed4d830ae8ccb9797fd78a06450d7400ad77"><code>ddb4ed4</code></a>
test: make fs mocks tolerate non-string paths from the module loader (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/302">#302</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/1ac8d4d44a11965f0eaeb99ca690c37859726761"><code>1ac8d4d</code></a>
chore(master): release 13.0.0 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/301">#301</a>)</li>
<li><a
href="https://github.com/absolute-version/commit-and-tag-version/commit/59ece916feda62466905d0ea10981f92c752e500"><code>59ece91</code></a>
build(deps): bump codecov/codecov-action from 6 to 7 (<a
href="https://redirect.github.com/absolute-version/commit-and-tag-version/issues/297">#297</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/absolute-version/commit-and-tag-version/compare/v12.7.3...v13.1.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for commit-and-tag-version since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

Follow-up to #5248. Since that change, `role-img-alt` and `svg-img-alt`
match both `role="img"` and `role="image"` (via `:is([role='img'],
[role='image'])`), but their metadata still named only `img` — so an
author who wrote `<div role="image">` got a message referencing a role
they didn't write.

## Changes

- **`role-img-alt`** — description/help now name `[role="img"]` **and**
`[role="image"]`.
- **`svg-img-alt`** — description/help now include the `image` role
alongside `img`/`graphics-document`/`graphics-symbol`.
- Regenerated `locales/_template.json` and `doc/rule-descriptions.md`
(via `pnpm run build`).

## Notes

- Editing these four strings **invalidates the existing translations**
for those keys until they're retranslated — this was deliberately
deferred from #5248 and is expected. Only `locales/_template.json` is
regenerated here; the translated `locales/*.json` files are left for the
translation workflow.
- A **matching `axe-rule-help` update** (the
`role-img-alt`/`svg-img-alt` help pages) is a follow-up, tracked
separately.

Closes #5272
Models `presentation` as a synonym of `none` and removes the hardcoded
`['none', 'presentation']` membership checks, per [@WilcoFiers on
#4656](#4656).

> **Stacked PR** — targets `chut/4656-role-image-synonym` (#4656), which
introduced the `synonym` mechanism this builds on. GitHub will
auto-retarget to `develop` once #4656 merges.

## What & why

Uses the `synonym` mechanism from #4656:
- `presentation` role gets `synonym: 'none'`, so
`getExplicitRole`/`getRole` resolve it to the canonical `none`.
- The **implicit** presentation role (empty-alt `<img>`) is also
normalized to `none` at the data level (`implicit-html-roles.js`), so
`getRole` never returns `'presentation'` from *either* the explicit or
implicit path.

With role resolution always yielding `none`, the scattered `['none',
'presentation'].includes(role)` checks that read from
`getRole`/`getExplicitRole` collapse to a single `role === 'none'` — 18
sites simplified.

## Intentionally left with both terms
- `fallbackrole-evaluate.js` — reads **raw** `role` attribute tokens
(`tokenList`), so it needs the literal `presentation` and `none` tokens.
- `presentation-role-conflict.json` (CSS selector) and `html-elms.js`
`allowedRoles` arrays — raw/selector paths.
- `lookup-table.js` `evaluateRoleForElement` — has no call sites, so its
input couldn't be verified as normalized.

## Behavior note
`getRole`/`getExplicitRole` now return `'none'` where they previously
could return `'presentation'` (they're synonyms — `none` is the
canonical term). **End-to-end rule results are unchanged** (all
integration + virtual-rule suites pass without expectation changes);
only internal `commons` role-resolution output and the corresponding
unit-test expectations changed.

## Tests
- `implicit-role`, `get-role` (13 inheritance cases),
`presentational-role`, `aria-allowed-role` — result expectations updated
`presentation`→`none`.
- Full `commons` / `checks` / integration / virtual-rule suites green;
no generated-file drift.

Closes #5249

Co-authored-by: Steven Lambert <[email protected]>
…5240)

Restricts the roles allowed on a `<figure>` element when it has a child
`<figcaption>`, per the ARIA in HTML update.

## What & why

Per [ARIA in HTML](https://www.w3.org/TR/html-aria/) (`#el-figure`,
[w3c/html-aria#415](w3c/html-aria#415)):

- A `figure` **with** a valid `figcaption` descendant allows **no role
other than `figure`**, plus the DPub role **`doc-example`**.
- A `figure` **without** a `figcaption` allows **any role** (though
`figure` itself is NOT RECOMMENDED) — unchanged.

axe previously modeled `figure` with a flat `allowedRoles: true` and an
inline comment admitting it couldn't match the figcaption case. This
replaces that with a `variant` using a `condition` matcher.

## Implementation notes

- The implicit `figure` role still passes via the existing
`allowImplicit` short-circuit, so the with-figcaption branch only needs
`allowedRoles: ['doc-example']`.
- The matcher checks **direct children** (`vNode.children?.some(...)`),
not a descendant walk: HTML's content model only permits `figcaption` as
the first/last child of `figure`, and a direct-child check avoids a
nested-`<figure>` false match (an inner figure's figcaption wrongly
restricting the outer figure).

## Behavior change

A `<figure>` with a `<figcaption>` and an explicit role other than
`figure`/`doc-example` (including `role="none"`/`role="presentation"`)
now flags on `aria-allowed-role` (minor impact). This is spec-correct
but will surface new findings for existing users.

## Tests
- `get-element-spec` unit — variant resolution with/without figcaption.
- `is-aria-role-allowed-on-element` and `aria-allowed-role` check units
— incl. an open **Shadow DOM** case.
- `aria-allowed-role` virtual-rule — figcaption-child cases (built with
`SerialVirtualNode`) plus the no-figcaption default.
- `aria-allowed-role` integration HTML/JSON — pass (`doc-example`,
implicit `figure`) and violation (`group`) cases; existing no-figcaption
pass retained as a regression anchor.

Closes #3443

---------

Co-authored-by: Steven Lambert <[email protected]>
Updates the roles allowed on a `<summary>` element based on whether it
is its parent `<details>` element's disclosure trigger, per the ARIA in
HTML update.

## What & why

Per [ARIA in HTML](https://www.w3.org/TR/html-aria/) (`#el-summary`,
[w3c/html-aria#435](w3c/html-aria#435)):

- A `summary` that **is** the "summary for its parent `details`" (the
first `summary` child of a `details`) allows **no explicit role** —
browsers expose it as the disclosure trigger.
- A `summary` that is **not** the details summary (standalone, or a 2nd+
`summary`) is exposed as generic and allows **any role**.

axe previously modeled `summary` with an unconditional `allowedRoles:
false`. This converts it to a `variant` using a `condition` matcher (the
same pattern introduced for `figure` in #3443).

## Scope — role side only

Issue #3911 covers both the allowed **roles** and the allowed **`aria-*`
attributes** for `summary`. This PR implements the **role** side. The
attribute side (the spec disallows `aria-expanded`/`aria-pressed` on a
details-summary) is intentionally deferred — it requires an
element-level disallowed-attribute mechanism axe does not have today,
and is tracked in **#5241**.

## Behavior change

A standalone / non-details `<summary>` now permits **any** role, where
previously only the implicit `button` role was allowed. This is a
spec-correct loosening; a `<details>`-summary's role handling is
unchanged in effect (still restricted to its implicit `button` role).

## Tests
- `get-element-spec` unit — variant resolution for the three cases
(details summary, non-first summary, standalone).
- `aria-allowed-role` check unit — incl. an open **Shadow DOM** case.
- `aria-allowed-role` virtual-rule — details/summary structures built
with `SerialVirtualNode`, incl. the no-parent default.
- `aria-allowed-role` integration HTML/JSON — first-summary fail,
2nd-summary pass, standalone pass, implicit-button pass.

Closes #3911

---------

Co-authored-by: Steven Lambert <[email protected]>
…5273)

Fixes #5204. When an element's attribute value contains a C0 control
character (observed: form feed `U+000C`), `generateSelector` emitted it
raw into an attribute selector. In CSS, form feed is a
string-terminating newline, so `img[alt=" \f¼"]` is **invalid**,
`Element.matches` throws inside `getNthChildString`, and the **entire
`axe.run()` fails** — one bad attribute value on a page kills the whole
audit.

## Fix

`escapeAttribute` (in `lib/core/utils/get-selector.js`) previously
escaped only `\`, `"`, and CR/LF newlines — missing form feed and every
other control character. It now escapes **all C0 control characters
(`U+0000–U+001F`) and DEL (`U+007F`)** as CSS numeric escapes (`\<hex>
`), which subsumes the existing newline handling (`U+000A` → `\a `,
`U+000C` → `\c `). This matches the issue's minimal proof that
`CSS.escape('\f')` produces a valid selector.

## Compatibility

No behavior change for existing cases: newline (`U+000A`) still escapes
to `\a `. CR and CRLF now escape to `\d `/`\d \a ` (previously both
collapsed to `\a `) — more correct round-tripping, and not covered by
any existing test. All existing `get-selector` escape tests still pass.

## Test

`test/core/utils/get-selector.js` — an attribute value containing form
feed, vertical tab, and `U+001F` now produces a valid selector that both
matches the expected escaped string and passes `matchesSelector` (which
threw on the pre-fix code).

Confirmed by @straker on the issue.

Closes #5204
Removes the `axe._enableElementInternals` feature flag, graduating
ElementInternals support to on-by-default. Closes #5277.

## Changes

- **`lib/core/base/virtual-node/virtual-node.js`** — the
`elementInternals` getter no longer gates on the flag, so
ElementInternals is always computed. This also un-gates the
`externalAPIs` `getElementInternals` path, which relied on this getter.
- **Tests** — removed the flag setup and flag-specific tests: the global
toggle in `testutils.js`, the `afterEach` hooks that reset it, and the
"feature flag on/off" and "requires the feature flag" tests. Existing
tests (`caches`/`sets`/`gets element internals`, the external-apis
"correctly sets…" test) continue to cover the behavior.
- **Docs** — removed the "behind a feature flag" instructions from
`doc/element-internals.md` and `doc/external-apis.md`.

## Notes

Per the ElementInternals epic, the commons ElementInternals surface is
unreleased, so removing the flag is not a breaking change — it's the
feature landing on by default.

Verified: no `_enableElementInternals` references remain; `virtual-node`
+ `native-text-alternative` unit tests pass; the `external-apis` full
integration test passes (3/3) with the flag gone.
Adds a regression test for #4335, where `axe.run` threw **`TypeError:
Cannot read properties of undefined (reading 'props')`** when a
`<section>`'s `aria-labelledby` referenced a `<slot>` in the same shadow
root. The slot is not tracked in axe's virtual tree, so accessible-name
computation dereferenced an undefined virtual node.

## Already fixed — this is a regression test

The underlying error is **already resolved on `develop`** by the move to
`getAccessibleRefs` for accessible-name idref lookups. Per review
guidance (Steve / Wilco), the goal is only to **guarantee the error
stays fixed — not to add `<slot>` support**. So this PR adds test
coverage only; there are no `lib/` changes.

## The test

`test/integration/full/aria-labelledby-slot/` — a full integration test
that builds Steve's exact repro (a shadow root with `<section
aria-labelledby="foo">` + `<slot id="foo">`), runs `axe.run`, and
asserts:

1. it does not throw,
2. no result carries the `Cannot read properties` error, and
3. the shadow DOM content is actually evaluated (guards against a silent
no-op).

### Why all rules instead of just `aria-allowed-role`

The original stack trace ran through `aria-allowed-role` →
`getElementUnallowedRoles`. On current `develop`, `aria-allowed-role` is
**inapplicable** to a role-less `<section>`, so a rule-scoped test there
would be a no-op. Per Steve's note that axe-core 4.11.1 produced errored
incomplete results on `axe.run` for this page, the test runs the full
rule set — which I confirmed exercises the section (5 rules) and would
have failed pre-fix.

Closes #4335
…low label and body from being named (#5259)

After looking over the HTML in ARIA spec, I realized that we could
better handle how we determine when an attribute is prohibited.
Basically if the element doesn't have an explicit role, then we use the
`htmlElm` spec to determine prohibited attrs and naming, otherwise we
use the `ariaRoles` spec to determine that. This should allow us to
eliminate the `elementsAllowedAriaLabel` option that was [introduced to
fix which elements allowed
naming](#2935) and then
modified when we [added Chromium
roles](#2948) to fix conflict
name resolution. However the option still has the `applet` element which
isn't in our html spec so I'm leaving it for now.

Elements which allow naming now include: `section`, `blockquote`,
`address`, `hgroup`, `ruby`.

This also adds enforcement for elements that are not allowed any aria-*
attribute (which has never been used in our code) by changing the
`noAriaAttrs` spec property to an empty `allowedAriaAttrs` so that they
now throw in the rule `aria-allowed-attr`.

Closes: #5185
Closes: #3410
#5157)

This is in the current [WAI-ARIA 1.3
draft](https://www.w3.org/TR/wai-aria-1.3/#aria-errormessage) and both
attributes were changed to `idrefs` types. Since the AOM property is an
idrefs type (returns an array) this allows us to be in sync with that
for the Element Internals work.

The `aria-errormessage` check [already accounts the attribute being an
idrefs value](#4973) and will
incomplete if the value has more than one id, so no changes should be
needed with this pr.
Tested in latest Firefox (153.0) and this looks like it doesn't crash
the browser anymore. The other non-crash issues still exist (logging the
warning, `null` for empty `ariaLabelledByElements `), but we should be
able to reenable the test now.

Closes: #5139
* Add Swedish locale translation 
 
Closes: #5189

---------

Co-authored-by: Wilco Fiers <[email protected]>
…om landmark match (#5085)

Closes #4722, #5064

Updated `landmark-unique-matches` to change the matching logic for
`section` / `form` elements as follows:
before
                                     
 |                         | No `aria-label` | Has `aria-label` |
| ----------------------- | :-------------: | :--------------: |
 | No explicit `role`      | ❌              | ✅               |
| Explicit landmark role | ❌ | ✅ |
 | Non-landmark role       | ❌              | ✅ ← bug        | 
after
 |                         | No `aria-label` | Has `aria-label` |
| ----------------------- | :-------------: | :--------------: |
 | No explicit `role`      | ❌              | ✅               |
| Explicit landmark role | ✅ | ✅ |
 | Non-landmark role       | ❌              | ❌               |

~~Unrelated to this issue, but I think `section` / `form` with an
explicit landmark role and no accessible name might also need to match,
opened a separate issue for it: #5064~~

---------

Co-authored-by: Wilco Fiers <[email protected]>
### Summary

npm now [scans published packages before they go
live](https://github.blog/changelog/2026-07-28-npm-publish-time-malware-scanning-and-dual-use-metadata/),
adding a delay of up to 15+ minutes between calling `publish` and the
package becoming available. Our `wait-for-npm-ready.sh` retry loop was
tuned for near-instant availability (10s × 30 = ~5 min), so it can now
time out before the package appears.

This raises the retry interval to **120s** and caps attempts at **12**
(~22 min worst case).

### Notes

- The two callers in `deploy.yml` (`validate-next-deploy`,
`validate-deploy`) rely on the 360-min default job timeout, so no
`timeout-minutes` changes were needed.

Closes #5266
…ly (#5285)

If the only prohibited attribute is aria-labelledby, it doesn't
reference hidden elements, mark the element as needs review. Ignore
aria-label as a prohibited attribute if this is the case, as the acc
name fallback would have skipped it anyway.


Closes: #5180, closes
#4118
#5224)

Add the `caseInsensitive` property to the aria attrs standard. This is
used to automatically lowercase the value for
`commons.aria.getAriaValue` instead of having to manually pass `{
lowercase: true }` every time you wanted to access one of the
attributes. This updates `aria-expanded`, `aria-hidden`,
`aria-haspopup`, `aria-selected`, `aria-invalid`, `aria-disabled`, and
`ara-live` to be case insensitive (which we have tested in prior prs).

Additionally, as a `chore` style change this also updates `getAriaValue`
to not return `null` anymore but instead `{ value: null, source: null }`
so that we don't have to conditionally access the `value` property of
the return.
…refs (#5287)

### Summary

Adds tests codifying how axe-core handles idref references that point
outside its virtual tree — the two scenarios in #5221:

1. **Closed shadow DOM** — a custom element self-labels via
`ElementInternals.ariaLabelledByElements` with a node inside its own
closed shadow root. Closed roots aren't flattened into the virtual tree,
so the reference is unreachable.
2. **Out-of-tree node** — `ariaLabelledByElements` points at a node
appended after `axe.setup()`, so it never enters the tree.

Both codify the current behavior: `getResolvedRefs` maps the unreachable
node to `null`, the accessible-name function drops it, and
`arialabelledbyText` returns `""` **without throwing**.

### Notes

- Tests-only; no runtime behavior change.
- The closed-shadow case is built with manual DOM (`attachShadow({ mode:
"closed" })`) since `queryShadowFixture` is open-mode only.

Closes #5221
@attest-team-ci
attest-team-ci requested a review from a team as a code owner August 5, 2026 16:06

@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

*) Missing the security review check somehow.

@WilcoFiers
WilcoFiers merged commit 1cc54b9 into master Aug 5, 2026
22 checks passed
@WilcoFiers
WilcoFiers deleted the release-2026-08-05 branch August 5, 2026 16:42
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.

10 participants