Gutenberg 23.7 : les nouveautés de l’éditeur de blocs
Gutenberg 23.7 est disponible au téléchargement. Cette version affine surtout l’éditeur de blocs, clarifie le mode dynamique de la galerie et ajoute plusieurs corrections destinées aux auteurs comme aux développeurs d’extensions et de thèmes.
Vous pouvez aussi essayer Gutenberg 23.7 dans WordPress Playground.
Améliorations visibles dans l’éditeur de blocs :
Les ajustements de cette version corrigent plusieurs détails de mise en page qui gênaient l’édition quotidienne. Les blocs flottants ne recouvrent plus les blocs positionnés en sticky, et l’ajouteur de bloc vide reprend sa place dans les blocs qui capturent leur propre barre d’outils.
Le bloc Exergue respecte désormais une hauteur de ligne personnalisée dans l’éditeur, afin de correspondre au rendu côté public. Les aperçus mobile et tablette retrouvent aussi une hauteur fixe.

Mode dynamique du bloc Galerie : un détachement plus explicite
Le mode dynamique du nouveau bloc Galerie, introduit avec Gutenberg 23.6, remplace son bouton ambigu « Convertir en images » par « Détacher ». Une fenêtre modale explique maintenant les conséquences de ce choix avant de détacher les images.
La conversion du mode dynamique en images ne crée par ailleurs qu’un seul niveau dans l’historique d’annulation. Vous pouvez donc annuler l’opération en une seule action.


