PHPackages                             zeroseven/z7-semantilizer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zeroseven/z7-semantilizer

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

zeroseven/z7-semantilizer
=========================

Simplify your semantic heading structure.

v4.3.3(9mo ago)1356.6k↓41.1%7[3 issues](https://github.com/zeroseven/z7_semantilizer/issues)[3 PRs](https://github.com/zeroseven/z7_semantilizer/pulls)1GPL-2.0-onlyPHPCI passing

Since Aug 20Pushed 3w ago7 watchersCompare

[ Source](https://github.com/zeroseven/z7_semantilizer)[ Packagist](https://packagist.org/packages/zeroseven/z7-semantilizer)[ RSS](/packages/zeroseven-z7-semantilizer/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (3)Versions (51)Used By (1)

The Semantilizer
================

[](#the-semantilizer)

Simplify your semantic heading structure
----------------------------------------

[](#simplify-your-semantic-heading-structure)

The Semantilizer improves the SEO and accessibility of your TYPO3 Website and enhances your possibilities in creating content. Extend the functionality of headlines with this easy-to-use tool that automatically validates and corrects your heading structure.

Your content editors and your users will love it. Your SEO specialists and your designers will love it – and you’ll love the Semantilizer, too, for sure!

[![semantilizer during his work](./Resources/Public/Images/demo.gif)](./Resources/Public/Images/demo.gif)

Installation
------------

[](#installation)

- Get the extension via composer: `composer require zeroseven/z7-semantilizer`
- Make sure the TypoScript setup gets included after the configuration of `fluid_styled_content` to override their partials for the headlines

How it works
------------

[](#how-it-works)

The Semantilizer divides the headline setup of website content elements into two different fields. By detaching the semantic markup from the field `header_layout`, it becomes more simple and flexible for editors to e. g. change the font size of a headline without changing its position in the headline hierarchy.

[![detachment](./Resources/Public/Images/form.png)](./Resources/Public/Images/form.png)

The Semantilizer provides real-time validation in the TYPO3 backend. It instantly notifies you about illogical headline structures which can then automatically be fixed with just one click. Within the TYPO3 Page module, you can get a clear overview of a page and its structure, and easily adjust the headline hierarchy using drag-and-drop.

[![semantic overview](./Resources/Public/Images/overview.png)](./Resources/Public/Images/overview.png)

### Validation

[](#validation)

When displaying the headline structure of a page, the Semantilizer loads its frontend rather than just crawling information from the database. That way, it automatically includes information from other extensions and backend layouts – without any special configuration being necessary. It also includes headlines from RTE content and referenced content elements. This feature makes the extension highly reliable and flexible, as the overview includes all headlines that can possibly be there.

Setup
-----

[](#setup)

### Render headlines

[](#render-headlines)

You’ll need to render your headlines via an extra ViewHelper in order to be able to edit or correct them automatically in the backend overview. The `edit` attribute of the ViewHelper gives the Semantilizer all the necessary information about the current headlines.

```

        {data.header}

        {data.header}

```

💡 *These infos will only be added to the headline if the editor is logged in to the TYPO3 backend and if the request is made by the Semantilizer. Adding to that, a background check regarding the required editor access rights will be made.*

### Deactivate the Semantilizer

[](#deactivate-the-semantilizer)

Let's take a detail page of the "news" extension: It can make sense to deactivate the Semantilizer. On a page like this, you usually have different page content depending on parameters. Therefore you can disable the Semantilizer via TSconfig.

```
tx_semantilizer.disabledPages := addToList(22)

```

The same configuration can be made for page types in general:

```
tx_semantilizer.disabledDoktypes := addToList(33)

```

### Define validation areas

[](#define-validation-areas)

The Semantilizer checks the whole page `body` when standard settings are selected. If you want to have particular parts of the page checked, this can be adjusted in TSconfig settings by providing the necessary `querySelector`:

```
tx_semantilizer.contentSelectors = #main-content, .sidebar, div[role=banner]

```

### Connect headlines

[](#connect-headlines)

Create logical connections between your headlines with the Semantilizer by assigning a `relationId` to a headline so that others can connect to it. Now you can control their semantic markup either via the `ChildViewHelper` in a dynamic hierarchical way (see example). Or you can use the `SiblingViewHelper` to unchangedly mirror the semantic markup on connected headlines instead of making them hierarchical.

```

    {data.header}

            {product.header}
            {product.description}

```

💡 *As long as the `edit` attribute for the headline is set, there will be a standard fallback of `[tablename]:[uid]` as `relationId`.*

Tips
----

[](#tips)

If you want to make the labels of `header_layouts` more understandable, overwrite them like so:

```
TCEFORM.tt_content.header_layout {
  removeItems = 1,2,3,4,5,6
  altLabels.. = Medium
  addItems {
    large = Large
    small = Small
    pink_sparkling_bouncing_header = 🦄
  }
}

```

Release notes:
--------------

[](#release-notes)

### Version 4.0:

[](#version-40)

- Compatibility with TYPO3 12 (dropped support for TYPO3 10 and 11)
- Refactored JavaScript, based on TypeScript
- Working with [ES6 JavaScript modules](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Backend/JavaScript/ES6/)

### Version 3.0:

[](#version-30)

- Refactored JavaScript based headline validation
- Refactored backend overview
- Custom viewHelpers

### Version 2.2

[](#version-22)

- Compatibility with TYPO3 11
- Switch from npm to yarn

### Version 2.1:

[](#version-21)

- Support multiple colPos (with ordering) depending on backend\_layout

### Version 2.0:

[](#version-20)

- Refactoring of backend validation on PHP side
- Introduce dashboard widget for TYPO3 10 🎉
- **Breaking change:** FixedTitleInterface has updated parameters, please adapt

###  Health Score

55

—

FairBetter than 97% of packages

Maintenance73

Regular maintenance activity

Popularity39

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 55.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~75 days

Recently: every ~56 days

Total

32

Last Release

162d ago

Major Versions

v0.6.0 → v1.0.02020-03-05

v1.1.1 → v2.0.02020-06-12

v2.2.0 → v3.0.12022-03-24

v3.0.1 → v4.0.02023-05-04

### Community

Maintainers

![](https://www.gravatar.com/avatar/6b22f8a50cfbda138fd9d18f9a9323a9ab93434487122956978e804dee700876?d=identicon)[zerosevendesignstudios](/maintainers/zerosevendesignstudios)

---

Top Contributors

[![srosskopf](https://avatars.githubusercontent.com/u/17512766?v=4)](https://github.com/srosskopf "srosskopf (27 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (10 commits)")[![kaystrobach](https://avatars.githubusercontent.com/u/1185776?v=4)](https://github.com/kaystrobach "kaystrobach (2 commits)")[![lwinterhalder](https://avatars.githubusercontent.com/u/12656324?v=4)](https://github.com/lwinterhalder "lwinterhalder (2 commits)")[![ochorocho](https://avatars.githubusercontent.com/u/4623070?v=4)](https://github.com/ochorocho "ochorocho (2 commits)")[![davidsteeb](https://avatars.githubusercontent.com/u/3862523?v=4)](https://github.com/davidsteeb "davidsteeb (1 commits)")[![teneris](https://avatars.githubusercontent.com/u/773723?v=4)](https://github.com/teneris "teneris (1 commits)")[![pdaether](https://avatars.githubusercontent.com/u/1213181?v=4)](https://github.com/pdaether "pdaether (1 commits)")[![raphaelthanner](https://avatars.githubusercontent.com/u/19648920?v=4)](https://github.com/raphaelthanner "raphaelthanner (1 commits)")[![raphaeludg](https://avatars.githubusercontent.com/u/218826395?v=4)](https://github.com/raphaeludg "raphaeludg (1 commits)")[![revoltek-daniel](https://avatars.githubusercontent.com/u/5931272?v=4)](https://github.com/revoltek-daniel "revoltek-daniel (1 commits)")

---

Tags

typo3typo3v13

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/zeroseven-z7-semantilizer/health.svg)

```
[![Health](https://phpackages.com/badges/zeroseven-z7-semantilizer/health.svg)](https://phpackages.com/packages/zeroseven-z7-semantilizer)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40529.5k](/packages/wazum-sluggi)[typo3/cms-scheduler

TYPO3 CMS Scheduler - Schedule tasks to run once or periodically at a specific time.

169.3M231](/packages/typo3-cms-scheduler)[typo3/cms-lowlevel

TYPO3 CMS Lowlevel - Technical analysis of the system. This includes raw database search, checking relations, counting pages and records etc.

178.2M317](/packages/typo3-cms-lowlevel)[typo3/cms-redirects

TYPO3 CMS Redirects - Create manual redirects, list existing redirects and automatically createredirects on slug changes.

167.4M80](/packages/typo3-cms-redirects)[typo3/cms-form

TYPO3 CMS Form - Flexible TYPO3 frontend form framework that comes with a backend editor interface.

147.6M266](/packages/typo3-cms-form)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
