<?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 <code>&lt;</code> et <code>&gt;</code>. La<br/>
balise fermante a un <code>/</code> 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><code>balise(contenu)</code></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><code>&lt;balise&gt;contenu&lt;/balise&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : balise ouvrante, contenu,<br/>
balise fermante. Certaines balises sont<br/>
auto-fermantes comme <code>&lt;img /&gt;</code> ou <code>&lt;br /&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>{balise contenu}</code></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><code>[balise: contenu]</code></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><code>&lt;!DOCTYPE html&gt;</code> 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><code>&lt;html lang="fr"&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la balise <code>&lt;html&gt;</code> (avec ou sans<br/>
attribut <code>lang</code>) 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><code>&lt;meta charset="utf-8"&gt;</code></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 <code>&lt;head&gt;</code>,<br/>
pas en première ligne du fichier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>&lt;!DOCTYPE html&gt;</code></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><code>&lt;head&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;head&gt;</code> vient à l'intérieur de<br/>
<code>&lt;html&gt;</code>.</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><code>&lt;head&gt;</code> contient titre (<code>&lt;title&gt;</code>), encodage<br/>
(<code>&lt;meta charset="utf-8"&gt;</code>), feuilles de style<br/>
(<code>&lt;link&gt;</code>), scripts (<code>&lt;script&gt;</code>). <code>&lt;body&gt;</code><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[<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;...&lt;/head&gt;
  &lt;body&gt;...&lt;/body&gt;
&lt;/html&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;head&gt;</code> (méta-données :<br/>
titre, encodage, styles), <code>&lt;body&gt;</code> (contenu<br/>
visible). Tous deux dans <code>&lt;html&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;html&gt;
  &lt;head&gt;...&lt;/head&gt;
  &lt;body&gt;...&lt;/body&gt;
&lt;/html&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il manque la première ligne<br/>
<code>&lt;!DOCTYPE html&gt;</code>, 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[<pre><code>&lt;!DOCTYPE html&gt;
  &lt;head&gt;...&lt;/head&gt;
  &lt;body&gt;...&lt;/body&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il manque l'élément racine <code>&lt;html&gt;</code>,<br/>
qui doit englober <code>&lt;head&gt;</code> et <code>&lt;body&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;html&gt;
  &lt;!DOCTYPE html&gt;
  &lt;head&gt;...&lt;/head&gt;
  &lt;body&gt;...&lt;/body&gt;
&lt;/html&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la déclaration <code>&lt;!DOCTYPE html&gt;</code><br/>
doit être la <strong>première ligne</strong> du fichier,<br/>
avant <code>&lt;html&gt;</code> ; 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 : <code>&lt;h1&gt;</code> à <code>&lt;h6&gt;</code>. Importante pour<br/>
l'accessibilité et le référencement. Ne pas<br/>
sauter de niveau (de <code>&lt;h1&gt;</code> à <code>&lt;h3&gt;</code>).</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>&lt;head&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;head&gt;</code> est la zone des<br/>
méta-données.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;title1&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;title&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;title&gt;</code> est dans <code>&lt;head&gt;</code> 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><code>&lt;h1&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;h1&gt;</code> (heading level 1,<br/>
titre de niveau 1) à <code>&lt;h6&gt;</code> (level 6).<br/>
Convention : un seul <code>&lt;h1&gt;</code> 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><code>&lt;p&gt;</code> est l'une des balises les plus utilisées.<br/>
Pour un saut de ligne simple sans nouveau<br/>
paragraphe, utiliser <code>&lt;br&gt;</code>.</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>&lt;para&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;paragraph&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante. Le nom est<br/>
abrégé en <code>&lt;p&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;text&gt;</code></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><code>&lt;p&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;p&gt;</code> (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/>
<code>https://example.com</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Attribut <code>target="_blank"</code> pour ouvrir dans un<br/>
nouvel onglet. Pour un lien interne (vers une<br/>
ancre dans la page) : <code>&lt;a href="#section1"&gt;</code>.</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>&lt;link href="https://example.com"&gt;texte&lt;/link&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;link&gt;</code> est utilisée dans <code>&lt;head&gt;</code><br/>
pour les feuilles de style, pas pour les<br/>
liens visibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;href="https://example.com"&gt;texte&lt;/href&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de balise <code>&lt;href&gt;</code>. C'est un<br/>
attribut.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;url="https://example.com"&gt;texte&lt;/url&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de balise <code>&lt;url&gt;</code> non plus.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>&lt;a href="https://example.com"&gt;texte&lt;/a&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;a&gt;</code> (anchor) avec<br/>
l'attribut <code>href</code> (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 <code>alt</code> est <strong>obligatoire</strong> pour<br/>
l'accessibilité (lecteurs d'écran). Sans <code>alt</code>,<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><code>&lt;image src="..."&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante, le nom est<br/>
abrégé en <code>&lt;img&gt;</code>. Piège : le parseur HTML<br/>
corrige silencieusement <code>&lt;image&gt;</code> en<br/>
<code>&lt;img&gt;</code>, 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><code>&lt;picture src="..."&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p><code>&lt;picture&gt;</code> existe (pour les images<br/>
responsives), mais c'est plus complexe et<br/>
contient plusieurs <code>&lt;source&gt;</code> et un<br/>
<code>&lt;img&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;src="..."&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>src</code> est un attribut, pas une<br/>
balise.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>&lt;img src="..." alt="..."&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;img&gt;</code> avec <code>src</code> (chemin)<br/>
et <code>alt</code> (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 <code>&lt;li&gt;</code>.</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>&lt;ol&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;ol&gt;</code> (<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><code>&lt;list&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>&lt;ul&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;ul&gt;</code> (<em>unordered list</em>)<br/>
contient des <code>&lt;li&gt;</code> (<em>list item</em>).<br/>
Affichage avec puces par défaut.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;bullet&gt;</code></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 <code>&lt;a href="page.html"&gt;lien&lt;/a&gt;</code>, qu'est-ce<br/>
que <code>href</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Attributs courants : <code>id</code>, <code>class</code>, <code>style</code>,<br/>
<code>href</code>, <code>src</code>, <code>alt</code>. La syntaxe est toujours<br/>
<code>attribut="valeur"</code> à 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 <code>&lt;a&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>href</code> 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 <code>&lt;a&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un attribut a la forme<br/>
<code>nom="valeur"</code> 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 <code>&lt;div&gt;</code> et<br/>
<code>&lt;span&gt;</code> ?</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 <code>display: block;</code> ou <code>display: inline;</code>.</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 <code>&lt;div&gt;</code> 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><code>&lt;div&gt;</code> est un conteneur de bloc, <code>&lt;span&gt;</code> un conteneur en ligne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : distinction fondamentale en<br/>
HTML/CSS. <code>&lt;div&gt;</code> est utilisé pour<br/>
structurer des sections ; <code>&lt;span&gt;</code> 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><code>&lt;span&gt;</code> ne peut s'utiliser que dans l'en-tête <code>&lt;head&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;span&gt;</code> s'utilise dans <code>&lt;body&gt;</code>,<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/>
<code>&lt;meta charset="utf-8"&gt;</code> dans <code>&lt;head&gt;</code> ?</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/>
<code>&lt;head&gt;</code> 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 <code>&lt;script&gt;</code>. La<br/>
balise <code>&lt;meta charset&gt;</code><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 <code>&lt;meta name="robots"<br/>
content="noindex"&gt;</code>.</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/>
<code>class</code> et <code>id</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bonne pratique : utiliser surtout <code>class</code> pour<br/>
le style ; <code>id</code> 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><code>class</code> est obsolète et remplacé par <code>id</code> en HTML5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>class</code> 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><code>id</code> est unique, <code>class</code> peut viser plusieurs éléments</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>id</code> identifie un seul<br/>
élément (par exemple <code>id="header-principal"</code>),<br/>
<code>class</code> regroupe des éléments partageant un<br/>
style (par exemple <code>class="bouton"</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'attribut <code>id</code> ne fonctionne plus du tout en HTML5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>id</code> 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 <code>id</code> 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><code>&lt;table&gt;</code>, <code>&lt;tr&gt;</code>, <code>&lt;td&gt;</code> et <code>&lt;th&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : structure standard, avec<br/>
<code>&lt;tr&gt;</code> (<em>table row</em>) pour les lignes,<br/>
<code>&lt;td&gt;</code> (<em>table data</em>) pour les cellules et<br/>
<code>&lt;th&gt;</code> (<em>table header</em>) pour les en-têtes<br/>
(gras et centré par défaut). <code>&lt;thead&gt;</code>,<br/>
<code>&lt;tbody&gt;</code>, <code>&lt;tfoot&gt;</code> pour les groupements.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;grid&gt;</code>, <code>&lt;row&gt;</code>, <code>&lt;cell&gt;</code></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 <code>&lt;table&gt;</code> toute seule, sans balises internes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il faut aussi <code>&lt;tr&gt;</code> et <code>&lt;td&gt;</code> (ou<br/>
<code>&lt;th&gt;</code>) pour avoir un contenu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les balises <code>&lt;spreadsheet&gt;</code>, <code>&lt;line&gt;</code> et <code>&lt;column&gt;</code></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. <code>&lt;p&gt;</code> ne peut pas contenir de bloc<br/>
(ni un autre <code>&lt;p&gt;</code>).</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[<pre><code>&lt;a href="x"&gt;&lt;strong&gt;texte&lt;/strong&gt;&lt;/a&gt;</code></pre>]]></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[<pre><code>&lt;ul&gt;&lt;li&gt;élément&lt;/li&gt;&lt;/ul&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Correct : <code>&lt;li&gt;</code> dans <code>&lt;ul&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;p&gt;Voici un &lt;strong&gt;mot&lt;/strong&gt; important.&lt;/p&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Correct : un élément inline (<code>&lt;strong&gt;</code>)<br/>
dans un bloc (<code>&lt;p&gt;</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<pre><code>&lt;p&gt;Texte &lt;p&gt;imbriqué&lt;/p&gt;.&lt;/p&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Incorrect (donc bonne réponse) : on ne<br/>
peut pas imbriquer un <code>&lt;p&gt;</code> dans un autre<br/>
<code>&lt;p&gt;</code>. 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 : <code>&lt;area&gt;</code>, <code>&lt;base&gt;</code>,<br/>
<code>&lt;br&gt;</code>, <code>&lt;col&gt;</code>, <code>&lt;embed&gt;</code>, <code>&lt;hr&gt;</code>, <code>&lt;img&gt;</code>,<br/>
<code>&lt;input&gt;</code>, <code>&lt;link&gt;</code>, <code>&lt;meta&gt;</code>, <code>&lt;source&gt;</code>,<br/>
<code>&lt;track&gt;</code>, <code>&lt;wbr&gt;</code>.</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>&lt;img&gt;</code>, <code>&lt;br&gt;</code>, <code>&lt;hr&gt;</code>, <code>&lt;meta&gt;</code>, <code>&lt;link&gt;</code>, <code>&lt;input&gt;</code></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/>
<code>&lt;br&gt;</code> ou <code>&lt;br /&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;p&gt;</code>, <code>&lt;div&gt;</code>, <code>&lt;span&gt;</code></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><code>&lt;title&gt;</code>, <code>&lt;script&gt;</code>, <code>&lt;style&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces trois balises exigent une<br/>
fermeture explicite, car elles contiennent<br/>
du contenu (<code>&lt;title&gt;Mon site&lt;/title&gt;</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les balises <code>&lt;head&gt;</code> et <code>&lt;body&gt;</code> 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><code>&lt;strong&gt;</code> vs <code>&lt;b&gt;</code> : 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><code>&lt;important&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;text-bold&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;bold&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>&lt;strong&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;strong&gt;</code> exprime<br/>
l'<strong>importance</strong> sémantique (et est<br/>
rendue en gras par défaut). La balise<br/>
<code>&lt;b&gt;</code> existe aussi mais est purement<br/>
visuelle (à éviter en pratique). Pour<br/>
l'italique : <code>&lt;em&gt;</code> (sémantique) ou <code>&lt;i&gt;</code>.</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 <code>/site/index.html</code> et l'image<br/>
est <code>/site/img/photo.jpg</code>, quel <code>src</code> 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/>
(<code>img/photo.jpg</code>), <strong>absolu</strong> par rapport au<br/>
site (<code>/img/photo.jpg</code>), <strong>absolu</strong> complet<br/>
(<code>https://...</code>). 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><code>../img/photo.jpg</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>..</code> remonte d'un dossier, ici<br/>
on aboutirait à <code>/img/photo.jpg</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>https://./img/photo.jpg</code></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><code>img/photo.jpg</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sans <code>/</code> initial, c'est<br/>
relatif au document courant. Depuis<br/>
<code>/site/index.html</code>, <code>img/photo.jpg</code><br/>
pointe sur <code>/site/img/photo.jpg</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>/img/photo.jpg</code></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/>
<pre><code>&lt;ul&gt;
  &lt;li&gt;Pomme&lt;/li&gt;
  &lt;li&gt;Banane&lt;/li&gt;
  &lt;ol&gt;
    &lt;li&gt;Cerise&lt;/li&gt;
  &lt;/ol&gt;
&lt;/ul&gt;</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour un sous-niveau de liste : imbriquer la<br/>
sous-liste <strong>dans</strong> un <code>&lt;li&gt;</code> 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> : <code>&lt;ol&gt;</code> ne peut pas être un<br/>
enfant direct de <code>&lt;ul&gt;</code>. Il devrait être<br/>
dans un <code>&lt;li&gt;</code>. 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é : <code>&lt;ol&gt;</code> doit être imbriqué dans un <code>&lt;li&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la structure correcte est<br/>
<code>&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;</code>.<br/>
Les listes ne peuvent contenir que des<br/>
<code>&lt;li&gt;</code> 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/>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;&lt;/head&gt;
  &lt;body&gt;&lt;/body&gt;
&lt;/html&gt;</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Document minimal vraiment conforme :<br/>
<code>&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;</code>.</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 <code>&lt;title&gt;</code> dans <code>&lt;head&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;title&gt;</code> 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 <code>lang</code> sur <code>&lt;html&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Recommandé pour l'accessibilité (par<br/>
exemple <code>&lt;html lang="fr"&gt;</code>), mais<br/>
techniquement pas obligatoire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un <code>&lt;script&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : facultatif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une balise <code>&lt;style&gt;</code></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 <code>&lt;table&gt;</code> 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/>
<code>&lt;table&gt;</code>, mais avec <code>&lt;thead&gt;</code>, <code>&lt;tbody&gt;</code>, 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 <code>&lt;table&gt;</code> a été supprimée de HTML5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;table&gt;</code> 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 : <code>id</code> = identifiant <strong>unique</strong><br/>
(comme une carte d'identité) ; <code>class</code> =<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 (<code>&lt;header&gt;</code>, <code>&lt;nav&gt;</code>, 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 <code>&lt;head&gt;</code> et <code>&lt;body&gt;</code> dans <code>&lt;html&gt;</code></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 <code>id</code> 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) : <code>id</code> doit être<br/>
<strong>unique</strong>. Pour grouper plusieurs<br/>
éléments, utiliser <code>class</code>.</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 <code>&lt;head&gt;</code> d'une page HTML, à quoi sert<br/>
la balise suivante ?</p>
<pre><code>&lt;meta name="description" content="Cours de NSI en ligne"&gt;</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dans <code>&lt;head&gt;</code>, on regroupe toutes les informations<br/>
qui décrivent la page sans s'afficher : <code>&lt;title&gt;</code><br/>
(titre de l'onglet), <code>&lt;meta charset&gt;</code> (encodage),<br/>
<code>&lt;meta name="description"&gt;</code> (résumé pour les<br/>
moteurs), <code>&lt;meta name="viewport"&gt;</code> (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 <code>&lt;title&gt;</code>, distincte de<br/>
<code>&lt;meta name="description"&gt;</code>.</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/>
<code>&lt;meta name="robots" content="noindex"&gt;</code>. 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 <code>&lt;head&gt;</code> 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 <code>&lt;iframe&gt;</code> à<br/>
l'aide d'en-têtes HTTP comme<br/>
<code>Content-Security-Policy</code>.</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>&lt;iframe&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la balise <code>&lt;iframe&gt;</code> (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 <code>src</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;embed&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;embed&gt;</code> 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><code>&lt;include&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune balise <code>&lt;include&gt;</code> 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><code>&lt;link&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;link&gt;</code> sert à déclarer des<br/>
ressources liées à la page (feuille de style,<br/>
favicon, etc.) dans le <code>&lt;head&gt;</code>, 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 (<code>&lt;div&gt;</code>, <code>&lt;p&gt;</code>, <code>&lt;h1&gt;</code>,<br/>
<code>&lt;ul&gt;</code>, <code>&lt;section&gt;</code>...) prennent toute la largeur<br/>
et passent à la ligne ; les éléments en ligne<br/>
(<code>&lt;span&gt;</code>, <code>&lt;a&gt;</code>, <code>&lt;strong&gt;</code>, <code>&lt;em&gt;</code>,<br/>
<code>&lt;img&gt;</code>...) restent au sein de la ligne courante.<br/>
CSS permet de modifier ce comportement avec la<br/>
propriété <code>display</code>.</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>&lt;em&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la balise <code>&lt;em&gt;</code> (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><code>&lt;img&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : même si une image peut être grande à<br/>
l'écran, <code>&lt;img&gt;</code> 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><code>&lt;h1&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;h1&gt;</code> est un élément en bloc,<br/>
comme tous les titres <code>&lt;h1&gt;</code> à <code>&lt;h6&gt;</code>. 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><code>&lt;a&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un lien <code>&lt;a&gt;</code> 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 (<code>&lt;center&gt;</code>,<br/>
<code>&lt;font&gt;</code>, <code>&lt;big&gt;</code>...) 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><code>&lt;strong&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;strong&gt;</code> 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><code>&lt;section&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;section&gt;</code> 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><code>&lt;center&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>&lt;center&gt;</code> centrait le<br/>
contenu, un rôle de pure présentation<br/>
qui revient aujourd'hui à CSS<br/>
(<code>text-align: center;</code> ou<br/>
<code>margin: auto;</code>). Le standard HTML la<br/>
classe parmi les éléments obsolètes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;figure&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;figure&gt;</code> est aussi une<br/>
nouveauté de HTML5. Elle regroupe une<br/>
illustration et sa légende, portée par<br/>
<code>&lt;figcaption&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
