- Notifications
You must be signed in to change notification settings - Fork59
New rule to flag invalid aria-label format#418
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
README.md Outdated
| [require-passive-events](docs/rules/require-passive-events.md) | enforce marking high frequency event handlers as passive | 🔍 | | | | ||
| [role-supports-aria-props](docs/rules/role-supports-aria-props.md) | Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`. | ⚛️ | | | | ||
| [unescaped-html-literal](docs/rules/unescaped-html-literal.md) | disallow unescaped HTML literals | 🔍 | | | | ||
| Name | Description | 💼 | 🔧 | ❌ | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
this auto-generator is so cool!
16f28f6
to381f2bc
Compareaccessibility-bot commentedMar 23, 2023
👋 Hello and thanks for pinging us! An accessibility first responder will review this soon.
|
Ithink we can assume that there's no valid If |
}) | ||
const errorMessage = | ||
'[aria-label] text should be formatted the same as you would visual text. Use sentence case and make sure you are not using hyphens.' |
kendallgassnerMar 23, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
What about words with hyphens? Example:six-pack
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Does this answer your concern:#418 (comment)?
I think it's highly unlike we'll run into a valid, hard-codedaria-label
that downcased with only letters and optionally a hyphen. If we do run into one, we can consider adding a way to configure an exception list that can be set at the config level. Do you think this rule should ship with that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Theoretically, this rule would flagsix-pack
(since it does not start with an uppercase letter), but it wouldn't flagSix-pack
😂.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Hmmm, what if we also only flag these aria-labels if they don't have a single space?... Technicallysix-pack
would still get flagged but it's a more safe check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
SIX-PACK
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
what if we also only flag these aria-labels if they don't have a single space?...
I think we'd still want to flag something like:
showhideclose
(these are examples I'm pulling from real aria-label we have right now in our codebase)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
approving -- we worked through the six-pack idea on slack
c410285
tobff637e
Compare[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |[`18.15.3` ->`18.15.11`](https://renovatebot.com/diffs/npm/@types%2fnode/18.15.3/18.15.11)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)||[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)| [`5.55.0` ->`5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.55.0/5.57.0)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)||[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)| [`5.55.0` ->`5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.55.0/5.57.0)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|| [eslint](https://eslint.org)([source](https://togithub.com/eslint/eslint)) | [`8.36.0` ->`8.37.0`](https://renovatebot.com/diffs/npm/eslint/8.36.0/8.37.0) |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)||[eslint-plugin-github](https://togithub.com/github/eslint-plugin-github)| [`4.6.1` ->`4.7.0`](https://renovatebot.com/diffs/npm/eslint-plugin-github/4.6.1/4.7.0)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|| [prettier](https://prettier.io)([source](https://togithub.com/prettier/prettier)) | [`2.8.4` ->`2.8.7`](https://renovatebot.com/diffs/npm/prettier/2.8.4/2.8.7) |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|| [ts-jest](https://kulshekhar.github.io/ts-jest)([source](https://togithub.com/kulshekhar/ts-jest)) | [`29.0.5` ->`29.1.0`](https://renovatebot.com/diffs/npm/ts-jest/29.0.5/29.1.0) |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### ⚠ Dependency Lookup Warnings ⚠Warnings were logged while processing this repo. Please check theDependency Dashboard for more information.---### Release Notes<details><summary>typescript-eslint/typescript-eslint(@​typescript-eslint/eslint-plugin)</summary>###[`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0)##### Bug Fixes- **eslint-plugin:** \[no-unnecessary-boolean-literal-compare] simplifyfixer and add support for double negation([#​6620](https://togithub.com/typescript-eslint/typescript-eslint/issues/6620))([81c8519](https://togithub.com/typescript-eslint/typescript-eslint/commit/81c85193d27d2e7f6d12bc259088b9b73dbe1e8b))- **eslint-plugin:** correct crashes with getTypeArguments for ts < 3.7([#​6767](https://togithub.com/typescript-eslint/typescript-eslint/issues/6767))([59eab58](https://togithub.com/typescript-eslint/typescript-eslint/commit/59eab587890a915387444d00c4a9387aed602718))##### Features- **eslint-plugin:** \[consistent-type-assertions] add suggestions forobjectLiteralTypeAssertions([#​6642](https://togithub.com/typescript-eslint/typescript-eslint/issues/6642))([720e811](https://togithub.com/typescript-eslint/typescript-eslint/commit/720e81138b66c94c60c4a4471b86b7d8567b6df0))- **eslint-plugin:** \[consistent-type-assertions] autofix angle bracketassertions to as([#​6641](https://togithub.com/typescript-eslint/typescript-eslint/issues/6641))([ad8ea64](https://togithub.com/typescript-eslint/typescript-eslint/commit/ad8ea64dbdf06c92ff72b48022f041693a8d7076))- **eslint-plugin:** add `no-duplicate-type-constituents` rule([#​5728](https://togithub.com/typescript-eslint/typescript-eslint/issues/5728))([bc31078](https://togithub.com/typescript-eslint/typescript-eslint/commit/bc31078cf86d69eee881e4a7daeffa347c1d82a7))###[`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0)##### Bug Fixes- **eslint-plugin:** \[member-ordering] check order whenoptionalityOrder is present with no optional members([#​6619](https://togithub.com/typescript-eslint/typescript-eslint/issues/6619))([6aff431](https://togithub.com/typescript-eslint/typescript-eslint/commit/6aff431668eb0d25aa74b527cbe458f9dcd0d92a))- **eslint-plugin:** \[no-misused-promises] avoid unnecessary calls togetContextualType([#​6193](https://togithub.com/typescript-eslint/typescript-eslint/issues/6193))([745cfe4](https://togithub.com/typescript-eslint/typescript-eslint/commit/745cfe4a35319416b3c307ee9fd57c63bf1660cd))- **eslint-plugin:** \[no-misused-promises] fix incorrect detection ofvoid functions in JSX attributes([#​6638](https://togithub.com/typescript-eslint/typescript-eslint/issues/6638))([9e41cee](https://togithub.com/typescript-eslint/typescript-eslint/commit/9e41ceeaea3bf266e5114cfb1855e70a1a13284b))- **eslint-plugin:** \[strict-boolean-expression] support falsy andtruthy literals simultaneously([#​6672](https://togithub.com/typescript-eslint/typescript-eslint/issues/6672))([62ef487](https://togithub.com/typescript-eslint/typescript-eslint/commit/62ef487a99010827e99a792db5e565ad7c1d6220))- **eslint-plugin:** \[strict-boolean-expressions] handle truthy enums([#​6618](https://togithub.com/typescript-eslint/typescript-eslint/issues/6618))([0d0639f](https://togithub.com/typescript-eslint/typescript-eslint/commit/0d0639fb25e5ac8d7b5e4ceac4273e17e8ee0249))- **eslint-plugin:** add TSPropertySignature with TSFunctionTypeannotation to typeMethod selector([#​6645](https://togithub.com/typescript-eslint/typescript-eslint/issues/6645))([3fc5c63](https://togithub.com/typescript-eslint/typescript-eslint/commit/3fc5c63f87bfd9d95f7e51fddc7ef16a6c3c5662))##### Features- **eslint-plugin:** add allowNever support torestrict-template-expressions([#​6554](https://togithub.com/typescript-eslint/typescript-eslint/issues/6554))([423f164](https://togithub.com/typescript-eslint/typescript-eslint/commit/423f1642424293488fa03a52777c0df73a40e5fd))</details><details><summary>typescript-eslint/typescript-eslint(@​typescript-eslint/parser)</summary>###[`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0)**Note:** Version bump only for package[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)###[`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0)**Note:** Version bump only for package[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)</details><details><summary>eslint/eslint</summary>### [`v8.37.0`](https://togithub.com/eslint/eslint/releases/tag/v8.37.0)[CompareSource](https://togithub.com/eslint/eslint/compare/v8.36.0...v8.37.0)##### Features-[`b6ab8b2`](https://togithub.com/eslint/eslint/commit/b6ab8b2a2ca8807baca121407f5bfb0a0a839427)feat: `require-unicode-regexp` add suggestions([#​17007](https://togithub.com/eslint/eslint/issues/17007)) (JoshGoldberg)-[`10022b1`](https://togithub.com/eslint/eslint/commit/10022b1f4bda1ad89193512ecf18c2ee61db8202)feat: Copy getScope() to SourceCode([#​17004](https://togithub.com/eslint/eslint/issues/17004))(Nicholas C. Zakas)-[`1665c02`](https://togithub.com/eslint/eslint/commit/1665c029acb92bf8812267f1647ad1a7054cbcb4)feat: Use plugin metadata for flat config serialization([#​16992](https://togithub.com/eslint/eslint/issues/16992))(Nicholas C. Zakas)-[`b3634f6`](https://togithub.com/eslint/eslint/commit/b3634f695ddab6a82c0a9b1d8695e62b60d23366)feat: docs license([#​17010](https://togithub.com/eslint/eslint/issues/17010))(Samuel Roldan)-[`892e6e5`](https://togithub.com/eslint/eslint/commit/892e6e58c5a07a549d3104de3b6b5879797dc97f)feat: languageOptions.parser must be an object.([#​16985](https://togithub.com/eslint/eslint/issues/16985))(Nicholas C. Zakas)##### Bug Fixes-[`619f3fd`](https://togithub.com/eslint/eslint/commit/619f3fd17324c7b71bf17e02047d0c6dc7e5109e)fix: correctly handle `null` default config in `RuleTester`([#​17023](https://togithub.com/eslint/eslint/issues/17023)) (BradZacher)-[`1fbf118`](https://togithub.com/eslint/eslint/commit/1fbf1184fed57df02640aad4659afb54dc26a2e9)fix: `getFirstToken`/`getLastToken` on comment-only node([#​16889](https://togithub.com/eslint/eslint/issues/16889))(Francesco Trotta)-[`129e252`](https://togithub.com/eslint/eslint/commit/129e252132c7c476d7de17f40b54a333ddb2e6bb)fix: Fix typo in `logical-assignment-operators` rule description([#​17000](https://togithub.com/eslint/eslint/issues/17000))(Francesco Trotta)##### Documentation-[`75339df`](https://togithub.com/eslint/eslint/commit/75339df99418df4d7e05a77e42ed7e22eabcc9e0)docs: fix typos and missing info in id-match docs([#​17029](https://togithub.com/eslint/eslint/issues/17029)) (EdLucas)-[`ec2d830`](https://togithub.com/eslint/eslint/commit/ec2d8307850dd039e118c001416606e1e0342bc8)docs: Fix typos in the `semi` rule docs([#​17012](https://togithub.com/eslint/eslint/issues/17012))(Andrii Lundiak)-[`e39f28d`](https://togithub.com/eslint/eslint/commit/e39f28d8578a00f4da8d4ddad559547950128a0d)docs: add back to top button([#​16979](https://togithub.com/eslint/eslint/issues/16979))(Tanuj Kanti)-[`721c717`](https://togithub.com/eslint/eslint/commit/721c71782a7c11025689a1500e7690fb3794fcce)docs: Custom Processors cleanup and expansion([#​16838](https://togithub.com/eslint/eslint/issues/16838)) (BenPerlmutter)-[`d049f97`](https://togithub.com/eslint/eslint/commit/d049f974103e530ef76ede25af701635caf1f405)docs: 'How ESLint is Maintained' page([#​16961](https://togithub.com/eslint/eslint/issues/16961)) (BenPerlmutter)-[`5251a92`](https://togithub.com/eslint/eslint/commit/5251a921866e8d3b380dfe8db8a6e6ab97773d5e)docs: Describe guard options for guard-for-in([#​16986](https://togithub.com/eslint/eslint/issues/16986))(alope107)-[`6157d81`](https://togithub.com/eslint/eslint/commit/6157d813e19b80481a46f8cbdf9eae18a55e5619)docs: Add example to guard-for-in docs.([#​16983](https://togithub.com/eslint/eslint/issues/16983))(alope107)-[`fd47998`](https://togithub.com/eslint/eslint/commit/fd47998af6efadcdf5ba93e0bd1f4c02d97d22b3)docs: update `Array.prototype.toSorted` specification link([#​16982](https://togithub.com/eslint/eslint/issues/16982))(Milos Djermanovic)-[`3e1cf6b`](https://togithub.com/eslint/eslint/commit/3e1cf6bfc5ebc29314ddbe462d6cb580e9ab085c)docs: Copy edits on Maintain ESLint docs([#​16939](https://togithub.com/eslint/eslint/issues/16939)) (BenPerlmutter)##### Chores-[`c67f299`](https://togithub.com/eslint/eslint/commit/c67f2992a743de4765bb6f11c12622e3651324b9)chore: upgrade[@​eslint/js](https://togithub.com/eslint/js)[@​8](https://togithub.com/8).37.0([#​17033](https://togithub.com/eslint/eslint/issues/17033))(Milos Djermanovic)-[`ee9ddbd`](https://togithub.com/eslint/eslint/commit/ee9ddbd63e262aed0052853760866c7a054af561)chore: package.json update for[@​eslint/js](https://togithub.com/eslint/js) release (ESLintJenkins)-[`dddb475`](https://togithub.com/eslint/eslint/commit/dddb47528816cd7e2e737bfde108ed4d62e6a219)chore: upgrade[@​eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@​2](https://togithub.com/2).0.2([#​17032](https://togithub.com/eslint/eslint/issues/17032))(Milos Djermanovic)-[`522431e`](https://togithub.com/eslint/eslint/commit/522431e5206bac2fcb41c0d6dc98a84929203bee)chore: upgrade espree@9.5.1([#​17031](https://togithub.com/eslint/eslint/issues/17031))(Milos Djermanovic)-[`f5f9a88`](https://togithub.com/eslint/eslint/commit/f5f9a88c79b32222c0331a9bac1c02571d953b69)chore: upgrade eslint-visitor-keys@3.4.0([#​17030](https://togithub.com/eslint/eslint/issues/17030))(Milos Djermanovic)-[`4dd8d52`](https://togithub.com/eslint/eslint/commit/4dd8d524e0fc9e8e2019df13f8b968021600e85c)ci: bump actions/stale from 7 to 8([#​17026](https://togithub.com/eslint/eslint/issues/17026))(dependabot\[bot])-[`ad9dd6a`](https://togithub.com/eslint/eslint/commit/ad9dd6a933fd098a0d99c6a9aa059850535c23ee)chore: remove duplicate scss,([#​17005](https://togithub.com/eslint/eslint/issues/17005))(Strek)-[`ada6a3e`](https://togithub.com/eslint/eslint/commit/ada6a3e6e3607523958f35e1260537630ec0e976)ci: unpin Node 19([#​16993](https://togithub.com/eslint/eslint/issues/16993))(Milos Djermanovic)-[`c3da975`](https://togithub.com/eslint/eslint/commit/c3da975e69fde46f35338ce48528841a8dc1ffd2)chore: Remove triage label from template([#​16990](https://togithub.com/eslint/eslint/issues/16990))(Nicholas C. Zakas)-[`69bc0e2`](https://togithub.com/eslint/eslint/commit/69bc0e2f4412998f9384600a100d7882ea4dd3f3)ci: pin Node 19 to 19.7.0([#​16987](https://togithub.com/eslint/eslint/issues/16987))(Milos Djermanovic)</details><details><summary>github/eslint-plugin-github</summary>###[`v4.7.0`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.7.0)[CompareSource](https://togithub.com/github/eslint-plugin-github/compare/v4.6.1...v4.7.0)#### What's Changed- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.51.0 to 5.52.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/403](https://togithub.com/github/eslint-plugin-github/pull/403)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.51.0 to 5.52.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/405](https://togithub.com/github/eslint-plugin-github/pull/405)- chore(deps): bump eslint-plugin-escompat from 3.3.4 to 3.4.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/404](https://togithub.com/github/eslint-plugin-github/pull/404)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.52.0 to 5.53.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/409](https://togithub.com/github/eslint-plugin-github/pull/409)- chore(deps-dev): bump eslint from 8.34.0 to 8.35.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/408](https://togithub.com/github/eslint-plugin-github/pull/408)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.52.0 to 5.53.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/407](https://togithub.com/github/eslint-plugin-github/pull/407)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.53.0 to 5.54.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/410](https://togithub.com/github/eslint-plugin-github/pull/410)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.53.0 to 5.54.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/411](https://togithub.com/github/eslint-plugin-github/pull/411)- chore(deps): bump eslint-config-prettier from 8.6.0 to 8.7.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/415](https://togithub.com/github/eslint-plugin-github/pull/415)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.54.0 to 5.54.1 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/414](https://togithub.com/github/eslint-plugin-github/pull/414)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.54.0 to 5.54.1 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/412](https://togithub.com/github/eslint-plugin-github/pull/412)- chore(deps-dev): bump eslint from 8.35.0 to 8.36.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/413](https://togithub.com/github/eslint-plugin-github/pull/413)- Automate docs with eslint-doc-generator by[@​bmish](https://togithub.com/bmish) in[https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.54.1 to 5.55.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/417](https://togithub.com/github/eslint-plugin-github/pull/417)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.54.1 to 5.55.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/416](https://togithub.com/github/eslint-plugin-github/pull/416)- Update no-inner-html.md by[@​khiga8](https://togithub.com/khiga8) in[https://github.com/github/eslint-plugin-github/pull/381](https://togithub.com/github/eslint-plugin-github/pull/381)- New rule to flag invalid aria-label format by[@​khiga8](https://togithub.com/khiga8) in[https://github.com/github/eslint-plugin-github/pull/418](https://togithub.com/github/eslint-plugin-github/pull/418)#### New Contributors- [@​bmish](https://togithub.com/bmish) made their firstcontribution in[https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398)**Full Changelog**:github/eslint-plugin-github@v4.6.1...v4.7.0</details><details><summary>prettier/prettier</summary>###[`v2.8.7`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​287)[CompareSource](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7)[diff](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7)##### Allow multiple decorators on same getter/setter([#​14584](https://togithub.com/prettier/prettier/pull/14584) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```ts// Inputclass A { @​decorator() get foo () {} @​decorator() set foo (value) {}}// Prettier 2.8.6SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3) 3 | get foo () {} 4 | > 5 | @​decorator() | ^^^^^^^^^^^^ 6 | set foo (value) {} 7 | }// Prettier 2.8.7class A { @​decorator() get foo() {} @​decorator() set foo(value) {}}```###[`v2.8.6`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​286)[CompareSource](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6)[diff](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6)##### Allow decorators on private members and class expressions([#​14548](https://togithub.com/prettier/prettier/pull/14548) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```ts// Inputclass A { @​decorator() #privateMethod () {}}// Prettier 2.8.5SyntaxError: Decorators are not valid here. (2:3) 1 | class A {> 2 | @​decorator() | ^^^^^^^^^^^^ 3 | #privateMethod () {} 4 | }// Prettier 2.8.6class A { @​decorator() #privateMethod() {}}```###[`v2.8.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​285)[CompareSource](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5)[diff](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5)##### Support TypeScript 5.0([#​14391](https://togithub.com/prettier/prettier/pull/14391) by[@​fisker](https://togithub.com/fisker),[#​13819](https://togithub.com/prettier/prettier/pull/13819) by[@​fisker](https://togithub.com/fisker),[@​sosukesuzuki](https://togithub.com/sosukesuzuki))TypeScript 5.0 introduces two new syntactic features:- `const` modifiers for type parameters- `export type *` declarations##### Add missing parentheses for decorator([#​14393](https://togithub.com/prettier/prettier/pull/14393) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```jsx// Inputclass Person { @​(myDecoratorArray[0]) greet() {}}// Prettier 2.8.4class Person { @​myDecoratorArray[0] greet() {}}// Prettier 2.8.5class Person { @​(myDecoratorArray[0]) greet() {}}```##### Add parentheses for `TypeofTypeAnnotation` to improve readability([#​14458](https://togithub.com/prettier/prettier/pull/14458) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```tsx// Inputtype A = (typeof node.children)[];// Prettier 2.8.4type A = typeof node.children[];// Prettier 2.8.5type A = (typeof node.children)[];```##### Support `max_line_length=off` when parsing `.editorconfig`([#​14516](https://togithub.com/prettier/prettier/pull/14516) by[@​josephfrazier](https://togithub.com/josephfrazier))If an .editorconfig file is in your project and it sets`max_line_length=off` for the file you're formatting,it will be interpreted as a `printWidth` of `Infinity` rather than beingignored(which previously resulted in the default `printWidth` of 80 beingapplied, if not overridden by Prettier-specific configuration).<!-- prettier-ignore -->```html<!-- Input --><div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/><!-- Prettier 2.8.4 --><div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver}/>;<!-- Prettier 2.8.5 --><div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />;```</details><details><summary>kulshekhar/ts-jest</summary>###[`v29.1.0`](https://togithub.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#​2910-httpsgithubcomkulshekharts-jestcomparev2905v2910-2023-03-26)[CompareSource](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.5...v29.1.0)##### Features- Support TypeScript 5.x([#​4064](https://togithub.com/kulshekhar/ts-jest/issues/4064))([db98cc9](https://togithub.com/kulshekhar/ts-jest/commit/87f27821db99be411288b50a4f9baa7bedb98cc9)),closes[#​4048](https://togithub.com/kulshekhar/ts-jest/issues/4048)####[29.0.5](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.4...v29.0.5)(2023-01-13)##### Reverts- Revert "fix(transformer): don't use cache when `tsJestConfig` isdifferent([#​3966](https://togithub.com/kulshekhar/ts-jest/issues/3966))"([185eb18](https://togithub.com/kulshekhar/ts-jest/commit/185eb189d7076c717a107066817d2d6959a8fe39)),closes[#​3966](https://togithub.com/kulshekhar/ts-jest/issues/3966)####[29.0.4](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.3...v29.0.4)(2023-01-10)##### Bug Fixes- **transformer:** don't use cache when `tsJestConfig` is different([#​3966](https://togithub.com/kulshekhar/ts-jest/issues/3966))([a445638](https://togithub.com/kulshekhar/ts-jest/commit/a445638ca631911e8ab1a896ffdfcd21506ce71a))- bump `json5` to `2.2.3`([#​3976](https://togithub.com/kulshekhar/ts-jest/pull/3976))([b9f7809](https://togithub.com/kulshekhar/ts-jest/commit/b9f7809948309f92534aeba63f3ffb01cb7dc536))####[29.0.3](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.2...v29.0.3)(2022-09-28)##### Bug Fixes- merge config from `globals` with transformer config correctly([#​3842](https://togithub.com/kulshekhar/ts-jest/issues/3842))([9c9fd60](https://togithub.com/kulshekhar/ts-jest/commit/9c9fd6097aea36a6e8b06b0e8841df22896f9121)),closes[#​3841](https://togithub.com/kulshekhar/ts-jest/issues/3841)- **presets:** allow merging transform config when using presets([#​3833](https://togithub.com/kulshekhar/ts-jest/issues/3833))([afc6a94](https://togithub.com/kulshekhar/ts-jest/commit/afc6a948b17c2dc22be51b1a9475a0f6ecbbc372))##### Features- add `useESM` option to `pathsToModuleNameMapper` options([#​3792](https://togithub.com/kulshekhar/ts-jest/issues/3792))([eabe906](https://togithub.com/kulshekhar/ts-jest/commit/eabe906e1dd6b132a7b0d05ffc13172cd8a6b73b))####[29.0.2](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.1...v29.0.2)(2022-09-23)##### Bug Fixes- mark `ts-jest` as optional in `ConfigGlobals`([#​3816](https://togithub.com/kulshekhar/ts-jest/issues/3816))([cbb88bb](https://togithub.com/kulshekhar/ts-jest/commit/cbb88bba34dbb852d8f4013be6e020769feb306d)),closes[#​3815](https://togithub.com/kulshekhar/ts-jest/issues/3815)- use correct typings for `config:init` command([#​3825](https://togithub.com/kulshekhar/ts-jest/issues/3825))([21b94db](https://togithub.com/kulshekhar/ts-jest/commit/21b94dbca25b762f79e63b92dea12d830f444570))####[29.0.2](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.1...v29.0.2)(2022-09-22)##### Bug Fixes- mark `ts-jest` as optional in `ConfigGlobals`([#​3816](https://togithub.com/kulshekhar/ts-jest/issues/3816))([cbb88bb](https://togithub.com/kulshekhar/ts-jest/commit/cbb88bba34dbb852d8f4013be6e020769feb306d)),closes[#​3815](https://togithub.com/kulshekhar/ts-jest/issues/3815)####[29.0.1](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.0...v29.0.1)(2022-09-13)##### Bug Fixes- **legacy:** include existing globals config in cached config([#​3803](https://togithub.com/kulshekhar/ts-jest/issues/3803))([e79be47](https://togithub.com/kulshekhar/ts-jest/commit/e79be47d2b81a677d0dd39d84328a38ca0f0ffc6))##### Features- add typings for `ts-jest` options via `transform` config([#​3805](https://togithub.com/kulshekhar/ts-jest/issues/3805))([664b0f2](https://togithub.com/kulshekhar/ts-jest/commit/664b0f2b446a36dd7661f4840ca3dd7722f1f6ff))</details>---### Configuration📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - Atany time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.👻 **Immortal**: This PR will be recreated if closed unmerged. Get[config help](https://togithub.com/renovatebot/renovate/discussions) ifthat's undesired.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://app.renovatebot.com/dashboard#github/slsa-framework/slsa-github-generator).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNC4yIiwidXBkYXRlZEluVmVyIjoiMzUuMjMuMyJ9-->Signed-off-by: Renovate Bot <bot@renovateapp.com>
[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |[`18.15.3` ->`18.15.11`](https://renovatebot.com/diffs/npm/@types%2fnode/18.15.3/18.15.11)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)||[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)| [`5.55.0` ->`5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.55.0/5.57.0)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)||[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)| [`5.55.0` ->`5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.55.0/5.57.0)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|| [eslint](https://eslint.org)([source](https://togithub.com/eslint/eslint)) | [`8.36.0` ->`8.37.0`](https://renovatebot.com/diffs/npm/eslint/8.36.0/8.37.0) |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)||[eslint-plugin-github](https://togithub.com/github/eslint-plugin-github)| [`4.6.1` ->`4.7.0`](https://renovatebot.com/diffs/npm/eslint-plugin-github/4.6.1/4.7.0)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|| [prettier](https://prettier.io)([source](https://togithub.com/prettier/prettier)) | [`2.8.4` ->`2.8.7`](https://renovatebot.com/diffs/npm/prettier/2.8.4/2.8.7) |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### ⚠ Dependency Lookup Warnings ⚠Warnings were logged while processing this repo. Please check theDependency Dashboard for more information.---### Release Notes<details><summary>typescript-eslint/typescript-eslint(@​typescript-eslint/eslint-plugin)</summary>###[`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0)##### Bug Fixes- **eslint-plugin:** \[no-unnecessary-boolean-literal-compare] simplifyfixer and add support for double negation([#​6620](https://togithub.com/typescript-eslint/typescript-eslint/issues/6620))([81c8519](https://togithub.com/typescript-eslint/typescript-eslint/commit/81c85193d27d2e7f6d12bc259088b9b73dbe1e8b))- **eslint-plugin:** correct crashes with getTypeArguments for ts < 3.7([#​6767](https://togithub.com/typescript-eslint/typescript-eslint/issues/6767))([59eab58](https://togithub.com/typescript-eslint/typescript-eslint/commit/59eab587890a915387444d00c4a9387aed602718))##### Features- **eslint-plugin:** \[consistent-type-assertions] add suggestions forobjectLiteralTypeAssertions([#​6642](https://togithub.com/typescript-eslint/typescript-eslint/issues/6642))([720e811](https://togithub.com/typescript-eslint/typescript-eslint/commit/720e81138b66c94c60c4a4471b86b7d8567b6df0))- **eslint-plugin:** \[consistent-type-assertions] autofix angle bracketassertions to as([#​6641](https://togithub.com/typescript-eslint/typescript-eslint/issues/6641))([ad8ea64](https://togithub.com/typescript-eslint/typescript-eslint/commit/ad8ea64dbdf06c92ff72b48022f041693a8d7076))- **eslint-plugin:** add `no-duplicate-type-constituents` rule([#​5728](https://togithub.com/typescript-eslint/typescript-eslint/issues/5728))([bc31078](https://togithub.com/typescript-eslint/typescript-eslint/commit/bc31078cf86d69eee881e4a7daeffa347c1d82a7))###[`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0)##### Bug Fixes- **eslint-plugin:** \[member-ordering] check order whenoptionalityOrder is present with no optional members([#​6619](https://togithub.com/typescript-eslint/typescript-eslint/issues/6619))([6aff431](https://togithub.com/typescript-eslint/typescript-eslint/commit/6aff431668eb0d25aa74b527cbe458f9dcd0d92a))- **eslint-plugin:** \[no-misused-promises] avoid unnecessary calls togetContextualType([#​6193](https://togithub.com/typescript-eslint/typescript-eslint/issues/6193))([745cfe4](https://togithub.com/typescript-eslint/typescript-eslint/commit/745cfe4a35319416b3c307ee9fd57c63bf1660cd))- **eslint-plugin:** \[no-misused-promises] fix incorrect detection ofvoid functions in JSX attributes([#​6638](https://togithub.com/typescript-eslint/typescript-eslint/issues/6638))([9e41cee](https://togithub.com/typescript-eslint/typescript-eslint/commit/9e41ceeaea3bf266e5114cfb1855e70a1a13284b))- **eslint-plugin:** \[strict-boolean-expression] support falsy andtruthy literals simultaneously([#​6672](https://togithub.com/typescript-eslint/typescript-eslint/issues/6672))([62ef487](https://togithub.com/typescript-eslint/typescript-eslint/commit/62ef487a99010827e99a792db5e565ad7c1d6220))- **eslint-plugin:** \[strict-boolean-expressions] handle truthy enums([#​6618](https://togithub.com/typescript-eslint/typescript-eslint/issues/6618))([0d0639f](https://togithub.com/typescript-eslint/typescript-eslint/commit/0d0639fb25e5ac8d7b5e4ceac4273e17e8ee0249))- **eslint-plugin:** add TSPropertySignature with TSFunctionTypeannotation to typeMethod selector([#​6645](https://togithub.com/typescript-eslint/typescript-eslint/issues/6645))([3fc5c63](https://togithub.com/typescript-eslint/typescript-eslint/commit/3fc5c63f87bfd9d95f7e51fddc7ef16a6c3c5662))##### Features- **eslint-plugin:** add allowNever support torestrict-template-expressions([#​6554](https://togithub.com/typescript-eslint/typescript-eslint/issues/6554))([423f164](https://togithub.com/typescript-eslint/typescript-eslint/commit/423f1642424293488fa03a52777c0df73a40e5fd))</details><details><summary>typescript-eslint/typescript-eslint(@​typescript-eslint/parser)</summary>###[`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0)**Note:** Version bump only for package[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)###[`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20)[CompareSource](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0)**Note:** Version bump only for package[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)</details><details><summary>eslint/eslint</summary>### [`v8.37.0`](https://togithub.com/eslint/eslint/releases/tag/v8.37.0)[CompareSource](https://togithub.com/eslint/eslint/compare/v8.36.0...v8.37.0)##### Features-[`b6ab8b2`](https://togithub.com/eslint/eslint/commit/b6ab8b2a2ca8807baca121407f5bfb0a0a839427)feat: `require-unicode-regexp` add suggestions([#​17007](https://togithub.com/eslint/eslint/issues/17007)) (JoshGoldberg)-[`10022b1`](https://togithub.com/eslint/eslint/commit/10022b1f4bda1ad89193512ecf18c2ee61db8202)feat: Copy getScope() to SourceCode([#​17004](https://togithub.com/eslint/eslint/issues/17004))(Nicholas C. Zakas)-[`1665c02`](https://togithub.com/eslint/eslint/commit/1665c029acb92bf8812267f1647ad1a7054cbcb4)feat: Use plugin metadata for flat config serialization([#​16992](https://togithub.com/eslint/eslint/issues/16992))(Nicholas C. Zakas)-[`b3634f6`](https://togithub.com/eslint/eslint/commit/b3634f695ddab6a82c0a9b1d8695e62b60d23366)feat: docs license([#​17010](https://togithub.com/eslint/eslint/issues/17010))(Samuel Roldan)-[`892e6e5`](https://togithub.com/eslint/eslint/commit/892e6e58c5a07a549d3104de3b6b5879797dc97f)feat: languageOptions.parser must be an object.([#​16985](https://togithub.com/eslint/eslint/issues/16985))(Nicholas C. Zakas)##### Bug Fixes-[`619f3fd`](https://togithub.com/eslint/eslint/commit/619f3fd17324c7b71bf17e02047d0c6dc7e5109e)fix: correctly handle `null` default config in `RuleTester`([#​17023](https://togithub.com/eslint/eslint/issues/17023)) (BradZacher)-[`1fbf118`](https://togithub.com/eslint/eslint/commit/1fbf1184fed57df02640aad4659afb54dc26a2e9)fix: `getFirstToken`/`getLastToken` on comment-only node([#​16889](https://togithub.com/eslint/eslint/issues/16889))(Francesco Trotta)-[`129e252`](https://togithub.com/eslint/eslint/commit/129e252132c7c476d7de17f40b54a333ddb2e6bb)fix: Fix typo in `logical-assignment-operators` rule description([#​17000](https://togithub.com/eslint/eslint/issues/17000))(Francesco Trotta)##### Documentation-[`75339df`](https://togithub.com/eslint/eslint/commit/75339df99418df4d7e05a77e42ed7e22eabcc9e0)docs: fix typos and missing info in id-match docs([#​17029](https://togithub.com/eslint/eslint/issues/17029)) (EdLucas)-[`ec2d830`](https://togithub.com/eslint/eslint/commit/ec2d8307850dd039e118c001416606e1e0342bc8)docs: Fix typos in the `semi` rule docs([#​17012](https://togithub.com/eslint/eslint/issues/17012))(Andrii Lundiak)-[`e39f28d`](https://togithub.com/eslint/eslint/commit/e39f28d8578a00f4da8d4ddad559547950128a0d)docs: add back to top button([#​16979](https://togithub.com/eslint/eslint/issues/16979))(Tanuj Kanti)-[`721c717`](https://togithub.com/eslint/eslint/commit/721c71782a7c11025689a1500e7690fb3794fcce)docs: Custom Processors cleanup and expansion([#​16838](https://togithub.com/eslint/eslint/issues/16838)) (BenPerlmutter)-[`d049f97`](https://togithub.com/eslint/eslint/commit/d049f974103e530ef76ede25af701635caf1f405)docs: 'How ESLint is Maintained' page([#​16961](https://togithub.com/eslint/eslint/issues/16961)) (BenPerlmutter)-[`5251a92`](https://togithub.com/eslint/eslint/commit/5251a921866e8d3b380dfe8db8a6e6ab97773d5e)docs: Describe guard options for guard-for-in([#​16986](https://togithub.com/eslint/eslint/issues/16986))(alope107)-[`6157d81`](https://togithub.com/eslint/eslint/commit/6157d813e19b80481a46f8cbdf9eae18a55e5619)docs: Add example to guard-for-in docs.([#​16983](https://togithub.com/eslint/eslint/issues/16983))(alope107)-[`fd47998`](https://togithub.com/eslint/eslint/commit/fd47998af6efadcdf5ba93e0bd1f4c02d97d22b3)docs: update `Array.prototype.toSorted` specification link([#​16982](https://togithub.com/eslint/eslint/issues/16982))(Milos Djermanovic)-[`3e1cf6b`](https://togithub.com/eslint/eslint/commit/3e1cf6bfc5ebc29314ddbe462d6cb580e9ab085c)docs: Copy edits on Maintain ESLint docs([#​16939](https://togithub.com/eslint/eslint/issues/16939)) (BenPerlmutter)##### Chores-[`c67f299`](https://togithub.com/eslint/eslint/commit/c67f2992a743de4765bb6f11c12622e3651324b9)chore: upgrade[@​eslint/js](https://togithub.com/eslint/js)[@​8](https://togithub.com/8).37.0([#​17033](https://togithub.com/eslint/eslint/issues/17033))(Milos Djermanovic)-[`ee9ddbd`](https://togithub.com/eslint/eslint/commit/ee9ddbd63e262aed0052853760866c7a054af561)chore: package.json update for[@​eslint/js](https://togithub.com/eslint/js) release (ESLintJenkins)-[`dddb475`](https://togithub.com/eslint/eslint/commit/dddb47528816cd7e2e737bfde108ed4d62e6a219)chore: upgrade[@​eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@​2](https://togithub.com/2).0.2([#​17032](https://togithub.com/eslint/eslint/issues/17032))(Milos Djermanovic)-[`522431e`](https://togithub.com/eslint/eslint/commit/522431e5206bac2fcb41c0d6dc98a84929203bee)chore: upgrade espree@9.5.1([#​17031](https://togithub.com/eslint/eslint/issues/17031))(Milos Djermanovic)-[`f5f9a88`](https://togithub.com/eslint/eslint/commit/f5f9a88c79b32222c0331a9bac1c02571d953b69)chore: upgrade eslint-visitor-keys@3.4.0([#​17030](https://togithub.com/eslint/eslint/issues/17030))(Milos Djermanovic)-[`4dd8d52`](https://togithub.com/eslint/eslint/commit/4dd8d524e0fc9e8e2019df13f8b968021600e85c)ci: bump actions/stale from 7 to 8([#​17026](https://togithub.com/eslint/eslint/issues/17026))(dependabot\[bot])-[`ad9dd6a`](https://togithub.com/eslint/eslint/commit/ad9dd6a933fd098a0d99c6a9aa059850535c23ee)chore: remove duplicate scss,([#​17005](https://togithub.com/eslint/eslint/issues/17005))(Strek)-[`ada6a3e`](https://togithub.com/eslint/eslint/commit/ada6a3e6e3607523958f35e1260537630ec0e976)ci: unpin Node 19([#​16993](https://togithub.com/eslint/eslint/issues/16993))(Milos Djermanovic)-[`c3da975`](https://togithub.com/eslint/eslint/commit/c3da975e69fde46f35338ce48528841a8dc1ffd2)chore: Remove triage label from template([#​16990](https://togithub.com/eslint/eslint/issues/16990))(Nicholas C. Zakas)-[`69bc0e2`](https://togithub.com/eslint/eslint/commit/69bc0e2f4412998f9384600a100d7882ea4dd3f3)ci: pin Node 19 to 19.7.0([#​16987](https://togithub.com/eslint/eslint/issues/16987))(Milos Djermanovic)</details><details><summary>github/eslint-plugin-github</summary>###[`v4.7.0`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.7.0)[CompareSource](https://togithub.com/github/eslint-plugin-github/compare/v4.6.1...v4.7.0)#### What's Changed- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.51.0 to 5.52.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/403](https://togithub.com/github/eslint-plugin-github/pull/403)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.51.0 to 5.52.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/405](https://togithub.com/github/eslint-plugin-github/pull/405)- chore(deps): bump eslint-plugin-escompat from 3.3.4 to 3.4.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/404](https://togithub.com/github/eslint-plugin-github/pull/404)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.52.0 to 5.53.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/409](https://togithub.com/github/eslint-plugin-github/pull/409)- chore(deps-dev): bump eslint from 8.34.0 to 8.35.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/408](https://togithub.com/github/eslint-plugin-github/pull/408)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.52.0 to 5.53.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/407](https://togithub.com/github/eslint-plugin-github/pull/407)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.53.0 to 5.54.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/410](https://togithub.com/github/eslint-plugin-github/pull/410)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.53.0 to 5.54.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/411](https://togithub.com/github/eslint-plugin-github/pull/411)- chore(deps): bump eslint-config-prettier from 8.6.0 to 8.7.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/415](https://togithub.com/github/eslint-plugin-github/pull/415)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.54.0 to 5.54.1 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/414](https://togithub.com/github/eslint-plugin-github/pull/414)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.54.0 to 5.54.1 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/412](https://togithub.com/github/eslint-plugin-github/pull/412)- chore(deps-dev): bump eslint from 8.35.0 to 8.36.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/413](https://togithub.com/github/eslint-plugin-github/pull/413)- Automate docs with eslint-doc-generator by[@​bmish](https://togithub.com/bmish) in[https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.54.1 to 5.55.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/417](https://togithub.com/github/eslint-plugin-github/pull/417)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.54.1 to 5.55.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/416](https://togithub.com/github/eslint-plugin-github/pull/416)- Update no-inner-html.md by[@​khiga8](https://togithub.com/khiga8) in[https://github.com/github/eslint-plugin-github/pull/381](https://togithub.com/github/eslint-plugin-github/pull/381)- New rule to flag invalid aria-label format by[@​khiga8](https://togithub.com/khiga8) in[https://github.com/github/eslint-plugin-github/pull/418](https://togithub.com/github/eslint-plugin-github/pull/418)#### New Contributors- [@​bmish](https://togithub.com/bmish) made their firstcontribution in[https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398)**Full Changelog**:github/eslint-plugin-github@v4.6.1...v4.7.0</details><details><summary>prettier/prettier</summary>###[`v2.8.7`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​287)[CompareSource](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7)[diff](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7)##### Allow multiple decorators on same getter/setter([#​14584](https://togithub.com/prettier/prettier/pull/14584) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```ts// Inputclass A { @​decorator() get foo () {} @​decorator() set foo (value) {}}// Prettier 2.8.6SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3) 3 | get foo () {} 4 | > 5 | @​decorator() | ^^^^^^^^^^^^ 6 | set foo (value) {} 7 | }// Prettier 2.8.7class A { @​decorator() get foo() {} @​decorator() set foo(value) {}}```###[`v2.8.6`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​286)[CompareSource](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6)[diff](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6)##### Allow decorators on private members and class expressions([#​14548](https://togithub.com/prettier/prettier/pull/14548) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```ts// Inputclass A { @​decorator() #privateMethod () {}}// Prettier 2.8.5SyntaxError: Decorators are not valid here. (2:3) 1 | class A {> 2 | @​decorator() | ^^^^^^^^^^^^ 3 | #privateMethod () {} 4 | }// Prettier 2.8.6class A { @​decorator() #privateMethod() {}}```###[`v2.8.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​285)[CompareSource](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5)[diff](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5)##### Support TypeScript 5.0([#​14391](https://togithub.com/prettier/prettier/pull/14391) by[@​fisker](https://togithub.com/fisker),[#​13819](https://togithub.com/prettier/prettier/pull/13819) by[@​fisker](https://togithub.com/fisker),[@​sosukesuzuki](https://togithub.com/sosukesuzuki))TypeScript 5.0 introduces two new syntactic features:- `const` modifiers for type parameters- `export type *` declarations##### Add missing parentheses for decorator([#​14393](https://togithub.com/prettier/prettier/pull/14393) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```jsx// Inputclass Person { @​(myDecoratorArray[0]) greet() {}}// Prettier 2.8.4class Person { @​myDecoratorArray[0] greet() {}}// Prettier 2.8.5class Person { @​(myDecoratorArray[0]) greet() {}}```##### Add parentheses for `TypeofTypeAnnotation` to improve readability([#​14458](https://togithub.com/prettier/prettier/pull/14458) by[@​fisker](https://togithub.com/fisker))<!-- prettier-ignore -->```tsx// Inputtype A = (typeof node.children)[];// Prettier 2.8.4type A = typeof node.children[];// Prettier 2.8.5type A = (typeof node.children)[];```##### Support `max_line_length=off` when parsing `.editorconfig`([#​14516](https://togithub.com/prettier/prettier/pull/14516) by[@​josephfrazier](https://togithub.com/josephfrazier))If an .editorconfig file is in your project and it sets`max_line_length=off` for the file you're formatting,it will be interpreted as a `printWidth` of `Infinity` rather than beingignored(which previously resulted in the default `printWidth` of 80 beingapplied, if not overridden by Prettier-specific configuration).<!-- prettier-ignore -->```html<!-- Input --><div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/><!-- Prettier 2.8.4 --><div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver}/>;<!-- Prettier 2.8.5 --><div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />;```</details>---### Configuration📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - Atany time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.👻 **Immortal**: This PR will be recreated if closed unmerged. Get[config help](https://togithub.com/renovatebot/renovate/discussions) ifthat's undesired.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://app.renovatebot.com/dashboard#github/slsa-framework/slsa-github-generator).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMy4zIiwidXBkYXRlZEluVmVyIjoiMzUuMjMuMyJ9-->Signed-off-by: Renovate Bot <bot@renovateapp.com>
[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[eslint-plugin-github](https://togithub.com/github/eslint-plugin-github)| [`4.6.1` ->`4.7.0`](https://renovatebot.com/diffs/npm/eslint-plugin-github/4.6.1/4.7.0)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>github/eslint-plugin-github</summary>###[`v4.7.0`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.7.0)[CompareSource](https://togithub.com/github/eslint-plugin-github/compare/v4.6.1...v4.7.0)#### What's Changed- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.51.0 to 5.52.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/403](https://togithub.com/github/eslint-plugin-github/pull/403)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.51.0 to 5.52.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/405](https://togithub.com/github/eslint-plugin-github/pull/405)- chore(deps): bump eslint-plugin-escompat from 3.3.4 to 3.4.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/404](https://togithub.com/github/eslint-plugin-github/pull/404)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.52.0 to 5.53.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/409](https://togithub.com/github/eslint-plugin-github/pull/409)- chore(deps-dev): bump eslint from 8.34.0 to 8.35.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/408](https://togithub.com/github/eslint-plugin-github/pull/408)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.52.0 to 5.53.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/407](https://togithub.com/github/eslint-plugin-github/pull/407)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.53.0 to 5.54.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/410](https://togithub.com/github/eslint-plugin-github/pull/410)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.53.0 to 5.54.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/411](https://togithub.com/github/eslint-plugin-github/pull/411)- chore(deps): bump eslint-config-prettier from 8.6.0 to 8.7.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/415](https://togithub.com/github/eslint-plugin-github/pull/415)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.54.0 to 5.54.1 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/414](https://togithub.com/github/eslint-plugin-github/pull/414)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.54.0 to 5.54.1 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/412](https://togithub.com/github/eslint-plugin-github/pull/412)- chore(deps-dev): bump eslint from 8.35.0 to 8.36.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/413](https://togithub.com/github/eslint-plugin-github/pull/413)- Automate docs with eslint-doc-generator by[@​bmish](https://togithub.com/bmish) in[https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398)- chore(deps): bump[@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)from 5.54.1 to 5.55.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/417](https://togithub.com/github/eslint-plugin-github/pull/417)- chore(deps): bump[@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)from 5.54.1 to 5.55.0 by[@​dependabot](https://togithub.com/dependabot) in[https://github.com/github/eslint-plugin-github/pull/416](https://togithub.com/github/eslint-plugin-github/pull/416)- Update no-inner-html.md by[@​khiga8](https://togithub.com/khiga8) in[https://github.com/github/eslint-plugin-github/pull/381](https://togithub.com/github/eslint-plugin-github/pull/381)- New rule to flag invalid aria-label format by[@​khiga8](https://togithub.com/khiga8) in[https://github.com/github/eslint-plugin-github/pull/418](https://togithub.com/github/eslint-plugin-github/pull/418)#### New Contributors- [@​bmish](https://togithub.com/bmish) made their firstcontribution in[https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398)**Full Changelog**:github/eslint-plugin-github@v4.6.1...v4.7.0</details>---### Configuration📅 **Schedule**: Branch creation - "monthly" (UTC), Automerge - At anytime (no schedule defined).🚦 **Automerge**: Enabled.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://app.renovatebot.com/dashboard#github/WtfJoke/setup-tectonic).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMiIsInVwZGF0ZWRJblZlciI6IjM1LjEwMi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Uh oh!
There was an error while loading.Please reload this page.
This new lint rule flags when
aria-label
content is not well-formatted. Specifically, it flags when a JSX opening tag has anaria-label
content that is aLiteral
, and starts with downcase.aria-label
content should be formatted in the same way as one would visual text, but there seems to be a misconception that it doesn't have to be. As a result, we're seeingaria-label
that looks like an ID, or is downcased.Staff-only: For fun, here's a list offlagged
aria-label
in ERB using this logic.Comment from@jscholes:
Relates to:
I plan to follow-up with a similar rule in
erblint-github
.