<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Première/Structure HTML</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Langage HTML : balises, attributs, structure d'une page<br/>
(doctype, html, head, body), balises sémantiques, en-têtes,<br/>
paragraphes, listes, liens, images, tableaux.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q01 : Que signifie HTML ?</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que signifie l'acronyme <strong>HTML</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>« Hypertext » désigne les liens ; « markup »<br/>
indique qu'on utilise des balises ; « language »<br/>
qu'il s'agit d'un langage formel (mais pas un<br/>
langage de programmation au sens strict).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>High Tech Modern Language</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Cette expression n'a<br/>
aucune signification<br/>
historique. Le sigle HTML<br/>
décrit précisément la<br/>
nature du langage : un<br/>
balisage hypertexte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Hypertext Modern Layout</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : nom incorrect.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Home Tool Markup Language</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : nom incorrect.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>HyperText Markup Language</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : HTML est un <strong>langage de balisage</strong> (markup) pour structurer des<br/>
documents hypertexte (avec liens). Inventé<br/>
par Tim Berners-Lee en 1991.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q02 : Balise HTML</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la <strong>forme générale</strong> d'une balise HTML ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les balises sont encadrées par &lt; et &gt;. La<br/>
balise fermante a un / en plus. Le HTML<br/>
tolère certaines erreurs de fermeture, mais<br/>
c'est une mauvaise pratique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>balise(contenu)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de parenthèses.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;balise&gt;contenu&lt;/balise&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : balise ouvrante, contenu,<br/>
balise fermante. Certaines balises sont<br/>
auto-fermantes comme &lt;img /&gt; ou &lt;br /&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>{balise contenu}</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas d'accolades en HTML.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[balise: contenu]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de crochets.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q03 : Doctype</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que doit contenir la <strong>première ligne</strong> d'un<br/>
document HTML moderne ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>&lt;!DOCTYPE html&gt; est la déclaration HTML5<br/>
simplifiée. Les anciennes versions (HTML4,<br/>
XHTML) avaient des doctypes plus longs.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;html lang="fr"&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la balise &lt;html&gt; (avec ou sans<br/>
attribut lang) vient <strong>après</strong> la<br/>
déclaration de doctype, qui doit être la<br/>
toute première ligne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;meta charset="utf-8"&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la déclaration d'encodage se place<br/>
très tôt, mais à l'intérieur de &lt;head&gt;,<br/>
pas en première ligne du fichier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;!DOCTYPE html&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : déclare au navigateur que<br/>
c'est du HTML5. Sans doctype, les<br/>
navigateurs basculent en mode « quirks »<br/>
(compatibilité HTML4 ancien) avec un rendu<br/>
imprévisible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;head&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;head&gt; vient à l'intérieur de<br/>
&lt;html&gt;.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q04 : Structure d'une page</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la <strong>structure minimale</strong> d'une page<br/>
HTML5 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>&lt;head&gt; contient titre (&lt;title&gt;), encodage<br/>
(&lt;meta charset="utf-8"&gt;), feuilles de style<br/>
(&lt;link&gt;), scripts (&lt;script&gt;). &lt;body&gt;<br/>
contient le contenu visible.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;!DOCTYPE html&gt;<br/>
&lt;html&gt;<br/>
  &lt;head&gt;...&lt;/head&gt;<br/>
  &lt;body&gt;...&lt;/body&gt;<br/>
&lt;/html&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;head&gt; (méta-données :<br/>
titre, encodage, styles), &lt;body&gt; (contenu<br/>
visible). Tous deux dans &lt;html&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;html&gt;<br/>
  &lt;head&gt;...&lt;/head&gt;<br/>
  &lt;body&gt;...&lt;/body&gt;<br/>
