Title: May 2026 – Make WordPress Core

---

#  Monthly Archives: May 2026

 [  ](https://profiles.wordpress.org/desrosj/) [Jonathan Desrosiers](https://profiles.wordpress.org/desrosj/)
5:47 pm _on_ May 28, 2026     
Tags: [core-committer-meetings ( 7 )](https://make.wordpress.org/core/tag/core-committer-meetings/),
[core-committers ( 8 )](https://make.wordpress.org/core/tag/core-committers/)   

# 󠀁[WordCamp Asia 2026 Core Committers Meeting](https://make.wordpress.org/core/2026/05/28/wordcamp-asia-2026-core-committers-meeting/)󠁿

On April 11, 2026, CoreCore Core is the set of software required to run WordPress.
The Core Development Team builds WordPress. Committers in attendance (including 
emeritus) at WordCampWordCamp WordCamps are casual, locally-organized conferences
covering everything related to WordPress. They're one of the places where the WordPress
community comes together to teach one another what they’ve learned throughout the
year and share the joy. [Learn more](https://central.wordcamp.org/about/). Asia 
in Mumbai, India gathered for a brief informal meeting.

There was no formal agenda, but a few goals for the meeting were mentioned at the
beginning:

 * Allow newer committers to meet more senior ones.
 * Allow anyone to raise questions, concerns, or suggestions that have been on their
   minds.
 * Just spend some time together chatting and getting to know each other.
 * Discuss short and medium term challenges.

Below are some brief notes from discussions that happened following[ Chatham House Rule](https://en.wikipedia.org/wiki/Chatham_House_Rule).

## 7.0 Release

The 7.0 timeline and active freeze on unrelated commits to `trunk` were discussed
before moving on to examining the remaining open tickets in the milestone. All findings
and thoughts were added publicly to each individual ticketticket Created for both
bug reports and feature development on the bug tracker..

A summary of the state of the real-time collaboration feature was given so that 
everyone in attendance was up to speed with the approaches being evaluated and what
the potential tradeoffs are. Attendees agreed to add any thoughts they had to the
respective tickets and pull requests.

It was flagged that there could be some differences between how MySQLMySQL MySQL
is a relational database management system. A database is a structured collection
of data where content, configuration and other options are stored. [https://www.mysql.com](https://www.mysql.com/)/
MariaDB and SQLite work. Since Playground runs on SQLite, there could be some compatibility
issues with the proposed table structures that surface. It could be helpful for 
SQLite support to be re-evaluated in WordPress Core to have a more firm policy around
support expectations.

## Code Syncing from `gutenberg` Repository

The new build tooling processes introduced during the 7.0 cycle through [#64393](https://core.trac.wordpress.org/ticket/64393)
were discussed.

 * In practice, it’s not clear what this means going forward when managing multiple
   branches.
 * For `7.0` and `trunk` (at the time of the meeting), the `gutenberg.sha` value
   pinned is from the `wp.7.0` branchbranch A directory in Subversion. WordPress
   uses branches to store the latest development code for each major release (3.9,
   4.0, etc.). Branches are then updated with code for any minor releases of that
   branch. Sometimes, a major version of WordPress and its minor versions are collectively
   referred to as a "branch", such as "the 4.0 branch"..
 * That would remain true for the `7.0` branch, but SVNSVN Subversion, the popular
   version control system (VCS) by the Apache project, used by WordPress to manage
   changes to its codebase. `trunk` will be updated to pin from the upstream `trunk`
   branch after the release.

One of the benefits of these build script changes is that it’s easier to sync code
maintained in the GutenbergGutenberg The Gutenberg project is the new Editor Interface
for WordPress. The editor improves the process and experience of creating new content,
making writing rich content much simpler. It uses ‘blocks’ to add richness rather
than shortcodes, custom HTML etc. [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
repository more often. What an ideal sync schedule could look like was discussed:

 * Sync on the week following a new release of the Gutenberg pluginPlugin A plugin
   is a piece of software containing a group of functions that can be added to a
   WordPress website. They can extend functionality or add new features to your 
   WordPress websites. WordPress plugins are written in the PHP programming language
   and integrate seamlessly with WordPress. These can be free in the WordPress.org
   Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
   or can be cost-based plugin from a third-party.. This allows for any `.1` and`.
   2` releases that may be necessary to occur.
 * During betaBeta A pre-release of software that is given out to a large group 
   of users to trial under real conditions. Beta versions have gone through alpha
   testing in-house and are generally fairly close in look, feel and function to
   the final product; however, design changes often occur as part of the process./
   RCrelease candidate One of the final stages in the version release cycle, this
   version signals the potential to be a final release to the public. Also see [alpha (beta)](https://make.wordpress.org/core/2026/05/?output_format=md#alpha-beta).
   periods, syncing weekly or prior to each pre-release version using a SHA value
   from the corresponding `wp/X.Y` branch for the `gutenberg.sha` property.

This practice does have some nuance that needs to be discussed more broadly. Mainly,
when SVN `trunk` is bumped to `X.Y+1-alpha`, it makes sense to also update the pinned
SHA value in `wordpress-develop` to represent the most recent Gutenberg plugin release.
While this makes sense in theory, it is counter to the current practice of “commit
to `trunk` first, then backportbackport A port is when code from one branch (or 
trunk) is merged into another branch or trunk. Some changes in WordPress point releases
are the result of backporting code from trunk to the release branch. to numbered
branches” because there will possibly be some divergence in SVN `trunk`.

There is also still some code that requires the manual creation of a pull request
to `wordpress-develop` from `gutenberg`, so the process is not 100% there just yet.

### Ways To Improve New Build Scripts

 * There are likely ways to improve how code is imported into the `wordpress-develop`
   repo so that it lands in more appropriate locations. Examples: no adminadmin (
   and super admin)-facing code in `wp-includes` or using insertion points for various
   points in `wordpress-develop` PHPPHP The web scripting language in which WordPress
   is primarily architected. WordPress requires PHP 7.4 or higher files to copy 
   relevant chunks of code.
 * The inline documentation for the code managed in the `gutenberg` repository is
   currently lacking important elements such as `@since` tags.
 * There is still friction between JavaScriptJavaScript JavaScript or JS is an object-
   oriented computer programming language commonly used to create interactive effects
   within web browsers. WordPress makes extensive use of JS for a better user experience.
   While PHP is executed on the server, JS executes within a user’s browser. [https://www.javascript.com](https://www.javascript.com/)-
   based and PHP-based functionality in this process.
 * There is more room to automate the process in general.

There was agreement that a good way to proceed would be to take inventory of what
manual workflows still exist even after the recent changes to how this is managed.

## Performance Team

It was noted that the Performance Team has experienced a decrease in active contributors
with only a small number who are regularly active. There are currently 7-10 individual
performance-focused plugins being maintained by the team.

There were two agreed upon take aways:

 * Stepping back to highlight the status and goals of each plugin could make it 
   easier for contributors who have not yet been involved to be brought up to speed
   and potentially attract new contributors.
 * There are a few high-potential plugins that need coordinated effort to get them
   to the finish line and integrated into Core.

## Looking Ahead to WordPress 7.1

The discussion transitioned from discussing those high-potential performance plugins
that could possibly be ready for a merge proposal to possible targets for the 7.1
cycle more broadly. Some of the ideas brought up were:

 * Retrying client-side media (was reverted and punted from 7.0).
 * Template Organization/Management (also reverted and punted from 7.0).
 * Front-end view transitions for all users (not just logged out). Still has implementation
   hurdles that need broader discussion.
 * Per-template styles
 * [Enhanced Responsive Images](https://wordpress.org/plugins/auto-sizes/) (`sizes
   ="auto"` support and improved `sizes` attributes for blockBlock Block is the 
   abstract term used to describe units of markup that, composed together, form 
   the content or layout of a webpage using the WordPress editor. The idea combines
   concepts of what in the past may have achieved with shortcodes, custom HTML, 
   and embed discovery into a single consistent API and user experience. themes).

_Props [@westonruter](https://profiles.wordpress.org/westonruter/) for peer review._

[#core-committer-meetings](https://make.wordpress.org/core/tag/core-committer-meetings/),
[#core-committers](https://make.wordpress.org/core/tag/core-committers/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F28%2Fwordcamp-asia-2026-core-committers-meeting%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/jorbin/) [Aaron Jorbin](https://profiles.wordpress.org/jorbin/)
2:47 am _on_ May 28, 2026     
Tags: [Classic Editor ( 2 )](https://make.wordpress.org/core/tag/classic-editor/),
hotfix   

# 󠀁[Hotfix available for #65286](https://make.wordpress.org/core/2026/05/28/hotfix-available-for-65286/)󠁿

It’s been just over a week since [WordPress 7.0 was released](https://wordpress.org/news/2026/05/armstrong/).
Planning for a maintenance release has begun, but in the interest of providing WordPress
site owners a high quality experience, a hotfix is available for [#65286](https://core.trac.wordpress.org/ticket/65286).
This issue affects users of the classic editor who have extended the post publishing
panel to add additional action buttons. A permanent fix is targeted for WordPress
7.0.1.

You can download and install either [Classic Editor version 1.7.0](https://wordpress.org/plugins/classic-editor/)
or [Hotfix version 1.4](https://wordpress.org/plugins/hotfix/) if this issue affects
a site you are own or manage.

props [@desrosj](https://profiles.wordpress.org/desrosj/), [@flixos90](https://profiles.wordpress.org/flixos90/),
[@joemcgill](https://profiles.wordpress.org/joemcgill/), [@jeffpaul](https://profiles.wordpress.org/jeffpaul/)
for review.

[#classic-editor](https://make.wordpress.org/core/tag/classic-editor/), [#hotfix](https://make.wordpress.org/core/tag/hotfix/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F28%2Fhotfix-available-for-65286%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/audrasjb/) [Jb Audras](https://profiles.wordpress.org/audrasjb/)
8:38 pm _on_ May 27, 2026     
Tags: [7.0 ( 71 )](https://make.wordpress.org/core/tag/7-0/),
7.0.1, [7.1 ( 6 )](https://make.wordpress.org/core/tag/7-1/), [core ( 730 )](https://make.wordpress.org/core/tag/core/),
[dev chat ( 908 )](https://make.wordpress.org/core/tag/dev-chat/)   

# 󠀁[Dev Chat summary: May 27, 2026](https://make.wordpress.org/core/2026/05/27/summary-dev-chat-may-27-2026/)󠁿

[Start](https://wordpress.slack.com/archives/C02RQBWTW/p1779894048526009) of the
meeting in SlackSlack Slack is a Collaborative Group Chat Platform [https://slack.com/](https://slack.com/).
The WordPress community has its own Slack Channel at [https://make.wordpress.org/chat/](https://make.wordpress.org/chat/),
facilitated by [@audrasjb](https://profiles.wordpress.org/audrasjb/) 🔗 [See the agenda post](https://make.wordpress.org/core/2026/05/27/dev-chat-agenda-may-27-2026/).

## Announcements 📢

### WordPress 7.0

[WordPress 7.0 “Armstrong”](https://wordpress.org/news/2026/05/armstrong/) was released
on May 20^(th)! 🚀

Some new dev notesdev note Each important change in WordPress Core is documented
in a developers note, (usually called dev note). Good dev notes generally include
a description of the change, the decision that led to this change, and a description
of how developers are supposed to work with that change. Dev notes are published
on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev
notes is particularly important when plugin/theme authors and WordPress developers
need to be aware of those changes.In general, all dev notes are compiled into a 
Field Guide at the beginning of the release candidate phase. were published for 
7.0:

 * [7.0 Accessibility Improvements](https://make.wordpress.org/core/2026/05/23/accessibility-improvements-in-wordpress-7-0/)
 * [Removing title attributes in author links](https://make.wordpress.org/core/2026/05/14/removing-title-attributes-in-author-link-functions/)
 * [7.0 Field Guide](https://make.wordpress.org/core/2026/05/14/wordpress-7-0-field-guide/)

### WordPress 7.0.1

We have some issues in the milestone, but nothing that deserves an immediate 7.0.1
release (this the below discussion concerning potential hotfixes, though).

[@jorbin](https://profiles.wordpress.org/jorbin/) [proposed](https://wordpress.slack.com/archives/C0A803Z8MA5/p1779893982861349)
to publish a call for volunteers in the next couple days to target middle or end
of June for the release.

### WordPress 7.1

WordPress 7.1-alpha is under active development.

Two posts were published concerning 7.1:

 * [Commence: Operation WP 7.1](https://make.wordpress.org/core/2026/05/20/commence-operation-wp-7-1/)
 * [WordPress 7.1 call for volunteers](https://make.wordpress.org/core/2026/05/21/wordpress-7-1-call-for-volunteers/).
   [@jeffpaul](https://profiles.wordpress.org/jeffpaul/) added that nominations 
   will go until the end of next week, aiming to have a team finalized a week or
   so after that.

### General

 * [Call for testing: Media Editor modal](https://make.wordpress.org/core/2026/05/21/media-editor-modal-call-for-testing/)
 * [PHP Support clarification](https://make.wordpress.org/core/2026/05/22/php-support-clarification-2026/)
 * [Extending unicode support in emails](https://make.wordpress.org/core/2026/05/22/extending-unicode-support-in-email-addresses-usernames-and-slugs/)
 * [Gutenberg 23.2](https://make.wordpress.org/core/2026/05/21/whats-new-in-gutenberg-23-2-21-may/)
 * [React 19 Upgrade in WordPress](https://make.wordpress.org/core/2026/05/27/react-19-upgrade-in-wordpress/)

## Discussion 💬

From [@masteradhoc](https://profiles.wordpress.org/masteradhoc/): 3 TracTrac An 
open source project by Edgewall Software that serves as a bug tracker and project
management tool for WordPress. tickets/PR are waiting for review:

 * [#65025](https://core.trac.wordpress.org/ticket/65025) – [PR11442](https://github.com/WordPress/wordpress-develop/pull/11442)
 * [#44498](https://core.trac.wordpress.org/ticket/44498) – [PR11444](https://github.com/WordPress/wordpress-develop/pull/11444)
 * [#56694](https://core.trac.wordpress.org/ticket/56694) – [PR11443](https://github.com/WordPress/wordpress-develop/pull/11443)

[@audrasjb](https://profiles.wordpress.org/audrasjb/) will review them in the next
days.

[@desrosj](https://profiles.wordpress.org/desrosj/) suggested to add a legal review
to [#65025](https://core.trac.wordpress.org/ticket/65025) and pinged [@4thhubbard](https://profiles.wordpress.org/4thhubbard/)
to organize that.

---

From [@jorbin](https://profiles.wordpress.org/jorbin/):

> [#65286](https://core.trac.wordpress.org/ticket/65286) is the ticketticket Created
> for both bug reports and feature development on the bug tracker. we are discussing.
> No actions are blocked, but the publishing screen on the non blockBlock Block 
> is the abstract term used to describe units of markup that, composed together,
> form the content or layout of a webpage using the WordPress editor. The idea combines
> concepts of what in the past may have achieved with shortcodes, custom HTML, and
> embed discovery into a single consistent API and user experience. editor looks
> extremely messy, so it’s worth cleaning it up while 7.0.1 is being worked on. 
> @desrosj had proposed putting a fix in the [Classic Editor plugin](https://wordpress.org/plugins/classic-editor/)
> which could absolutely work. I was thinking the [Hotfix plugin](https://wordpress.org/plugins/hotfix/)
> would make sense since it’s possible for this to affect custom post types and 
> people may not be using the classic editor pluginPlugin A plugin is a piece of
> software containing a group of functions that can be added to a WordPress website.
> They can extend functionality or add new features to your WordPress websites. 
> WordPress plugins are written in the PHP programming language and integrate seamlessly
> with WordPress. These can be free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
> or can be cost-based plugin from a third-party. at the same time. There are also
> other options […] but I think we should pick one and aim to get a solution out
> sooner rather than later.

[@jeffpaul](https://profiles.wordpress.org/jeffpaul/): “if we’ve not confirmed it
affects CPTs, then I’m in favor of the classic editor plugin (and also that its 
low priority in that case)”.

[@audrasjb](https://profiles.wordpress.org/audrasjb/): “I was about to say the same
thing, in fact Classic Editor (plugin) seems like a really good option”.

[@desrosj](https://profiles.wordpress.org/desrosj/): “My thinking about the Classic
Editor plugin instead of the Hotfix plugin is that sites that are choosing to remain
using the classic editor likely have this plugin installed and activated already.
So it fixes a wide number of sites just by pushing the update (provided they have
auto-updates enabled, of course). I think we could still include the fix in the 
Hotfix plugin as well (anyone experiencing the issue without the Classic Editor 
plugin could install and activate), but it has far fewer users at 4,000+ compared
to 9M+.”

[@audrasjb](https://profiles.wordpress.org/audrasjb/): “But it wouldn’t affect websites
where the Block Editor is disabled via a hook, or during CPT registration, etc.”

[@davidbaumwald](https://profiles.wordpress.org/davidbaumwald/) confirmed this affects
CPTs without the Classic Editor.

[@jorbin](https://profiles.wordpress.org/jorbin/): “I like the idea of both hotfix
and classic editor. I will also say that hotfix should always  have a lot less users
than classic editor since one is designed as a short term needed plugin and the 
other is the hotfix plugin”.

[@masteradhoc](https://profiles.wordpress.org/masteradhoc/) added that the issue
will be fixed on the WP Rocket plugin quite fast, as [a ticket is already open there](https://github.com/wp-media/wp-rocket/issues/8344).

[@jorbin](https://profiles.wordpress.org/jorbin/) and [@audrasjb](https://profiles.wordpress.org/audrasjb/)
noted that the Hotfix plugin should be Featured in the plugins list. [@audrasjb](https://profiles.wordpress.org/audrasjb/)
added that the plugin should also get a small assets refresh.

In conclusion, there is a path forward for the short term (use both Classic Editor
and Hotfix plugins), and [@jorbin](https://profiles.wordpress.org/jorbin/) and [@desrosj](https://profiles.wordpress.org/desrosj/)
will coordinate to put this together.

---

[@yaniiliev](https://profiles.wordpress.org/yaniiliev/) asked whether there are 
any changes that the coreCore Core is the set of software required to run WordPress.
The Core Development Team builds WordPress. team would like to see on the new profiles
page? Anything missing, anything feeling off? This will be discussed during next
week’s meeting. Feel free to comment this summary if you have anything to share 
about this topic.

[#7-0](https://make.wordpress.org/core/tag/7-0/), [#7-0-1](https://make.wordpress.org/core/tag/7-0-1/),
[#7-1](https://make.wordpress.org/core/tag/7-1/), [#core](https://make.wordpress.org/core/tag/core/),
[#dev-chat](https://make.wordpress.org/core/tag/dev-chat/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F27%2Fsummary-dev-chat-may-27-2026%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/jsnajdr/) [Jarda Snajdr](https://profiles.wordpress.org/jsnajdr/)
10:37 am _on_ May 27, 2026     
Tags: [7.1 ( 6 )](https://make.wordpress.org/core/tag/7-1/),
[dev-notes ( 620 )](https://make.wordpress.org/core/tag/dev-notes/), dev-notes-7-
1   

# 󠀁[React 19 Upgrade in WordPress](https://make.wordpress.org/core/2026/05/27/react-19-upgrade-in-wordpress/)󠁿

WordPress is upgrading from ReactReact React is a JavaScript library that makes 
it easy to reason about, construct, and maintain stateless and stateful user interfaces.
[https://reactjs.org](https://reactjs.org/) 18 to React 19. This change will first
ship in the GutenbergGutenberg The Gutenberg project is the new Editor Interface
for WordPress. The editor improves the process and experience of creating new content,
making writing rich content much simpler. It uses ‘blocks’ to add richness rather
than shortcodes, custom HTML etc. [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
pluginPlugin A plugin is a piece of software containing a group of functions that
can be added to a WordPress website. They can extend functionality or add new features
to your WordPress websites. WordPress plugins are written in the PHP programming
language and integrate seamlessly with WordPress. These can be free in the WordPress.
org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
or can be cost-based plugin from a third-party. (version 23.3) and is expected to
land in WordPress 7.1.

In June 2024, WordPress 6.6 shipped React 18.3, which added deprecation warnings
to help developers prepare for this upgrade (see [Preparation for React 19 Upgrade](https://make.wordpress.org/core/2024/06/07/preparation-for-react-19-upgrade/)).
Now that the migrationMigration Moving the code, database and media files for a 
website site from one server to another. Most typically done when changing hosting
companies. work is complete, this post covers everything plugin and theme developers
need to know.

## Timeline

 * **Gutenberg plugin**: React 19 will be merged into the Gutenberg `trunk` branchbranch
   A directory in Subversion. WordPress uses branches to store the latest development
   code for each major release (3.9, 4.0, etc.). Branches are then updated with 
   code for any minor releases of that branch. Sometimes, a major version of WordPress
   and its minor versions are collectively referred to as a "branch", such as "the
   4.0 branch". after the 7.0 release. It will ship in a Gutenberg release shortly
   after, with npm packages following.
 * **WordPress CoreCore Core is the set of software required to run WordPress. The
   Core Development Team builds WordPress.**: The upgrade is targeted for WordPress
   7.1, providing a full release cycle for testing.

We encourage developers to begin testing as early as possible once the Gutenberg
plugin release with React 19 is available.

## Removed APIs

The following functions have been removed from React 19 after a long deprecation
period. In WordPress, these were deprecated since WordPress 6.2 (March 2023):

### `render` and `hydrate`

`ReactDOM.render()` and `ReactDOM.hydrate()` have been removed. Use `createRoot()`
and `hydrateRoot()` instead:

    ```notranslate
    // Before (deprecated).
    import { render } from '@wordpress/element';
    render( <App />, document.getElementById( 'root' ) );

    // After.
    import { createRoot } from '@wordpress/element';
    const root = createRoot( document.getElementById( 'root' ) );
    root.render( <App /> );
    ```

### `unmountComponentAtNode`

`ReactDOM.unmountComponentAtNode()` has been removed. Use `root.unmount()` instead:

    ```notranslate
    // Before (deprecated).
    import { unmountComponentAtNode } from '@wordpress/element';
    unmountComponentAtNode( document.getElementById( 'root' ) );

    // After.
    root.unmount();
    ```

### `findDOMNode`

`ReactDOM.findDOMNode()` has been removed from React 19. However, `@wordpress/element`
continues to export a polyfill for `findDOMNode` to ease the transition. Note that
the `react-dom` script itself will no longer include this function — only the `wp-
element` script will provide it.

We recommend migrating away from `findDOMNode` by using refs instead, as it was 
already discouraged in earlier versions of React.

### `defaultProps` for function components

As noted in the [React 18.3 dev note](https://make.wordpress.org/core/2024/06/07/preparation-for-react-19-upgrade/),`
defaultProps` for function components is no longer supported. Use ES6 default parameters
instead:

    ```notranslate
    // Before (no longer supported).
    function MyComponent( { size } ) {
    	return <div style={ { width: size } } />;
    }
    MyComponent.defaultProps = { size: 100 };

    // After.
    function MyComponent( { size = 100 } ) {
    	return <div style={ { width: size } } />;
    }
    ```

## Changed behavior

### The `inert` attribute is now a boolean

The HTMLHTML HyperText Markup Language. The semantic scripting language primarily
used for outputting content in web browsers. `inert` attribute has changed from 
a `string` type to a `boolean` in React 19. If your code sets `inert` as a string(`
inert="true"` or `inert=""`), update it to use a boolean value:

    ```notranslate
    // Before.
    <div inert="" />
    <div inert="true" />

    // After.
    <div inert />
    <div inert={ true } />
    ```

### Ref callbacks can return cleanup functions

Ref callbacks can now optionally return a cleanup function, similar to `useEffect`.
React will call the cleanup function when the element is removed from the DOM. This
is a powerful new pattern that reduces the need for separate `useEffect` hooksHooks
In WordPress theme and development, hooks are functions that can be applied to an
action or a Filter in WordPress. Actions are functions performed when a certain 
event occurs in WordPress. Filters allow you to modify certain functions. Arguments
used to hook both filters and actions look the same. to manage DOM element lifecycle.

    ```notranslate
    // New pattern: ref callback with cleanup.
    <div ref={ ( node ) => {
    	if ( node ) {
    		const handler = () => { /* ... */ };
    		node.addEventListener( 'scroll', handler );
    		return () => node.removeEventListener( 'scroll', handler );
    	}
    } } />
    ```

**Important**: If your existing ref callbacks return a value (e.g., returning something
other than `undefined`), React 19 may interpret that as a cleanup function. Make
sure your ref callbacks either return `undefined` or a valid cleanup function.

### `forwardRef` is no longer needed

In React 19, function components can accept `ref` as a regular prop. `forwardRef`
still works but is considered deprecated and will be removed in a future version.

    ```notranslate
    // Before.
    const MyInput = forwardRef( ( props, ref ) => {
    	return <input ref={ ref } { ...props } />;
    } );

    // After.
    function MyInput( { ref, ...props } ) {
    	return <input ref={ ref } { ...props } />;
    }
    ```

## New APIs available

React 19 introduces several new APIs, now available through `@wordpress/element`:

 * [`use`](https://react.dev/reference/react/use) — Read a resource (Promise or 
   Context) during render.
 * [`useActionState`](https://react.dev/reference/react/useActionState) — Manage
   state based on form action results.
 * [`useOptimistic`](https://react.dev/reference/react/useOptimistic) — Show optimistic
   UIUI User interface state while an async action is in progress.
 * [`useFormStatus`](https://react.dev/reference/react-dom/hooks/useFormStatus) —
   Access the status of a parent form.

From React 19.2:

 * [`Activity`](https://react.dev/reference/react/Activity) — Hide and show parts
   of the UI while preserving their state and DOM.
 * [`useEffectEvent`](https://react.dev/reference/react/useEffectEvent) — Extract
   non-reactive logic from effects.

## TypeScript type changes

React 19 includes a major update to its TypeScript types. Developers using TypeScript
should be aware of the following:

### Ref types

The `MutableRefObject` type is deprecated. The type inference rules for `useRef`
and `RefObject` have changed, especially regarding declaring values as “`T` or `
null`“. Update your code to use the new `RefObject` type.

### `ReactElement` props type changed from `any` to `unknown`

The `ReactElement` type now types its props as `unknown` instead of `any`. This 
reveals previously unsound access to props that was silently allowed before. This
manifests especially in `cloneElement` calls, where reading or setting props on 
a cloned element now requires the element type to explicitly support those props.

### HTML element prop conflicts

Many WordPress components extend native HTML elements, accepting all props that (
for example) a `<div>` accepts plus custom props. If the HTML standard adds a new
prop to `<div>` with a name that conflicts with a custom prop, TypeScript may report
errors. Developers may need to resolve naming conflicts (as was the case with `onToggle`
in this migration).

For a comprehensive list of TypeScript changes, see the [React 19 typechecking guide](https://react.dev/blog/2024/04/25/react-19-upgrade-guide#typescript-changes).

## How to test your plugin

 1. **Install the latest Gutenberg plugin** that includes React 19 (version TBD).
 2. **Enable development mode** (`SCRIPT_DEBUG` set to `true` in `wp-config.php`) to
    get detailed warnings and errors.
 3. **Test all major features** of your plugin — especially any code that uses the 
    removed APIs (`render`, `hydrate`, `unmountComponentAtNode`, `findDOMNode`, `defaultProps`
    for function components).
 4. **Check the browser console** for React warnings and errors. React 19 has improved
    error reporting and may surface issues that were previously silent.
 5. **Test iframeiframe iFrame is an acronym for an inline frame. An iFrame is used
    inside a webpage to load another HTML document and render it. This HTML document
    may also contain JavaScript and/or CSS which is loaded at the time when iframe 
    tag is parsed by the user’s browser. interactions** if your plugin renders content
    inside iframes or communicates between frames, as there have been subtle behavior
    changes in this area.

## Further reading

 * [Official React 19 upgrade guide](https://react.dev/blog/2024/04/25/react-19-upgrade-guide)—
   Full list of breaking changes, deprecations, and new features.
 * [React 19 blog post](https://react.dev/blog/2024/12/05/react-19) — Overview of
   what’s new in React 19.
 * [Gutenberg tracking issue #71336](https://github.com/WordPress/gutenberg/issues/71336)—
   Tracking the migration effort.
 * [Gutenberg PR #61521](https://github.com/WordPress/gutenberg/pull/61521) — The
   main implementation PR.
 * [Preparation for React 19 Upgrade (WP 6.6 dev note)](https://make.wordpress.org/core/2024/06/07/preparation-for-react-19-upgrade/)—
   The earlier dev notedev note Each important change in WordPress Core is documented
   in a developers note, (usually called dev note). Good dev notes generally include
   a description of the change, the decision that led to this change, and a description
   of how developers are supposed to work with that change. Dev notes are published
   on Make/Core blog during the beta phase of WordPress release cycle. Publishing
   dev notes is particularly important when plugin/theme authors and WordPress developers
   need to be aware of those changes.In general, all dev notes are compiled into
   a Field Guide at the beginning of the release candidate phase. from the React
   18.3 upgrade.

## Call for testing

We encourage all plugin and theme developers to test their code with the Gutenberg
plugin as soon as the React 19 release is available. Early testing helps us identify
and fix issues before the upgrade reaches WordPress Core. If you encounter bugs,
please report them on the [Gutenberg GitHub repository](https://github.com/WordPress/gutenberg/issues/new/choose).

---

Props to [@tyxla](https://profiles.wordpress.org/tyxla/), [@Mamaduka](https://profiles.wordpress.org/mamaduka/),
[@jsnajdr](https://profiles.wordpress.org/jsnajdr/), [@ellatrix](https://profiles.wordpress.org/ellatrix/),
[@aduth](https://profiles.wordpress.org/aduth/), [@youknowriad](https://profiles.wordpress.org/youknowriad/),
and [@mciampini](https://profiles.wordpress.org/mciampini/) for their contributions
to this migration.

[#7-1](https://make.wordpress.org/core/tag/7-1/), [#dev-notes](https://make.wordpress.org/core/tag/dev-notes/),
[#dev-notes-7-1](https://make.wordpress.org/core/tag/dev-notes-7-1/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F27%2Freact-19-upgrade-in-wordpress%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/amykamala/) [Amy Kamala](https://profiles.wordpress.org/amykamala/)
1:11 am _on_ May 27, 2026     
Tags: [7.0 ( 71 )](https://make.wordpress.org/core/tag/7-0/),
[agenda ( 1,130 )](https://make.wordpress.org/core/tag/agenda/), [core ( 730 )](https://make.wordpress.org/core/tag/core/),
[dev chat ( 908 )](https://make.wordpress.org/core/tag/dev-chat/)   

# 󠀁[Dev Chat Agenda – May 27, 2026](https://make.wordpress.org/core/2026/05/27/dev-chat-agenda-may-27-2026/)󠁿

The next WordPress Developers Chat will take place on [Wednesday, May 27, 2026, at 15:00 UTC](https://www.timeanddate.com/worldclock/fixedtime.html?iso=20260527T1500)
in the [core](https://wordpress.slack.com/messages/core/) channel on [Make WordPress Slack](https://make.wordpress.org/chat/).

The live meeting will focus on the discussion for upcoming releases, and have an
open floor section.

The various curated agenda sections below refer to additional items. If you have
ticketticket Created for both bug reports and feature development on the bug tracker.
requests for help, please continue to post details in the comments section at the
end of this agenda or bring them up during the dev chat.

## Announcements 📢

### CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Development

 * [WordPress 7.0 “Armstrong”](https://wordpress.org/news/2026/05/armstrong/)
 * New 7.0 Dev Notesdev note Each important change in WordPress Core is documented
   in a developers note, (usually called dev note). Good dev notes generally include
   a description of the change, the decision that led to this change, and a description
   of how developers are supposed to work with that change. Dev notes are published
   on Make/Core blog during the beta phase of WordPress release cycle. Publishing
   dev notes is particularly important when plugin/theme authors and WordPress developers
   need to be aware of those changes.In general, all dev notes are compiled into
   a Field Guide at the beginning of the release candidate phase.:
    - [7.0 Accessibility Improvements](https://make.wordpress.org/core/2026/05/23/accessibility-improvements-in-wordpress-7-0/)
    - [Removing title attributes in author links](https://make.wordpress.org/core/2026/05/14/removing-title-attributes-in-author-link-functions/)
    - [7.0 Field Guide](https://make.wordpress.org/core/2026/05/14/wordpress-7-0-field-guide/)
 * [Commence: Operation WP 7.1](https://make.wordpress.org/core/2026/05/20/commence-operation-wp-7-1/)
 * [WordPress 7.1 call for volunteers](https://make.wordpress.org/core/2026/05/21/wordpress-7-1-call-for-volunteers/)

### General announcements

 * [Call for testing: Media Editor modal](https://make.wordpress.org/core/2026/05/21/media-editor-modal-call-for-testing/)
 * [PHP Support clarification](https://make.wordpress.org/core/2026/05/22/php-support-clarification-2026/)
 * [Extending unicode support in emails](https://make.wordpress.org/core/2026/05/22/extending-unicode-support-in-email-addresses-usernames-and-slugs/)
 * [Gutenberg 23.2](https://make.wordpress.org/core/2026/05/21/whats-new-in-gutenberg-23-2-21-may/)

## Discussions 💬

_The discussion section of the agenda is for discussing important topics affecting
the upcoming release or larger initiatives that impact the Core Team. To nominate
a topic for discussion, please leave a comment on this agenda with a summary of 
the topic, any relevant links that will help people get context for the discussion,
and what kind of feedback you are looking for from others participating in the discussion_.

## Open floor  🎙️

Any topic can be raised for discussion in the comments, as well as requests for 
assistance on tickets. Tickets in the milestone for the next major or maintenance
release will be prioritized.
Please include details of tickets / PRs and the links
in the comments, and indicate whether you intend to be available during the meeting
for discussion or will be async.

_Props to [@audrasjb](https://profiles.wordpress.org/audrasjb/) for collaboration
and review._

[#7-0](https://make.wordpress.org/core/tag/7-0/), [#agenda](https://make.wordpress.org/core/tag/agenda/),
[#core](https://make.wordpress.org/core/tag/core/), [#dev-chat](https://make.wordpress.org/core/tag/dev-chat/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F27%2Fdev-chat-agenda-may-27-2026%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/joedolson/) [Joe Dolson](https://profiles.wordpress.org/joedolson/)
2:18 pm _on_ May 23, 2026     
Tags: [7.0 ( 71 )](https://make.wordpress.org/core/tag/7-0/),
[accessibility ( 58 )](https://make.wordpress.org/core/tag/accessibility/), [dev-notes ( 620 )](https://make.wordpress.org/core/tag/dev-notes/),
[dev-notes-7-0 ( 22 )](https://make.wordpress.org/core/tag/dev-notes-7-0/)   

# 󠀁[Accessibility Improvements in WordPress 7.0](https://make.wordpress.org/core/2026/05/23/accessibility-improvements-in-wordpress-7-0/)󠁿

WordPress 7.0 continues to polish accessibilityAccessibility Accessibility (commonly
shortened to a11y) refers to the design of products, devices, services, or environments
for people with disabilities. The concept of accessible design ensures both “direct
access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s
assistive technology (for example, computer screen readers). (https://en.wikipedia.
org/wiki/Accessibility) across WordPress CoreCore Core is the set of software required
to run WordPress. The Core Development Team builds WordPress. and GutenbergGutenberg
The Gutenberg project is the new Editor Interface for WordPress. The editor improves
the process and experience of creating new content, making writing rich content 
much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML
etc. [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/), advancing
the goals to meet accessibility standards. WordPress 7.0 includes fixes across the
platform, improving media management, usability for voice control, and improvements
to color contrast with the new adminadmin (and super admin) color scheme. The editor
ships with new blocks and improvements to editor navigation and interaction.

## Core

Improvements to WordPress Core include 24 accessibility enhancements and bugbug 
A bug is an error or unexpected result. Performance improvements, code optimization,
and are considered enhancements, not defects. After feature freeze, only bugs are
dealt with, with regressions (adverse changes from the previous version) being the
highest priority. fixes. Major changes include enhancements to the media library
for voice control users and the import of alternative text from image metadata, 
improvements to control semantics, and fixes to color contrast.

### Media

Significant changes to media will improve both the editor and user experience. In
WordPress 7.0, using the media library with voice control technology is now possible.
Alternative text embedded in photo metaMeta Meta is a term that refers to the inside
workings of a group. For us, this is the team that works on internal WordPress sites
like WordCamp Central and Make WordPress. data will be imported and automatically
set as the image text alternative when available.

 * [#23562](https://core.trac.wordpress.org/ticket/23562) – Using Speech Recognition
   Software with the Add Media Panel
 * [#55535](https://core.trac.wordpress.org/ticket/55535) – Pre-populate Image Alt
   Text field with IPTC Photo Metadata Standard Alt Text
 * [#63895](https://core.trac.wordpress.org/ticket/63895) – Accessibility: Alt Text
   Metadata is not imported but Description is
 * [#63984](https://core.trac.wordpress.org/ticket/63984) – Assess if the tabpanels
   in the media modals should receive focus
 * [#64374](https://core.trac.wordpress.org/ticket/64374) – Alt text helper text
   can be more educational and visual indicator of opening in new tab
 * [#63980](https://core.trac.wordpress.org/ticket/63980) – Set featured imageFeatured
   image A featured image is the main image used on your blog archive page and is
   pulled when the post or page is shared on social media. The image can be used
   to display in widget areas on your site or in a summary list of posts. button
   incorrectly coded as link and missing required ARIA attributes

### Admin

Improvements to predictability and verbosity for screen reader users have been made
across the admin to provide users with a more consistent and stable interface.

 * [#23432](https://core.trac.wordpress.org/ticket/23432) – Review usage of `target
   ="_blank"` in the admin
 * [#33002](https://core.trac.wordpress.org/ticket/33002) – List table: avoid redundant
   Edit links and reduce noise for screen readers
 * [#43084](https://core.trac.wordpress.org/ticket/43084) – dashboard confuses published
   posts count with all posts
 * [#64065](https://core.trac.wordpress.org/ticket/64065) – Dragging theme/pluginPlugin
   A plugin is a piece of software containing a group of functions that can be added
   to a WordPress website. They can extend functionality or add new features to 
   your WordPress websites. WordPress plugins are written in the PHP programming
   language and integrate seamlessly with WordPress. These can be free in the WordPress.
   org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
   or can be cost-based plugin from a third-party. ZIP outside file input field,
   downloads file instead of uploading.
 * [#64375](https://core.trac.wordpress.org/ticket/64375) – Set `word-break` property
   in screen reader only css.
 * [#64313](https://core.trac.wordpress.org/ticket/64313) – Color Contrast raises
   errors in automated tests for WordPress Dashboard
 * [#64382](https://core.trac.wordpress.org/ticket/64382) – Post search input “close”(
   ×) button should use `cursor: pointer`
 * [#64811](https://core.trac.wordpress.org/ticket/64811) – Zero comment notification
   in admin toolbar has insufficient color contrast

### Themes

Numerous improvements to theme template functions and core themes.

 * [#62835](https://core.trac.wordpress.org/ticket/62835) – Remove title attributes
   from author link functions
 * [#62982](https://core.trac.wordpress.org/ticket/62982) – Twenty Twenty-Five: 
   The Written by pattern on single posts has too low color contrast in some variations
 * [#64064](https://core.trac.wordpress.org/ticket/64064) – Twenty Ten: remove auto-
   focus script from 404 template
 * [#64594](https://core.trac.wordpress.org/ticket/64594) – BlockBlock Block is 
   the abstract term used to describe units of markup that, composed together, form
   the content or layout of a webpage using the WordPress editor. The idea combines
   concepts of what in the past may have achieved with shortcodes, custom HTML, 
   and embed discovery into a single consistent API and user experience. Support:
   Allow serialization skipping for ariaLabel
 * [#64361](https://core.trac.wordpress.org/ticket/64361) – Leverage HTMLHTML HyperText
   Markup Language. The semantic scripting language primarily used for outputting
   content in web browsers. APIAPI An API or Application Programming Interface is
   a software intermediary that allows programs to interact with each other and 
   share data in limited, clearly defined ways. to implement block template skip
   link

### Miscellaneous

Improvements in the classic editor, code editing, the CustomizerCustomizer Tool 
built into WordPress core that hooks into most modern themes. You can use it to 
preview and modify many of your site’s appearance settings., and login and registration.

 * [#63981](https://core.trac.wordpress.org/ticket/63981) – TaxonomyTaxonomy A taxonomy
   is a way to group things together. In WordPress, some common taxonomies are category,
   link, tag, or post format. [https://codex.wordpress.org/Taxonomies#Default_Taxonomies](https://codex.wordpress.org/Taxonomies#Default_Taxonomies).
   meta box tabs not programmatically identified
 * [#42822](https://core.trac.wordpress.org/ticket/42822) – CodeMirror: HTML attributes
   values hints not fully operable with a keyboard
 * [#60726](https://core.trac.wordpress.org/ticket/60726) – The WordPress core password
   reset needs to pre-populate the username to meet WCAGWCAG WCAG is an acronym 
   for Web Content Accessibility Guidelines. These guidelines are helping make sure
   the internet is accessible to all people no matter how they would need to access
   the internet (screen-reader, keyboard only, etc) [https://www.w3.org/TR/WCAG21/](https://www.w3.org/TR/WCAG21/).
   2.2
 * [#63861](https://core.trac.wordpress.org/ticket/63861) – Explore removing wpmu
   activation styles
 * [#64013](https://core.trac.wordpress.org/ticket/64013) – Color contrast below
   WCAG standards for newly-added items in customizer menus

## Gutenberg

Changes within Gutenberg include 16 accessibility fixes and enhancements, including
the addition of new interactive blocks that have undergone accessibility reviews.
Numerous fundamental components have had accessibility improvements to ensure that
interfaces across the editor are more consistent and understandable. 

While there are relatively few accessibility fixes and enhancements in the editor
for WordPress 7.0, there are many new interfaces that have undergone accessibility
review, per the WordPress commitment to meeting WCAG 2.2 at level AA for all new
and updated code. These include the [Visual Revisions inspector](https://github.com/WordPress/gutenberg/issues/77530),
Gallery lightboxes, and the new Connectors interface.

### Bug fixes: 

 * [#75165](https://github.com/WordPress/gutenberg/pull/75165) – RangeControl: support
   forced-colors mode
 * [#66735](https://github.com/WordPress/gutenberg/pull/66735) – Resize meta box
   pane without ResizableBox
 * [#74387](https://github.com/WordPress/gutenberg/pull/74387) – Use 12px as minimum
   font size for warning on fit text (see also [#73730](https://github.com/WordPress/gutenberg/pull/73730))
 * [#74205](https://github.com/WordPress/gutenberg/pull/74205) – add ariaKeyShortcut
   and shortcutFormats exports
 * [#73674](https://github.com/WordPress/gutenberg/pull/73674) – Fix block toolbar
   icon CSSCSS Cascading Style Sheets. when using show icon label preference
 * [#73245](https://github.com/WordPress/gutenberg/pull/73245) – Make DataViews 
   table checkbox permanently visible
 * [#72997](https://github.com/WordPress/gutenberg/pull/72997) – DataViews: Add 
   grid keyboard navigation
 * [#70787](https://github.com/WordPress/gutenberg/pull/70787) – Button: update 
   font-weight to 500 
 * [#75689](https://github.com/WordPress/gutenberg/pull/75689) – DataForm: Fix focus
   loss and refactor Card layout
 * [#75271](https://github.com/WordPress/gutenberg/pull/75271) – Accordion block:
   Add list view support.
 * [#75407](https://github.com/WordPress/gutenberg/pull/75407) – Gallery: Add list
   view block support
 * [#73823](https://github.com/WordPress/gutenberg/pull/73823) – Add Heading level
   variations

### New Features:

 * [#62906](https://github.com/WordPress/gutenberg/pull/62906) – Gallery: Add lightbox
   support
 * [#16484](https://github.com/WordPress/gutenberg/issues/16484) – Add an Icons 
   block
 * [#75833](https://github.com/WordPress/gutenberg/pull/75833) – Add Connectors 
   screen and API
 * [#74742](https://github.com/WordPress/gutenberg/issues/74742) – Add visual revisionsRevisions
   The WordPress revisions system stores a record of each saved draft or published
   update. The revision system allows you to see what changes were made in each 
   revision by dragging a slider (or using the Next/Previous buttons). The display
   indicates what has changed in each revision.

_Reviewed by _[@amykamala](https://profiles.wordpress.org/amykamala/), [@sabernhardt](https://profiles.wordpress.org/sabernhardt/)

[#7-0](https://make.wordpress.org/core/tag/7-0/), [#accessibility](https://make.wordpress.org/core/tag/accessibility/),
[#dev-notes](https://make.wordpress.org/core/tag/dev-notes/), [#dev-notes-7-0](https://make.wordpress.org/core/tag/dev-notes-7-0/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F23%2Faccessibility-improvements-in-wordpress-7-0%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/agulbra/) [agulbra](https://profiles.wordpress.org/agulbra/)
7:46 pm _on_ May 22, 2026     
Tags: charset, [email ( 4 )](https://make.wordpress.org/core/tag/email/),
unicode   

# 󠀁[Extending Unicode support in email addresses.](https://make.wordpress.org/core/2026/05/22/extending-unicode-support-in-email-addresses-usernames-and-slugs/)󠁿

Eleven years ago, in [Core-31992](https://core.trac.wordpress.org/ticket/31992),
someone proposed allowing non-US-ASCII email address support in WordPress. The software
world has changed considerably since then: internationalized domain names and paths
are uniformly handled in browsers, email systems support the wide range of Unicode
characters as raw UTF-8, and UTF-8 is the only recommended text encoding for interchange
between systems. This means that people are free to use their own names when communicating
with others, whether they are _Jake_, _Klára_, _আরিয়া _, _അമൽ_, or any other name
containing letters outside the A-Z range. Unfortuantely, WordPress has not kept 
up with these changes, and that’s what this post is all about.

This post is a _request for comment _on adding that support. There are a number 
of complications with potentially far-reaching implications.

## TL;DR

 * WordPress’ email sanitization is based on US-ASCII characters and needs to be
   relaxed to allow for valid UTF-8, but this introduces new risks, including but
   not limited to: confusable characters, equivalence through normalization, and
   non-visible characters.
 * Sites whose databases cannot store full UTF-8 may fail to save valid email addresses.
   This could be confusing to the site owner and to people attempting to sign up
   on the site unless properly communicated.
 * Any additional code that assumes emails are encoded as single-byte US-ASCII will
   need updating, specifically because it was always an invariant before that emails
   would not contain multi-byte Unicode characters. Filters may start seeing characters
   they believed were impossible to receive.

If you have experience with email issues, deployDeploy Launching code from a local
development environment to the production web server, so that it's available to 
visitors. email services, or know about certain critical aspects of this proposal,
please share your thoughts here or in [Core-31992](https://core.trac.wordpress.org/ticket/31992).

 [Continue reading →](https://make.wordpress.org/core/2026/05/22/extending-unicode-support-in-email-addresses-usernames-and-slugs/#more-121742)

[#charset](https://make.wordpress.org/core/tag/charset/), [#email](https://make.wordpress.org/core/tag/email/),
[#unicode](https://make.wordpress.org/core/tag/unicode/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F22%2Fextending-unicode-support-in-email-addresses-usernames-and-slugs%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/johnbillion/) [John Blackbourn](https://profiles.wordpress.org/johnbillion/)
6:39 pm _on_ May 22, 2026     
Tags: [PHP ( 78 )](https://make.wordpress.org/core/tag/php/),
[PHP 8.0 ( 6 )](https://make.wordpress.org/core/tag/php-8-0/), [php-compatibility ( 5 )](https://make.wordpress.org/core/tag/php-compatibility/)

# 󠀁[PHP support clarification, spring 2026 edition](https://make.wordpress.org/core/2026/05/22/php-support-clarification-2026/)󠁿

**tl;dr:** Use of the “betaBeta A pre-release of software that is given out to a
large group of users to trial under real conditions. Beta versions have gone through
alpha testing in-house and are generally fairly close in look, feel and function
to the final product; however, design changes often occur as part of the process.”
label for PHPPHP The web scripting language in which WordPress is primarily architected.
WordPress requires PHP 7.4 or higher support has been retired and has been retroactively
removed from all versions.

 * WordPress 6.9 and 7.0 are now documented as fully supporting PHP 8.5
 * WordPress 6.8 and later are now documented as fully supporting PHP 8.4
 * WordPress 6.4 and later are now documented as fully supporting PHP 8.3

Due to the acknowledgement that WordPress is rarely used in isolation (without any
theme or plugins), support for each version of PHP 8 has [up until now been labelled as “beta”](https://make.wordpress.org/core/2020/11/23/wordpress-and-php-8-0/)
until its usage surpasses 10% on any given version of WordPress.

Since version 8.0, the PHP team has regularly shipped stable updates in the 8.x 
series. This means the work required to make plugins and themes compatible with 
the newer versions is much lower, and as such use of the “beta” label has been retired.
The label has been removed retroactively from all versions. This will provide clarity
and confidence to users, and encourages web hosts, developers, and users to continue
updating to the latest versions of PHP.

Refer to the handbook page for documentation on [PHP compatibility and WordPress versions](https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/).

## What prompted this change?

[The criteria for removing the “beta support” label from any given version of WordPress](https://make.wordpress.org/core/2023/06/20/proposal-criteria-for-removing-beta-support-from-each-php-8-version/)
were adopted in 2023 after remaining PHP compatibility issues were resolved. [Use of the “compatible with exceptions” label was retired in April last year](https://make.wordpress.org/core/2025/04/09/php-8-support-clarification/)
and the number and significance of reported compatibility exceptions remains extremely
low.

Additionally it’s become apparent that the “beta” label has made some end users 
and web hosts reluctant to update to newer versions of PHP, and caused some developers
of plugins and themes to delay testing and supporting newer versions of PHP.

This label has served its purpose over the years, but can now be retired in order
to continue increasing the adoption of newer versions of PHP throughout the ecosystem.

## What’s the minimum supported PHP version?

The minimum _recommended_ PHP version remains at 8.3. The minimum _supported_ PHP
version is 7.4 since WordPress 7.0. See [the Requirements page](https://wordpress.org/about/requirements/)
for all the info.

## How and why should I update PHP?

Keeping PHP up to date on your web server ensures your websites remain as performant
and secure as possible. Read [the guide to updating PHP](https://wordpress.org/support/update-php/).

_Props to [@garyj](https://profiles.wordpress.org/garyj/) [@westonruter](https://profiles.wordpress.org/westonruter/)
and [@jorbin](https://profiles.wordpress.org/jorbin/) for pre-publishing feedback._

[#php](https://make.wordpress.org/core/tag/php/), [#php-8-0](https://make.wordpress.org/core/tag/php-8-0/),
[#php-compatibility](https://make.wordpress.org/core/tag/php-compatibility/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F22%2Fphp-support-clarification-2026%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/ramonopoly/) [ramonopoly](https://profiles.wordpress.org/ramonopoly/)
11:57 pm _on_ May 21, 2026     
Tags: [core-editor ( 751 )](https://make.wordpress.org/core/tag/core-editor/),
[gutenberg ( 542 )](https://make.wordpress.org/core/tag/gutenberg/), [media ( 92 )](https://make.wordpress.org/core/tag/media/),
[media modal ( 4 )](https://make.wordpress.org/core/tag/media-modal/)   

# 󠀁[Media Editor Modal: call for testing](https://make.wordpress.org/core/2026/05/21/media-editor-modal-call-for-testing/)󠁿

The addition of a free-form image cropper in the BlockBlock Block is the abstract
term used to describe units of markup that, composed together, form the content 
or layout of a webpage using the WordPress editor. The idea combines concepts of
what in the past may have achieved with shortcodes, custom HTML, and embed discovery
into a single consistent API and user experience. Editor has been a [long-standing feature request](https://github.com/WordPress/gutenberg/issues/22582).
A GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress.
The editor improves the process and experience of creating new content, making writing
rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes,
custom HTML etc. [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
experiment that integrates this and other image editing features in a [“Media Editor](https://github.com/WordPress/gutenberg/issues/73771)
[Modal”](https://github.com/WordPress/gutenberg/issues/73771) is ready for testing
and feedback.

## What is it?

The Media Editor Modal replaces the existing inline cropping tool in the Block Editor.
The modal pattern keeps the familiar Crop button entry point, and brings freeform
and aspect-ratio cropping, flip, fine-grained and snap rotation, and metadata editing
into one dedicated workflow.

Under the hood, the modal consumes a coreCore Core is the set of software required
to run WordPress. The Core Development Team builds WordPress. collection custom 
tools and components that will eventually live in a WordPress package. This will
remove the reliance on third-party cropping libraries.

## Why the change?

Image cropping in the Block Editor hasn’t changed much since its [introduction](https://github.com/WordPress/gutenberg/pull/21024).
The existing inline image cropper is built on top of the [react-easy-crop](https://github.com/ValentinH/react-easy-crop)
library. This implementation has a couple of constraints:

 * it’s limited by what’s achievable in the editor canvas and block toolbar, and
 * the library itself has a narrow set of features.

Why build our own library? Well-maintained, open sourceOpen Source Open Source denotes
software for which the original source code is made freely available and may be 
redistributed and modified. Open Source **must be** delivered via a licensing model,
see GPL. alternatives that do most of what users expect are few and far between.
Furthermore, there’s a general preference for a WordPress-native surface that:

 * has all the features we want “out of the box” such as aspect ratios, freeform
   cropping handles, intuitive zooming, flip and rotation,
 * includes all the usability features we’d expect such as touch and keyboard support,
   and
 * is extensibleExtensible This is the ability to add additional functionality to
   the code. Plugins extend the WordPress core software. in ways idiomatic to the
   WordPress ecosystem.

There was an attempt to build a custom, [editor-first cropper component](https://github.com/WordPress/gutenberg/pull/63335),
but it was abandoned. Rather than developing separate, one-off flows across blocks,
the Media Editor Modal aims to provide a consistent foundation for both a [new Media Library experience](https://github.com/WordPress/gutenberg/issues/55238)
and various [editor contexts](https://github.com/WordPress/gutenberg/issues/72734),
and also serve as platform for building more sophisticated experiences later.

## How to test

~If you’re familiar with the [Gutenberg plugin](https://github.com/WordPress/gutenberg)
development environment, you can check out trunktrunk A directory in Subversion 
containing the latest development code in preparation for the next major release
cycle. If you are running "trunk", then you are on the latest revision. right now
and enable the Media Modal experiment from the experiments page at `/wp-admin/admin.
php?page=experiments-wp-admin`~

**Update**: [#78653](https://github.com/WordPress/gutenberg/pull/78653) merged, 
which makes the modal the default experience. No requirement to enable any experiment.

The quickest way to test is via Playground. Here’s a link that loads up Playground
with Gutenberg Trunk and the Media Editor Modal active:

[Test the Media Editor Modal in Playground](https://playground.wordpress.net/?gutenberg-branch=trunk#ewoJIiRzY2hlbWEiOiAiaHR0cHM6Ly9wbGF5Z3JvdW5kLndvcmRwcmVzcy5uZXQvYmx1ZXByaW50LXNjaGVtYS5qc29uIiwKCSJwbHVnaW5zIjogW10sCgkic3RlcHMiOiBbCgkJewoJCQkic3RlcCI6ICJta2RpciIsCgkJCSJwYXRoIjogIi90bXAvZ3V0ZW5iZXJnIgoJCX0sCgkJewoJCQkic3RlcCI6ICJ3cml0ZUZpbGUiLAoJCQkicGF0aCI6ICIvdG1wL2d1dGVuYmVyZy9hcnRpZmFjdC56aXAiLAoJCQkiZGF0YSI6IHsKCQkJCSJyZXNvdXJjZSI6ICJ1cmwiLAoJCQkJInVybCI6ICIvcGx1Z2luLXByb3h5LnBocD9vcmc9V29yZFByZXNzJnJlcG89Z3V0ZW5iZXJnJndvcmtmbG93PUJ1aWxkJTIwR3V0ZW5iZXJnJTIwUGx1Z2luJTIwWmlwJmFydGlmYWN0PWd1dGVuYmVyZy1wbHVnaW4mYnJhbmNoPXRydW5rIiwKCQkJCSJjYXB0aW9uIjogIkRvd25sb2FkaW5nIEd1dGVuYmVyZyBicmFuY2ggdHJ1bmsiCgkJCX0KCQl9LAoJCXsKCQkJInN0ZXAiOiAidW56aXAiLAoJCQkiemlwUGF0aCI6ICIvdG1wL2d1dGVuYmVyZy9hcnRpZmFjdC56aXAiLAoJCQkiZXh0cmFjdFRvUGF0aCI6ICIvdG1wL2d1dGVuYmVyZyIKCQl9LAoJCXsKCQkJInN0ZXAiOiAiaW5zdGFsbFBsdWdpbiIsCgkJCSJwbHVnaW5EYXRhIjogewoJCQkJInJlc291cmNlIjogInZmcyIsCgkJCQkicGF0aCI6ICIvdG1wL2d1dGVuYmVyZy9ndXRlbmJlcmcuemlwIgoJCQl9CgkJfSwKCQl7CgkJCSJzdGVwIjogIndyaXRlRmlsZSIsCgkJCSJwYXRoIjogIi90bXAvd2MtY2hpY2xhbmEtMjAxNy1zd2FnLmpwZWciLAoJCQkiZGF0YSI6IHsKCQkJCSJyZXNvdXJjZSI6ICJ1cmwiLAoJCQkJInVybCI6ICJodHRwczovL3BkLncub3JnLzIwMjEvMTIvODc4NjFiMWNiNWJkNjVlMTUuNjczMjkxMDcuanBlZyIKCQkJfQoJCX0sCgkJewoJCQkic3RlcCI6ICJydW5QSFAiLAoJCQkiY29kZSI6ICI8P3BocFxucmVxdWlyZSAnL3dvcmRwcmVzcy93cC1sb2FkLnBocCc7XG5yZXF1aXJlX29uY2UgQUJTUEFUSCAuICd3cC1hZG1pbi9pbmNsdWRlcy9maWxlLnBocCc7XG5yZXF1aXJlX29uY2UgQUJTUEFUSCAuICd3cC1hZG1pbi9pbmNsdWRlcy9tZWRpYS5waHAnO1xucmVxdWlyZV9vbmNlIEFCU1BBVEggLiAnd3AtYWRtaW4vaW5jbHVkZXMvaW1hZ2UucGhwJztcblxuJGV4cGVyaW1lbnRzID0gKGFycmF5KSBnZXRfb3B0aW9uKCAnZ3V0ZW5iZXJnLWV4cGVyaW1lbnRzJywgYXJyYXkoKSApO1xuJGV4cGVyaW1lbnRzWydndXRlbmJlcmctbWVkaWEtZWRpdG9yLW1vZGFsJ10gPSB0cnVlO1xudXBkYXRlX29wdGlvbiggJ2d1dGVuYmVyZy1leHBlcmltZW50cycsICRleHBlcmltZW50cyApO1xuXG4kaW1hZ2VfcGF0aCA9ICcvdG1wL3djLWNoaWNsYW5hLTIwMTctc3dhZy5qcGVnJztcbiRhbHQgPSAnQ0MwIGxpY2Vuc2VkIHBob3RvIGJ5IFBhYmxvIE1vcmF0aW5vcyBmcm9tIHRoZSBXb3JkUHJlc3MgUGhvdG8gRGlyZWN0b3J5OiBodHRwczovL3dvcmRwcmVzcy5vcmcvcGhvdG9zL3Bob3RvLzg3ODYxYjFjYjUnO1xuXG4kYXR0YWNobWVudF9pZCA9IG1lZGlhX2hhbmRsZV9zaWRlbG9hZChcblx0YXJyYXkoXG5cdFx0J25hbWUnID0+ICd3Yy1jaGljbGFuYS0yMDE3LXN3YWcuanBlZycsXG5cdFx0J3RtcF9uYW1lJyA9PiAkaW1hZ2VfcGF0aCxcblx0KSxcblx0MCxcblx0J01lZGlhIEVkaXRvciBNb2RhbCdcbik7XG5cbmlmICggaXNfd3BfZXJyb3IoICRhdHRhY2htZW50X2lkICkgKSB7XG5cdHRocm93IG5ldyBFeGNlcHRpb24oICRhdHRhY2htZW50X2lkLT5nZXRfZXJyb3JfbWVzc2FnZSgpICk7XG59XG5cbnVwZGF0ZV9wb3N0X21ldGEoICRhdHRhY2htZW50X2lkLCAnX3dwX2F0dGFjaG1lbnRfaW1hZ2VfYWx0JywgJGFsdCApO1xuXG4kaW1hZ2Vfc3JjID0gd3BfZ2V0X2F0dGFjaG1lbnRfaW1hZ2Vfc3JjKCAkYXR0YWNobWVudF9pZCwgJ2xhcmdlJyApO1xuJGltYWdlX3VybCA9ICRpbWFnZV9zcmMgPyAkaW1hZ2Vfc3JjWzBdIDogd3BfZ2V0X2F0dGFjaG1lbnRfdXJsKCAkYXR0YWNobWVudF9pZCApO1xuXG4kcG9zdF9pZCA9IDEyMzQ7XG4kcG9zdF9jb250ZW50ID0gc3ByaW50Zihcblx0JzwhLS0gd3A6cGFyYWdyYXBoIC0tPjxwPkNsaWNrIG9uIHRoZSBpbWFnZSBibG9jayBhbmQgdGhlbiBvbiB0aGUgY3JvcCBpY29uIGluIHRoZSBibG9jayB0b29sYmFyIHRvIG9wZW4gdGhlIG1vZGFsLjwvcD48IS0tIC93cDpwYXJhZ3JhcGggLS0+PCEtLSB3cDppbWFnZSB7XCJpZFwiOiUxJGQsXCJzaXplU2x1Z1wiOlwibGFyZ2VcIixcImxpbmtEZXN0aW5hdGlvblwiOlwibm9uZVwifSAtLT48ZmlndXJlIGNsYXNzPVwid3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZVwiPjxpbWcgc3JjPVwiJTIkc1wiIGFsdD1cIiUzJHNcIiBjbGFzcz1cIndwLWltYWdlLSUxJGRcIi8+PC9maWd1cmU+PCEtLSAvd3A6aW1hZ2UgLS0+Jyxcblx0JGF0dGFjaG1lbnRfaWQsXG5cdGVzY191cmwoICRpbWFnZV91cmwgKSxcblx0ZXNjX2F0dHIoICRhbHQgKVxuKTtcblxud3BfaW5zZXJ0X3Bvc3QoXG5cdGFycmF5KFxuXHRcdCdpbXBvcnRfaWQnID0+ICRwb3N0X2lkLFxuXHRcdCdwb3N0X3RpdGxlJyA9PiAnTWVkaWEgRWRpdG9yIE1vZGFsJyxcblx0XHQncG9zdF9zdGF0dXMnID0+ICdwdWJsaXNoJyxcblx0XHQncG9zdF9hdXRob3InID0+IDEsXG5cdFx0J3Bvc3RfY29udGVudCcgPT4gJHBvc3RfY29udGVudCxcblx0KSxcblx0dHJ1ZVxuKTtcbiIKCQl9CgldLAoJInByZWZlcnJlZFZlcnNpb25zIjogewoJCSJwaHAiOiAiOC4zIiwKCQkid3AiOiAibGF0ZXN0IgoJfSwKCSJmZWF0dXJlcyI6IHt9LAoJImxhbmRpbmdQYWdlIjogIi93cC1hZG1pbi9wb3N0LnBocD9wb3N0PTEyMzQmYWN0aW9uPWVkaXQiLAoJImxvZ2luIjogdHJ1ZQp9)

### Suggested testing flows

The steps are provided just in case you need structure. Don’t feel any need to follow
any or all of them._ _

_The important question is whether the modal is solid enough as a replacement for
the Image block crop flow, and whether you notice any bugs, UXUX User experience
gaps or unexpected behaviors._

#### Basic crop flow

 1. Open the modal from an Image block.
 2. Resize the crop area.
 3. Pan and zoom the image.
 4. Rotate or flip the image.
 5. Save.
 6. Confirm the block updates to use the edited image.

#### Details editing

 1. In a saved post with a title, upload or insert an image.
 2. Open the modal from the Image block.
 3. Switch to the **Details** tab.
 4. Confirm Author and Attached to fields are populated with your author handle and
    the current post’s title.
 5. Update alt text and caption.
 6. Save.
 7. Confirm the media item updates.
 8. Confirm the Image block updates when its existing alt/caption values were empty
    or matched the original media values.

#### Existing custom block values

 1. Add an Image block.
 2. Manually enter custom alt text or a custom caption in the block.
 3. Open the media editor modal.
 4. Change the attachment’s alt text or caption.
 5. Save.
 6. Confirm custom block-level values are not unexpectedly overwritten.

#### Keyboard

 1. Open the modal.
 2. Use Tab to move through the crop area, crop handles, toolbar controls, sidebarSidebar
    A sidebar in WordPress is referred to a widget-ready area used by WordPress themes
    to display information that is not a part of the main content. It is not always
    a vertical column on the side. It can be a horizontal rectangle below or above 
    the content area, footer, header, or any where in the theme. controls, Save, Cancel,
    and Close.
 3. Use arrow keys to move or resize the crop area.
 4. Confirm focus is visible and does not get lost.
 5. Try undo/redo with keyboard shortcuts.
 6. Confirm Escape behaves as expected when there are unsaved changes.

#### **Touch gesture**s

 1. On a touch device, open the modal from an Image block.
 2. Test drag panning, pinch zoom, and crop area handle dragging for responsiveness
    and smoothness.
 3. Ensure toolbar actions like rotate, flip, undo, redo, and reset are tappable.

## Sharing your feedback

Comments on this post are a great way to share feedback, but if you’d like to jump
into Gutenberg feel free to leave feedback on [this tracking issue](https://github.com/WordPress/gutenberg/issues/73771)
as it’s the main one covering current tasks for the experimental modal. We’d love
to know for example:

 * Did the modal open where you expected it to?
 * Was cropping understandable without extra instruction?
 * Did anything feel slower, confusing, or broken?
 * Did the image tools, including Save and Cancel behave as you’d expect?

## Out of scope

The goal is to make the basic crop/edit workflow solid first, not to ship every 
image editing feature. Some related work is still being explored separately, for
example:

 * Manual pixel crop controls.
 * Restoring original image.
 * Improving undo/redo history states.
 * Broader image editor extensibility for image filterFilter Filters are one of 
   the two types of Hooks [https://codex.wordpress.org/Plugin_API/Hooks](https://codex.wordpress.org/Plugin_API/Hooks).
   They provide a way for functions to modify data of other functions. They are 
   the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated
   manner, and should never have side effects such as affecting global variables
   and output. and/or AI integration options.

Thank you for making it this far, and thanks in advance for testing.

Props to [@andrewserong](https://profiles.wordpress.org/andrewserong/) and [@isabel_brison](https://profiles.wordpress.org/isabel_brison/)
for helping to write this post.

[#core-editor](https://make.wordpress.org/core/tag/core-editor/), [#gutenberg](https://make.wordpress.org/core/tag/gutenberg/),
[#media](https://make.wordpress.org/core/tag/media/), [#media-modal](https://make.wordpress.org/core/tag/media-modal/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F21%2Fmedia-editor-modal-call-for-testing%2F%23respond&locale=en_US)

 [  ](https://profiles.wordpress.org/paulopmt1/) [Paulo Trentin](https://profiles.wordpress.org/paulopmt1/)
5:31 pm _on_ May 21, 2026     
Tags: [block-editor ( 135 )](https://make.wordpress.org/core/tag/block-editor/),
[core-editor ( 751 )](https://make.wordpress.org/core/tag/core-editor/), [gutenberg ( 542 )](https://make.wordpress.org/core/tag/gutenberg/),
[gutenberg-new ( 211 )](https://make.wordpress.org/core/tag/gutenberg-new/)   

# 󠀁[What’s new in Gutenberg 23.2? (21 May)](https://make.wordpress.org/core/2026/05/21/whats-new-in-gutenberg-23-2-21-may/)󠁿

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface
for WordPress. The editor improves the process and experience of creating new content,
making writing rich content much simpler. It uses ‘blocks’ to add richness rather
than shortcodes, custom HTML etc. [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)…”
posts (labeled with the [#gutenberg-new tag](https://make.wordpress.org/core/tag/gutenberg-new/))
are posted following every Gutenberg release on a biweekly basis, showcasing new
features included in each release. As a reminder, [here’s an overview](https://make.wordpress.org/core/2020/05/20/ways-to-keep-up-with-full-site-editing-fse/)
of different ways to keep up with Gutenberg and the Editor.

![](https://make.wordpress.org/core/files/2025/07/gb-21-0-whats-new-1024x512.png)

What’s New In 
Gutenberg 23.2?

Gutenberg 23.2 has been released and is [available for download](https://wordpress.org/plugins/gutenberg/)!

This release introduces responsive global blockBlock Block is the abstract term 
used to describe units of markup that, composed together, form the content or layout
of a webpage using the WordPress editor. The idea combines concepts of what in the
past may have achieved with shortcodes, custom HTML, and embed discovery into a 
single consistent API and user experience. styles with states, brings further improvements
to the experimental Content Types management screens, and adds a wave of accessibilityAccessibility
Accessibility (commonly shortened to a11y) refers to the design of products, devices,
services, or environments for people with disabilities. The concept of accessible
design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning
compatibility with a person’s assistive technology (for example, computer screen
readers). (https://en.wikipedia.org/wiki/Accessibility) refinements to the RevisionsRevisions
The WordPress revisions system stores a record of each saved draft or published 
update. The revision system allows you to see what changes were made in each revision
by dragging a slider (or using the Next/Previous buttons). The display indicates
what has changed in each revision. interface. The `@wordpress/ui` package gains 
a new `SelectControl` and motion design tokens, while modals now render as bottom
sheets on mobile. Other changes include shortcodeShortcode A shortcode is a placeholder
used within a WordPress post, page, or widget to insert a form or function generated
by a plugin in a specific location on your site.-to-block transforms, Grid component
enhancements, Connectors refinements, and continued Real-time Collaboration reliability
fixes.

**Table of contents**

 1. [Responsive global block styles with states](https://make.wordpress.org/core/2026/05/?output_format=md#responsive-blocks)
 2. [Add motion design tokens (duration and easing) to @wordpress/theme](https://make.wordpress.org/core/2026/05/?output_format=md#add-motion-design-tokens)
 3. [Modal renders as a bottom sheet on mobile](https://make.wordpress.org/core/2026/05/?output_format=md#modal-renders-as-a-bottom-sheet-on-mobile)
 4. [Other Notable Highlights](https://make.wordpress.org/core/2026/05/?output_format=md#other-notable-highlights)
 5. [Changelog](https://make.wordpress.org/core/2026/05/?output_format=md#changelog)
 6.  a. [Features](https://make.wordpress.org/core/2026/05/?output_format=md#features)
     b. [Enhancements](https://make.wordpress.org/core/2026/05/?output_format=md#enhancements)
     c. [Bug Fixes](https://make.wordpress.org/core/2026/05/?output_format=md#bug-fixes)
     d. [Experiments](https://make.wordpress.org/core/2026/05/?output_format=md#experiments)
     e. [Documentation](https://make.wordpress.org/core/2026/05/?output_format=md#documentation)
     f. [Code Quality](https://make.wordpress.org/core/2026/05/?output_format=md#code-quality)
     g. [Tools](https://make.wordpress.org/core/2026/05/?output_format=md#tools)
     h. [Various](https://make.wordpress.org/core/2026/05/?output_format=md#various)
 7. [First-time contributors](https://make.wordpress.org/core/2026/05/?output_format=md#first-time-contributors-1)
 8. [Contributors](https://make.wordpress.org/core/2026/05/?output_format=md#contributors-2)

## Responsive global block styles with states

You can now customize how individual blocks look on different screen sizes, right
from Global Styles.

![](https://make.wordpress.org/core/files/2026/05/image-8.png)

Head to **Global Styles → Blocks**, and you’ll find a new **States dropdown** on
each block with **Tablet** and **Mobile** options. Select a state, make your style
changes, and they’ll apply only to that breakpoint.

This allows theme developers and site builders to define different block styles 
depending on viewport size and interaction state, paving the way for more adaptive
designs managed entirely through the editor. ([#77513](https://github.com/WordPress/gutenberg/pull/77513))

## Add motion design tokens (duration and easing) to wordpress/theme

Adds motion design tokens to `@wordpress/theme` — a set of **duration** and **easing
curve** tokens for standardizing animation timing across components — and adopts
them in **Dialog**, **Modal**, and **Menu/DropdownMenu**.

## Modal renders as a bottom sheet on mobile

The Modal component now adapts to narrow viewports by rendering as a bottom sheet,
providing a more touch-friendly experience on phones and small tablets. ([#77956](https://github.com/WordPress/gutenberg/pull/77956))

[[

With the new position, important actions are easier to reach with one hand.

## Other Notable Highlights

 * **Content Types management improvements (experimental)**: The experimental Content
   Types screens are extended with several refinements: taxonomyTaxonomy A taxonomy
   is a way to group things together. In WordPress, some common taxonomies are category,
   link, tag, or post format. [https://codex.wordpress.org/Taxonomies#Default_Taxonomies](https://codex.wordpress.org/Taxonomies#Default_Taxonomies).
   visibility fields let you control where taxonomies appear ([#77835](https://github.com/WordPress/gutenberg/pull/77835)),
   slugs are now auto-filled from the singular label ([#77938](https://github.com/WordPress/gutenberg/pull/77938)),
   and new term/post type count fields provide an at-a-glance view of content usage(
   [#78157](https://github.com/WordPress/gutenberg/pull/78157)). Additional quality-
   of-life actions—duplicate, view, and quick-edit—round out the management experience.
 * **`SelectControl` added to `@wordpress/ui`.** A new `SelectControl` primitive
   joins the design-system package, offering a consistent select input across the
   editor and adminadmin (and super admin) surfaces. ([#77809](https://github.com/WordPress/gutenberg/pull/77809))
 * **Shortcode-to-block transforms.** The Embed block now recognizes `[ embed ]`
   shortcodes ([#77937](https://github.com/WordPress/gutenberg/pull/77937)), and
   the Shortcode block offers block-specific transforms when the text matches a 
   registered shortcode ([#77944](https://github.com/WordPress/gutenberg/pull/77944)).
 * **Grid component improvements.** The `@wordpress/grid` package gains a `renderResizeHandle`
   render prop ([#77811](https://github.com/WordPress/gutenberg/pull/77811)), an
   edit-mode overlay for DashboardGrid and DashboardLanes ([#78199](https://github.com/WordPress/gutenberg/pull/78199)),
   document cursor lock during resize ([#77813](https://github.com/WordPress/gutenberg/pull/77813)),
   and resize-runaway prevention near the viewport edge ([#77854](https://github.com/WordPress/gutenberg/pull/77854)).
 * **Revisions accessibility improvements.** Diff markers now enforce a 24×24 px
   minimum target size per WCAGWCAG WCAG is an acronym for Web Content Accessibility
   Guidelines. These guidelines are helping make sure the internet is accessible
   to all people no matter how they would need to access the internet (screen-reader,
   keyboard only, etc) [https://www.w3.org/TR/WCAG21/](https://www.w3.org/TR/WCAG21/).
   2.5.8 ([#77671](https://github.com/WordPress/gutenberg/pull/77671)), use diagonal
   stripe patterns to avoid color-only distinction ([#77904](https://github.com/WordPress/gutenberg/pull/77904)),
   and display tooltips ([#77690](https://github.com/WordPress/gutenberg/pull/77690)).
   The revisions slider now paginates by 100 per page for better performance ([#77200](https://github.com/WordPress/gutenberg/pull/77200)).
 * **Real-time Collaboration reliability fixes.** Title divergence between users
   on page refresh has been resolved ([#77666](https://github.com/WordPress/gutenberg/pull/77666)),
   a race condition on room creation that could split the update log is fixed ([#77675](https://github.com/WordPress/gutenberg/pull/77675)),
   and `find_canonical_storage_post_id()` no longer returns null incorrectly ([#78053](https://github.com/WordPress/gutenberg/pull/78053)).
 * **Connectors refinements.** PluginPlugin A plugin is a piece of software containing
   a group of functions that can be added to a WordPress website. They can extend
   functionality or add new features to your WordPress websites. WordPress plugins
   are written in the PHP programming language and integrate seamlessly with WordPress.
   These can be free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
   or can be cost-based plugin from a third-party. registration now supports an `
   is_active` callback ([#77897](https://github.com/WordPress/gutenberg/pull/77897)),
   settings are only auto-registered when the referenced plugin is actually installed
   and active ([#77273](https://github.com/WordPress/gutenberg/pull/77273)), and
   the Connectors page works on read-only file systems ([#77521](https://github.com/WordPress/gutenberg/pull/77521)).

## Changelog

### Features

#### Block Editor

 * Try responsive global block styles with states. ([77513](https://github.com/WordPress/gutenberg/pull/77513))
 * Enhance the Connectors page on the read-only file system. ([77521](https://github.com/WordPress/gutenberg/pull/77521))

### Enhancements

#### Components

 * Add SelectControl component to wordpress/ui. ([77809](https://github.com/WordPress/gutenberg/pull/77809))
 * Add motion design tokens (duration and easing) to wordpress/theme. ([76097](https://github.com/WordPress/gutenberg/pull/76097))
 * Button: Align link variant underline with Link and ExternalLink. ([77842](https://github.com/WordPress/gutenberg/pull/77842))
 * Grid: Add `renderResizeHandle` render prop. ([77811](https://github.com/WordPress/gutenberg/pull/77811))
 * Grid: Add edit-mode overlay to DashboardGrid and DashboardLanes. ([78199](https://github.com/WordPress/gutenberg/pull/78199))
 * Grid: Lock document cursor during resize gesture. ([77813](https://github.com/WordPress/gutenberg/pull/77813))
 * Grid: Prevent resize runaway near viewport edge. ([77854](https://github.com/WordPress/gutenberg/pull/77854))
 * Modal: Render as a bottom sheet on mobile. ([77956](https://github.com/WordPress/gutenberg/pull/77956))
 * Select: Support placeholder prop on Trigger. ([78076](https://github.com/WordPress/gutenberg/pull/78076))
 * Use the theme gray for muted Text. ([77999](https://github.com/WordPress/gutenberg/pull/77999))
 * docgen: Automatic documentation handle for TypeScript overloads. ([77558](https://github.com/WordPress/gutenberg/pull/77558))
 * ui/Tooltip, ui/IconButton: Add positioner slot APIAPI An API or Application Programming
   Interface is a software intermediary that allows programs to interact with each
   other and share data in limited, clearly defined ways.. ([78089](https://github.com/WordPress/gutenberg/pull/78089))

#### Block Library

 * Added Translator Context for Reply. ([77891](https://github.com/WordPress/gutenberg/pull/77891))
 * Embed: Add `[ embed ]` shortcode transform. ([77937](https://github.com/WordPress/gutenberg/pull/77937))
 * Shortcode: Offer block-specific transforms when text matches a registered shortcode.(
   [77944](https://github.com/WordPress/gutenberg/pull/77944))
 * i18ni18n Internationalization, or the act of writing and preparing code to be
   fully translatable into other languages. Also see [localization](https://make.wordpress.org/core/2026/05/?output_format=md#l10n).
   Often written with a lowercase i so it is not confused with a lowercase L or 
   the numeral 1. Often an acquired skill.: Add context to table headerHeader The
   header of your site is typically the first thing people will experience. The 
   masthead or header art located across the top of your page is part of the look
   and feel of your website. It can influence a visitor’s opinion about your content
   and you/ your organization’s brand. It may also look different on different screen
   sizes./footer label. ([78007](https://github.com/WordPress/gutenberg/pull/78007))

#### Block Editor

 * Fix the target block for copying direct insert block attributes. ([77877](https://github.com/WordPress/gutenberg/pull/77877))
 * Make Block Inserter search input sticky while scrolling. ([77698](https://github.com/WordPress/gutenberg/pull/77698))
 * i18n: Add context to scale. ([76917](https://github.com/WordPress/gutenberg/pull/76917))

#### Post Editor

 * Add lint rule for non-module stylesheet imports. ([77984](https://github.com/WordPress/gutenberg/pull/77984))
 * Remove root UUID dependency. ([77960](https://github.com/WordPress/gutenberg/pull/77960))

#### Data Layer

 * WidgetWidget A WordPress Widget is a small block that performs a specific function.
   You can add these widgets in sidebars also known as widget-ready areas on your
   web page. WordPress widgets were originally created to provide a simple and easy-
   to-use way of giving design and structure control of the WordPress theme to the
   user. Types: Bootstrap registry into the dashboard client. ([77917](https://github.com/WordPress/gutenberg/pull/77917))
 * Widget Types: Replace bootstrap with resolver. ([77847](https://github.com/WordPress/gutenberg/pull/77847))

#### npm Packages

 * Build: Add `widgets/` folder support to wordpress/build. ([77347](https://github.com/WordPress/gutenberg/pull/77347))
 * Taxonomy edit route: Declare `@wordpress/base-styles` as dependency. ([77901](https://github.com/WordPress/gutenberg/pull/77901))

### Bug Fixes

#### Components

 * ColorPalette: Fix duplicate-key warnings and incorrect selection with identical
   color values. ([78004](https://github.com/WordPress/gutenberg/pull/78004))
 * ColorPicker: Fix inconsistent HEX input clearing behavior. ([77912](https://github.com/WordPress/gutenberg/pull/77912))
 * ExternalLink: Fix focus outline under wp-admin. ([77935](https://github.com/WordPress/gutenberg/pull/77935))
 * Grid: Fix keyboard activation on draggable items. ([78163](https://github.com/WordPress/gutenberg/pull/78163))
 * Grid: Render resize handle as a component. ([77888](https://github.com/WordPress/gutenberg/pull/77888))
 * Link: Fix focus outline around the new-tab icon. ([77910](https://github.com/WordPress/gutenberg/pull/77910))
 * Select: Fix disabled cursor styles. ([78112](https://github.com/WordPress/gutenberg/pull/78112))
 * Select: Hide user agent focus ring in popup. ([77919](https://github.com/WordPress/gutenberg/pull/77919))
 * TabPanel: Fix tab indicator animation. ([77812](https://github.com/WordPress/gutenberg/pull/77812))
 * Text: Fix render prop CSSCSS Cascading Style Sheets. defenses. ([78172](https://github.com/WordPress/gutenberg/pull/78172))
 * ui/Drawer: Forward `render` on `Drawer.Content` to the scroll container. ([77941](https://github.com/WordPress/gutenberg/pull/77941))
 * ui/Drawer: Polish open/close animation, fix swipe on content padding. ([77800](https://github.com/WordPress/gutenberg/pull/77800))
 * Admin UIUI User interface: Fix nested landmark in Page header. ([78001](https://github.com/WordPress/gutenberg/pull/78001))
 * UI: Use string label type for form controls. ([77860](https://github.com/WordPress/gutenberg/pull/77860))
 * ui/CollapsibleCard: Support rendering Header as a heading element. ([77962](https://github.com/WordPress/gutenberg/pull/77962))
 * Image editor: Improve media editor crop accessibility and dialog focus. ([78047](https://github.com/WordPress/gutenberg/pull/78047))

#### Connectors

 * Add is_active callback support to plugin registration. ([77897](https://github.com/WordPress/gutenberg/pull/77897))
 * Clarify AI plugin callout copy. ([78043](https://github.com/WordPress/gutenberg/pull/78043))
 * Fix: Only auto-register settings if the plugin the connector references is installed
   and active. ([77273](https://github.com/WordPress/gutenberg/pull/77273))
 * Increase the right padding of the callout for the mobile layout. ([78126](https://github.com/WordPress/gutenberg/pull/78126))

#### Block Library

 * Embed: Tighten raw URLURL A specific web address of a website or web page on 
   the Internet, such as a website’s URL www.wordpress.org transform isMatch. ([78021](https://github.com/WordPress/gutenberg/pull/78021))
 * Fix: The buttons block shows the inserter picker when multiple allowed blocks
   are registered. ([77858](https://github.com/WordPress/gutenberg/pull/77858))
 * Fix: Shortcode block does not render in Navigation Overlay. ([77511](https://github.com/WordPress/gutenberg/pull/77511))

#### Post Editor

 * Editor: Paginate revisions slider by 100 per page. ([77200](https://github.com/WordPress/gutenberg/pull/77200))
 * Notes: Keep tall floating threads scrollable on short content. ([77821](https://github.com/WordPress/gutenberg/pull/77821))
 * `defaultRenderingMode` value not respected when changed using `block_editor_settings_all`.(
   [77870](https://github.com/WordPress/gutenberg/pull/77870))
 * i18n: Add context to (site) identity. ([78132](https://github.com/WordPress/gutenberg/pull/78132))
 * Site Editor: Preserve non-global editor styles in pattern previews. ([77957](https://github.com/WordPress/gutenberg/pull/77957))
 * Preserve the leading number when pasting single-line text like dates. ([77949](https://github.com/WordPress/gutenberg/pull/77949))
 * Add aria-label to the Revisions button in the Post Summary sidebarSidebar A sidebar
   in WordPress is referred to a widget-ready area used by WordPress themes to display
   information that is not a part of the main content. It is not always a vertical
   column on the side. It can be a horizontal rectangle below or above the content
   area, footer, header, or any where in the theme.. ([78140](https://github.com/WordPress/gutenberg/pull/78140))
 * Revisions diff markers: Enforce 24×24px minimum target size (WCAG 2.5.8). ([77671](https://github.com/WordPress/gutenberg/pull/77671))
 * Revisions: Add diagonal stripe patterns to diff markers to avoid color-only distinction.(
   [77904](https://github.com/WordPress/gutenberg/pull/77904))
 * Revisions: Add tooltip to diff marker buttons. ([77690](https://github.com/WordPress/gutenberg/pull/77690))
 * Avoid using centered text. ([78125](https://github.com/WordPress/gutenberg/pull/78125))
 * Editor: Improve revisions diff pairing performance. ([77126](https://github.com/WordPress/gutenberg/pull/77126))

#### Data Layer

 * RTC: Fix title divergence between users on page refresh after title update. (
   [77666](https://github.com/WordPress/gutenberg/pull/77666))
 * isFulfilled: Don’t change resolution state, call in resolveSelect. ([78151](https://github.com/WordPress/gutenberg/pull/78151))
 * Fix lockfile drift and missing dep from content-types consolidation. ([78109](https://github.com/WordPress/gutenberg/pull/78109))
 * Guidelines REST: Require read access for the standard route. ([77843](https://github.com/WordPress/gutenberg/pull/77843))
 * Fix popover bind hydration. ([77797](https://github.com/WordPress/gutenberg/pull/77797))

#### Collaboration

 * RTC: Fix find_canonical_storage_post_id() always returning null. ([78053](https://github.com/WordPress/gutenberg/pull/78053))
 * RTC: Fix race condition on room creation, which can cause a split update log.(
   [77675](https://github.com/WordPress/gutenberg/pull/77675))
 * Media: Guard gutenberg_delete_heic_companion_file() against non-string $metadata[‘
   original’]. ([78128](https://github.com/WordPress/gutenberg/pull/78128))

### Experiments

 * Add first end-to-end tests for Taxonomies. ([77828](https://github.com/WordPress/gutenberg/pull/77828))
 * Add taxonomy visibility fields. ([77835](https://github.com/WordPress/gutenberg/pull/77835))
 * Add term/post type count fields in content types. ([78157](https://github.com/WordPress/gutenberg/pull/78157))
 * Auto fill `slug` from a singular label for taxonomies and post types. ([77938](https://github.com/WordPress/gutenberg/pull/77938))
 * Content Types: Various improvements to post type and taxonomy management, including
   duplicate/view/quick-edit actions, shared utility reuse, and caching and routing
   fixes. ([77754](https://github.com/WordPress/gutenberg/pull/77754), [77844](https://github.com/WordPress/gutenberg/pull/77844),
   [77853](https://github.com/WordPress/gutenberg/pull/77853), [77885](https://github.com/WordPress/gutenberg/pull/77885),
   [77916](https://github.com/WordPress/gutenberg/pull/77916), [78058](https://github.com/WordPress/gutenberg/pull/78058),
   [78059](https://github.com/WordPress/gutenberg/pull/78059), [78091](https://github.com/WordPress/gutenberg/pull/78091),
   [78099](https://github.com/WordPress/gutenberg/pull/78099), [78102](https://github.com/WordPress/gutenberg/pull/78102),
   [78104](https://github.com/WordPress/gutenberg/pull/78104), [78143](https://github.com/WordPress/gutenberg/pull/78143),
   [78146](https://github.com/WordPress/gutenberg/pull/78146), [78149](https://github.com/WordPress/gutenberg/pull/78149),
   [77931](https://github.com/WordPress/gutenberg/pull/77931))
 * Dashboard: Lift Suspense + error boundary into widget chrome and add a default
   header. ([78012](https://github.com/WordPress/gutenberg/pull/78012))
 * Grid: Add DashboardLanes masonry surface. ([78107](https://github.com/WordPress/gutenberg/pull/78107))
 * Integrate `useView` into content types lists. ([78197](https://github.com/WordPress/gutenberg/pull/78197))
 * Make Content Types `_builtin`. ([78150](https://github.com/WordPress/gutenberg/pull/78150))
 * Render badges for some content types’ fields. ([78194](https://github.com/WordPress/gutenberg/pull/78194))
 * Sync user taxonomies with post types. ([77997](https://github.com/WordPress/gutenberg/pull/77997))
 * Update view content types actions. ([78159](https://github.com/WordPress/gutenberg/pull/78159))
 * User post types REST controller. ([77915](https://github.com/WordPress/gutenberg/pull/77915))
 * Widget Types: REST endpoint and coreCore Core is the set of software required
   to run WordPress. The Core Development Team builds WordPress.-data entity. ([77987](https://github.com/WordPress/gutenberg/pull/77987))
 * Widget Types: Server-side registry, decouple wp-build pages. ([77958](https://github.com/WordPress/gutenberg/pull/77958))

#### Media

 * Image editor: Suppress image editor undo/redo while a crop interaction is active.(
   [77930](https://github.com/WordPress/gutenberg/pull/77930))
 * Image editor: Update sidebar aspect ratio and resize controls. ([78046](https://github.com/WordPress/gutenberg/pull/78046))
 * Media Editor Modal: Improve image cropper interactions (undo/redo, pan, zoom,
   rotation), expand keyboard shortcuts and accessibility (focus borders, landmark
   regions, panel headings), and fix empty metadata fields. ([77782](https://github.com/WordPress/gutenberg/pull/77782),
   [77826](https://github.com/WordPress/gutenberg/pull/77826), [77863](https://github.com/WordPress/gutenberg/pull/77863),
   [77871](https://github.com/WordPress/gutenberg/pull/77871), [77875](https://github.com/WordPress/gutenberg/pull/77875),
   [77878](https://github.com/WordPress/gutenberg/pull/77878), [77898](https://github.com/WordPress/gutenberg/pull/77898),
   [77899](https://github.com/WordPress/gutenberg/pull/77899), [78078](https://github.com/WordPress/gutenberg/pull/78078),
   [78189](https://github.com/WordPress/gutenberg/pull/78189)). This is an MVPMinimum
   Viable Product "A minimum viable product (MVP) is a product with just enough 
   features to satisfy early customers, and to provide feedback for future product
   development." - [WikiPedia](https://en.wikipedia.org/wiki/Minimum_viable_product)
   version, and it’s ready for testing here: [https://make.wordpress.org/core/2026/05/21/media-editor-modal-call-for-testing/](https://make.wordpress.org/core/2026/05/21/media-editor-modal-call-for-testing/)
 * Media editor: Replace fine-rotation slider with RotationRuler. ([77906](https://github.com/WordPress/gutenberg/pull/77906))
 * Grid: Add a warning about being under development. ([78022](https://github.com/WordPress/gutenberg/pull/78022))

#### Dashboard

 * Add `WidgetDashboard.Actions` compound. ([78019](https://github.com/WordPress/gutenberg/pull/78019))
 * Add an experimental `WidgetDashboard` rendering engine. ([77770](https://github.com/WordPress/gutenberg/pull/77770))
 * Add widget inserter modal. ([78033](https://github.com/WordPress/gutenberg/pull/78033))
 * Backend default layout filterFilter Filters are one of the two types of Hooks
   [https://codex.wordpress.org/Plugin_API/Hooks](https://codex.wordpress.org/Plugin_API/Hooks).
   They provide a way for functions to modify data of other functions. They are 
   the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated
   manner, and should never have side effects such as affecting global variables
   and output.. ([78040](https://github.com/WordPress/gutenberg/pull/78040))
 * Dashboard experiment: Animate, customize UXUX User experience. ([78065](https://github.com/WordPress/gutenberg/pull/78065))
 * Dashboard experiment: New sidebar icon. ([78016](https://github.com/WordPress/gutenberg/pull/78016))
 * Dashboard experiment: Remove storybook examples for now. ([78020](https://github.com/WordPress/gutenberg/pull/78020))
 * Persist layout via wordpress/preferences. ([78034](https://github.com/WordPress/gutenberg/pull/78034))
 * REST endpoint for the default layout. ([78066](https://github.com/WordPress/gutenberg/pull/78066))
 * Staging layer for in-progress layout edits. ([78071](https://github.com/WordPress/gutenberg/pull/78071))
 * Use design animation tokens. ([78204](https://github.com/WordPress/gutenberg/pull/78204))

#### Block Library

 * Add Classic block migrationMigration Moving the code, database and media files
   for a website site from one server to another. Most typically done when changing
   hosting companies. notice. ([78090](https://github.com/WordPress/gutenberg/pull/78090))
 * Image block: Try syncing updated metadata fields (alt and caption) from the media
   editor. ([78139](https://github.com/WordPress/gutenberg/pull/78139))
 * Media Editor Experiment: Add a route, based on the media editor modal, and refactor
   the modal components. ([77994](https://github.com/WordPress/gutenberg/pull/77994))

### Documentation

 * Block Editor: Clarify logic for ‘directInsert’ inner blocks setting. ([77873](https://github.com/WordPress/gutenberg/pull/77873))
 * Design System: Add missing packages to Storybook introduction. ([77504](https://github.com/WordPress/gutenberg/pull/77504))
 * Docs: Shortcode transforms with wrapped content + rawHandler JSDoc. ([78003](https://github.com/WordPress/gutenberg/pull/78003))
 * Document how to ignore VSCode Workspace Settings. ([77608](https://github.com/WordPress/gutenberg/pull/77608))
 * RTC: Clarify WPBlockSelection type and link to duplicates in other packages. (
   [77862](https://github.com/WordPress/gutenberg/pull/77862))
 * Revise README for FocalPointPicker component to use object-position. ([77722](https://github.com/WordPress/gutenberg/pull/77722))
 * UI: Add component status notes to Storybook. ([77988](https://github.com/WordPress/gutenberg/pull/77988))
 * UI: Add missing `Portal` subcomponents to Storybook. ([78108](https://github.com/WordPress/gutenberg/pull/78108))
 * UI: Fix subcomponent story labels. ([78210](https://github.com/WordPress/gutenberg/pull/78210))
 * UI: Improve documentation for compound exports. ([78212](https://github.com/WordPress/gutenberg/pull/78212))
 * Update nvm installation script to version 0.40.4. ([77996](https://github.com/WordPress/gutenberg/pull/77996))
 * Update references to the default branchbranch A directory in Subversion. WordPress
   uses branches to store the latest development code for each major release (3.9,
   4.0, etc.). Branches are then updated with code for any minor releases of that
   branch. Sometimes, a major version of WordPress and its minor versions are collectively
   referred to as a "branch", such as "the 4.0 branch".. ([77606](https://github.com/WordPress/gutenberg/pull/77606))

### Code Quality

 * Add a 1-day minimum release age to npm installs. ([78191](https://github.com/WordPress/gutenberg/pull/78191))
 * Migrate native tests to the workspace. ([77425](https://github.com/WordPress/gutenberg/pull/77425))
 * Script Modules: Guard setAccessible() calls behind the PHPPHP The web scripting
   language in which WordPress is primarily architected. WordPress requires PHP 
   7.4 or higher < 8.1 check. ([78137](https://github.com/WordPress/gutenberg/pull/78137))
 * Inline z-index values across Block Manager, metaMeta Meta is a term that refers
   to the inside workings of a group. For us, this is the team that works on internal
   WordPress sites like WordCamp Central and Make WordPress. boxes, pattern chooser,
   sticky search, layout, and Popover, and remove local z-index helper entries. (
   [77753](https://github.com/WordPress/gutenberg/pull/77753), [77759](https://github.com/WordPress/gutenberg/pull/77759),
   [77772](https://github.com/WordPress/gutenberg/pull/77772), [77806](https://github.com/WordPress/gutenberg/pull/77806),
   [77807](https://github.com/WordPress/gutenberg/pull/77807), [77808](https://github.com/WordPress/gutenberg/pull/77808),
   [78180](https://github.com/WordPress/gutenberg/pull/78180), [78181](https://github.com/WordPress/gutenberg/pull/78181))

#### Post Editor

 * Editor: Refactor ‘PostPublishPanel’ into a function component. ([78083](https://github.com/WordPress/gutenberg/pull/78083))
 * Edit Post: Fix suppressed errors in the Layout component. ([77940](https://github.com/WordPress/gutenberg/pull/77940))
 * Notes: Separate intent from mechanics in openTheSidebar. ([78039](https://github.com/WordPress/gutenberg/pull/78039))

#### Components

 * Button: Align compound component metadata. ([78184](https://github.com/WordPress/gutenberg/pull/78184))
 * Fix the flaky Menu space key unit testunit test Code written to test a small 
   piece of code or functionality within a larger application. Everything from themes
   to WordPress core have a series of unit tests. Also see [regression](https://make.wordpress.org/core/2026/05/?output_format=md#regression)..(
   [77972](https://github.com/WordPress/gutenberg/pull/77972))
 * Menu: Fix flaky keyboard focus test. ([78162](https://github.com/WordPress/gutenberg/pull/78162))
 * SlotFill: Add dependencies to updateFill effect. ([77907](https://github.com/WordPress/gutenberg/pull/77907))

#### Plugin

 * Fix activation warning. ([77908](https://github.com/WordPress/gutenberg/pull/77908))
 * Fonts: Move admin menu compat from experimental to WordPress-7.0. ([78227](https://github.com/WordPress/gutenberg/pull/78227))

#### Block Editor

 * Add translationtranslation The process (or result) of changing text, words, and
   display formatting to support another language. Also see [localization](https://make.wordpress.org/core/2026/05/?output_format=md#l10n),
   [internationalization](https://make.wordpress.org/core/2026/05/?output_format=md#i18n).
   context for “Exit pattern”. ([78158](https://github.com/WordPress/gutenberg/pull/78158))
 * Remove unused reducer action types. ([77880](https://github.com/WordPress/gutenberg/pull/77880))
 * Backportbackport A port is when code from one branch (or trunk) is merged into
   another branch or trunk. Some changes in WordPress point releases are the result
   of backporting code from trunk to the release branch. changes in core. ([78103](https://github.com/WordPress/gutenberg/pull/78103))
 * Refactor client-side style states to use nodes. ([78000](https://github.com/WordPress/gutenberg/pull/78000))
 * Refactor accordion to use CollapsibleCard. ([77903](https://github.com/WordPress/gutenberg/pull/77903))
 * Classic Block: Use onReplace prop for migration actions. ([78113](https://github.com/WordPress/gutenberg/pull/78113))

#### Data Layer

 * ESLint: Replace `eslint-plugin-react-compiler` with `eslint-plugin-react-hooks`.(
   [69962](https://github.com/WordPress/gutenberg/pull/69962))
 * RTC: Add regressionregression A software bug that breaks or degrades something
   that previously worked. Regressions are often treated as critical bugs or [blockers](https://make.wordpress.org/core/2026/05/?output_format=md#blocker).
   Recent regressions may be given higher priorities. A "3.6 regression" would be
   a bug in 3.6 that worked as intended in 3.5. tests for the data corruption bugbug
   A bug is an error or unexpected result. Performance improvements, code optimization,
   and are considered enhancements, not defects. After feature freeze, only bugs
   are dealt with, with regressions (adverse changes from the previous version) 
   being the highest priority. due to the cursor scope issue. ([77662](https://github.com/WordPress/gutenberg/pull/77662))

### Tools

#### Testing

 * Add RTC y-websocket-server tests. ([78179](https://github.com/WordPress/gutenberg/pull/78179))
 * Add `createRecord` end-to-end request util. ([78017](https://github.com/WordPress/gutenberg/pull/78017))
 * Configure global fallbackFn for timezone-mock to handle Date subclasses. ([78056](https://github.com/WordPress/gutenberg/pull/78056))
 * Consolidate CI workflows for changelog testing. ([78169](https://github.com/WordPress/gutenberg/pull/78169))
 * E2E: Remove slash from bad embed request mock. ([78200](https://github.com/WordPress/gutenberg/pull/78200))
 * E2E: Reset preferences after navigable-toolbar tests. ([78115](https://github.com/WordPress/gutenberg/pull/78115))
 * Experiment: Add first basic user post types end-to-end tests and update taxonomy
   tests. ([77998](https://github.com/WordPress/gutenberg/pull/77998))
 * Fix flaky end-to-end tests for publish panel, Pages dataview keyboard navigation,
   homepage settings, and post content focus mode. ([78054](https://github.com/WordPress/gutenberg/pull/78054),
   [78063](https://github.com/WordPress/gutenberg/pull/78063), [78082](https://github.com/WordPress/gutenberg/pull/78082),
   [78084](https://github.com/WordPress/gutenberg/pull/78084))
 * Revision: Fix failing end-to-end test. ([78079](https://github.com/WordPress/gutenberg/pull/78079))
 * Site Editor end-to-end tests: Reimplement the wait for load. ([77981](https://github.com/WordPress/gutenberg/pull/77981))
 * end-to-end tests: Use editPost and createNewPost helpers everywhere. ([78170](https://github.com/WordPress/gutenberg/pull/78170))

#### Build Tooling

 * Build: Update lint-staged from v10 to v16. ([77963](https://github.com/WordPress/gutenberg/pull/77963))
 * Fix: Guard require_once calls in generated PHP files against deployment race 
   conditions. ([78110](https://github.com/WordPress/gutenberg/pull/78110))
 * Remove save-exact from .npmrc. ([78196](https://github.com/WordPress/gutenberg/pull/78196))
 * Tests: Fix argument forwarding for test: Unit workspace scripts. ([77541](https://github.com/WordPress/gutenberg/pull/77541))
 * Update TypeScript to tsgo (try 2). ([77682](https://github.com/WordPress/gutenberg/pull/77682))
 * bin/dev.mjs: Warn on stale webpack watching this checkout. ([78098](https://github.com/WordPress/gutenberg/pull/78098))
 * Upgrade and unify [@types](https://profiles.wordpress.org/types/)/node version.(
   [77900](https://github.com/WordPress/gutenberg/pull/77900))

### Various

 * Update the UUID dependency. ([77848](https://github.com/WordPress/gutenberg/pull/77848))
 * Fill in end-to-end tests for client-side media processing. ([75949](https://github.com/WordPress/gutenberg/pull/75949))

#### Components

 * Support object values in the Select primitive. ([77861](https://github.com/WordPress/gutenberg/pull/77861))
 * Update date-fns to v4.1.0 in components and editor packages. ([78057](https://github.com/WordPress/gutenberg/pull/78057))

#### Block Library

 * Correct capitalization in help text for the Breadcrumbs block. ([78175](https://github.com/WordPress/gutenberg/pull/78175))

## First-time contributors

The following PRs were merged by first-time contributors:

 * [@369work](https://profiles.wordpress.org/369work/): Update nvm installation 
   script to version 0.40.4. ([77996](https://github.com/WordPress/gutenberg/pull/77996))
 * @andrea-sdl: Use theme gray for muted Text. ([77999](https://github.com/WordPress/gutenberg/pull/77999))
 * [@danluu](https://profiles.wordpress.org/danluu/): RTC: Fix race condition on
   room creation, which can cause a split update log. ([77675](https://github.com/WordPress/gutenberg/pull/77675))
 * @vishnucmsminds: Add aria-label to the Revisions button in the Post Summary sidebar.(
   [78140](https://github.com/WordPress/gutenberg/pull/78140))

## Contributors

The following contributors merged PRs in this release:

[@369work](https://profiles.wordpress.org/369work/) [@adamsilverstein](https://profiles.wordpress.org/adamsilverstein/)
@adithya-naik [@aduth](https://profiles.wordpress.org/aduth/) [@afercia](https://profiles.wordpress.org/afercia/)
[@alecgeatches](https://profiles.wordpress.org/alecgeatches/) @andrea-sdl @andreawetzel
[@andrewserong](https://profiles.wordpress.org/andrewserong/) @anomiex [@artpi](https://profiles.wordpress.org/artpi/)
[@cbravobernal](https://profiles.wordpress.org/cbravobernal/) @ciampo @coderGtm 
@crisbusquets [@danluu](https://profiles.wordpress.org/danluu/) [@desrosj](https://profiles.wordpress.org/desrosj/)
[@dmsnell](https://profiles.wordpress.org/dmsnell/) @dpmehta [@ellatrix](https://profiles.wordpress.org/ellatrix/)
[@hbhalodia](https://profiles.wordpress.org/hbhalodia/) @himanshupathak95 @Infinite-
Null [@jameskoster](https://profiles.wordpress.org/jameskoster/) [@jorgefilipecosta](https://profiles.wordpress.org/jorgefilipecosta/)
[@jsnajdr](https://profiles.wordpress.org/jsnajdr/) [@lancewillett](https://profiles.wordpress.org/lancewillett/)
[@Mamaduka](https://profiles.wordpress.org/mamaduka/) [@manzoorwanijk](https://profiles.wordpress.org/manzoorwanijk/)
[@mikachan](https://profiles.wordpress.org/mikachan/) [@mirka](https://profiles.wordpress.org/mirka/)
[@Mustafabharmal](https://profiles.wordpress.org/mustafabharmal/) [@ntsekouras](https://profiles.wordpress.org/ntsekouras/)
@R1shabh-Gupta @ramonjd [@retrofox](https://profiles.wordpress.org/retrofox/) [@sarthaknagoshe2002](https://profiles.wordpress.org/sarthaknagoshe2002/)
[@scruffian](https://profiles.wordpress.org/scruffian/) @shail-mehta [@simison](https://profiles.wordpress.org/simison/)
@t-hamano [@talldan](https://profiles.wordpress.org/talldan/) @tellthemachines [@timse201](https://profiles.wordpress.org/timse201/)
[@tyxla](https://profiles.wordpress.org/tyxla/) @USERSATOSHI @vishnucmsminds @vishnupprajapat
[@youknowriad](https://profiles.wordpress.org/youknowriad/) [@yuliyan](https://profiles.wordpress.org/yuliyan/)

[#block-editor](https://make.wordpress.org/core/tag/block-editor/), [#core-editor](https://make.wordpress.org/core/tag/core-editor/),
[#gutenberg](https://make.wordpress.org/core/tag/gutenberg/), [#gutenberg-new](https://make.wordpress.org/core/tag/gutenberg-new/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F05%2F21%2Fwhats-new-in-gutenberg-23-2-21-may%2F%23respond&locale=en_US)

# Post navigation

[← Older posts](https://make.wordpress.org/core/2026/05/page/2/?output_format=md)