Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create rule: github/a11y-no-visually-hidden-interactive-element #446

Merged
merged 5 commits into from Jul 10, 2023

Conversation

kendallgassner
Copy link
Contributor

@kendallgassner kendallgassner commented Jul 5, 2023

What

relates to: https://github.com/github/accessibility/issues/3739

This was an interesting lint rule to write because we not only utilize the className='sr-only' to visually hide react content but we use the Primer component VisuallyHidden.

I wrote an eslint rule for both scenarios. This eslint rule determines if a JSX.Elements is visually hidden (i.e. has the sr-only className or of type VisuallyHidden). If it the element is visually hidden then it checks its self and children to see if it contains and interactive elements.

Coverage

What is an interactive element?

I hard coded a list of interactive elements to check against:

  • a
  • button
  • summary
  • select
  • option
  • textarea

I thought it was better to have a dis-allow list rather then an allow list (e.g. span, div etc.)

What is considered invalid?

  • nested interative elements:<VisuallyHidden><div><button>Submit</button></div></VisuallyHidden>
  • as props: <VisuallyHidden as='button'>Submit</VisuallyHidden>
  • multiple classNames: <button className='other sr-only'>Submit</button>

@kendallgassner kendallgassner requested a review from a team as a code owner July 5, 2023 22:04
lib/index.js Outdated
@@ -1,5 +1,6 @@
module.exports = {
rules: {
'a11y-no-sr-only-class-when-focusable': require('./rules/a11y-no-sr-only-class-when-focusable'),
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should we wait to include this until: https://github.com/github/accessibility/issues/3868

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it's fine! We could always override disable is temporarily in our projects.

Copy link
Contributor

@khiga8 khiga8 left a comment

Choose a reason for hiding this comment

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

Yay I'm excited to see this! I will review more in-depth tomorrow but leaving a comment per quick skim of the description!

but we use the Primer component VisuallyHidden

TIL about VisuallyHidden in Primer! 🤯

Since sr-only and VisuallyHidden is very GitHub/Primer-centric, and many consumers use this plugin outside of GitHub/Primer-consumers, could we allow this (the sr-only classname and the type) to be configured through the ESLint rule-level configs? I believe there are examples of this in the jsx-a11y library.

For example, if I am a consumer whose project uses the class visually-hidden instead of sr-only, or the type ScreenReaderOnly instead of VisuallyHidden, I'd still like to be able to benefit from this rule.

@kendallgassner
Copy link
Contributor Author

@khiga8 Love that thought! Great idea... I'll add this in and re-tag you for an in-depth review when its updated.

@kendallgassner
Copy link
Contributor Author

Interestingly, my passion week project is a use-case where we do want to visuallyHide an interactive element 🤔

@khiga8
Copy link
Contributor

khiga8 commented Jul 6, 2023

@kendallgassner Could you bring up this example in the channel so we can discuss if it's valid?

const {getElementType} = require('../utils/get-element-type')
const {generateObjSchema} = require('eslint-plugin-jsx-a11y/lib/util/schemas')

const defaultClassName = 'sr-only'
Copy link
Contributor Author

Choose a reason for hiding this comment

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

considering making the default visually-hidden for readability.

Copy link
Contributor

Choose a reason for hiding this comment

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

I prefer sr-only just because it's more widely used within different GitHub projects! As long as we document what the default is and how consumers can change it, I think sr-only would be okay.

@kendallgassner kendallgassner changed the title create rule: a11y-no-sr-only-class-when-focusable create rule: github/a11y-no-visually-hidden-interactive-element` Jul 7, 2023
@kendallgassner kendallgassner changed the title create rule: github/a11y-no-visually-hidden-interactive-element` create rule: github/a11y-no-visually-hidden-interactive-element Jul 7, 2023
{code: "<span className='sr-only'>Text</span>;"},
{code: "<button className='other'>Submit</button>"},
{code: "<input className='sr-only' />"},
{code: "<a className='other show-on-focus'>skip to main content</a>"},
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Check that show-on-focus class is valid! This way I don't have to remove the a tag from the list.

Copy link
Contributor

@khiga8 khiga8 left a comment

Choose a reason for hiding this comment

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

Let's add this rule to react.js so it's on by default :)

I have a few suggestions. This is coming along really nicely <3

const {getElementType} = require('../utils/get-element-type')
const {generateObjSchema} = require('eslint-plugin-jsx-a11y/lib/util/schemas')

const defaultClassName = 'sr-only'
Copy link
Contributor

Choose a reason for hiding this comment

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

I prefer sr-only just because it's more widely used within different GitHub projects! As long as we document what the default is and how consumers can change it, I think sr-only would be okay.


## Rule Details

This rule guards against visually hiding interactive elements. If a sighted keyboard user navigates to an interactive element that is visually hidden they might become confused and assume that keyboard focus has been lost.
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we note the default class/type, as well as which interactive elements we're checking against?

I like the note you added in the code about why we're excluding input. Could we add it here too?


const checkIfInteractiveElement = (context, node) => {
const elementType = getElementType(context, node.openingElement)
const asProp = getPropValue(getProp(node.openingElement.attributes, 'as'))
Copy link
Contributor

@khiga8 khiga8 Jul 7, 2023

Choose a reason for hiding this comment

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

I love this approach of just directly grabbing the tag from as, a lot more than this experimental approach I added some time ago! I've been wanting to revisit and remove this - Component mapping experimental!

Since as is Primer React specific, can we allow the as to be configured in the config as well? (e.g. maybe some design systems use tag or component).

I think this line can be moved into getElementType so this prop can be checked for all JSX rules, and we can get rid of the comopnent mapping stuff (lines 15-34) and the README!

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we can pair on this in our sync :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

htmlPropName - name for 'as' config

Copy link
Contributor

@theinterned theinterned left a comment

Choose a reason for hiding this comment

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

I will definitely defer to @khiga8 's review here, but no concerns form the web-systems standpoint

@kendallgassner
Copy link
Contributor Author

kendallgassner commented Jul 7, 2023

@khiga8 I added the documentation updates and the htmlPropName. Can I clean up Component mapping experimental! and add this to getElementType in a follow up pr? -- I think it would be nice to test those changes and look at the logic in a clean state.

const errorMessage =
'Avoid visually hidding interactive elements. Visually hiding interactive elements can be confusing to sighted keyboard users as it appears their focus has been lost when they navigate to the hidden element.'

ruleTester.run('a11y-no-visually-hidden-interactive-element', rule, {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we add a test to make sure the options work as expected? Here's an example! :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Amazing! I didn't realize that was a test option!

Copy link
Contributor

@khiga8 khiga8 left a comment

Choose a reason for hiding this comment

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

I have one test suggestion, but please feel free to merge after that!

This looks great 🚀! Good call on doing the other updates in a separate PR, I agree!

@kendallgassner kendallgassner merged commit 1e0d857 into main Jul 10, 2023
6 checks passed
@kendallgassner kendallgassner deleted the kendallg/sr-only branch July 10, 2023 18:06
ianlewis added a commit to slsa-framework/slsa-github-generator that referenced this pull request Aug 9, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`29.5.2` ->
`29.5.3`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.2/29.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.5.2/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.5.2/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.16.18` ->
`18.17.4`](https://renovatebot.com/diffs/npm/@types%2fnode/18.16.18/18.17.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.17.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.17.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.16.18/18.17.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.16.18/18.17.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
| [`5.60.0` ->
`5.62.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.60.0/5.62.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/5.60.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/5.60.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
| [`5.60.0` ->
`5.62.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.60.0/5.62.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/5.60.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/5.60.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.43.0` ->
`8.46.0`](https://renovatebot.com/diffs/npm/eslint/8.43.0/8.46.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.43.0/8.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.43.0/8.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[eslint-plugin-github](https://togithub.com/github/eslint-plugin-github)
| [`4.8.0` ->
`4.9.2`](https://renovatebot.com/diffs/npm/eslint-plugin-github/4.8.0/4.9.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-github/4.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-github/4.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-github/4.8.0/4.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-github/4.8.0/4.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest](https://jestjs.io/)
([source](https://togithub.com/facebook/jest)) | [`29.5.0` ->
`29.6.2`](https://renovatebot.com/diffs/npm/jest/29.5.0/29.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest/29.5.0/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest/29.5.0/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[sigstore](https://togithub.com/sigstore/sigstore-js/tree/main/packages/client#readme)
([source](https://togithub.com/sigstore/sigstore-js)) | [`1.6.0` ->
`1.8.0`](https://renovatebot.com/diffs/npm/sigstore/1.6.0/1.8.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/sigstore/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sigstore/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sigstore/1.6.0/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sigstore/1.6.0/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [ts-jest](https://kulshekhar.github.io/ts-jest)
([source](https://togithub.com/kulshekhar/ts-jest)) | [`29.1.0` ->
`29.1.1`](https://renovatebot.com/diffs/npm/ts-jest/29.1.0/29.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ts-jest/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ts-jest/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ts-jest/29.1.0/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ts-jest/29.1.0/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [typescript](https://www.typescriptlang.org/)
([source](https://togithub.com/Microsoft/TypeScript)) | [`5.1.3` ->
`5.1.6`](https://renovatebot.com/diffs/npm/typescript/5.1.3/5.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.1.3/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.1.3/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v5.62.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5620-2023-07-10)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.61.0...v5.62.0)

##### Bug Fixes

- **eslint-plugin:** \[comma-spacing] allow no space after trailing
comma in objects and arrays
([#&#8203;6938](https://togithub.com/typescript-eslint/typescript-eslint/issues/6938))
([24bdacc](https://togithub.com/typescript-eslint/typescript-eslint/commit/24bdacc7e5df40c92031a1bd7e9815d66a35b31d))
- **eslint-plugin:** \[prefer-includes] escape special characters
([#&#8203;7161](https://togithub.com/typescript-eslint/typescript-eslint/issues/7161))
([5a347a5](https://togithub.com/typescript-eslint/typescript-eslint/commit/5a347a5978bc5737412bd12d61eb6058163cf4a0)),
closes
[#&#8203;7145](https://togithub.com/typescript-eslint/typescript-eslint/issues/7145)
- **eslint-plugin:** replace auto-fix of class literal property style
rule with suggestion
([#&#8203;7054](https://togithub.com/typescript-eslint/typescript-eslint/issues/7054))
([a8c824a](https://togithub.com/typescript-eslint/typescript-eslint/commit/a8c824a1e84453f93cd2b464fc102bc878c1aff3))

##### Features

- **eslint-plugin:** \[prefer-nullish-coalescing] add `ignorePrimitives`
option
([#&#8203;6487](https://togithub.com/typescript-eslint/typescript-eslint/issues/6487))
([6edaa04](https://togithub.com/typescript-eslint/typescript-eslint/commit/6edaa04565576f0af7e60bc08602bd781c847804))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v5.61.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5610-2023-07-03)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.1...v5.61.0)

##### Features

- **eslint-plugin:** \[ban-types] ban types in extends and implements
([#&#8203;7129](https://togithub.com/typescript-eslint/typescript-eslint/issues/7129))
([997783f](https://togithub.com/typescript-eslint/typescript-eslint/commit/997783ff108ca18af709667ef3fdfa7134a8eefe))
- use graphemer instead of grapheme-splitter
([#&#8203;7069](https://togithub.com/typescript-eslint/typescript-eslint/issues/7069))
([faea3ff](https://togithub.com/typescript-eslint/typescript-eslint/commit/faea3ff8b4d750974c41262b44db314f20d0c99c))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

####
[5.60.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)
(2023-06-26)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v5.60.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5601-2023-06-26)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v5.62.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5620-2023-07-10)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.61.0...v5.62.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v5.61.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5610-2023-07-03)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.1...v5.61.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

####
[5.60.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)
(2023-06-26)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v5.60.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5601-2023-06-26)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.46.0`](https://togithub.com/eslint/eslint/releases/tag/v8.46.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.45.0...v8.46.0)

#### Features

-
[`8a93438`](https://togithub.com/eslint/eslint/commit/8a9343871f7dade19d910ca8e2a4177bfca28b64)
feat: `require-unicode-regexp` support `v` flag
([#&#8203;17402](https://togithub.com/eslint/eslint/issues/17402))
(SUZUKI Sosuke)
-
[`1a2f966`](https://togithub.com/eslint/eslint/commit/1a2f966fabe35103141d2f936180d2f1a72154db)
feat: `no-useless-escape` support `v` flag
([#&#8203;17420](https://togithub.com/eslint/eslint/issues/17420))
(Yosuke Ota)
-
[`ee68d1d`](https://togithub.com/eslint/eslint/commit/ee68d1d9630892d99ae0d8dabe2f9f8d3b1338be)
feat: `no-empty-character-class` support `v` flag
([#&#8203;17419](https://togithub.com/eslint/eslint/issues/17419))
(Milos Djermanovic)
-
[`853d32b`](https://togithub.com/eslint/eslint/commit/853d32baa8934c08b59a738470b72522e1505f6f)
feat: deprecate no-return-await
([#&#8203;17417](https://togithub.com/eslint/eslint/issues/17417))
(Carlos Lopez)
-
[`d4f02e4`](https://togithub.com/eslint/eslint/commit/d4f02e4bf1b9ae4e1fc8f2bc4e4851ae3c36a127)
feat: `no-control-regex` support `v` flag
([#&#8203;17405](https://togithub.com/eslint/eslint/issues/17405))
(Yosuke Ota)
-
[`2a35f3e`](https://togithub.com/eslint/eslint/commit/2a35f3e6ed27deafbebba48b6aec570d3abf9974)
feat: `prefer-named-capture-group` support `v` flag
([#&#8203;17409](https://togithub.com/eslint/eslint/issues/17409))
(Yosuke Ota)
-
[`8ca8b50`](https://togithub.com/eslint/eslint/commit/8ca8b50b0425b3bad34a9505bc3095168e2f59d8)
feat: Better error message for flat config plugins
([#&#8203;17399](https://togithub.com/eslint/eslint/issues/17399))
(Nicholas C. Zakas)
-
[`509f753`](https://togithub.com/eslint/eslint/commit/509f75395035822280245772e2a95732a0dde0e1)
feat: `no-misleading-character-class` support `v` flag
([#&#8203;17406](https://togithub.com/eslint/eslint/issues/17406))
(Yosuke Ota)
-
[`3caf514`](https://togithub.com/eslint/eslint/commit/3caf51487decdf93a4b17765a2af2a51c337e974)
feat: `no-regex-spaces` support `v` flag
([#&#8203;17407](https://togithub.com/eslint/eslint/issues/17407))
(Yosuke Ota)
-
[`b7fad2b`](https://togithub.com/eslint/eslint/commit/b7fad2b52f23667628cf209663795a721c88d0ba)
feat: `prefer-regex-literals` support `v` flag
([#&#8203;17410](https://togithub.com/eslint/eslint/issues/17410))
(Yosuke Ota)
-
[`a6a3ad4`](https://togithub.com/eslint/eslint/commit/a6a3ad4ae438ea7fc3a1d97cd2555f6534b565f1)
feat: `no-useless-backreference` support `v` flag
([#&#8203;17408](https://togithub.com/eslint/eslint/issues/17408))
(Yosuke Ota)
-
[`94954a7`](https://togithub.com/eslint/eslint/commit/94954a715448d5794f2892bf212fe986b43228ed)
feat: `no-invalid-regexp` support `v` flag
([#&#8203;17404](https://togithub.com/eslint/eslint/issues/17404))
(Yosuke Ota)
-
[`1af6eac`](https://togithub.com/eslint/eslint/commit/1af6eac5727080c809e37c07dc729b44ef24483c)
feat: adds option for allowing empty object patterns as parameter
([#&#8203;17365](https://togithub.com/eslint/eslint/issues/17365))
(Tanuj Kanti)
-
[`cf03104`](https://togithub.com/eslint/eslint/commit/cf03104b278fea59ef46e09f667110f5eaaf95e3)
feat: Improve config error messages
([#&#8203;17385](https://togithub.com/eslint/eslint/issues/17385))
(Nicholas C. Zakas)

#### Bug Fixes

-
[`9803c7c`](https://togithub.com/eslint/eslint/commit/9803c7c04078f0672d8a480fd39cf3bbef8017e6)
fix: FlatESLint#getRulesMetaForResults shouldn't throw on unknown rules
([#&#8203;17393](https://togithub.com/eslint/eslint/issues/17393))
(Milos Djermanovic)
-
[`42faa17`](https://togithub.com/eslint/eslint/commit/42faa17b1c93f801b14bea2840d1d528e25c7211)
fix: Update no-loop-func to not overlap with no-undef
([#&#8203;17358](https://togithub.com/eslint/eslint/issues/17358)) (Matt
Wilkinson)

#### Documentation

-
[`4d474e3`](https://togithub.com/eslint/eslint/commit/4d474e351ba6ce0242f18e55c27cb3ae17b84f63)
docs: update with TypeScript info
([#&#8203;17423](https://togithub.com/eslint/eslint/issues/17423))
(James)
-
[`091f44e`](https://togithub.com/eslint/eslint/commit/091f44e4c72007edb2ac6d4db4eafa5501e41e94)
docs: File extension named processor deprecation
([#&#8203;17362](https://togithub.com/eslint/eslint/issues/17362)) (Matt
Wilkinson)
-
[`9254a6c`](https://togithub.com/eslint/eslint/commit/9254a6cea845dfaf2f3f52f718cb9b071853aa09)
docs: Update README (GitHub Actions Bot)
-
[`6d6dc51`](https://togithub.com/eslint/eslint/commit/6d6dc5141f535728029eef8735854a421bc08eba)
docs: fix overlapping of `open in playground` button
([#&#8203;17403](https://togithub.com/eslint/eslint/issues/17403))
(Tanuj Kanti)
-
[`7fc3a2c`](https://togithub.com/eslint/eslint/commit/7fc3a2ce68979a2c2a6fc779e647b3004ab6f4ac)
docs: Add private class features info to no-underscore-dangle
([#&#8203;17386](https://togithub.com/eslint/eslint/issues/17386)) (Matt
Wilkinson)
-
[`da73e58`](https://togithub.com/eslint/eslint/commit/da73e583e1703a420551d8fa8f7c70b56dc88dd5)
docs: Migrating `eslint-env` configuration comments
([#&#8203;17390](https://togithub.com/eslint/eslint/issues/17390))
(Francesco Trotta)
-
[`80dffed`](https://togithub.com/eslint/eslint/commit/80dffed4c81dcc71fb72bc187aff2f87d141a6ed)
docs: fix Ignoring Files section in config migration guide
([#&#8203;17392](https://togithub.com/eslint/eslint/issues/17392))
(Milos Djermanovic)
-
[`8a9abb7`](https://togithub.com/eslint/eslint/commit/8a9abb7cf424bd49d45c09345dc45ae95f29cc9d)
docs: Update README (GitHub Actions Bot)
-
[`7e9be4b`](https://togithub.com/eslint/eslint/commit/7e9be4bd7331d0e8e8e0af0b075a2f6d28d1bea3)
docs: Update README (GitHub Actions Bot)
-
[`0b0bbe0`](https://togithub.com/eslint/eslint/commit/0b0bbe07d4fb0870f3916e975b8ec6978f838077)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`d1eb7e4`](https://togithub.com/eslint/eslint/commit/d1eb7e46e954c64af8d7d13d087b3a18f43e6d72)
chore: Update ecosystem dependencies
([#&#8203;17427](https://togithub.com/eslint/eslint/issues/17427))
(Nicholas C. Zakas)
-
[`fab9e97`](https://togithub.com/eslint/eslint/commit/fab9e97ef9dff40e98a5b3b97bdd3b0ff5439d46)
chore: package.json update for eslint-config-eslint release (ESLint
Jenkins)
-
[`6246711`](https://togithub.com/eslint/eslint/commit/6246711e0650d03afe044c36acde048ed2d39ee3)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`0aa0bc3`](https://togithub.com/eslint/eslint/commit/0aa0bc365a5425440c8e86c96104d0053a51b602)
chore: Add PRs to triage project
([#&#8203;17421](https://togithub.com/eslint/eslint/issues/17421))
(Nicholas C. Zakas)

### [`v8.45.0`](https://togithub.com/eslint/eslint/releases/tag/v8.45.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.44.0...v8.45.0)

##### Features

-
[`cdd063c`](https://togithub.com/eslint/eslint/commit/cdd063c388bbfe1781d7a864a832f03a2c1cc277)
feat: Expose LegacyESLint in unsupported API
([#&#8203;17341](https://togithub.com/eslint/eslint/issues/17341))
(Nicholas C. Zakas)
-
[`d34abe5`](https://togithub.com/eslint/eslint/commit/d34abe59eb23932dcbc79757d7932d08ee8b20e5)
feat: fix indent rule for else-if
([#&#8203;17318](https://togithub.com/eslint/eslint/issues/17318))
(Milos Djermanovic)

##### Bug Fixes

-
[`b79b6fb`](https://togithub.com/eslint/eslint/commit/b79b6fb64473969b426d086b484d2e29594a5e9a)
fix: Fix suggestion message in `no-useless-escape`
([#&#8203;17339](https://togithub.com/eslint/eslint/issues/17339))
(Francesco Trotta)
-
[`c667055`](https://togithub.com/eslint/eslint/commit/c667055fb9da8ebac3a99f6e5a8b5565cc86af8e)
fix: provide unique `fix` and `fix.range` objects in lint messages
([#&#8203;17332](https://togithub.com/eslint/eslint/issues/17332))
(Milos Djermanovic)

##### Documentation

-
[`89f3225`](https://togithub.com/eslint/eslint/commit/89f3225108c66425e4132f76db6c1ab13aac98d7)
docs: add playground links to correct and incorrect code blocks
([#&#8203;17306](https://togithub.com/eslint/eslint/issues/17306)) (Josh
Goldberg ✨)
-
[`f8892b5`](https://togithub.com/eslint/eslint/commit/f8892b52920b8967f9e7bec23c75b74e03977d6b)
docs: Expand rule option schema docs
([#&#8203;17198](https://togithub.com/eslint/eslint/issues/17198)) (Matt
Wilkinson)
-
[`8bcbf11`](https://togithub.com/eslint/eslint/commit/8bcbf11b6050418262ffa8e0ca37f365ae92e7ce)
docs: Config Migration Guide
([#&#8203;17230](https://togithub.com/eslint/eslint/issues/17230)) (Ben
Perlmutter)
-
[`bb30908`](https://togithub.com/eslint/eslint/commit/bb3090897166dbfd2931a43a70e2a5c1f3fa0a07)
docs: Update README (GitHub Actions Bot)
-
[`84d243b`](https://togithub.com/eslint/eslint/commit/84d243b245b01b667f0752b592e8bda02a9aa2b1)
docs: Update README (GitHub Actions Bot)
-
[`b762632`](https://togithub.com/eslint/eslint/commit/b762632298f20c4f81e7d01ab850c3f5e3874637)
docs: Update README (GitHub Actions Bot)
-
[`138c096`](https://togithub.com/eslint/eslint/commit/138c096bc9468b553dbafc0e573c6522a17a7922)
docs: add more prefer-destructuring examples with array destructuring
([#&#8203;17330](https://togithub.com/eslint/eslint/issues/17330))
(Milos Djermanovic)
-
[`1fc50a8`](https://togithub.com/eslint/eslint/commit/1fc50a89753346f4f4c786ffd20ac4cf185bb036)
docs: `max-len` rule `code` and `tabWidth` as positional arguments
([#&#8203;17331](https://togithub.com/eslint/eslint/issues/17331))
(Jesús Leganés-Combarro)

##### Chores

-
[`68f63d7`](https://togithub.com/eslint/eslint/commit/68f63d76ce785fab4f42b76f1599026eea379bf7)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`5ca9b4d`](https://togithub.com/eslint/eslint/commit/5ca9b4d29f747e9cf5c9055e85c93b3b605d57fc)
chore: update eslint-config-eslint exports
([#&#8203;17336](https://togithub.com/eslint/eslint/issues/17336))
(Milos Djermanovic)
-
[`7bf2e86`](https://togithub.com/eslint/eslint/commit/7bf2e86022c9e95db4ca1472fddfa2ea4edd1870)
chore: remove unused dependencies
([#&#8203;17352](https://togithub.com/eslint/eslint/issues/17352))
(Percy Ma)
-
[`c6f8cd0`](https://togithub.com/eslint/eslint/commit/c6f8cd0d62e4a3c314c6860ff367490bbd05325a)
chore: Remove `defaultIgnores` from FlatESLint private members
([#&#8203;17349](https://togithub.com/eslint/eslint/issues/17349))
(Francesco Trotta)
-
[`0052374`](https://togithub.com/eslint/eslint/commit/0052374035672efe9129343fc00ee51a4c288ff3)
chore: move jsdoc settings to eslint-config-eslint
([#&#8203;17338](https://togithub.com/eslint/eslint/issues/17338)) (唯然)

### [`v8.44.0`](https://togithub.com/eslint/eslint/releases/tag/v8.44.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.43.0...v8.44.0)

#### Features

-
[`1766771`](https://togithub.com/eslint/eslint/commit/176677180a4a1209fc192771521c9192e1f67578)
feat: add `es2023` and `es2024` environments
([#&#8203;17328](https://togithub.com/eslint/eslint/issues/17328))
(Milos Djermanovic)
-
[`4c50400`](https://togithub.com/eslint/eslint/commit/4c5040022639ae804c15b366afc6e64982bd8ae3)
feat: add `ecmaVersion: 2024`, regexp `v` flag parsing
([#&#8203;17324](https://togithub.com/eslint/eslint/issues/17324))
(Milos Djermanovic)
-
[`4d411e4`](https://togithub.com/eslint/eslint/commit/4d411e4c7063274d6d346f1b7ee46f7575d0bbd2)
feat: add ternaryOperandBinaryExpressions option to no-extra-parens rule
([#&#8203;17270](https://togithub.com/eslint/eslint/issues/17270))
(Percy Ma)
-
[`c8b1f4d`](https://togithub.com/eslint/eslint/commit/c8b1f4d61a256727755d561bf53f889b6cd712e0)
feat: Move `parserServices` to `SourceCode`
([#&#8203;17311](https://togithub.com/eslint/eslint/issues/17311))
(Milos Djermanovic)
-
[`ef6e24e`](https://togithub.com/eslint/eslint/commit/ef6e24e42670f321d996948623846d9caaedac99)
feat: treat unknown nodes as having the lowest precedence
([#&#8203;17302](https://togithub.com/eslint/eslint/issues/17302)) (Brad
Zacher)
-
[`1866e1d`](https://togithub.com/eslint/eslint/commit/1866e1df6175e4ba0ae4a0d88dc3c956bb310035)
feat: allow flat config files to export a Promise
([#&#8203;17301](https://togithub.com/eslint/eslint/issues/17301))
(Milos Djermanovic)

#### Bug Fixes

-
[`a36bcb6`](https://togithub.com/eslint/eslint/commit/a36bcb67f26be42c794797d0cc9948b9cfd4ff71)
fix: no-unused-vars false positive with logical assignment operators
([#&#8203;17320](https://togithub.com/eslint/eslint/issues/17320))
(Gweesin Chan)
-
[`7620b89`](https://togithub.com/eslint/eslint/commit/7620b891e81c234f30f9dbcceb64a05fd0dde65e)
fix: Remove `no-unused-labels` autofix before potential directives
([#&#8203;17314](https://togithub.com/eslint/eslint/issues/17314))
(Francesco Trotta)
-
[`391ed38`](https://togithub.com/eslint/eslint/commit/391ed38b09bd1a3abe85db65b8fcda980ab3d6f4)
fix: Remove `no-extra-semi` autofix before potential directives
([#&#8203;17297](https://togithub.com/eslint/eslint/issues/17297))
(Francesco Trotta)

#### Documentation

-
[`526e911`](https://togithub.com/eslint/eslint/commit/526e91106e6fe101578e9478a9d7f4844d4f72ac)
docs: resubmit pr 17115 doc changes
([#&#8203;17291](https://togithub.com/eslint/eslint/issues/17291)) (唯然)
-
[`e1314bf`](https://togithub.com/eslint/eslint/commit/e1314bf85a52bb0d05b1c9ca3b4c1732bae22172)
docs: Integration section and tutorial
([#&#8203;17132](https://togithub.com/eslint/eslint/issues/17132)) (Ben
Perlmutter)
-
[`19a8c5d`](https://togithub.com/eslint/eslint/commit/19a8c5d84596a9f7f2aa428c1696ba86daf854e6)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`49e46ed`](https://togithub.com/eslint/eslint/commit/49e46edf3c8dc71d691a97fc33b63ed80ae0db0c)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).44.0
([#&#8203;17329](https://togithub.com/eslint/eslint/issues/17329))
(Milos Djermanovic)
-
[`a1cb642`](https://togithub.com/eslint/eslint/commit/a1cb6421f9d185901cd99e5f696e912226ef6632)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`840a264`](https://togithub.com/eslint/eslint/commit/840a26462bbf6c27c52c01b85ee2018062157951)
test: More test cases for no-case-declarations
([#&#8203;17315](https://togithub.com/eslint/eslint/issues/17315))
(Elian Cordoba)
-
[`e6e74f9`](https://togithub.com/eslint/eslint/commit/e6e74f9eef0448129dd4775628aba554a2d8c8c9)
chore: package.json update for eslint-config-eslint release (ESLint
Jenkins)
-
[`eb3d794`](https://togithub.com/eslint/eslint/commit/eb3d7946e1e9f70254008744dba2397aaa730114)
chore: upgrade semver@7.5.3
([#&#8203;17323](https://togithub.com/eslint/eslint/issues/17323))
(Ziyad El Abid)
-
[`cf88439`](https://togithub.com/eslint/eslint/commit/cf884390ad8071d88eae05df9321100f1770363d)
chore: upgrade optionator@0.9.3
([#&#8203;17319](https://togithub.com/eslint/eslint/issues/17319))
(Milos Djermanovic)
-
[`9718a97`](https://togithub.com/eslint/eslint/commit/9718a9781d69d2c40b68c631aed97700b32c0082)
refactor: remove unnecessary code in `flat-eslint.js`
([#&#8203;17308](https://togithub.com/eslint/eslint/issues/17308))
(Milos Djermanovic)
-
[`f82e56e`](https://togithub.com/eslint/eslint/commit/f82e56e9acfb9562ece76441472d5657d7d5e296)
perf: various performance improvements
([#&#8203;17135](https://togithub.com/eslint/eslint/issues/17135))
(moonlightaria)
-
[`da81e66`](https://togithub.com/eslint/eslint/commit/da81e66e22b4f3d3fe292cf70c388753304deaad)
chore: update eslint-plugin-jsdoc to 46.2.5
([#&#8203;17245](https://togithub.com/eslint/eslint/issues/17245)) (唯然)
-
[`b991640`](https://togithub.com/eslint/eslint/commit/b991640176d5dce4750f7cc71c56cd6f284c882f)
chore: switch eslint-config-eslint to the flat format
([#&#8203;17247](https://togithub.com/eslint/eslint/issues/17247)) (唯然)

</details>

<details>
<summary>github/eslint-plugin-github (eslint-plugin-github)</summary>

###
[`v4.9.2`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.9.2)

[Compare
Source](https://togithub.com/github/eslint-plugin-github/compare/v4.9.1...v4.9.2)

#### What's Changed

- Use `getLiteralPropValue` for sr-only class by
[@&#8203;khiga8](https://togithub.com/khiga8) in
[github/eslint-plugin-github#466

**Full Changelog**:
github/eslint-plugin-github@v4.9.1...v4.9.2

###
[`v4.9.1`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.9.1)

[Compare
Source](https://togithub.com/github/eslint-plugin-github/compare/v4.9.0...v4.9.1)

#### Bug fixes

This release includes bug fixes for a few accessibility rules including:
`a11y-aria-role-supports-props`, `a11y-no-title-attribute`, and
`jsx-a11y/no-interactive-element-to-noninteractive-role`.

#### What's Changed

- Ignore calls to a method named innerText by
[@&#8203;camchenry](https://togithub.com/camchenry) in
[github/eslint-plugin-github#455
- bump `prettier` and `eslint-plugin-prettier` to latest versions by
[@&#8203;shiftkey](https://togithub.com/shiftkey) in
[github/eslint-plugin-github#457
- chore(deps): bump the all-dependencies group with 5 updates by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[github/eslint-plugin-github#458
- Set config override for false positive rule by
[@&#8203;khiga8](https://togithub.com/khiga8) in
[github/eslint-plugin-github#460
- Re-introduce accidentally removed testing commands by
[@&#8203;khiga8](https://togithub.com/khiga8) in
[github/eslint-plugin-github#459
- Fix bugs with `getRole` and `getElementType` by
[@&#8203;khiga8](https://togithub.com/khiga8) in
[github/eslint-plugin-github#461
- \[Fix] Only look at semantic elements for `a11y-no-title-attribute` by
[@&#8203;kendallgassner](https://togithub.com/kendallgassner) in
[github/eslint-plugin-github#464
- Check for presence of attribute in `getRole` rather than the value by
[@&#8203;khiga8](https://togithub.com/khiga8) in
[github/eslint-plugin-github#463

#### New Contributors

- [@&#8203;camchenry](https://togithub.com/camchenry) made their first
contribution in
[github/eslint-plugin-github#455
- [@&#8203;shiftkey](https://togithub.com/shiftkey) made their first
contribution in
[github/eslint-plugin-github#457

**Full Changelog**:
github/eslint-plugin-github@v4.9.0...v4.9.1

###
[`v4.9.0`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.9.0)

[Compare
Source](https://togithub.com/github/eslint-plugin-github/compare/v4.8.0...v4.9.0)

#### What's Changed

- create rule: github/a11y-no-visually-hidden-interactive-element by
[@&#8203;kendallgassner](https://togithub.com/kendallgassner) in
[github/eslint-plugin-github#446
- Add polymorphic component check in `getElementType` by
[@&#8203;kendallgassner](https://togithub.com/kendallgassner) in
[github/eslint-plugin-github#449
- Adds `svg-has-accessible-name` rule by
[@&#8203;lindseywild](https://togithub.com/lindseywild) in
[github/eslint-plugin-github#450
- chore(deps): bump semver from 5.7.1 to 5.7.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[github/eslint-plugin-github#451
- Create rule: a11y-no-title-attribute by
[@&#8203;kendallgassner](https://togithub.com/kendallgassner) in
[github/eslint-plugin-github#453
- Bump aria-query and update to fix tests by
[@&#8203;khiga8](https://togithub.com/khiga8) in
[github/eslint-plugin-github#448
- Rename `role-supports-aria-props` to `a11y-` by
[@&#8203;khiga8](https://togithub.com/khiga8) in
[github/eslint-plugin-github#454

#### New Contributors

- [@&#8203;kendallgassner](https://togithub.com/kendallgassner) made
their first contribution in
[github/eslint-plugin-github#446
- [@&#8203;lindseywild](https://togithub.com/lindseywild) made their
first contribution in
[github/eslint-plugin-github#450

**Full Changelog**:
github/eslint-plugin-github@v4.8.0...v4.9.0

</details>

<details>
<summary>facebook/jest (jest)</summary>

###
[`v29.6.2`](https://togithub.com/facebook/jest/blob/HEAD/CHANGELOG.md#2962)

[Compare
Source](https://togithub.com/facebook/jest/compare/v29.6.1...v29.6.2)

##### Fixes

- `[jest-circus]` Fix snapshot matchers in concurrent tests when nr of
tests exceeds `maxConcurrency`
([#&#8203;14335](https://togithub.com/jestjs/jest/pull/14335))
- `[@jest/core]` When running global setup and teardown, do not try to
change the `message` property of the thrown error object when the
`message` property is unwritable
([#&#8203;14113](https://togithub.com/jestjs/jest/pull/14113))
- `[jest-snapshot]` Move `@types/prettier` from `dependencies` to
`devDependencies`
([#&#8203;14328](https://togithub.com/jestjs/jest/pull/14328))
- `[jest-snapshot]` Throw an explicit error if Prettier v3 is used
([#&#8203;14367](https://togithub.com/jestjs/jest/pull/14367))
- `[jest-reporters]` Add "skipped" and "todo" symbols to Github Actions
Reporter ([#&#8203;14309](https://togithub.com/jestjs/jest/pull/14309))

##### Chore & Maintenance

- `[@jest/core]` Use `pluralize` from `jest-util` rather than own
internal ([#&#8203;14322](https://togithub.com/jestjs/jest/pull/14322))

###
[`v29.6.1`](https://togithub.com/facebook/jest/blob/HEAD/CHANGELOG.md#2961)

[Compare
Source](https://togithub.com/facebook/jest/compare/v29.6.0...v29.6.1)

##### Fixes

- `[jest-circus]` Revert
[#&#8203;14110](https://togithub.com/jestjs/jest/pull/14110) as it was a
breaking change
([#&#8203;14304](https://togithub.com/jestjs/jest/pull/14304))

###
[`v29.6.0`](https://togithub.com/facebook/jest/blob/HEAD/CHANGELOG.md#2960)

[Compare
Source](https://togithub.com/facebook/jest/compare/v29.5.0...v29.6.0)

##### Features

- `[jest-circus, jest-snapshot]` Add support for snapshot matchers in
concurrent tests
([#&#8203;14139](https://togithub.com/jestjs/jest/pull/14139))
- `[jest-cli]` Include type definitions to generated config files
([#&#8203;14078](https://togithub.com/facebook/jest/pull/14078))
- `[jest-snapshot]` Support arrays as property matchers
([#&#8203;14025](https://togithub.com/facebook/jest/pull/14025))
- `[jest-core, jest-circus, jest-reporter, jest-runner]` Added support
for reporting about start individual test cases using jest-circus
([#&#8203;14174](https://togithub.com/jestjs/jest/pull/14174))

##### Fixes

- `[jest-circus]` Prevent false test failures caused by promise
rejections handled asynchronously
([#&#8203;14110](https://togithub.com/jestjs/jest/pull/14110))
- `[jest-config]` Handle frozen config object
([#&#8203;14054](https://togithub.com/facebook/jest/pull/14054))
- `[jest-config]` Allow `coverageDirectory` and `collectCoverageFrom` in
project config
([#&#8203;14180](https://togithub.com/jestjs/jest/pull/14180))
- `[jest-core]` Always use workers in watch mode to avoid crashes
([#&#8203;14059](https://togithub.com/facebook/jest/pull/14059)).
- `[jest-environment-jsdom, jest-environment-node]` Fix assignment of
`customExportConditions` via `testEnvironmentOptions` when custom env
subclass defines a default value
([#&#8203;13989](https://togithub.com/facebook/jest/pull/13989))
- `[jest-matcher-utils]` Fix copying value of inherited getters
([#&#8203;14007](https://togithub.com/facebook/jest/pull/14007))
- `[jest-mock]` Tweak typings to allow `jest.replaceProperty()` replace
methods ([#&#8203;14008](https://togithub.com/facebook/jest/pull/14008))
- `[jest-mock]` Improve user input validation and error messages of
`spyOn` and `replaceProperty` methods
([#&#8203;14087](https://togithub.com/facebook/jest/pull/14087))
- `[jest-runtime]` Bind `jest.isolateModulesAsync` to `this`
([#&#8203;14083](https://togithub.com/facebook/jest/pull/14083))
- `[jest-runtime]` Forward `wrapperLength` to the `Script` constructor
as `columnOffset` for accurate debugging
([#&#8203;14148](https://togithub.com/facebook/jest/pull/14148))
- `[jest-runtime]` Guard `_isMockFunction` access with `in`
([#&#8203;14188](https://togithub.com/facebook/jest/pull/14188))
- `[jest-snapshot]` Fix a potential bug when not using prettier and
improve performance
([#&#8203;14036](https://togithub.com/facebook/jest/pull/14036))
- `[@jest/transform]` Do not instrument `.json` modules
([#&#8203;14048](https://togithub.com/facebook/jest/pull/14048))
- `[jest-worker]` Restart a shut down worker before sending it a task
([#&#8203;14015](https://togithub.com/facebook/jest/pull/14015))

##### Chore & Maintenance

- `[*]` Update `semver` dependency to get vulnerability fix
([#&#8203;14262](https://togithub.com/jestjs/jest/pull/14262))
- `[docs]` Updated documentation for the `--runTestsByPath` CLI command
([#&#8203;14004](https://togithub.com/facebook/jest/pull/14004))
- `[docs]` Updated documentation regarding the synchronous fallback when
asynchronous code transforms are unavailable
([#&#8203;14056](https://togithub.com/facebook/jest/pull/14056))
- `[docs]` Update jest statistics of use and downloads in website Index.

</details>

<details>
<summary>sigstore/sigstore-js (sigstore)</summary>

###
[`v1.8.0`](https://togithub.com/sigstore/sigstore-js/releases/tag/sigstore%401.8.0)

[Compare
Source](https://togithub.com/sigstore/sigstore-js/compare/sigstore@1.7.0...sigstore@1.8.0)

##### Minor Changes

- [`f1b8bad`](https://togithub.com/sigstore/sigstore-js/commit/f1b8bad):
Support for verifying v0.2 Sigstore bundles that contain inclusion
proofs from Rekor
- [`d9b1540`](https://togithub.com/sigstore/sigstore-js/commit/d9b1540):
Integrate
[@&#8203;sigstore/bundle](https://togithub.com/sigstore/bundle) package

##### Patch Changes

- [`e0c16ec`](https://togithub.com/sigstore/sigstore-js/commit/e0c16ec):
Bump
[@&#8203;sigstore/protobuf-specs](https://togithub.com/sigstore/protobuf-specs)
from 0.1.0 to 0.2.0
- [`6abe9ec`](https://togithub.com/sigstore/sigstore-js/commit/6abe9ec):
Fix bug when setting `tlogThreshold`/`ctLogThreshold` verification
options to 0
- Updated dependencies
\[[`e0c16ec`](https://togithub.com/sigstore/sigstore-js/commit/e0c16ec)]
- Updated dependencies
\[[`f1b8bad`](https://togithub.com/sigstore/sigstore-js/commit/f1b8bad)]
- Updated dependencies
\[[`a388e25`](https://togithub.com/sigstore/sigstore-js/commit/a388e25)]
- Updated dependencies
\[[`e0c16ec`](https://togithub.com/sigstore/sigstore-js/commit/e0c16ec)]
- Updated dependencies
\[[`2a5f500`](https://togithub.com/sigstore/sigstore-js/commit/2a5f500)]
- Updated dependencies
\[[`2a869ba`](https://togithub.com/sigstore/sigstore-js/commit/2a869ba)]
-
[@&#8203;sigstore/bundle](https://togithub.com/sigstore/bundle)[@&#8203;1](https://togithub.com/1).0.0
-
[@&#8203;sigstore/tuf](https://togithub.com/sigstore/tuf)[@&#8203;1](https://togithub.com/1).0.3

###
[`v1.7.0`](https://togithub.com/sigstore/sigstore-js/releases/tag/sigstore%401.7.0)

[Compare
Source](https://togithub.com/sigstore/sigstore-js/compare/sigstore@1.6.0...sigstore@1.7.0)

##### Minor Changes

- [`f374dd3`](https://togithub.com/sigstore/sigstore-js/commit/f374dd3):
Include transparency log inclusion proof in Sigstore bundle
- [`fbfb315`](https://togithub.com/sigstore/sigstore-js/commit/fbfb315):
Exports new `createVerifier` function

##### Patch Changes

- [`bd1e1e1`](https://togithub.com/sigstore/sigstore-js/commit/bd1e1e1):
Internal refactoring of Typescript types
- Updated dependencies
\[[`b97be71`](https://togithub.com/sigstore/sigstore-js/commit/b97be71)]
-
[@&#8203;sigstore/tuf](https://togithub.com/sigstore/tuf)[@&#8203;1](https://togithub.com/1).0.1

</details>

<details>
<summary>kulshekhar/ts-jest (ts-jest)</summary>

###
[`v29.1.1`](https://togithub.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2911-2023-06-23)

[Compare
Source](https://togithub.com/kulshekhar/ts-jest/compare/v29.1.0...v29.1.1)

##### Security Fixes

-   bump `semver` to `7.5.3`

</details>

<details>
<summary>Microsoft/TypeScript (typescript)</summary>

###
[`v5.1.6`](https://togithub.com/microsoft/TypeScript/releases/tag/v5.1.6):
TypeScript 5.1.6

[Compare
Source](https://togithub.com/Microsoft/TypeScript/compare/v5.1.5...v5.1.6)

For release notes, check out the [release
announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/).

For the complete list of fixed issues, check out the

- [fixed issues query for Typescript v5.1.0
(Beta)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+).
- [fixed issues query for Typescript v5.1.1
(RC)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+).
- [fixed issues query for Typescript v5.1.2
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.2%22+is%3Aclosed+).
- [fixed issues query for Typescript v5.1.3
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+).
- (5.1.4 [intentionally
skipped](https://togithub.com/microsoft/TypeScript/issues/53031#issuecomment-1610038922))
- [fixed issues query for Typescript v5.1.5
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.5%22+is%3Aclosed+).
- [fixed issues query for Typescript v5.1.6
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.6%22+is%3Aclosed+).

Downloads are available on
[npm](https://www.npmjs.com/package/typescript)

###
[`v5.1.5`](https://togithub.com/microsoft/TypeScript/releases/tag/v5.1.5):
TypeScript 5.1.5

[Compare
Source](https://togithub.com/Microsoft/TypeScript/compare/v5.1.3...v5.1.5)

For release notes, check out the [release
announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/).

For the complete list of fixed issues, check out the

- [fixed issues query for Typescript v5.1.0
(Beta)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+).
- [fixed issues query for Typescript v5.1.1
(RC)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+).
- [fixed issues query for Typescript v5.1.2
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.2%22+is%3Aclosed+).
- [fixed issues query for Typescript v5.1.3
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+).
- (5.1.4 [intentionally
skipped](https://togithub.com/microsoft/TypeScript/issues/53031#issuecomment-1610038922))
- [fixed issues query for Typescript v5.1.5
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.5%22+is%3Aclosed+).

Downloads are available on:

-   [npm](https://www.npmjs.com/package/typescript)
- [NuGet
package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slsa-framework/slsa-github-generator).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Signed-off-by: Mend Renovate <bot@renovateapp.com>
Signed-off-by: Ian Lewis <ianlewis@google.com>
Co-authored-by: Ian Lewis <ianlewis@google.com>
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.

None yet

3 participants