&lt;/html&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il manque la première ligne<br/>
&lt;!DOCTYPE html&gt;, qui déclare le type de<br/>
document et garantit un rendu conforme au<br/>
standard.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;!DOCTYPE html&gt;<br/>
  &lt;head&gt;...&lt;/head&gt;<br/>
  &lt;body&gt;...&lt;/body&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il manque l'élément racine &lt;html&gt;,<br/>
qui doit englober &lt;head&gt; et &lt;body&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;html&gt;<br/>
  &lt;!DOCTYPE html&gt;<br/>
  &lt;head&gt;...&lt;/head&gt;<br/>
  &lt;body&gt;...&lt;/body&gt;<br/>
&lt;/html&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la déclaration &lt;!DOCTYPE html&gt;<br/>
doit être la <strong>première ligne</strong> du fichier,<br/>
avant &lt;html&gt; ; placée à l'intérieur, elle<br/>
n'est plus reconnue et le navigateur bascule<br/>
en mode de compatibilité.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q05 : Titres</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle balise produit un titre de <strong>niveau 1</strong><br/>
(le plus grand) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Hiérarchie : &lt;h1&gt; à &lt;h6&gt;. Importante pour<br/>
l'accessibilité et le référencement. Ne pas<br/>
sauter de niveau (de &lt;h1&gt; à &lt;h3&gt;).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;head&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;head&gt; est la zone des<br/>
méta-données.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;title1&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;title&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;title&gt; est dans &lt;head&gt; et<br/>
définit le titre de l'onglet/de la page,<br/>
pas un titre visible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;h1&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;h1&gt; (heading level 1,<br/>
titre de niveau 1) à &lt;h6&gt; (level 6).<br/>
Convention : un seul &lt;h1&gt; par page (le<br/>
titre principal).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q06 : Paragraphe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle balise délimite un <strong>paragraphe</strong> de texte ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>&lt;p&gt; est l'une des balises les plus utilisées.<br/>
Pour un saut de ligne simple sans nouveau<br/>
paragraphe, utiliser &lt;br&gt;.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;para&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;paragraph&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante. Le nom est<br/>
abrégé en &lt;p&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;text&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante en HTML standard.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;p&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;p&gt; (paragraph). Le<br/>
navigateur ajoute automatiquement un<br/>
espacement avant et après.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q07 : Lien hypertexte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la syntaxe d'un <strong>lien</strong> vers<br/>
https://example.com ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Attribut target="_blank" pour ouvrir dans un<br/>
nouvel onglet. Pour un lien interne (vers une<br/>
ancre dans la page) : &lt;a href="#section1"&gt;.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;link href="https://example.com"&gt;texte&lt;/link&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;link&gt; est utilisée dans &lt;head&gt;<br/>
pour les feuilles de style, pas pour les<br/>
liens visibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;href="https://example.com"&gt;texte&lt;/href&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de balise &lt;href&gt;. C'est un<br/>
attribut.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;url="https://example.com"&gt;texte&lt;/url&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de balise &lt;url&gt; non plus.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;a href="https://example.com"&gt;texte&lt;/a&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;a&gt; (anchor) avec<br/>
l'attribut href (hypertext reference).<br/>
Le texte entre les balises est le texte<br/>
cliquable.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q08 : Image</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la balise pour afficher une <strong>image</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'attribut alt est <strong>obligatoire</strong> pour<br/>
l'accessibilité (lecteurs d'écran). Sans alt,<br/>
la page n'est pas accessible.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;image src="..."&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante, le nom est<br/>
abrégé en &lt;img&gt;. Piège : le parseur HTML<br/>
corrige silencieusement &lt;image&gt; en<br/>
&lt;img&gt;, l'image s'affiche donc quand même<br/>
si on teste dans un navigateur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;picture src="..."&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>&lt;picture&gt; existe (pour les images<br/>
responsives), mais c'est plus complexe et<br/>
contient plusieurs &lt;source&gt; et un<br/>
&lt;img&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;src="..."&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : src est un attribut, pas une<br/>
balise.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;img src="..." alt="..."&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;img&gt; avec src (chemin)<br/>
et alt (texte alternatif pour<br/>
l'accessibilité et si l'image ne charge<br/>
pas). Balise auto-fermante.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q09 : Liste non ordonnée</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle balise crée une <strong>liste à puces</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mnémotechnique : <strong>u</strong> = unordered (puces),<br/>
<strong>o</strong> = ordered (numéros). Les deux contiennent<br/>
des &lt;li&gt;.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;ol&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;ol&gt; (<em>ordered list</em>) est une<br/>
liste <strong>ordonnée</strong> (numérotée).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;list&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;ul&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;ul&gt; (<em>unordered list</em>)<br/>
contient des &lt;li&gt; (<em>list item</em>).<br/>
Affichage avec puces par défaut.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;bullet&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q10 : Attributs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans &lt;a href="page.html"&gt;lien&lt;/a&gt;, qu'est-ce<br/>
que href ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Attributs courants : id, class, style,<br/>
href, src, alt. La syntaxe est toujours<br/>
attribut="valeur" à l'intérieur de la balise<br/>
ouvrante.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une variable JavaScript</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une variable JavaScript<br/>
appartient au langage<br/>
de programmation, pas<br/>
au balisage HTML. Un<br/>
attribut HTML décrit<br/>
quant à lui la balise<br/>
dans laquelle il figure.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une balise imbriquée dans &lt;a&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : href figure à l'intérieur de la<br/>
balise ouvrante, ce n'est pas une balise<br/>
en soi.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une fonction appelée au clic</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Une fonction est une<br/>
construction propre aux<br/>
langages de programmation.<br/>
En HTML, on ne définit<br/>
pas de fonctions ; on<br/>
décrit la structure d'un<br/>
document.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un attribut de la balise &lt;a&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un attribut a la forme<br/>
nom="valeur" et complète l'information<br/>
de la balise.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q12 : div vs span</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence entre &lt;div&gt; et<br/>
&lt;span&gt; ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Tous les éléments HTML ont une nature : <strong>bloc</strong><br/>
(par défaut sur une nouvelle ligne) ou <strong>inline</strong><br/>
(dans le flux). On peut changer cela en CSS<br/>
avec display: block; ou display: inline;.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La balise &lt;div&gt; est désormais totalement obsolète</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : très utilisé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;div&gt; est un conteneur de bloc, &lt;span&gt; un conteneur en ligne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : distinction fondamentale en<br/>
HTML/CSS. &lt;div&gt; est utilisé pour<br/>
structurer des sections ; &lt;span&gt; pour<br/>
mettre en forme une portion de texte au<br/>
sein d'une phrase, dans le flux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune, les deux balises sont interchangeables</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : leur comportement d'affichage<br/>
diffère fondamentalement (bloc contre<br/>
en ligne).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;span&gt; ne peut s'utiliser que dans l'en-tête &lt;head&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;span&gt; s'utilise dans &lt;body&gt;,<br/>
au cœur du contenu visible.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q13 : Encodage</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert<br/>
&lt;meta charset="utf-8"&gt; dans &lt;head&gt; ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>UTF-8 est aujourd'hui le standard universel.<br/>
Toujours le déclarer en première ligne du<br/>
&lt;head&gt; pour garantir un affichage correct<br/>
des caractères spéciaux.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À définir la couleur de fond de la page entière</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec les couleurs<br/>
(c'est CSS).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À indiquer l'encodage des caractères du document</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ici l'encodage UTF-8. Sans<br/>
cette déclaration, le navigateur peut<br/>
interpréter les caractères accentués<br/>
différemment (par exemple, voir « cafÃ© »<br/>
au lieu de « café » : les deux octets UTF-8<br/>
du « é » sont lus comme deux caractères<br/>
latin-1).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À activer l'exécution du JavaScript dans la page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>JavaScript s'active par<br/>
la balise &lt;script&gt;. La<br/>
balise &lt;meta charset&gt;<br/>
ne joue aucun rôle dans<br/>
l'exécution du code, elle<br/>
précise uniquement le jeu<br/>
de caractères du document.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À cacher la page aux moteurs de recherche</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est &lt;meta name="robots"<br/>
content="noindex"&gt;.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q14 : class et id</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence entre les attributs<br/>
class et id ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bonne pratique : utiliser surtout class pour<br/>
le style ; id pour les ancres et les<br/>
éléments uniques nécessitant une référence<br/>
JavaScript.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>class est obsolète et remplacé par id en HTML5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : class reste l'un des attributs<br/>
les plus utilisés, notamment pour le style.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>id est unique, class peut viser plusieurs éléments</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : id identifie un seul<br/>
élément (par exemple id="header-principal"),<br/>
class regroupe des éléments partageant un<br/>
style (par exemple class="bouton").</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'attribut id ne fonctionne plus du tout en HTML5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : id fonctionne parfaitement en<br/>
HTML5 (ancres, JavaScript, CSS).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune, ce sont rigoureusement deux synonymes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la différence est importante,<br/>
l'unicité de id dans la page.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q15 : Tableau</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelles balises HTML structurent un <strong>tableau</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Aujourd'hui, on n'utilise plus les tableaux<br/>
pour la mise en page (grosse erreur d'antan) ;<br/>
ils sont réservés aux données réellement<br/>
tabulaires. Pour la mise en page : Flexbox ou<br/>
Grid CSS.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;table&gt;, &lt;tr&gt;, &lt;td&gt; et &lt;th&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : structure standard, avec<br/>
&lt;tr&gt; (<em>table row</em>) pour les lignes,<br/>
&lt;td&gt; (<em>table data</em>) pour les cellules et<br/>
&lt;th&gt; (<em>table header</em>) pour les en-têtes<br/>
(gras et centré par défaut). &lt;thead&gt;,<br/>
&lt;tbody&gt;, &lt;tfoot&gt; pour les groupements.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;grid&gt;, &lt;row&gt;, &lt;cell&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balises inexistantes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La balise &lt;table&gt; toute seule, sans balises internes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il faut aussi &lt;tr&gt; et &lt;td&gt; (ou<br/>
&lt;th&gt;) pour avoir un contenu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les balises &lt;spreadsheet&gt;, &lt;line&gt; et &lt;column&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balises inexistantes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q16 : Imbrication correcte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lequel des codes suivants est <strong>incorrect</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Règles d'imbrication HTML : un bloc peut<br/>
contenir des inlines, mais pas l'inverse en<br/>
général. &lt;p&gt; ne peut pas contenir de bloc<br/>
(ni un autre &lt;p&gt;).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;a href="x"&gt;&lt;strong&gt;texte&lt;/strong&gt;&lt;/a&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Correct : un inline dans un autre inline.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;ul&gt;&lt;li&gt;élément&lt;/li&gt;&lt;/ul&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Correct : &lt;li&gt; dans &lt;ul&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;p&gt;Voici un &lt;strong&gt;mot&lt;/strong&gt; important.&lt;/p&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Correct : un élément inline (&lt;strong&gt;)<br/>
dans un bloc (&lt;p&gt;).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>`<code>html<br/>
&lt;p&gt;Texte &lt;p&gt;imbriqué&lt;/p&gt;.&lt;/p&gt;<br/>
</code>`</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Incorrect (donc bonne réponse) : on ne<br/>
peut pas imbriquer un &lt;p&gt; dans un autre<br/>
&lt;p&gt;. Le navigateur fermera<br/>
automatiquement le premier au début du<br/>
second.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q17 : Balises auto-fermantes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lesquelles de ces balises sont <strong>auto-fermantes</strong><br/>
(sans balise fermante) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Liste des principales : &lt;area&gt;, &lt;base&gt;,<br/>
&lt;br&gt;, &lt;col&gt;, &lt;embed&gt;, &lt;hr&gt;, &lt;img&gt;,<br/>
&lt;input&gt;, &lt;link&gt;, &lt;meta&gt;, &lt;source&gt;,<br/>
&lt;track&gt;, &lt;wbr&gt;.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;img&gt;, &lt;br&gt;, &lt;hr&gt;, &lt;meta&gt;, &lt;link&gt;, &lt;input&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ces balises sont dites<br/>
« void » : elles n'ont pas de contenu donc<br/>
pas de fermeture. En HTML5 on peut écrire<br/>
&lt;br&gt; ou &lt;br /&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;p&gt;, &lt;div&gt;, &lt;span&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces balises requièrent une fermeture.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;title&gt;, &lt;script&gt;, &lt;style&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces trois balises exigent une<br/>
fermeture explicite, car elles contiennent<br/>
du contenu (&lt;title&gt;Mon site&lt;/title&gt;).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les balises &lt;head&gt; et &lt;body&gt; du squelette</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces balises <strong>doivent</strong> être<br/>
fermées (elles contiennent du contenu).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q18 : Mise en valeur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle balise utilise-t-on pour mettre un mot<br/>
<strong>important</strong> en valeur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>&lt;strong&gt; vs &lt;b&gt; : la première a un sens<br/>
(lecteur d'écran insiste), la seconde est<br/>
uniquement présentation. HTML moderne<br/>
privilégie le sémantique, le style étant géré<br/>
par CSS.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;important&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;text-bold&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;bold&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;strong&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;strong&gt; exprime<br/>
l'<strong>importance</strong> sémantique (et est<br/>
rendue en gras par défaut). La balise<br/>
&lt;b&gt; existe aussi mais est purement<br/>
visuelle (à éviter en pratique). Pour<br/>
l'italique : &lt;em&gt; (sémantique) ou &lt;i&gt;.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q19 : Chemins relatifs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Si la page est /site/index.html et l'image<br/>
est /site/img/photo.jpg, quel src utiliser<br/>
pour le chemin <strong>relatif</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Trois types de chemins : <strong>relatif</strong><br/>
(img/photo.jpg), <strong>absolu</strong> par rapport au<br/>
site (/img/photo.jpg), <strong>absolu</strong> complet<br/>
(https://...). Les chemins relatifs sont<br/>
portables.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>../img/photo.jpg</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : .. remonte d'un dossier, ici<br/>
on aboutirait à /img/photo.jpg.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>https://./img/photo.jpg</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : syntaxe d'URL invalide.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>img/photo.jpg</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sans / initial, c'est<br/>
relatif au document courant. Depuis<br/>
/site/index.html, img/photo.jpg<br/>
pointe sur /site/img/photo.jpg.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>/img/photo.jpg</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait un chemin <strong>absolu</strong> à<br/>
partir de la racine du site (qui pourrait<br/>
fonctionner ou pas selon la racine).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q21 : Validité d'une liste imbriquée</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que peut-on dire de ce code du point de vue de la<br/>
validité HTML, et comment le corriger ?<br/>
`<code>html<br/>
&lt;ul&gt;<br/>
  &lt;li&gt;Pomme&lt;/li&gt;<br/>
  &lt;li&gt;Banane&lt;/li&gt;<br/>
  &lt;ol&gt;<br/>
    &lt;li&gt;Cerise&lt;/li&gt;<br/>
  &lt;/ol&gt;<br/>
&lt;/ul&gt;<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour un sous-niveau de liste : imbriquer la<br/>
sous-liste <strong>dans</strong> un &lt;li&gt; du parent.<br/>
Bonnes pratiques : valider avec validator.w3.org.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une liste à puces avec « Pomme », « Banane » et une sous-liste numérotée contenant « Cerise »</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Presque, mais le code est techniquement<br/>
<strong>invalide</strong> : &lt;ol&gt; ne peut pas être un<br/>
enfant direct de &lt;ul&gt;. Il devrait être<br/>
dans un &lt;li&gt;. Le rendu peut varier selon<br/>
le navigateur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur empêche tout affichage</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : HTML est tolérant, le navigateur<br/>
rend ce qu'il peut. Mais la structure<br/>
est invalide selon le standard.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le code est mal structuré : &lt;ol&gt; doit être imbriqué dans un &lt;li&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la structure correcte est<br/>
&lt;ul&gt;&lt;li&gt;Banane&lt;ol&gt;&lt;li&gt;Cerise&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;.<br/>
Les listes ne peuvent contenir que des<br/>
&lt;li&gt; directement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une seule liste fusionnée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le navigateur ne fusionne<br/>
pas deux listes en une<br/>
seule. Il rend chaque<br/>
balise telle quelle, mais<br/>
la structure produite<br/>
n'est pas conforme au<br/>
standard.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q22 : Document complet</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel élément est manquant dans cette structure<br/>
pour un document HTML5 conforme ?<br/>
`<code>html<br/>
&lt;!DOCTYPE html&gt;<br/>
&lt;html&gt;<br/>
  &lt;head&gt;&lt;/head&gt;<br/>
  &lt;body&gt;&lt;/body&gt;<br/>
&lt;/html&gt;<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Document minimal vraiment conforme :<br/>
&lt;!DOCTYPE html&gt;&lt;html lang="fr"&gt;&lt;head&gt;&lt;meta<br/>
charset="utf-8"&gt;&lt;title&gt;Titre&lt;/title&gt;&lt;/head&gt;<br/>
&lt;body&gt;&lt;/body&gt;&lt;/html&gt;.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un &lt;title&gt; dans &lt;head&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;title&gt; est obligatoire.<br/>
Il définit le titre de l'onglet et est<br/>
affiché dans les résultats de recherche.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un attribut lang sur &lt;html&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Recommandé pour l'accessibilité (par<br/>
exemple &lt;html lang="fr"&gt;), mais<br/>
techniquement pas obligatoire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un &lt;script&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : facultatif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une balise &lt;style&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : facultatif.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q23 : Mise en page interdite</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi utiliser un &lt;table&gt; pour la <strong>mise en page</strong> d'une page web (en dehors de présenter<br/>
des données tabulaires) est-il fortement<br/>
déconseillé ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour la mise en page : utiliser CSS Flexbox<br/>
(1D) ou Grid (2D). Pour les données :<br/>
&lt;table&gt;, mais avec &lt;thead&gt;, &lt;tbody&gt;, et<br/>
les attributs d'accessibilité.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune raison, c'est même une bonne pratique recommandée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est exactement l'inverse, la<br/>
pratique est aujourd'hui proscrite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Mauvaise sémantique, accessibilité dégradée, code rigide</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le tableau de mise en page<br/>
trompe les lecteurs d'écran et reste très<br/>
difficile à rendre responsive. Pratique des<br/>
années 1990 devenue obsolète depuis<br/>
l'arrivée de CSS (Flexbox, Grid).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La balise &lt;table&gt; a été supprimée de HTML5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;table&gt; existe toujours, mais<br/>
réservé aux données tabulaires.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Cela ralentit fortement le navigateur lors du rendu de la page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la performance n'est pas l'argument<br/>
principal.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q24 : Validation HTML</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment <strong>vérifier</strong> que son code HTML est<br/>
conforme au standard ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le W3C (World Wide Web Consortium) maintient<br/>
les standards web. La validation est un bon<br/>
réflexe avant de mettre un site en<br/>
production.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>En utilisant le validateur du W3C (validator.w3.org)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : outil officiel et gratuit.<br/>
Soumettre l'URL ou le fichier HTML, on<br/>
obtient une liste d'erreurs et<br/>
d'avertissements à corriger.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>En lançant un programme Python de vérification dédié</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Possible (avec html-validator), mais ce<br/>
n'est pas la méthode standard.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>En relisant le code visuellement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Pratique, mais incomplet, la validation<br/>
automatique est plus exhaustive.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>En ouvrant la page dans un navigateur : si elle s'affiche, elle est conforme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les navigateurs sont volontairement<br/>
tolérants et affichent la plupart des pages<br/>
invalides. Un affichage correct ne prouve<br/>
donc pas la conformité au standard.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q25 : Synthèse</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les affirmations suivantes sur HTML,<br/>
laquelle est <strong>fausse</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mnémonique : id = identifiant <strong>unique</strong><br/>
(comme une carte d'identité) ; class =<br/>
catégorie (comme une classe d'élèves).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les balises sémantiques (&lt;header&gt;, &lt;nav&gt;, etc.) améliorent l'accessibilité et le SEO</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Vrai : sens et structure compréhensibles<br/>
par les machines.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La structure d'une page comprend toujours &lt;head&gt; et &lt;body&gt; dans &lt;html&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Vrai : structure standard HTML5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>HTML est un langage de balisage (pas un langage de programmation)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Vrai : pas de variables ni de boucles. Le<br/>
dynamisme vient de JavaScript.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un même id peut être utilisé pour plusieurs éléments dans la même page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Faux (donc bonne réponse) : id doit être<br/>
<strong>unique</strong>. Pour grouper plusieurs<br/>
éléments, utiliser class.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q26 : Métadonnées d'une page</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans la balise &lt;head&gt; d'une page HTML, à quoi sert<br/>
la balise suivante ?</p>
<p>`<code>html<br/>
&lt;meta name="description" content="Cours de NSI en ligne"&gt;<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dans &lt;head&gt;, on regroupe toutes les informations<br/>
qui décrivent la page sans s'afficher : &lt;title&gt;<br/>
(titre de l'onglet), &lt;meta charset&gt; (encodage),<br/>
&lt;meta name="description"&gt; (résumé pour les<br/>
moteurs), &lt;meta name="viewport"&gt; (adaptation<br/>
mobile), liens vers les feuilles de style et<br/>
scripts.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À fournir une description de la page pour les moteurs de recherche</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les moteurs de recherche peuvent<br/>
afficher cette description sous le titre dans<br/>
leurs résultats. Une bonne description<br/>
(concise, informative) aide au référencement et<br/>
au taux de clic.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À définir le titre affiché dans l'onglet du navigateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le titre de l'onglet est défini par la<br/>
balise &lt;title&gt;, distincte de<br/>
&lt;meta name="description"&gt;.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À empêcher l'indexation de la page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour empêcher l'indexation, on utilise<br/>
&lt;meta name="robots" content="noindex"&gt;. La<br/>
description, elle, sert au contraire à<br/>
présenter la page aux moteurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À afficher la phrase « Cours de NSI en ligne » sur la page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tout le contenu placé dans &lt;head&gt; est<br/>
invisible pour le visiteur. Cette balise ne<br/>
produit aucun affichage direct.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q27 : Intégrer une page externe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle balise HTML permet d'intégrer le contenu<br/>
d'une autre page web à l'intérieur de la page<br/>
courante ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une iframe est très utile pour intégrer du contenu<br/>
tiers (vidéos, cartes, éditeurs en ligne), mais<br/>
elle pose des questions de sécurité (clickjacking)<br/>
et de performance. C'est pourquoi de nombreux<br/>
sites contrôlent leur affichage en &lt;iframe&gt; à<br/>
l'aide d'en-têtes HTTP comme<br/>
Content-Security-Policy.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;iframe&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la balise &lt;iframe&gt; (cadre en<br/>
ligne) permet d'afficher une autre page web à<br/>
l'intérieur de la page courante, par exemple<br/>
une vidéo YouTube ou une carte. Sa source se<br/>
précise avec l'attribut src.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;embed&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;embed&gt; insère plutôt des objets<br/>
externes comme des fichiers PDF ou Flash. Pour<br/>
intégrer une page web complète, ce n'est pas<br/>
la balise standard.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;include&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune balise &lt;include&gt; n'existe en<br/>
HTML standard. Cette syntaxe se rencontre dans<br/>
certains préprocesseurs ou systèmes de<br/>
modèles, mais elle n'est pas du HTML pur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;link&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;link&gt; sert à déclarer des<br/>
ressources liées à la page (feuille de style,<br/>
favicon, etc.) dans le &lt;head&gt;, et non à<br/>
intégrer une autre page web dans le contenu.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q28 : Élément en ligne et élément en bloc</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les balises suivantes, laquelle est par défaut<br/>
un <strong>élément en bloc</strong> (qui occupe toute la largeur<br/>
disponible et provoque un retour à la ligne) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Distinction essentielle pour la mise en page :<br/>
les éléments en bloc (&lt;div&gt;, &lt;p&gt;, &lt;h1&gt;,<br/>
&lt;ul&gt;, &lt;section&gt;...) prennent toute la largeur<br/>
et passent à la ligne ; les éléments en ligne<br/>
(&lt;span&gt;, &lt;a&gt;, &lt;strong&gt;, &lt;em&gt;,<br/>
&lt;img&gt;...) restent au sein de la ligne courante.<br/>
CSS permet de modifier ce comportement avec la<br/>
propriété display.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;em&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la balise &lt;em&gt; (emphase, rendue<br/>
en italique) est un élément en ligne, qui<br/>
s'applique autour d'un fragment de texte sans<br/>
provoquer de saut de ligne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;img&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : même si une image peut être grande à<br/>
l'écran, &lt;img&gt; est un élément <strong>en ligne</strong> :<br/>
elle s'insère dans le flux du texte sans<br/>
imposer de retour à la ligne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;h1&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;h1&gt; est un élément en bloc,<br/>
comme tous les titres &lt;h1&gt; à &lt;h6&gt;. Par<br/>
défaut, il occupe toute la largeur disponible<br/>
et place les éléments suivants à la ligne<br/>
suivante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;a&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un lien &lt;a&gt; est par défaut un<br/>
élément en ligne, ce qui permet de l'inclure<br/>
au milieu d'un paragraphe sans casser la mise<br/>
en page.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Structure HTML — Q29 : Élément obsolète</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lequel de ces éléments est officiellement<br/>
<strong>obsolète</strong> en HTML5 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En HTML moderne, la mise en forme relève du<br/>
CSS, pas des balises. Quelques balises<br/>
historiques de pure présentation (&lt;center&gt;,<br/>
&lt;font&gt;, &lt;big&gt;...) sont donc réellement<br/>
dépréciées : les navigateurs les affichent<br/>
encore par compatibilité, mais le validateur<br/>
du W3C les rejette.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;strong&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;strong&gt; est bien vivante.<br/>
Elle marque l'importance sémantique<br/>
d'un fragment de texte (rendu en gras<br/>
par défaut) et reste recommandée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;section&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;section&gt; a au contraire été<br/>
<strong>introduite</strong> par HTML5. Elle délimite<br/>
une section thématique du document,<br/>
normalement dotée d'un titre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;center&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : &lt;center&gt; centrait le<br/>
contenu, un rôle de pure présentation<br/>
qui revient aujourd'hui à CSS<br/>
(text-align: center; ou<br/>
margin: auto;). Le standard HTML la<br/>
classe parmi les éléments obsolètes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;figure&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : &lt;figure&gt; est aussi une<br/>
nouveauté de HTML5. Elle regroupe une<br/>
illustration et sa légende, portée par<br/>
&lt;figcaption&gt;.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
