---
title: "Deprecation: #96524 - Deprecate inline JavaScript in Dashboard"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-96524"
source: "Changelog/12.0/Deprecation-96524-DeprecateInlineJavaScriptInDashboard.rst"
typo3-version: "12.0"
typo3-major: 12
type: "deprecation"
issue: 96524
forge: "https://forge.typo3.org/issues/96524"
tags: ["Frontend", "TypoScript", "FullyScanned", "ext:core"]
rendered: "2026-09-24T21:45:06+00:00"
---

# Deprecation: #96524 - Deprecate inline JavaScript in Dashboard {#deprecation-96524}

See [forge#96524](https://forge.typo3.org/issues/96524)

## Description {#description}

Using inline JavaScript when initializing RequireJS modules in individual
dashboard widgets has been deprecated. Widget implementations have to be
adjusted accordingly.

## Impact {#impact}

Usages will trigger PHP `E_USER_DEPRECATED` errors.

## Affected Installations {#affected-installations}

Installations having individual widget implementations which are

-   implementing `\TYPO3\CMS\Dashboard\Widgets\RequireJsModuleInterface`
-   invoking `\TYPO3\CMS\Dashboard\DashboardInitializationService->getRequireJsModules`

## Migration {#migration}

Affected widget have to implement `\TYPO3\CMS\Dashboard\Widgets\JavaScriptInterface`
instead of deprecated `\TYPO3\CMS\Dashboard\Widgets\RequireJsModuleInterface`.
Instead of using inline JavaScript for initializing RequireJS modules,
`\TYPO3\CMS\Core\Page\JavaScriptModuleInstruction` have to be declared.

```php
class ExampleChartWidget implements RequireJsModuleInterface
{
    // ...
    public function getJavaScriptModuleInstructions(): array
    {
        return [
            'TYPO3/CMS/Dashboard/ChartInitializer' =>
                'function(ChartInitializer) { ChartInitializer.initialize(); }',
        ];
    }
}
```

Deprecated example widget above would look like the following when using
`JavaScriptInterface` and `JavaScriptModuleInstruction`:

```php
class ExampleChartWidget implements JavaScriptInterface
{
    // ...
    public function getJavaScriptModuleInstructions(): array
    {
        return [
            JavaScriptModuleInstruction::forRequireJS(
                'TYPO3/CMS/Dashboard/ChartInitializer'
            )->invoke('initialize'),
        ];
    }
}
```
