Label AI-generated or AI-manipulated content - including deepfakes - clearly in the interface. This is the visible half of content transparency: 50(4) requires deployers to disclose deep fakes and AI text on matters of public interest, while 50(2) requires providers to also mark outputs machine-readably via embedded provenance. Applies 2 August 2026; systems already on the market before that date have until 2 December 2026 for the machine-readable marking only.
01/ 04
Playground
Pick a status, media type, and placement. The machine-readable markup updates with it.
import AIContentLabel from './kit/AIContentLabel';
// Caption under a generated image
<figure>
<img src={url} alt="…" />
<figcaption>
<AIContentLabel status="ai-generated" mediaType="image" />
</figcaption>
</figure>
// Overlay badge on a deepfake video
<AIContentLabel status="ai-edited" mediaType="video" variant="overlay" />
03/ 04
Props
Prop
Type
Notes
status
'ai-generated' | 'ai-assisted' | 'ai-edited'
What was done. Default ai-generated.
mediaType
'image' | 'video' | 'audio' | 'text'
Drives the icon and machine-readable attribute.
variant
'overlay' | 'caption'
Overlay sits on the media; caption sits beside it.
detail
string
Optional extra, e.g. the tool or model used.
04/ 04
Accessibility & detectability
Visible label a person can read, plus an aria-label with the full sentence for screen readers.
data-ai-content and data-ai-media attributes give tooling a UI-layer signal - useful for detection in your own stack, but not the machine-readable marking Article 50(2) requires.
The overlay variant sits on an ink scrim at 85% opacity to keep text contrast at AA over any image.
Pair it with embedded provenance (e.g. C2PA / watermarking / metadata) - that satisfies 50(2)'s machine-readable duty; this label is the human-facing half.