PHPackages                             b13/headertypes - 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. b13/headertypes

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

b13/headertypes
===============

Add a separate header type field to tt\_content for headers and subheaders

1.3.0(2w ago)019.3k↓28.4%GPL-2.0-or-laterPHPPHP ^8.1CI passing

Since Apr 16Pushed 2w ago7 watchersCompare

[ Source](https://github.com/b13/headertypes)[ Packagist](https://packagist.org/packages/b13/headertypes)[ Docs](https://b13.com)[ RSS](/packages/b13-headertypes/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (3)Dependencies (2)Versions (11)Used By (0)

[![CI](https://github.com/b13/headertypes/actions/workflows/ci.yml/badge.svg)](https://github.com/b13/headertypes/actions/workflows/ci.yml/badge.svg)

EXT:headertypes - Separate the semantic header type from the header layout
==========================================================================

[](#extheadertypes---separate-the-semantic-header-type-from-the-header-layout)

Features
--------

[](#features)

- Adds a dedicated **Header Type** field to content elements to control the semantic HTML tag (``–``) of a header
- Adds a matching **Subheader Type** field for the subheader
- Decouples the *semantics* of a heading from its *visual appearance*
- Renames the TYPO3 Core "Header Layout" field to the clearer label **Layout** so editors understand it only affects styling
- Ships as a lightweight, backend-only extension: it adds the fields, your site package renders them
- Supports TYPO3 v12.4, v13 and v14 from a single extension version

Why did we create this extension?
---------------------------------

[](#why-did-we-create-this-extension)

TYPO3 Core ships a single `header_layout` field for content headers. That one field is used for two very different things at once: it decides both *how a header looks* and *which HTML tag* is rendered (`` … ``).

In real projects those two concerns pull apart:

- A header that should look like a large "H2" for design reasons might still need to be an `` for a correct document outline.
- Accessibility and SEO depend on a clean, hierarchical heading structure that editors should not be forced to break just to achieve a certain look.
- Designers want freedom over typography without side effects on the semantic structure of the page.

EXT:headertypes solves this by splitting the concern in two:

- **Layout** (the existing `header_layout` field, relabeled) keeps controlling the *visual* appearance.
- **Header Type** / **Subheader Type** (the new fields) control the *semantic* HTML tag.

This lets editors pick, for example, "looks like a Layout 2 heading, but is semantically an ``" — cleanly and without templating hacks.

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

[](#installation)

Install this extension via `composer req b13/headertypes` or download it from the [TYPO3 Extension Repository](https://extensions.typo3.org/extension/headertypes/) and activate the extension in the Extension Manager of your TYPO3 installation.

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

[](#how-it-works)

The extension adds two select fields to the `tt_content` table:

FieldPurposeValues`tx_headertypes_headertype`Semantic tag of the header`0` = Default, `1`–`6` = `h1`–`h6`, `7` = `p`, `8` = `span``tx_headertypes_subheadertype`Semantic tag of the subheader`0` = Default, `1`–`6` = `h1`–`h6`, `7` = `p`, `8` = `span`Both fields are added to the Core `header` and `headers` palettes, so they appear directly next to the header input in the backend for every content element that uses those palettes. The value `0` ("Default") means "do not override" — your template should fall back to its normal header rendering in that case.

The extension does **not** render anything in the frontend on its own. Rendering the chosen tag is the job of your site package or theme, which keeps the extension unopinionated and compatible across TYPO3 versions.

Frontend rendering
------------------

[](#frontend-rendering)

To make the new fields take effect, override the header partial in your site package (for `fluid_styled_content` this is `Resources/Private/Partials/Header/Header.html`) and use `tx_headertypes_headertype` to choose the tag, while keeping `header_layout` for the visual class.

```
EXT:my_sitepackage/Resources/Private/Partials/Header/Header.html

        {data.header}
        {data.header}
        {data.header}
        {data.header}
        {data.header}
        {data.header}
        {data.header}
        {data.header}

            Header Type "Default" (0): fall back to your regular header_layout based rendering.

```

The same principle applies to the subheader via `{data.tx_headertypes_subheadertype}`.

Compatibility
-------------

[](#compatibility)

Extension versionTYPO3 versions1.xv12.4, v13, v14Credits
-------

[](#credits)

This extension was created by David Steeb in 2020 for [b13 GmbH, Stuttgart](https://b13.com).

[Find more TYPO3 extensions we have developed](https://b13.com/useful-typo3-extensions-from-b13-to-you) that help us deliver value in client projects. As part of the way we work, we focus on testing and best practices to ensure long-term performance, reliability, and results in all our code.

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance96

Actively maintained with recent releases

Popularity26

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 61.9% 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 ~209 days

Total

5

Last Release

19d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3862523?v=4)[David Steeb](/maintainers/davidsteeb)[@davidsteeb](https://github.com/davidsteeb)

---

Top Contributors

[![davidsteeb](https://avatars.githubusercontent.com/u/3862523?v=4)](https://github.com/davidsteeb "davidsteeb (13 commits)")[![jschlier](https://avatars.githubusercontent.com/u/9108576?v=4)](https://github.com/jschlier "jschlier (4 commits)")[![achimfritz](https://avatars.githubusercontent.com/u/2152991?v=4)](https://github.com/achimfritz "achimfritz (2 commits)")[![achimfritz-b13](https://avatars.githubusercontent.com/u/156071319?v=4)](https://github.com/achimfritz-b13 "achimfritz-b13 (1 commits)")[![bmack](https://avatars.githubusercontent.com/u/165630?v=4)](https://github.com/bmack "bmack (1 commits)")

---

Tags

headeraccessibilityseoTYPO3 CMSheading

### Embed Badge

![Health badge](/badges/b13-headertypes/health.svg)

```
[![Health](https://phpackages.com/badges/b13-headertypes/health.svg)](https://phpackages.com/packages/b13-headertypes)
```

###  Alternatives

[friendsoftypo3/content-blocks

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

103574.3k69](/packages/friendsoftypo3-content-blocks)[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

571.8M9](/packages/yoast-seo-for-typo3-yoast-seo)[wazum/sluggi

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

40543.5k](/packages/wazum-sluggi)[brotkrueml/schema

Embedding schema.org vocabulary - API and view helpers for schema.org markup

35678.3k20](/packages/brotkrueml-schema)[derhansen/sf_event_mgt

Event management and registration - Configurable event management and registration extension based on ExtBase and Fluid

67347.1k11](/packages/derhansen-sf-event-mgt)[clickstorm/cs-seo

\[clickstorm\] SEO - Extension for TYPO3. Enables important onpage features for search engine optimization (SEO). Expands the page settings and any desired records for example with a preview for Google search results (SERP) Structured Data (JSON-LD) and a Focus Keyword. Restrictive hreflang and canonical tags. Modules for metadata of records and alternative texts of images. Further features are shown in the extension manual.

37542.0k1](/packages/clickstorm-cs-seo)

PHPackages © 2026

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