Convert theme engines into services
Problem/MotivationTheme engines are strange. They are not installed. Let's convert them to special services in modules. Steps to reproduceN/AProposed resolutionRemaining tasksUser interface...
View ArticleAutomated A11y tests in PHPUnit
Problem/MotivationIt could be useful to be able to easily run accessibility tests directly from PHPUnit using FunctionalJavascriptTests. It would help detect any level of issues that could prevent...
View ArticleReturn only main content for endpoints designed to service htmx requests
Problem/MotivationWhen we intentionally build responses to service HTMX requests it is the main content that we want to send. We don't want or need all the surrounding blocks that Drupal generates. In...
View ArticleAdd methods to get info about which elements are involved in an HTMX Request
Problem/MotivationAdding interactivity with HTMX will sometimes involve displays that depend on which element triggered the request. HTMX intends to return such data in a request header HX-Trigger and...
View ArticleRemove dependency on core/drupal.ajax from contextual module
Problem/MotivationReduce the weight of the contextual JS, since it's used on most pages when user has access to it. Steps to reproduceProposed resolutionchange the jquery ajax call with this, seems to...
View ArticleDisplay meaningful error messages according to the link type
Problem/MotivationLinkWidget error messages only make suggestions appropriate for internal paths. If a user is attempting to enter an external path, then the messages may be confusing.Steps to...
View ArticleStale issue cleanup 09-2025
Problem/MotivationThe Stale issue cleanup has been rolling for a while now. Background: The cleanup primary goal is to help triage the entire Drupal issue queue, see...
View ArticleDateTimeComputed: Fatal error when Ajax call in form. (strlen() on array)
Problem/MotivationWhen a form launches an AJAX call (like in the yoast_seo module), then the form_state is build by the request. (core/lib/Drupal/Core/Form/EventSubscriber/FormAjaxSubscriber.php r:103)...
View ArticleTidy up Fiber::suspend() calls
Problem/MotivationIt's a static method but we're not calling it statically everywhere.Steps to reproduceNAProposed resolutionDon't assign \Fiber::getCurrent() to a variable where not neededRemaining...
View ArticleFile temporary status is ambiguous
Problem/MotivationWhen files are uploaded, then initially get a 'temporary' status until they have been moved to the proper directory, and marked as permanent. Files that are no longer referenced by a...
View ArticleRequire a menu name in...
Problem/Motivation#2532490: Unrouted URLs break toolbar but are hidden by caching removes a problematic usage of NULL for a menu nameStill using NULL:...
View ArticleMove LinkGenerator out of Drupal\Core\Utility
Problem/MotivationDrupal\Core\Utility is filled with classes that have all static methods, most of which have no external dependencies.LinkGenerator is a service.We've made a distinction between...
View ArticleWrite BlockPluginInterface's docblock
#1391694: Use type-hinting for entity-parameters was committed in April 2013, but the Block plugin interface's docs haven't been written yet. We should do that before release.
View ArticleAdd an API method to get the current core version
Problem/MotivationSee #2544548: Add Drupal::VERSION constant update to packaging script for the motivation.Proposed resolutionAdd Drupal::version().Deprecate and/or remove the constant and move it to...
View Article_filter_url() is slow because preg_match() is slow, use strcasecmp() when...
I have a page where _filter_url() is 30% of the load time. The content has lots of markup and the $chunks array in _filter_url() ends up with over 5000 items. A simple change from preg_match() to...
View ArticleRefactor (if feasible) uses of the jQuery data function to use Vanilla/native
Problem/MotivationAs mentioned in the parent issue #3238306: [META] Where possible, refactor existing jQuery uses to vanillaJS to reduce jQuery footprint, we are working towards reducing our jQuery...
View ArticleControllerResolver should use RouteObjectInterface::CONTROLLER_NAME instead...
Problem/MotivationThe constant exists for this purpose but is not being used. Steps to reproduceN/AProposed resolutionReplace the string with the constant. Remaining tasksUser interface...
View ArticleAllow the sidebar for the node form to be used on other entity forms as well
Based on #2803875: Node form meta information should not come from a theme and #2882801: Review and improve the media creation form, I had the idea that we could let entity forms/modules opt-in to the...
View ArticleElements on grouped exposed filters configuration form are missing accessible...
Problem/Motivation Several form controls on the Views exposed filters grouped form are missing accessible names. It essentially boils down to these: <input...
View ArticleEntity lazy multiple front loading
Problem/MotivationWe currently multiple load entities when we can, mostly in views listing or reference field formatters etc. However, when you need to individually load entities of the same time from...
View ArticleConvert template_preprocess in views
Problem/MotivationPart of #3504381: [meta] Convert Template Preprocess hooks to OOP equivalentConvert all template_preprocess Steps to reproduceProposed resolution* Move all template_preprocess...
View Articlehook_page_attachments_alter does not allow altering all of a page's...
Problem/MotivationThe documentation of hook_page_attachments_alter() states:Use this hook when you want to remove or alter attachments on the page, or add attachments to the page that depend on another...
View ArticleRefactor ConfigSingleExportForm to use HTMX
Problem/MotivationConfigSingleExportForm uses the Ajax API to dynamically update the form. Proposed resolutionRefactor the form to use HTMX. The existing ajax callbacks can be adapted however their...
View ArticleInvalidArgumentException: The array contains invalid values
Problem/MotivationDeprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /var/www/html/docroot/core/lib/Drupal/Component/Datetime/DateTimePlus.php on line 639...
View ArticleViews REST export serializes booleans as strings
Problem/MotivationBoolean values in views fields exported as string when REST export display is created in views.Assumption: ViewsRenderPipelineMarkup uses trait MarkupTrait that converts everything to...
View ArticleAdd rawurldecode to $link_title in LinkFormatter
Since #2809789: UrlGenerator fails to urlencode aliases, incorrectly encodes "system" path$url->toString() always returns a string that is encoded using rawurlencode. This happens on line 300 in...
View ArticleRemove default/fallback entity form operation
Problem/MotivationWhen Entity Form Controllers were introduced, it came with the concept of a "default" form, where you could just call entity_get_form($entity), with no specified operation.This has...
View ArticleControl over the form view mode with an alter hook
Problem/MotivationMy use-case: An anonymous user can create a membership node. That form has many details that our client uses to determine if they want to approve od decline the membership. Once the...
View ArticleAllow the nesting of Views fields like happens in Views fieldsets
For Drupal 7 there is handy module Views fieldsets what allow nested fields:What about to support this feature in D8 Views? It will be much more cleaner than in D7 if this feature will be "in the core".
View ArticleAdd javascript test coverage to supplement ToolbarAdminMenuTest
follow up to #2863597: Convert web tests to browser tests for toolbar moduleToolbarAdminMenuTest uses getDrupalSettings() to verify javascript setting drupalSettings.toolbar.subtreesHash gets updated...
View ArticleViews: Make result summary area themeable
Currently, the Views result summary area can be configured via options in the Views UI. But for more fine-grained control/theming of the result summary area output, it would be nice to have a theme...
View ArticleDefine and document best practices for configuration entity updates/bc layers
Problem/MotivationFollow-up from #2851293: dblog is using the wrong views field, filter and relationships definitions. See also #2784233: Allow multiple vocabularies in the taxonomy filter and...
View ArticleRefactoring content_type.js
What is content_type.js? This is javascript for the node content editing form. Now it contains one behavior for setting summaries on content type form (display selected options in side vertical...
View ArticleLanguageItem field type's value can be any string, should be a valid...
Problem/MotivationThe new LanguageItem's value should only be allowed to contain a valid language code. Currently, the property definition of the 'value' property is set to "string". There should be...
View ArticleGet the block context in a condition plugin
Problem/MotivationThere is no longer a way to gain the context of the block/entity within a condition plugin. This has made it impossible for me to upgrade Per User Block to the new condition...
View ArticleUse #lazy_builder / placeholdering for entity rendering
Problem/MotivationPossible alternative to #3518668: Use Fibers for rendering views rows and related to #1237636: Entity lazy multiple front loading.I think we might be able to lazy/multiple load some...
View ArticleMenuActiveTrail should ignore disabled menu links
Problem/MotivationThe core system for retrieving the active menu trail does not check if the matching menu link is enabled or disabled. This can lead to several problems when a menu link is disabled,...
View Articleconfusing error & behavior when creating a new referenced entity...
Problem/MotivationA confusing error occurs if a content creator includes parentheses when creating an entity via an entity reference field. Some actions generate no error. The lack of message with some...
View ArticleUpdating to 10.5.3 causes gateway timeouts on revisioned content
Problem/MotivationAfter upgrading to Drupal core 10.5.3, our site hits database saturation, leading to site-wide 504 (Gateway Timeout) errors. The trigger appears to be rendering revisioned entities...
View ArticleConvert template_preprocess and helper functions in responsive_image module
Problem/MotivationPart of #3504381: [meta] Convert Template Preprocess hooks to OOP equivalentSteps to reproduceProposed resolutionThis has several helper functions that are only called from these...
View ArticleLog filling up with User 1 IP addresse access denied
Problem/Motivation: Access denied log showing User One IP address, and as Anonymous/not verified (I just updated to Drupal V 10.3.4 ) Ever since a few Drupal versions back I have been noticing, in my...
View Article[meta] Convert Template Preprocess hooks to OOP equivalent
Problem/Motivationtemplate_preprocess_HOOK can now be defined directly on hook_theme. Let's move core implementations to direct callbacks.Steps to reproduceN/AProposed resolutionConvert them to the...
View Article[meta] PHP 8.5 support
Problem/Motivation11.3 release should be PHP 8.5 compatible, see https://wiki.php.net/todo/php85Features implemented in 8.5New deprecations https://wiki.php.net/rfc/deprecations_php_8_5 (see child...
View ArticleMessages are repeated on redirect after changes for issue 3508299
Problem/MotivationThe changes for issue 3508299 have introduce a regression for a certain messages use case. I am developing a private module that uses middleware to add messages to pages when certain...
View ArticleNormalize the incoming path with urldecode directly in RouteProvider
Problem/MotivationAfter updating Drupal from version 10.2.7 to version 10.30, a 404 error occurred!Bilingual website pl/enthe https//mydomain/en version works fine the https//my_domain version (by...
View ArticleMake extension list services tagged services
Problem/MotivationFrom #2659940-119: Extension System, Part III: ThemeExtensionList and ThemeEngineExtensionList:Starting to feel like these might need to be tagged services with a collector to clear...
View ArticleHookCollectorPass fails to correctly register module hooks in some contexts
Problem/MotivationSee steps to reproduce.Steps to reproduceOn a fresh Drupal 11.x install, create two custom modules.Name the first module my_moduleName the second module my_module_libraryAdd a hook...
View ArticlePrevent hooks that do not go through module handler from being added to the...
Problem/MotivationThere are several hooks we know that go through module installer rather than handler, let's not add them to the container and save some memory.Steps to reproduceN/AProposed...
View ArticleLink options attributes removed on save
Problem/MotivationIf you are attaching some option attributes to a link field (using a custom module for example), those attributes are removed on node save. One solution is to use link_attributes, but...
View ArticleTableselect not applying "selected" classes to preselected rows
Problem/MotivationAs in the title. The selected class is usually used to make the selected row yellow, it's not yellow when a default value is set for the element and a row is selected.Steps to...
View Article