Deprecation: #109280 - FormEngine TcaDescription fieldInformation 

See forge#109280

Description 

The \TYPO3\CMS\Backend\Form\FieldInformation\TcaDescription field information render type has been deprecated. Field descriptions configured via TCA ['columns']['fieldName']['description'] are now rendered automatically next to the field label by \TYPO3\CMS\Backend\Form\Element\AbstractFormElement::renderDescription() and \TYPO3\CMS\Backend\Form\Container\AbstractContainer::renderDescription().

Previously, every FormEngine element and container registered tcaDescription as a default field information node, which rendered the description inside the element body. The description is now rendered after the label or legend element, providing more consistent positioning across all field types.

Additionally, the $defaultFieldInformation property has been removed from all Core FormEngine elements and containers. Custom elements that extend Core elements and rely on tcaDescription being present in $defaultFieldInformation are also affected.

Impact 

Using the tcaDescription render type in a custom fieldInformation configuration will trigger a PHP E_USER_DEPRECATED level error. The render type still exists but will return empty output during the deprecation period, since descriptions are now rendered at the label level.

Custom FormEngine nodes that extend core elements and override $defaultFieldInformation to include tcaDescription will still work, but the tcaDescription entry will trigger a deprecation warning.

Affected installations 

  • Installations with extensions that explicitly configure tcaDescription as a field information node in TCA:

    'fieldInformation' => [
        'tcaDescription' => [
            'renderType' => 'tcaDescription',
        ],
    ],
    Copied!
  • Custom FormEngine elements and containers that set tcaDescription in their $defaultFieldInformation property:

    protected $defaultFieldInformation = [
        'tcaDescription' => [
            'renderType' => 'tcaDescription',
        ],
    ];
    Copied!

Extensions that only use the standard TCA description property are not affected — descriptions will continue to be rendered.

Migration 

Remove any explicit tcaDescription field information configuration from TCA and from custom FormEngine node classes. Field descriptions are now rendered automatically next to the label and no longer require a field information node.

TCA configuration

 'columns' => [
     'my_field' => [
         'label' => 'My field',
         'description' => 'Help text for this field',
         'config' => [
             'type' => 'input',
-            'fieldInformation' => [
-                'tcaDescription' => [
-                    'renderType' => 'tcaDescription',
-                ],
-            ],
         ],
     ],
 ],
Copied!

Custom FormEngine nodes with defaultFieldInformation

If your custom element had a tcaDescription in $defaultFieldInformation, remove the property entirely:

class MyCustomElement extends AbstractFormElement
{
-    protected $defaultFieldInformation = [
-        'tcaDescription' => [
-            'renderType' => 'tcaDescription',
-        ],
-    ];
+    // tcaDescription is no longer needed; descriptions are
+    // rendered automatically next to the label.
}
Copied!

If your custom element has other field information entries alongside tcaDescription, remove only the tcaDescription entry:

class MyCustomElement extends AbstractFormElement
{
    protected $defaultFieldInformation = [
-       'tcaDescription' => [
-           'renderType' => 'tcaDescription',
-       ],
        'myCustomInfo' => [
            'renderType' => 'myCustomInfo',
        ],
    ];
}
Copied!