Manual · Chapter 22 · Part E Privacy and law
Accessibility and AI transparency
Purpose
Since 2025 the German Accessibility Improvement Act (BFSG) requires many websites to make their services usable by everyone. And the EU AI Act requires that people can recognise when they are talking to an AI, and that AI-generated images are marked in a machine-readable way. dAI Pro brings all three with it; this chapter shows what the widget and the Copilot do on their own and what you should bear in mind in your texts.
Accessibility of the chat widget
The widget is built to the criteria of WCAG 2.2 at level AA:
- Keyboard: bubble, input field, send, starter questions, sources, attachments with thumbnail and remove button, help and close are reachable with Tab; Escape closes the panel, Enter sends.
- Screen reader: all controls have labels; new answers are announced; the roles of dialog, list and headings are set.
- Focus: a visible focus ring in the accent colour; on opening, the focus jumps into the input field, on closing back to the bubble. The enlarged view of an image puts the focus on its close button and then returns it to the image that opened it.
- Contrast: the default colours meet the minimum contrasts. Anyone choosing their own colours in the configurator is responsible for the contrast themselves; light accent colours on a white background are the most common mistake.
- Font and zoom: the font size follows the setting in the configurator and scales with the browser zoom; at 200 per cent everything remains usable.
- Motion: no animations that cannot be switched off; the widget respects the system setting for reduced motion.
- Language: the widget declares its language; answers in another language are marked.
Plain language (Chapter 4) is the content contribution: visitors can request answers in short sentences without technical terms, without content or sources changing.
Transparency under the EU AI Act
Article 50 of the EU AI Act requires that people are informed when they interact with an AI system. dAI Pro implements this in four places:
- Greeting: the suggestion when the configurator is first opened begins with "I am the AI assistant of …". Anyone changing the greeting should keep the note.
- Help text behind the ? button: "You are talking to an AI system, not to a human." Plus which provider the question goes to, what is stored and for how long.
- Attest below the chat when a processing region is set (Chapter 20).
- Marking of the output: every answer generated by the language model carries a visible and a machine-readable mark — in the widget, via API and agent endpoint, in the voice chat and in the search summary (section "Marking of generated answers").
The help text is generated from the settings of the collection and can be regenerated at any time. What you add to it yourself, for instance a note on your data protection officer, is preserved on regeneration if you append it at the end; otherwise regenerating replaces the whole text.
Marking of generated answers
Article 50(2) of the EU AI Act requires that AI-generated output is marked as such in a machine-readable way. dAI Pro marks every output that comes from the language model on every path by which it leaves the system — without any setting on your part:
- Chat widget: "AI-generated" appears below every answer; the element carries the attribute
data-ai-generated="true". - Chat endpoint (JSON and stream): the response carries the headers
X-AI-Generated: trueandAI-Disclosure: mode=machine-generated(IETF draft "AI Content Disclosure Header", with provider and model) and the fieldsai_generated,ai_providerandai_model. In the stream the fields are part of the finaldoneevent. Fixed system texts, such as the instant reply to "I want to talk to a human", carryai_generated: false. - Agent endpoint (MCP): the tool result carries
_meta.aiGeneratedon the result and on the text block, plusai_generatedin the structured content; the Schema.org question/answer carries the fieldai_generated. The tool description tells the agent up front. - Voice chat: the speech output is a plain audio stream without a file header, so the marking lives in the control protocol:
readyandtts_begincarryai_generated: true,tts_beginalso the provider and model of the voice. While playing, the widget shows "AI voice" next to the microphone button. - Search: the summary above the results carries "AI-generated" and
data-ai-generated="true", as do the search suggestions and the short sentences per result; the response of the search endpoint carries the same headers and fields as the chat. The result list itself — excerpts from your pages — is not AI output.
Provider and model are missing when an answer comes from the answer cache: no model ran then, but the answer stays marked as AI-generated. The marks are part of the obligation under the regulation and must not be removed.
Marking of generated images
Article 50(2) of the EU AI Act requires, binding since 2 August 2026, that AI-generated images are marked as such in a machine-readable way. This concerns the illustrations and diagrams of the editorial Copilot (Chapter 18). dAI Pro sets the marking itself, without any action by the editorial team:
- Into every generated PNG and WebP file dAI Pro writes an XMP packet with the field
Iptc4xmpExt:DigitalSourceType, which image management systems, viewers and search engines evaluate. Depending on the kind of image it has one of two values the IPTC defines for this:trainedAlgorithmicMediafor illustrations made entirely by the image model, andcompositeWithTrainedAlgorithmicMediafor diagrams, where the graphic comes from a fixed template and the content from the language model. Plusxmp:CreatorToolwith product and model,dc:descriptionwith the alt text andphotoshop:Creditwith the note “AI-generated”. - After writing, dAI Pro reads the marking back from the file. An image without a valid marking is not delivered but discarded and reported in the Copilot.
- For every image dAI Pro keeps a record: prompt or structure, model, the sources of the collection used, time and editor. It documents how an image came about if anyone asks.
- The visible note in the caption is optional: “AI-generated image.” for illustrations, “Diagram created with AI assistance.” for diagrams. The checkbox in the section “Corporate design” of the collection (Chapter 4) has it suggested; the editorial team decides whether it appears on the page.
You can check the marking with any tool that reads XMP, for instance with exiftool:
exiftool -XMP-iptcExt:DigitalSourceType file.webp
The output shows trainedAlgorithmicMedia or, for a diagram, compositeWithTrainedAlgorithmicMedia.
Image editors and image optimisers often silently discard metadata on export. On the website, therefore, use the original file from the file list or from the Copilot's download, and check after any editing whether the marking is still present.
Marking of generated documents
Article 50(2) of the EU AI Act applies not only to images but also to AI-generated text. That is why the documents of the editorial Copilot (Chapter 18) also carry a machine-readable marking, in the PDF and in the Word file:
- PDF. The document contains an XMP packet with the field
Iptc4xmpExt:DigitalSourceType. The value istrainedAlgorithmicMediafor a pure text document andcompositeWithTrainedAlgorithmicMediaas soon as diagrams or images are included. Plus title and creator, that is dAI Pro with the model, in the document properties. - Word. The file carries custom properties:
DigitalSourceTypewith the same value,AIGeneratedwith the valuetrueandCreatorToolwith product and model. Word shows them under File → Properties. - Before delivery, dAI Pro reads the marking back from both files. If it is missing, generation stops and the Copilot reports it.
- dAI Pro keeps a record as for images: briefing, model, the sources of the collection used, time and editor.
You check the PDF like an image:
exiftool -XMP-iptcExt:DigitalSourceType file.pdf
Programs that save a document again or convert it into another format do not always keep the marking. Therefore send the original file from the Copilot or from the file list, and check after any editing whether the marking is still present.
What you do yourself
- Mention the chat in your privacy policy: provider, region, retention of the log. The details are in the help text and in the settings of the collection.
- Check the colours of your embed for contrast if you deviate from the default.
- Leave human handover switched on (Chapter 12). A way to a human is part of accessibility and fairness.
- Keep the greeting honest: no name that pretends to be a human.
- Place generated illustrations and diagrams as the original file, not as an export from an image editor, so that the marking is preserved. The same applies to documents in PDF and Word format.
Frequently asked questions
Do I have to commission an accessibility audit? That depends on your website, not on the widget. The widget brings its conformance with it; the page around it is your responsibility.
May the assistant have a human name? Yes, as long as the greeting makes clear that an AI is answering. "Anna, the AI assistant of Musterfirma" is fine, "Anna from customer service" is not.
Does this also apply to the search? The search shows a list of results and a summary; it is not a conversation. The summary is recognisable as an AI summary.
Do I also have to mark generated images visibly? The machine-readable marking is the obligation under the regulation, and it is always in the file. Whether you additionally show a visible note in the caption is your decision; dAI Pro suggests it on request (Chapter 4).
See also
- Chapter 4 · Setting up collections (plain language, corporate design)
- Chapter 8 · Embedding the chat (help text)
- Chapter 18 · Editorial copilot (illustrations, diagrams and documents)
- Chapter 20 · Processing region and sovereignty