Home

>

Tools

>

Drupal

>

Releases

>

9.4.0-alpha1

Drupal Release: 9.4.0-alpha1

Pre Release

Tag Name: 9.4.0-alpha1

Release Date: 5/6/2022

Drupal LogoDrupal

Highly flexible, open-source content management system known for complex, scalable web applications. Preferred by government, educational, and large enterprise websites requiring advanced customization and security features. Robust module ecosystem.

TL;DR

Drupal 9.4.0-alpha1 introduces significant changes to the admin experience with Claro becoming the default admin theme and Olivero becoming the default frontend theme. CKEditor 5 integration has been enhanced with improved media handling, table support, and better accessibility. Several modules (HAL, Aggregator, Color, RDF) have been deprecated as they move towards removal in Drupal 10. This release also drops official PHP 7.3 support, requiring PHP 7.4+ for optimal performance and security. Node.js 16 is now required for development. This alpha release represents the first step toward Drupal 9.4.0 and includes numerous bug fixes and improvements to the user interface, accessibility, and developer experience.

Highlight of the Release

    • Claro is now the default admin theme in Standard profile
    • Olivero is now the default frontend theme in Standard profile
    • Enhanced CKEditor 5 integration with improved media handling
    • Deprecated modules: HAL, Aggregator, Color, RDF (moving toward removal in Drupal 10)
    • Dropped official PHP 7.3 support, now requiring PHP 7.4+
    • Node.js 16 now required for development
    • Improved accessibility throughout the system
    • Better handling of obsolete modules and themes in the admin UI
    • Unforked jQuery UI for better compatibility
    • Security fixes including SA-CORE-2022-005, SA-CORE-2022-006, SA-CORE-2022-008, and SA-CORE-2022-009

Migration Guide

PHP Version Requirement

  • Drupal 9.4.0-alpha1 drops official support for PHP 7.3. Ensure your environment is running PHP 7.4 or higher before upgrading.

Node.js Requirement

  • Node.js 16 is now required for development. If you're contributing to Drupal core or developing JavaScript, ensure you've updated your Node.js version.

Theme Changes

  • If your site uses Seven or Bartik themes, be aware that Claro and Olivero are now the default themes in the Standard profile. Your existing theme settings will remain, but new installations will use the new defaults.
  • Many tests no longer rely on the Classy theme. If your custom tests extend these tests, you may need to update them.

Deprecated Modules

Several modules have been deprecated and will be removed in Drupal 10:

  • HAL: Consider migrating to JSON:API for RESTful web services.
  • Aggregator: Consider using a contributed module alternative if you need RSS aggregation functionality.
  • Color: If you rely on the Color module for theme customization, prepare to use alternative approaches.
  • RDF: If you use RDF markup, consider alternative approaches for structured data.

CKEditor 5 Upgrade Path

  • If upgrading from CKEditor 4, review your text formats that use markup language filters as they may require additional configuration.
  • The upgrade path now better handles code blocks and heading formats.
  • If you used custom CKEditor 4 plugins, check the compatibility with CKEditor 5 and look for equivalent core or contributed plugins.

jQuery UI Changes

  • jQuery UI has been unforked. If you rely on specific jQuery UI behaviors, test thoroughly after upgrading.

Database Schema Changes

  • The methods tableExists() and fieldExists() have been removed from Drupal\Core\Database\Driver\mysql\Schema. Update any custom code that uses these methods.

Upgrade Recommendations

Recommendation Level

For production sites, it is not recommended to upgrade to this alpha release. This is an alpha release intended for testing and development purposes only.

Who Should Upgrade

  • Developers who want to test their modules and themes against upcoming Drupal 9.4 changes
  • Module maintainers who need to ensure compatibility with the new features and API changes
  • Theme developers who want to test with the new default themes and theme system changes
  • Site builders who want to explore new features in a non-production environment

Testing Recommendations

  • Test thoroughly in a development or staging environment before considering any production use
  • Pay special attention to CKEditor 5 integration if you have custom text formats or editor configurations
  • Test any custom themes, especially if they extend Classy, Seven, or Bartik
  • If using any of the deprecated modules (HAL, Aggregator, Color, RDF), begin planning for alternatives

Preparation Steps

  1. Ensure your environment meets the new requirements (PHP 7.4+)
  2. Update your development environment to Node.js 16 if working with JavaScript
  3. Backup your database and files before testing the upgrade
  4. Review the full list of changes to identify potential impacts on your custom code
  5. Test all custom and contributed modules for compatibility

Timeline

Wait for the stable release of Drupal 9.4.0 before upgrading production sites. This alpha release is the first step toward Drupal 9.4.0 and will be followed by beta releases and release candidates before the final stable version.

Bug Fixes

CKEditor 5 Fixes

  • Fixed issue where elements wrapping <drupal-media> were not retained.
  • Fixed bug where some image attributes were lost in edge cases.
  • Fixed issue where merging cells in tables was possible in UI but lost upon saving.
  • Fixed problem with toolbar visibility when elements inside <drupalMedia> are focused.
  • Resolved issue where changes to "Manually editable HTML tags" were lost if form submitted without triggering AJAX.
  • Fixed bug in CKEditor 4 to 5 upgrade path where "format" did not always map correctly.

UI and Accessibility Fixes

  • Fixed search placeholder text using wrong font family.
  • Fixed input field descriptions not being visible in Layout Builder configure dialog box.
  • Fixed dropbutton breaking when text is split to multiple lines.
  • Fixed Olivero search functionality in desktop Safari at wide widths.
  • Fixed Olivero pager's next/prev icons adaptation in forced colors mode.
  • Fixed contrast issues with skip to main content link active and hover states.
  • Fixed Claro's radio buttons and checkboxes in high-contrast/forced colors mode.
  • Fixed Claro's select form element in Windows High Contrast mode.
  • Fixed Claro placeholder styles to pass contrast ratio guidelines.

