diff --git a/document_engine/rendering/render_document_element.py b/document_engine/rendering/render_document_element.py
index 89fe2195..f3d74caf 100644
--- a/document_engine/rendering/render_document_element.py
+++ b/document_engine/rendering/render_document_element.py
@@ -1,4 +1,5 @@
import html as html_lib
+import json
from typing import Any
_SHAPE_TAGS = {"rectangle": "rect", "cercle": "circle", "trait": "line"}
@@ -130,9 +131,42 @@ def _render_minigame_placeholder(
return (
f'
'
+ f'
'
f'{label}'
f'Formulaire de contenu à venir'
+ f"
"
+ )
+
+
+def _render_quiz_player(config: dict[str, Any]) -> str:
+ """Questionnaire RÉELLEMENT interactif — affiché uniquement en Mode
+ Aperçu (voir static/document/document-editor.css,
+ .docEditor3--preview), pour que le créateur puisse tester son quiz
+ avant un futur export (voir docs/plan/maquettes/
+ document-formation-web.html, référence visuelle de ce rendu). Les
+ questions sont embarquées en JSON dans un attribut data-* (jamais un
+ ', "choices": ["A", "B"], "correct_index": 0, "points": 1},
+ ]
+ }
+ )
+ html = doc_engine.render_document_element(_quiz_element(config), {})
+ assert "" not in html
+ assert "<script>" in html