---
title: "Deprecation: #85902 - IMGMENU/GMENU"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-85902"
source: "Changelog/9.4/Deprecation-85902-IMGMENUGMENU.rst"
typo3-version: "9.4"
typo3-major: 9
type: "deprecation"
issue: 85902
forge: "https://forge.typo3.org/issues/85902"
tags: ["Frontend", "TypoScript", "PartiallyScanned", "ext:frontend"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Deprecation: #85902 - IMGMENU/GMENU {#deprecation-85902}

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

## Description {#description}

Rendering a Hierarchical Menu via TypoScript previously allowed various rendering methods, namely textual (`TMENU`),
but also rendering menu items as images (`GMENU`) or as an image map (`IMGMENU`). Both graphical possibilities
have been marked as deprecated, as it is considered bad practice building websites
nowadays - images with a fixed width, and text within images has various drawbacks in terms of accessibility and
responsive renderings.

The following PHP classes have been marked as deprecated:

-   `\TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject`
-   `\TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuContentObject`

The related TypoScript menu objects `GMENU` and `GMENUITEM` as well as `IMGMENU` and `IMGMENUITEM` have been
marked as deprecated.

On top the following TypoScript options within a MENU item, regarding TMENU have been marked as deprecated:

-   imgNamePrefix
-   imgNameNotRandom

The following TMENU item properties should not be used anymore.

-   RO_chBgColor
-   beforeImg
-   beforeImgTagParams
-   beforeImgLink
-   beforeROImg
-   RO
-   afterImg
-   afterImgTagParams
-   afterImgLink
-   afterROImg

The following item states have been marked as deprecated ("RO" for "rollover" in graphics-related items).

-   IFSUBRO
-   ACTRO
-   ACTIFSUBRO
-   CURRO
-   CURIFSUBRO
-   USRRO
-   USERDEF1RO
-   USERDEF2RO

The following previously public properties are now marked as internal and trigger a PHP `E_USER_DEPRECATED` error,
partly due to preparations of refactoring the PHP code once GMENU functionality is removed, and partly
due to the highly connected functionality within the PHP classes:

-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->menuNumber`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->entryLevel`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->spacerIDList`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->doktypeExcludeList`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->alwaysActivePIDlist`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->imgNamePrefix`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->imgNameNotRandom`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->debug`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->GMENU_fixKey`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->MP_array`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->conf`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->mconf`
-   \[not scanned\] `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->tmpl`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->sys_page`
-   \[not scanned\] `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->id`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->nextActive`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->menuArr`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->hash`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->result`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->rL_uidRegister`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->INPfixMD5`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->I`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->WMresult`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->WMfreezePrefix`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->WMmenuItems`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->WMsubmenuObjSuffixes`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->WMextraScript`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->WMcObj`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->alternativeMenuTempArray`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->nameAttribute`

The following methods have changed visibility:

-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->subMenu()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->link()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->procesItemStates()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->changeLinksForAccessRestrictedPages()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->isNext()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->isActive()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->isCurrent()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->isSubMenu()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->isItemState()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->accessKey()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->userProcess()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->setATagParts()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->getPageTitle()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->getMPvar()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->getDoktypeExcludeWhere()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->getBannedUids()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->menuTypoLink()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject->extProc_RO()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject->extProc_init()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject->extProc_beforeLinking()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject->extProc_afterLinking()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject->extProc_beforeAllWrap()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject->extProc_finish()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject->getBeforeAfter()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject->extProc_init()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject->extProc_beforeLinking()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject->extProc_afterLinking()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject->extProc_beforeAllWrap()`
-   `TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject->extProc_finish()`

The following functionality has been marked as deprecated as well:

-   `TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->setJS('mouseOver')`

## Impact {#impact}

Instantiating any of the deprecated PHP classes, or calling any of the PHP methods will trigger a
PHP `E_USER_DEPRECATED` error, as well as setting any of the previously public properties.

Using `GMENU` or `IMGMENU` or any of the TypoScript settings will also raise a PHP `E_USER_DEPRECATED` error.

## Affected Installations {#affected-installations}

TYPO3 installations using `GMENU` or `IMGMENU` TypoScript functionality, roll-over functionality within menus
in Frontend, or image-related functionality related to `HMENU`, or extending `HMENU` with their custom menus.

## Migration {#migration}

Migrate to `TMENU` by using "before" and "after" functionality to effectively render images with `GIFBUILDER`.