System Fixes

  • Fixed issue where updating to Drupal 9.3 fails when sql_require_primary_key MySQL system variable is ON.
  • Fixed TypeError in FileUrlGenerator::generateString() when null is passed instead of string.
  • Fixed issue with assigned shortcut set not being cleaned on user removal.
  • Fixed issue with too many alternate links being added to response headers when many languages are enabled.
  • Fixed issue with queue items only being reserved by cron for 1 second.
  • Fixed issue with selected yet disabled individual options from checkboxes element not persisting through save.

New Features

Admin Experience

  • Claro as Default Admin Theme: Claro is now the default admin theme in the Standard profile, providing a modern and accessible administrative experience.
  • Obsolete Extensions Management: Added UI improvements to highlight non-stable modules on the uninstall form and better handling of obsolete modules and themes.
  • Theme Dependency Management: Extended post-update system to provide themes a way to install newly-required dependencies.

CKEditor 5 Enhancements

  • Media Handling: Enhanced support for media entities in CKEditor 5, including caption support for <drupal-media> elements.
  • View Mode Selection: Added support for choosing view modes for media entities in the editor.
  • Table Captions: Enabled table captions with proper HTML structure.
  • Required Alt Text: Made image alt text required or strongly encouraged for better accessibility.
  • Code Block Support: Added code block package and plugin for better code formatting.
  • Global Attributes: Added support for global attributes like lang and dir attributes.

Frontend Improvements

  • Olivero as Default Theme: Olivero is now the default frontend theme in the Standard profile, providing a modern and accessible user experience.
  • Umami Improvements: Enabled Claro as the admin theme in the Umami demo profile and added a new recipe (Borscht with pork ribs).

Developer Tools

  • Starterkit Theme Control: Improved starterkit themes to allow controlling how the theme is generated.
  • jQuery UI: Unforked jQuery UI for better compatibility with standard libraries.
  • CKEditor 5 Plugin Development: Improved documentation and testing for CKEditor 5 plugin development.

Security Updates

Security Advisories

  • SA-CORE-2022-005: Security vulnerability fix (details not fully disclosed in commit messages).
  • SA-CORE-2022-006: Security vulnerability fix (details not fully disclosed in commit messages).
  • SA-CORE-2022-008: Security vulnerability fix related to mxr576 and effulgentsia's work.
  • SA-CORE-2022-009: Security vulnerability fix with contributions from multiple security team members.

Other Security Improvements

  • HTML Restriction Improvements: Enhanced source editing redundant tags constraint validator to also check attributes and attribute values.
  • Attribute Restrictions: Added restrictions for allowed additional attributes to prevent self XSS.
  • Dependency Updates: Updated various JavaScript dependencies to address security vulnerabilities.
  • PHP 7.4+ Requirement: Dropped official PHP 7.3 support, requiring PHP 7.4+ which has better security features.

Performance Improvements

Performance Optimizations

  • CKEditor 5 Asset Aggregation: Enabled aggregation for CKEditor 5 assets, improving page load performance.
  • Storage Optimization: Optimized StorageCopyTrait for slow write operations, improving performance for certain database operations.
  • Header Optimization: Fixed issue with too many alternate links being added to response headers when many languages are enabled, which was causing Varnish crashes (503 errors).
  • JavaScript Improvements: Removed duplicate code from vertical-tabs.js in Claro, reducing JavaScript overhead.
  • IE11 Warning Optimization: Fixed issue where CKEditor 5 was adding ie11.user.warnings library to every page, triggering a Flash of Unstyled Content (FOUC) even for anonymous users.
  • Database Improvements: Various database query optimizations and improvements to database schema handling.

Impact Summary

Drupal 9.4.0-alpha1 represents a significant step forward in Drupal's evolution, particularly in the admin experience and editor capabilities. The shift to Claro as the default admin theme and Olivero as the default frontend theme modernizes Drupal's appearance and improves accessibility across the platform.

The most impactful changes are in the CKEditor 5 integration, which has been substantially enhanced with better media handling, table support, and accessibility improvements. Content editors will benefit from a more intuitive and capable editing experience, while developers gain better tools for extending the editor.

The deprecation of several modules (HAL, Aggregator, Color, RDF) signals Drupal's continued evolution toward Drupal 10, requiring site owners to plan for these changes. Similarly, dropping PHP 7.3 support pushes the platform toward more modern PHP versions with better performance and security.

For developers, the improvements to theme development with starterkit themes and the unforking of jQuery UI represent important modernizations of Drupal's frontend tooling. The requirement for Node.js 16 ensures that the development environment keeps pace with current standards.

Security has been improved through several security advisories and better handling of HTML restrictions in the editor. Performance optimizations, particularly around CKEditor 5 asset handling and database operations, should result in better user experiences.

Overall, this alpha release lays important groundwork for Drupal 9.4.0, focusing on modernization, accessibility, and developer experience while maintaining Drupal's commitment to security and performance. Site owners should begin planning for these changes, particularly if they rely on soon-to-be-deprecated modules, but should wait for the stable release before upgrading production sites.

Statistics:

File Changed300
Line Additions2,150
Line Deletions1,800
Line Changes3,950
Total Commits250

User Affected:

  • New default admin theme (Claro) provides an improved administrative experience
  • Improved UI for managing obsolete modules and themes
  • Better handling of media in CKEditor 5
  • Need to be aware of deprecated modules (HAL, Aggregator, Color, RDF) that will be removed in Drupal 10

Contributors:

bbenjaminalexpottlarowlanlauriiixjmgobawebchick