Skip to main content

Purpose

AI Label helps your team record, confirm, and disclose AI-generated or AI-modified content for EU AI Act Article 50 workflows. Path: AI Foundation > AI Label
AI Foundation provides the technical tooling — coverage scores, review lists, visitor-facing badges, and evidence export. It does not guarantee legal compliance. A high coverage number means internal checks pass, not that your site is compliant.

Who uses it

  • Editors — review AI-touched pages, content elements, and media; confirm or adjust involvement; assign a named reviewer where required.
  • Administrators — configure label appearance, auto-confirm rules, and which extension tables participate.
  • Compliance / legal — export evidence reports with machine-readable reason codes per record.

Module layout

Overview tab

  • Scoreboard — four KPI cards: Confirmed, Awaiting review, Labelled in frontend, Not labelled.
  • AI Label coverage — checklist score with collapsible details (what counts, blind spots). Export CSV report from here.
  • Media / Texts cards — domain progress rings and quick links.
  • Where records came from — counts by recording source (AI Universe, upload detection, editor, other extensions).
  • System status — EU icon pack, ImageMagick/EXIF, scheduled audit task.

Media tab

  • Folder tree (fileadmin) — browse FAL folders; badge shows open items.
  • Filters — search, involvement, label state, file type, confirmed-by, dates, recording source, reason code.
  • Table — one row per file metadata record.
  • Row actions:
    • Edit (open icon) — slide-in drawer to edit AI Label fields and preview visitor label.
    • Confirm — mark as confirmed by the current backend user (this content version only).
    • Clear — remove confirmation (undo snapshot kept for 10 minutes via bulk undo when applicable).

Texts tab

Same filter/action pattern for pages, content elements, and optional extension tables configured in Settings. Highlights “reviewed, nobody named” rows — a human-review tick without a responsible person name documents nothing; use bulk Assign responsible person or the drawer.

Settings tab

Settings are saved in AI Label → Settings and stored in tx_nst3af_extension_setting (extension key ns_t3af). Defaults live in Configuration/ExtensionSettings/fields.typoscript.

Frontend label appearance

Machine-readable marking and rules

Automatic confirmation

Per-folder media defaults are configured via EXTCONF ailabelFolderDefaults (not on the Settings form).

Record drawer fields

Each edit drawer shows:
  • AI involvement — not reviewed, no AI, AI generated, AI modified, origin unknown, suggestion
  • Created on (read-only) — content creation date vs legal cutoff
  • Matter of public interest — text records only; editor decision (gate, not a master switch — see Activate visitor labels)
  • Reviewed by a named person — required when human review applies
  • Labelling — automatic / always / do not label
  • Reason for not labelling — exemption vocabulary (compliance-controlled)
  • Detected on upload (read-only) — detection hints for media
  • What a visitor will see — live preview of label decision
Saving the drawer updates the record; it does not auto-confirm unless you also click Confirm. For a full text-vs-media activate path, see Activate visitor labels.

Bulk actions

Select rows with checkboxes, then:
  • Confirm
  • No AI involved
  • Do not label
  • Set public interest
  • Assign responsible person
  • Clear confirmation
  • Undo last bulk action (10-minute window)

Evidence export

From the action bar or Overview coverage card:
  • CSVevidence-relevant records only (recording source set, involvement other than not_reviewed, or confirmed), with reason codes and confirmation metadata — not a dump of every pages / tt_content / sys_file_metadata row
  • Scope by module tab — Media exports sys_file_metadata only; Texts exports tt_content + pages; Overview and Settings export all three
Use for internal audits; reason codes are machine-readable (for example rule_default, editorial_control, unreviewed).

How records get AI metadata

  1. AI Foundation capture — every provider response stores a generation correlation id.
  2. Bind on save — integrating extensions call AiLabelBindHelper (or AiLabelRecorderInterface) when a page, content element, file, or custom table row is persisted after AI generation.
  3. Upload detection — optional signals on file import (suggestions only until a person confirms).
  4. Manual — editors set fields in the record drawer or TCA AI Label tab on pages, content, and file metadata.
See Extension integration for third-party bind patterns.

Activate visitor labels (text vs media)

Visitor badges are not turned on by a single Settings toggle. Each record must pass its domain rules, and the site must include the frontend TypoScript (see Frontend labels below). Common misconception: setting Matter of public interest to Yes alone does not show a label. That field is only a gate for text (pages / content). It does nothing for media, and text still needs involvement, confirmation, and the review rules below.

Prerequisite (both domains)

  1. Include frontend TypoScript (Site Set nitsan/ns-t3af-label and @import, or classic static template “AI Foundation labels”).
  2. Flush caches after changing TypoScript or Site Sets.
  3. Open the record in the AI Label drawer and check What a visitor will see before expecting anything on the live page.

Media (files / sys_file_metadata)

Public interest does not apply.
  1. Set AI involvement to AI generated or AI modified (or Always under Labelling).
  2. Click Confirm (unconfirmed media never shows a visitor label).
  3. Optional — Settings: Mark the image file (badge after CE vs overlay on the image), stamp size/position.
  4. Origin unknown only labels when Settings Label unknown origin is Yes.
Named human review does not hide media labels (Art. 50(4)).

Text (pages / content elements)

  1. Set AI involvement to AI generated or AI modified (not “not reviewed” / “no AI”).
  2. Set Matter of public interest to Yes (required gate; No = no visitor label).
  3. Human review:
    • Leave Reviewed by a named person unchecked → label can show after confirm, or
    • Check it and enter a responsible person → label is suppressed (editorial control), or
    • Check it without a name → incomplete; treat as needing a name (see Texts tab highlight).
  4. Click Confirm so the disclosure is intentional for that version.
  5. Verify What a visitor will see in the drawer, then check the frontend.

Quick checklist

Frontend labels

Visitor badges render after the TypoScript in EXT:ns_t3af/Configuration/TypoScript/setup.typoscript is included. Use the checklist above to activate a record; this section covers how badges are rendered. Site Set (TYPO3 v13.4+): add nitsan/ns-t3af-label to your own set’s dependencies and @import that setup file. A dependency listing alone does not load TypoScript. Classic templates: include static “AI Foundation labels” (Web > Template). When rules pass and a record is confirmed, visitors may see:
  • Icon only — EU AI label icon (bundled SVG set)
  • Show in site language — short text only (for example “AI generated”, “AI modified”), no icon
  • Size and (for image overlays) position from Settings — see tables above
Two badge locations:
  • Content element — drop-in partial after the element body when labelling rules pass. In Overlay on the image mode, media CTypes (image, textmedia, textpic) skip this CE badge so visitors see a single mark on the image; non-media CTypes still use the drop-in.
  • Image overlay — only when Mark the image file is Overlay on the image and the file is confirmed AI-generated; position applies here.
Media and text follow different rules — media labels are not suppressed by a named human reviewer; text labels require public interest and review rules. Custom templates can use <ail:label record="{data}" />, <ail:label file="{image}" />, <ail:recordState>, <ail:fileState>, or the nst3af-label DataProcessor. Fluid Styled Content ships an image partial override (Resources/Private/Partials/FluidStyledContent/Media/Rendering/Image.html) that wraps the badge when overlay mode is enabled.

TCA integration

Editors can also use the AI Label tab on:
  • Page records
  • Content elements
  • File metadata
Same fields as the module drawer.

Security & permissions

Uses standard backend login and module access. Confirmation always records the current backend user id. Bulk undo is scoped per user session cache.