Commit d182c8efc4 for wordpress.org
commit d182c8efc488e321b4e30f3c9304d72b6a2b7444
Author: desrosj <desrosj@git.wordpress.org>
Date: Mon Nov 9 20:08:04 2026 +0000
Twenty Twenty: Replace the abandoned `stylelint-a11y` dependency.
The `stylelint-a11y` package has not been updated in over 7 years and is incompatible with newer versions of Stylelint and Node.js. This replaces it with `@double-great/stylelint-a11y`, an actively maintained fork, and replaces the deprecated `stylelint-config-wordpress` configuration with `@wordpress/stylelint-config`.
The `a11y/selector-pseudo-class-focus` rule is disabled for the block editor's Button and File block hover styles. These elements are editable text fields in the editor, so a `:focus` underline would be displayed the entire time the text is being edited.
Props sabernhardt, desrosj.
Fixes #66004.
Built from https://develop.svn.wordpress.org/trunk@65355
git-svn-id: http://core.svn.wordpress.org/trunk@64495 1a063a9b-81f0-0310-95a4-ce76da25c4cd
diff --git a/wp-content/themes/twentytwenty/.stylelintrc.json b/wp-content/themes/twentytwenty/.stylelintrc.json
index f88810795c..ec8790beab 100644
--- a/wp-content/themes/twentytwenty/.stylelintrc.json
+++ b/wp-content/themes/twentytwenty/.stylelintrc.json
@@ -1,8 +1,8 @@
{
"extends": [
- "stylelint-config-wordpress"
+ "@wordpress/stylelint-config"
],
- "plugins": ["stylelint-a11y"],
+ "plugins": ["@double-great/stylelint-a11y"],
"rules": {
"font-family-no-missing-generic-family-keyword": null,
"no-descending-specificity": null,
diff --git a/wp-content/themes/twentytwenty/assets/css/editor-style-block-rtl.css b/wp-content/themes/twentytwenty/assets/css/editor-style-block-rtl.css
index 8b685f03e3..8c6eef23a6 100644
--- a/wp-content/themes/twentytwenty/assets/css/editor-style-block-rtl.css
+++ b/wp-content/themes/twentytwenty/assets/css/editor-style-block-rtl.css
@@ -957,6 +957,11 @@ hr.wp-block-separator.is-style-dots::before {
line-height: 1.1;
}
+/*
+ * In the editor, these elements are editable text fields. A focus underline
+ * would only appear while typing, so it is intentionally omitted here.
+ */
+/* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
.editor-styles-wrapper .wp-block-button__link:hover,
.editor-styles-wrapper .wp-block-file__button:hover {
text-decoration: underline;
diff --git a/wp-content/themes/twentytwenty/assets/css/editor-style-block.css b/wp-content/themes/twentytwenty/assets/css/editor-style-block.css
index 9fbac5b956..b9ffc7c261 100644
--- a/wp-content/themes/twentytwenty/assets/css/editor-style-block.css
+++ b/wp-content/themes/twentytwenty/assets/css/editor-style-block.css
@@ -961,6 +961,11 @@ hr.wp-block-separator.is-style-dots::before {
line-height: 1.1;
}
+/*
+ * In the editor, these elements are editable text fields. A focus underline
+ * would only appear while typing, so it is intentionally omitted here.
+ */
+/* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
.editor-styles-wrapper .wp-block-button__link:hover,
.editor-styles-wrapper .wp-block-file__button:hover {
text-decoration: underline;
diff --git a/wp-content/themes/twentytwenty/package-lock.json b/wp-content/themes/twentytwenty/package-lock.json
index a027d7547f..41a64837a5 100644
--- a/wp-content/themes/twentytwenty/package-lock.json
+++ b/wp-content/themes/twentytwenty/package-lock.json
@@ -9,14 +9,14 @@
"version": "3.3.0",
"license": "GPL-2.0-or-later",
"devDependencies": {
+ "@double-great/stylelint-a11y": "^3.8.3",
"@wordpress/browserslist-config": "^6.34.0",
"@wordpress/scripts": "^30.27.0",
"autoprefixer": "^10.4.22",
"concurrently": "^9.2.1",
"postcss": "^8.5.6",
"postcss-cli": "^11.0.1",
- "rtlcss": "^4.3.0",
- "stylelint-a11y": "^1.2.3"
+ "rtlcss": "^4.3.0"
},
"engines": {
"node": ">=16",
@@ -2049,6 +2049,37 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@double-great/stylelint-a11y": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@double-great/stylelint-a11y/-/stylelint-a11y-3.8.3.tgz",
+ "integrity": "sha512-mSRv32ygqKXLJSvJd8xjol2q9TBwWA7D3Cukk2xrpCME+BZ/oIv5lSA+MWn1yqZ7QP9/puiORLX/E02QVBZd+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^8.5.29",
+ "postcss-selector-parser": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=22.0.0"
+ },
+ "peerDependencies": {
+ "stylelint": ">=16.7.0"
+ }
+ },
+ "node_modules/@double-great/stylelint-a11y/node_modules/postcss-selector-parser": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz",
+ "integrity": "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/@dual-bundle/import-meta-resolve": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
@@ -14044,9 +14075,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "version": "3.3.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz",
+ "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==",
"dev": true,
"funding": [
{
@@ -15040,9 +15071,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "version": "8.5.32",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.32.tgz",
+ "integrity": "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==",
"dev": true,
"funding": [
{
@@ -15060,9 +15091,9 @@
],
"license": "MIT",
"dependencies": {
- "nanoid": "^3.3.11",
+ "nanoid": "^3.3.20",
"picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
+ "source-map-js": "^1.2.2"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -17503,9 +17534,9 @@
}
},
"node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
+ "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -18045,18 +18076,6 @@
"node": ">=18.12.0"
}
},
- "node_modules/stylelint-a11y": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/stylelint-a11y/-/stylelint-a11y-1.2.3.tgz",
- "integrity": "sha512-S/iiKFUsYBfa4suxP0pYQqoPB9R1+SnvxVuzHHlz9al0IWxLZzXlnZEqEez0zNOhVh5iO3rATUmDnbZE5wm/pQ==",
- "dev": true,
- "engines": {
- "node": ">=8.7.0"
- },
- "peerDependencies": {
- "stylelint": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0"
- }
- },
"node_modules/stylelint-config-recommended": {
"version": "14.0.1",
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
@@ -21572,6 +21591,28 @@
"integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
"dev": true
},
+ "@double-great/stylelint-a11y": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@double-great/stylelint-a11y/-/stylelint-a11y-3.8.3.tgz",
+ "integrity": "sha512-mSRv32ygqKXLJSvJd8xjol2q9TBwWA7D3Cukk2xrpCME+BZ/oIv5lSA+MWn1yqZ7QP9/puiORLX/E02QVBZd+w==",
+ "dev": true,
+ "requires": {
+ "postcss": "^8.5.29",
+ "postcss-selector-parser": "^7.1.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz",
+ "integrity": "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ }
+ }
+ },
"@dual-bundle/import-meta-resolve": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
@@ -30013,9 +30054,9 @@
}
},
"nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "version": "3.3.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz",
+ "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==",
"dev": true
},
"natural-compare": {
@@ -30730,14 +30771,14 @@
"dev": true
},
"postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "version": "8.5.32",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.32.tgz",
+ "integrity": "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==",
"dev": true,
"requires": {
- "nanoid": "^3.3.11",
+ "nanoid": "^3.3.20",
"picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
+ "source-map-js": "^1.2.2"
}
},
"postcss-calc": {
@@ -32374,9 +32415,9 @@
"dev": true
},
"source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
+ "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
"dev": true
},
"source-map-loader": {
@@ -32935,12 +32976,6 @@
}
}
},
- "stylelint-a11y": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/stylelint-a11y/-/stylelint-a11y-1.2.3.tgz",
- "integrity": "sha512-S/iiKFUsYBfa4suxP0pYQqoPB9R1+SnvxVuzHHlz9al0IWxLZzXlnZEqEez0zNOhVh5iO3rATUmDnbZE5wm/pQ==",
- "dev": true
- },
"stylelint-config-recommended": {
"version": "14.0.1",
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
diff --git a/wp-content/themes/twentytwenty/package.json b/wp-content/themes/twentytwenty/package.json
index f808f868f5..9a00cc7365 100644
--- a/wp-content/themes/twentytwenty/package.json
+++ b/wp-content/themes/twentytwenty/package.json
@@ -22,14 +22,14 @@
"npm": ">=9.8.1"
},
"devDependencies": {
+ "@double-great/stylelint-a11y": "^3.8.3",
"@wordpress/browserslist-config": "^6.34.0",
"@wordpress/scripts": "^30.27.0",
"autoprefixer": "^10.4.22",
"concurrently": "^9.2.1",
"postcss": "^8.5.6",
"postcss-cli": "^11.0.1",
- "rtlcss": "^4.3.0",
- "stylelint-a11y": "^1.2.3"
+ "rtlcss": "^4.3.0"
},
"browserslist": [
"extends @wordpress/browserslist-config"
diff --git a/wp-includes/version.php b/wp-includes/version.php
index a513619acb..1da7d202f4 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
-$wp_version = '7.2-beta4-65354';
+$wp_version = '7.2-beta4-65355';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.