Fonctions et composants à connaître
L’interface d’héritage des styles globaux devient expérimentale et facultative. Activez-la depuis la page des expériences de Gutenberg si vous souhaitez la tester. L’inspecteur de blocs reflète également les valeurs héritées des styles globaux et résout les styles de liens pour les blocs qui sont eux-mêmes des liens.
Le bloc Math utilise maintenant ValidatedTextareaControl pour saisir du LaTeX. Les erreurs d’analyse ne s’affichent plus à chaque frappe : le contrôle attend que le champ perde le focus une première fois, et il ne déclenche plus d’annonce au lecteur d’écran pour chaque caractère.
Les composants Combobox, Select et SelectControl reçoivent les sous-composants Group et GroupLabel. Ils permettent de composer des options groupées de façon cohérente dans les familles de sélecteurs à fenêtre contextuelle.
Journal des changements pour les développeurs
Améliorations
Styles, widgets et tableau de bord
Les styles de base permettent de remplacer la couleur de l’anneau de focus dans outset-ring__focus. Le tableau de bord des widgets mesure l’ajustement de son en-tête et documente son chrome. Les primitives de widgets sont désormais livrées sous forme de module de script.
Composants
Combobox,SelectetSelectControlajoutentGroupetGroupLabel.- Les champs de recherche de DataViews et de la bibliothèque de polices reçoivent une largeur fixe pour éviter les décalages de mise en page.
DataViewsPickerprend en charge la sélection d’une plage avec Maj+clic dans les dispositions tableau, grille et activité.- Le composant sandbox accepte une propriété
sandbox. - Les champs
inputde typenumbermasquent leurs contrôles numériques natifs. SearchControln’affiche son suffixe que lorsqu’il existe.- L’interface ajoute la primitive
Autocomplete.Row.
Bibliothèque de blocs et éditeur de publication
- La couverture des scénarios utilisateur de bout en bout du bloc Table des matières s’étend.
- Le bloc Math utilise
ValidatedTextareaControlpour l’entrée LaTeX. - Le réglage d’éditeur
responsiveEditingEnabledpermet de masquer l’option Styles responsifs. - La page de navigation de la bibliothèque de polices aligne sa taille de police sur DataViews.
Collaboration et styles globaux
La collaboration en temps réel (RTC) désactive l’édition rapide lorsqu’une publication est déjà en cours d’édition. La gestion commune des préréglages est extraite des ombres et des tailles de police.
Correctifs
Éditeur, configuration des vues et rendu
- Les blocs flottants ne chevauchent plus les blocs sticky.
- Le versionnage de l’API de configuration des vues est mis à jour.
- Les fusions de configurations de vue dont la forme ne correspond pas sont rejetées ; la sémantique des tableaux vides est définie et les valeurs
nullsont retirées des membres ajoutés. createInterpolateElementgère correctement les balises fermantes sans correspondance.
Bibliothèque de blocs
render_block_core_video()traite les balisesVIDEOqui ne sont pas en minuscules.- Les blocs Couverture et Accordéon quittent correctement l’édition avec Entrée.
- Le bloc Galerie dynamique renomme son bouton en « Détacher » et explique l’opération dans une modale.
- Le bloc Exergue applique la hauteur de ligne personnalisée dans l’éditeur.
- La conversion du mode dynamique de Galerie ne crée qu’un seul niveau d’annulation.
- Le bloc Liste préserve son type ordonné lors d’une indentation.
- L’éditeur de médias affiche un état de chargement pendant celui du fichier recadré.
- Le drapeau redondant
__heicUploadSupportest supprimé. - L’interface des liens du bloc Navigation retrouve l’option « Ajouter un bloc » à l’intérieur des parties de modèle.
- Le libellé du bouton de barre d’outils d’une piste de playlist est raccourci.
- Le réglage « Décalage » du bloc Boucle de requête reçoit un contexte de traduction.
- Le balisage de l’icône Tumblr du bloc Liens sociaux ne contient plus de balise fermante superflue.
Éditeur de blocs
- Le contrôle d’image d’arrière-plan ne dessine plus deux anneaux de focus.
- L’ajouteur de bloc vide se positionne correctement dans les blocs qui capturent les barres d’outils.
- La suppression avant conserve la position du curseur dans les blocs vides.
- Les imports des tests aller-retour de préréglages sont corrigés après la consolidation des utilitaires.
- Les panneaux Styles globaux valident et affichent le bon préréglage quand deux préréglages de couleurs partagent le même hexadécimal.
- La synchronisation RTC des blocs contrôlés n’intercepte plus l’annulation.
- Les éléments éditables de texte enrichi retirent à nouveau
tabIndexpour corriger la sélection avec Maj+clic. - Maj+flèche étend la sélection de blocs quand aucune sélection native n’existe.
- Maj+clic est identifié comme un geste de sélection multiple.
- Le déplacement du curseur dans un bloc plus haut que la zone d’affichage ne fait plus défiler la page.
RichTextn’applique pas de transformation d’entrée sansonReplace.- Le collage de fichiers ne fait plus planter le gestionnaire de collage de
RichText.
Éditeur de publication
- Les champs qui gèrent leur propre historique d’annulation laissent le navigateur gérer l’annulation.
- Les aperçus mobile et tablette récupèrent leur hauteur fixe.
- Les boîtes meta alignent le style de leurs titres sur les panneaux Gutenberg.
- Les notes capturent le bloc cible avant d’enregistrer une note de niveau bloc.
- Le format de note en ligne s’enregistre au moment de l’import.
- Les actions sur les notes signalent systématiquement le succès de l’enregistrement.
- La sélection de la barre latérale se synchronise avec le marqueur en ligne situé sous le curseur.
- La modale de verrouillage de publication ne bascule plus à tort vers « Quelqu’un d’autre a pris le contrôle » pour un lecteur exclu du verrouillage.
- Les notifications sont encapsulées dans
ThemeProvideravec un rayon de bordure nul. - Sur iOS, le hack de saut est supprimé et un comportement de machine à écrire est ajouté.
Composants et médias côté client
DataFormempêche les validations des cartes et des détails de voler le focus.- La surcharge racine de
.prettierrc.jsest corrigée. GradientPickersélectionne par slug afin que deux préréglages partageant un dégradé conservent leur identité.- Storybook corrige
jsxImportSourcepour Emotion. ToolsPanelmigre ses styles vers un module SCSS.- La conversion de GIF animés longs ne bloque plus les envois : seuls les premiers frames sont décodés pour les sorties fixes.
- Les modèles de médias ne forcent plus
crossoriginsur les balisesIMG. wp-buildsynchronise la liste des champs de préchargement du modèle de page aveccore-data.
Collaboration, API média et thème
- Les tests de suppression de référence de base des notes détachent le filtre KSES des mentions du core.
- RTC compacte les données durant leur sérialisation.
- L’API REST des médias récupère le contrôle de taille des envois depuis un chemin d’URL.
- Theme JSON aligne la spécificité des classes de préréglages au niveau bloc avec
:where(). - La couche de données RTC conserve les modifications non enregistrées des collaborateurs lorsqu’un autre utilisateur enregistre.
Accessibilité et performances
Les contrôles d’alignement améliorent la gestion de leurs propriétés. Dans le bloc Navigation, aria-expanded se met correctement à jour lors du survol d’un sous-menu placé dans une superposition.
- Le texte enrichi lit l’attribut
contentEditabledansownsSelectionafin d’éviter un calcul forcé de mise en page. - Un correctif tente de résoudre une régression des performances de saisie.
FlatTermSelectorévite les récupérations inutiles de termes.Core Datadéplace le composantEntitiesSavedStatehors de l’éditeur.
Expériences
Les widgets du tableau de bord renforcent l’assainissement des attributs href de leurs actions et de leurs liens d’aide. L’interface d’héritage des styles globaux reste protégée par une expérience Gutenberg.
Documentation
AGENTS.mddocumente l’utilisation denvm use.- La documentation ajoute un modèle de découverte progressive pour les instructions et compétences d’agent.
- La documentation globale manquante est ajoutée dans
table-of-contents/index.php. WP_Icon_Collections_Registryreçoit les docblocks manquants au niveau fichier et classe.- La découverte des consignes pour agents est clarifiée.
- Le comportement de
getBlockavec les contrôleurs de blocs internes est précisé. - Le guide de rétroportage vers le core de WordPress est développé.
- Les callbacks de filtre de configuration de vue doivent retourner le conteneur.
- Les recommandations sur les
iframesont mises à jour pour Gutenberg 23.6. - Les exemples de schéma de couleurs d’administration dans Storybook sont actualisés.
- La documentation de conception distingue dialogue et panneau latéral.
- La documentation des filtres de configuration de vue côté serveur est mise à jour.
- La documentation en ligne utilise un lien pour les URL.
Qualité du code
- ESLint ajoute les composants manquants et non recommandés à sa liste d’interdiction.
webpack-dev-serverpasse à^5.2.1pour réduire les alertes de dépendances.- Les workflows GitHub corrigent les vérifications de journal des modifications pour les pull requests issues de forks.
- L’API Interactivité remanie ses directives en modules qui s’enregistrent eux-mêmes.
- RTC utilise
array_any()pour vérifier une compaction plus récente sur le serveur de synchronisation par interrogation. - RTC utilise
str_contains()dansWP_Sync_Config. - Storybook construit le spécificateur de résolution comme une chaîne au format URL.
- Les outils résolvent les dépendances indépendamment de l’organisation de
node_modules.
Composants et blocs
Autocompleteréférence la liste de suggestions avecaria-controlsetaria-haspopup.ExternalLinkutilise le mixin commun d’anneau de focus.- Le hook
useSelectionPropsdevient indépendant de la disposition. Disabled,FormTokenFieldetSearchControlmigrent vers des modules SCSS.- Les paquets mettent à jour
date-fnsvers 4.4.0 etmemizevers 2.1.1. - Le thème met à jour Color.js vers 0.7.1, actualise
colorjs.ioet retire une solution de contournement de bug. - L’interface améliore la lisibilité du code de composants dans Storybook en utilisant des tableaux pour les enfants.
- Le paquet publié du thème interdit
src. - La bibliothèque de blocs se protège contre les valeurs d’attributs qui lèvent des erreurs.
editableRootdevient un réglage privé de bloc plutôt qu’un support public.- Plusieurs correctifs accompagnent les fusions WordPress-Develop 7.0.
- La Liste des pages utilise l’opérateur de coalescence nulle pour l’attribut
parentPageID. - La pragma redondante
@jest-environment jsdomest supprimée et interdite par lint. - Les contrôles de formulaire retirent les propriétés
__next40pxDefaultSizeinutiles. - Le bloc Table des matières utilise
str_contains()au lieu d’un contrôlestrpos(). - Le modèle du panneau d’onglet ne crée plus de paragraphe par défaut.
Éditeur, site et collaboration
- Les utilitaires duotone sont dédupliqués dans
global-styles-engine. - Les implémentations dupliquées d’utilitaires de préréglages sont réduites.
URLInputdevient un composant fonctionnel.- Les icônes SVG de l’éditeur de publication doivent inclure un
viewBox. - Les notes annulent la surbrillance de survol en cours lorsque le focus quitte un fil de discussion.
- Les fichiers de tests unitaires des styles globaux sont renommés et perdent le suffixe
.spec.js. - L’éditeur de site remplace l’usage de
Themedans le chargeur de canevas par du CSS. - Le code de collaboration en temps réel est déplacé vers
lib/experimental/collaboration.
Outils, build et tests
- La documentation met à jour la capture d’écran du formulaire de publication pour la nouvelle interface des libellés de version GitHub.
- La publication exige une GitHub CLI fonctionnelle pour appliquer des commits avec
cherry-pick. - La chaîne de build ajoute un paquet fournisseur React 18 indépendant.
- Le script de développement traite les chemins de projet contenant des espaces.
- Les composants ignorent les typages de propriété polymorphe sur les intersections.
DependencyExtractionWebpackPlugininclut les styles extraits dans le hash de version des ressources.- Un test de compatibilité de bout en bout vérifie l’attribut booléen
inertavec React 19. - Prettier est résolu explicitement dans une disposition isolée.
- Storybook ne définit plus Emotion comme source d’import JSX.
- WP Build évite une boucle infinie de build des workers.
- Les vérifications préalables d’accès à npm sont améliorées.
- Jest corrige son motif d’exclusion pour les fichiers de déclaration TypeScript.
- Jest passe à la version 30, un changement incompatible.
- Flakiness.io n’est utilisé que dans le dépôt Gutenberg canonique.
- Les tests de performance corrigent la métrique « Selecting blocks », qui rapportait 0 ms.
- RTC corrige un test d’utilisateur supprimé en multisite.
- L’éditeur de site ajoute une couverture de bout en bout pour l’extensibilité de la configuration de vue.
Ajustements divers
Les styles de base retirent le paramètre de couleur d’accent de input-control. Le composant Theme privé est supprimé.
Préparer vos tests
Installez Gutenberg 23.7 sur un environnement de développement et vérifiez en priorité les galeries dynamiques, les styles globaux hérités si vous activez l’expérience, les formulaires qui emploient les primitives de sélection et les parcours d’édition collaborative. Si votre thème ou votre extension s’appuie sur les configurations de vues, Theme JSON, les composants d’interface ou les outils de build concernés, exécutez aussi votre suite de tests avant tout deploy.
Références / Sources
Camille Dubois
Rédactrice en chef de l'équipe française, experte Symfony et Laravel. Je suis convaincue que le code élégant et la bonne documentation vont de pair.
Tous les articles