Todas as atividades
Quiz e Avaliação

Preencher Lacunas (Texto Livre)

Apresenta um texto com palavras removidas que o aprendiz completa digitando, sem opções à escolha. Avalia evocação ativa do termo, precisão terminológica e compreensão contextual.

Conhecimento e compreensão lacuna texto livre digitação vocabulário

Experimente

Complete as lacunas com os termos corretos:

A avaliação ocorre durante o processo de aprendizagem, enquanto a avaliação ocorre ao final de uma etapa.

Código-fonte

PHP

Texto e lacunas

Intercala campos de resposta com os segmentos da frase.

1 <?php // Exemplo didático: a tentativa permanece no campo após a avaliação. ?>
2 <div class="questao" data-tipo="preencher-lacunas-texto-livre">
3 <p class="instrucao"><?= t($q->instrucao) ?></p>
4
5 <?php foreach ($q->segmentos as $segmento): ?>
6 <?php if ($segmento->tipo === 'texto'): ?>
7 <span><?= t($segmento->valor) ?></span>
8 <?php else: ?>
9 <input class="lacuna-input" data-resposta="<?= sanitizar(t($segmento->resposta)) ?>">
10 <?php endif; ?>
11 <?php endforeach; ?>
12
13 <?php include VIEWS_PATH . 'components/ui/area-feedback.php'; ?>
14 </div>
CSS

Estados das lacunas

Mantém acerto e erro legíveis depois da avaliação.

1 .lacuna-input[data-estado="correta"] {
2 border-color: #16a34a;
3 color: #15803d;
4 opacity: 1;
5 }
6
7 .dark .lacuna-input[data-estado="correta"] {
8 border-color: #22c55e;
9 color: #86efac;
10 }
11
12 .lacuna-input[data-estado="errada"] { border-color: #dc2626; color: #b91c1c; }
13 .lacuna-input:disabled { opacity: 1; }
JavaScript

Avaliar as lacunas

Preserva tentativas, compara respostas e declara o estado visual.

1 document.addEventListener('DOMContentLoaded', function () {
2 var campos = document.querySelectorAll('.lacuna-input');
3 var feedback = document.querySelector('.questao-feedback');
4
5 document.querySelector('.lacunas-verificar').addEventListener('click', function () {
6 var tentativas = [], respostas = [], acertos = 0;
7 campos.forEach(function (campo) {
8 var correta = campo.value.trim().toLowerCase() === campo.dataset.resposta.toLowerCase();
9 campo.dataset.estado = correta ? 'correta' : 'errada';
10 campo.disabled = true;
11 tentativas.push(campo.value || '(em branco)');
12 respostas.push(campo.dataset.resposta);
13 if (correta) acertos++;
14 });
15
16 Feedback[acertos === campos.length ? 'correto' : 'parcial'](feedback, 'Confira o resultado.');
17 Feedback.definirTentativa(feedback, tentativas.join('\n'));
18 Feedback.definirResposta(feedback, respostas.join('\n'));
19 });
20 });