Embedded Answers (Cloze) question type

From MoodleDocs

Embedded answers (Cloze) questions consist of a passage of text (in Moodle format) that has various answers embedded within it, including multiple choice, short answers and numerical answers.

Until mid2013, there was no graphical interface to create these questions within your Moodle site - you needed to specify the question format using the text box or by importing them from external files.

You can link to an external web site that does create these questions from a graphical interface, see the Online Cloze Question quiz generator below.

There is an Excel-based Cloze and GIFT Generator that was presented at the 2017 Moodle Moot Japan.

There is a Cloze editor for TinyMCE that will let you create these questions from a graphical interface within your Moodle site, but it will overwrite your current HTML editor and only works with the TinyMCE editor but not with Atto. In 2016 a Cloze editor for Atto additional plugin was created.

Lots of people suggested that Hot Potatoes software is the easiest way to create Embedded answer (Cloze) questions. Once you have created your questions on your PC, you can then import them into Moodle's quiz module.

However, the flexibility of the Cloze question type is hard to equal and despite the minor coding that you need to create the questions, it has great worth in the Moodle Quiz.

Question set-up

  1. Select the question category
  2. Give the question a descriptive name - this allows you to identify it in the question bank.
  3. Enter the passage of text (in Moodle format - see Format below) into the 'question text' field.
  4. Select an image to display if you want to add a picture to the question. For the student, it appears immediately above the question text.
  5. Set the 'default question grade' (i.e. the maximum number of marks for this question).
  6. Set the 'Penalty factor' (see Penalty factor below).
  7. If you wish, add general feedback. This is text that appears to the student after he/she has answered the question.
  8. The editor has been modified and allows you to test if your syntax is good. The different questions elements decoded will be displayed and syntax errors pinpoint. However, it cannot check if the question decoded is two questions in one because of an error syntax.
  9. Click Save changes to add the question to the category.

Penalty factor

The 'penalty factor' only applies when the question is used in a quiz using adaptive mode - i.e. where the student is allowed multiple attempts at a question even within the same attempt at the quiz. If the penalty factor is more than 0, then the student will lose that proportion of the maximum grade upon each successive attempt. For example, if the default question grade is 10, and the penalty factor is 0.2, then each successive attempt after the first one will incur a penalty of 0.2 x 10 = 2 points. The grading for the cloze question applies the penalty to each subpart of the question as a whole. For example, if you have three fill in the blanks each worth 1 point each, then the penalty will only be incurred on the incorrect parts, not the questions as a whole.

Question rendering

The question answer entry space or INPUT HTML ELEMENT (for Short Answer and Numerical question types) and the dropdown list or SELECT HTML ELEMENT (for multichoice) are normally displayed in-line with the text.

The size of the entry space or INPUT HTML ELEMENT ( Short and Numerical) will be adjustable to the length of the longest answer (good or bad) + a random number (0 to 15% total length).(Pierre Pichet 15:37, 26 January 2008 (CST))

The size will adjust to the length of the student response when displayed in the grading and feedback process.

The size of the dropdown list or SELECT HTML ELEMENT (multichoice) adjusts itself automatically to the longest answer.


Questions consist of a passage of text (in Moodle format) that has various sub-questions embedded within it, including

  • short answers (SHORTANSWER or SA or MW), case is unimportant,
  • short answers (SHORTANSWER_C or SAC or MWC), case must match,
  • numerical answers (NUMERICAL or NM),
  • multiple choice (MULTICHOICE or MC), represented as a dropdown menu in-line in the text,
  • multiple choice (MULTICHOICE_V or MCV), represented as a vertical column of radio buttons, or
  • multiple choice (MULTICHOICE_H or MCH), represented as a horizontal row of radio-buttons,
  • multiple choice (MULTIRESPONSE or MR), represented as a vertical row of checkboxes
  • multiple choice (MULTIRESPONSE_H or MRH), represented as a horizontal row of checkboxes
  • when the quiz question behavior shuffle option IS SET YES, the following multiple choice sub-questions elements will be shuffled,
  • multiple choice (MULTICHOICE_S or MCS), represented as a dropdown menu in-line in the text,
  • multiple choice (MULTICHOICE_VS or MCVS), represented as a vertical column of radio buttons, or
  • multiple choice (MULTICHOICE_HS or MCHS), represented as a horizontal row of radio-buttons.
  • multiple choice (MULTIRESPONSE_S or MRS), represented as a vertical row of checkboxes
  • multiple choice (MULTIRESPONSE_HS or MRHS), represented as a horizontal row of checkboxes
Note: MCS, MCVS, MCHS are new (Moodle 3.0) Cloze subquestion types with shuffling of answers. See MDL-38214.

The structure of each cloze sub-question is identical:

{ start the cloze sub-question with a bracket (AltGr+7)
1 define a grade for each cloze by a number (optional). This used for calculation of question grading.
:SHORTANSWER: define the type of cloze sub-question. Definition is bounded by ':'.
~ is a seperator between answer options
= marks a correct answer
# marks the beginning of an (optional) feedback message
} close the cloze sub-question at the end with a bracket (AltGr+0)

Now a very simple example:

{1:SHORTANSWER:=Berlin} is the capital of Germany.

For full details of the format for embedded-answers questions, see the detailed syntax explanation below.

NB: Be careful when copying a cloze type question into the WYSIWYG HTML editor, as line breaks tend to get added, which destroys the question.

If the correct answer contains } # ~ / " or \ you will have to escape them by putting a \ in front of each such character. But [this is tricky]. The { shouldn't be escaped, this can be vital in getting TeX expressions to work. In the feedback ~ and } must be escaped otherwise it will be interpreted as the next answer or end of the short answer section respectively. Quotation signs: " can lead to trouble anyhow in both places. Use the HTML entity: & quot; (without the space between & and quot;). If you want to have Mathematical symbols there can be problems with the \ used in TeX expressions. One alternative can be to use unicode characters.

See the notes further down about numerical embedded question!


Example 1

The following text creates a simple embedded-answers question:

Match the following cities with the correct state:
* San Francisco: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Tucson: {1:MULTICHOICE:California#Wrong~%100%Arizona#OK}
* Los Angeles: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Phoenix: {1:MULTICHOICE:%0%California#Wrong~=Arizona#OK}
The capital of France is {1:SHORTANSWER:%100%Paris#Congratulations!
~%50%Marseille#No, that is the second largest city in France (after
Paris).~*#Wrong answer. The capital of France is Paris, of course.}.

And the result will be:

Cloze question type

Example 2

This question consists of some text with an answer embedded right here {1:MULTICHOICE:Wrong answer#Feedback for this wrong answer~Another wrong answer#Feedback for the other wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}

and right after that you will have to deal with this short answer {1:SHORTANSWER:Wrong answer#Feedback for this wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}

and finally we have a floating point number {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8~%50%23.8:2#Feedback for half credit answer in the nearby region of the correct answer}.

The multichoice question can also be shown in the vertical display of the standard moodle multiple choice. {2:MCV:1. Wrong answer#Feedback for this wrong answer~2. Another wrong answer#Feedback for the other wrong answer~=3. Correct answer#Feedback for correct answer~%50%4. Answer that gives half the credit#Feedback for half credit answer}

Or in an horizontal display that is included here in a table {2:MCH:a. Wrong answer#Feedback for this wrong answer~b. Another wrong answer#Feedback for the other wrong answer~=c. Correct answer#Feedback for correct answer~%50%d. Answer that gives half the credit#Feedback for half credit answer}

A shortanswer question where case must match. Write moodle in upper case letters {1:SHORTANSWER_C:moodle#Feedback for moodle in lower case ~=MOODLE#Feedback for MOODLE in upper case ~%50%Moodle#Feedback for only first letter in upper case}

Note that addresses like www.moodle.org and smileys :-) all work as normal:

a) How good is this? {:MULTICHOICE:=Yes#Correct~No#We have a different opinion}

b) What grade would you give it? {3:NUMERICAL:=3:2}

Cloze example.png

Some things to note:

  • The individual embedded answers are represented by the code in braces {}.
  • The number at the start is the 'weight', so in this case each answer contributes an equal share of the overall grade.
  • The correct option in each case is preceded either by an = sign or by %100%.
  • The text appearing after the # that follows each option is the feedback that the student will see if they choose that option.
  • If the student enters 'Marseille' in the final example, they score 50% of the total grade.
  • The asterisk * preceding the "Wrong answer" feedback in the final example means that the student will see this feedback if they enter anything other than "Paris" or "Marseille".
  • For multiple choice vertical or horizontal rendering there is no automatic numbering, though can added at each answer.

Detailed syntax explanations

  1. all question items within a cloze-type question are coded inside curled braces { }
  2. the number which appears between the opening brace and the colon {1: is the weighting of that item; if it is set at 1 for all the items, it needs not be specified, so you can have {:
  3. after the colon we have the item question type: MULTICHOICE, SHORTANSWER, NUMERICAL
  4. NOTE.- If you have installed the REGEXP question type plugin you can also use the REGEXP question type
  5. the syntax for MULTICHOICE and SHORTANSWER is the same; the only difference is in the displaying of the item to the student
  6. the order of the various answers is indifferent (except if you want a catch-all for wrong answers, see #13 below)
  7. a correct answer is preceded with the equal sign = or a percentage (usually %100%) - Note: The equal sign (=) doesn't seem to work with SHORTANSWER.
  8. a wrong answer is preceded with nothing or a percentage (usually %0%)but you can even use negative points by preceding with ~%-25% [not before Moodle 2.0])
  9. you can allocate some points between 0 and 100 to some answers, if you put the appropriate percentage
  10. all answers except the first one are separated from one another by the tilde ~ sign
  11. answers can be followed by an optional feedback message, preceded with the # sign; if there is no feedback message, the # sign can be present or absent, it does not matter
  12. note that the feedback message and the correct answer are displayed in a small popup window (if and when the correct and or feedback have been declared accessible to the students in the Quiz settings) upon mouse hovering. The popup window has a title "feedback" and you can use HTML tags to format your feedback. In some browsers (For example IE5.5) the form fields can cover part of the feedback windows. It can help to not have the formfields for the answers too close to each other.
  13. in the SHORTANSWER type you may want to put a catch-all (wrong) answer in order to send a "wrong, try again" feedback; you can do this by inserting an asterisk * as the very last expected answer in your formula

Numerical Cloze questions

From the student perspective, a numerical Cloze question looks just like a short-answer question or fill in the blanks.

The difference is that numerical answers are allowed to have an accepted error. This allows a continuous range of answers to be set. You can also express your answer in some different numerical formats. 23.4 23,4 (some countries use , as a decimal separator) and 2.34E+1 (meaning 2.34*10^1) would be interpreted as the same.

False positives

Note: the following examples of false positives do not apply to Moodle 1.8+, where you cannot use percentages or fractions as the answers in a numerical Cloze test; Moodle will generate an error if you try to save such a question. However the following may be relevant for earlier versions of Moodle.

More examples:	 
0.5 accepts .5 0.5 ,5 0,5 0.500 5e-1 5E-1 but not 1/2 50% 	 
50% accepts 50% 50.0% 5E1% 50/100 even 50/1000 50 but not 500/1000 0.5	 
1/2 accepts 1/2 1/3 1twenty but not 2/4 0.5 0,5 3/6 50% ½	 
½ accepts ½	 
HALF doesn't even accept HALF (maybe 0?)	 

If you want to accept several variants you can have them in the same {} but be careful, notice the "false positives" in bold!

Syntax for numerical Cloze questions

The format of a NUMERICAL Cloze question is similar to that of the other Cloze types and they can be mixed in the same question. As with other Cloze tests, you write your question or incomplete text, and add the Cloze code at the point where the student is supposed to enter their numerical answer.

An example of the syntax used is shown below:

Note: It is preferable to write the code in 'source code' mode. The WSIWYG editor can insert linebreaks that make the question not function. The linebreak in the example box below is for readability only! A problem with these questions is the readability of the code! :(

{2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8	 
~%50%23.8:2#Feedback for ½credit near correct answer}. 	 

In this example:

  • 2: is the question point weight, which means that this question has twice the weight in the final point(s) for this question as other partial answers with weight 1 (or no declared weight - you can start with {: for the default weight 1) in the same question.
  • NUMERICAL: says what kind of question it is. It must be in CAPS.
  • =23.8:0.1 = or %100% means correct if the answer is 23.8 with an accepted error of 0.1, then any number between 23.7 and 23.9 will be accepted as correct. (In the GIFT numerical question one can express an interval like this 13..15 or 14:1 but in Cloze only 14:1 works.)
  • #Feedback for correct answer 23.8 is preceded by #
  • ~%50%23.8:2 ~ is the separator for answer alternatives %50% means this answer would get 50% of the score that the more precise answer had gotten. Because the tolerance here is 2, 21.8 to 25.8 would get this point and feedback.

The feedback (which is seen within a popup window when the user hovers over the answer space) is formattable with HTML tags. For example, if you want an exponent, surround it with superscript tags: <sup> </sup>. You can even include pictures in the feedback popup, but you must clean out all " characters and save while still in source code mode (not WYSIWYG). So, this works in feedback popup:

#See this picture:<br><img src=Something.gif />}	 

but not this:

#See this picture:<br><img src="Something.gif" />}	 

(ALGEBRA and TEX filters don't work in the feedback popups, but they can be very useful in the question writing for math/science expressions). But you can use Unicode characters.

If you want to give feedback for any answer that didn't fit the intervals you already have specified feedback for, add some BIG general intervals, like for positive answers (if they aren't bigger than 20000 you could add:

~%0%10000.0001:10000#Feedback for unspecified not_right answers}	 

This would give feedback for anything from 0.0001 to 20000.0001 (that hadn't already gotten feedback). I didn't want to include 0 since that special case as well as negative ought to have specific reactions.

~%0%0#Hey! It can't be zero	 
~%0%-10000.0001:10000#We just want the size here,	 
so a negative value is not what we want}			 

Numerical questions could, before version 1.7, also have case-insensitive non-numerical answers. This is useful whenever the answer for a numerical question is something like +inf, -inf, NaN etc.

Importing CLOZE questions

If you try importing directly as CLOZE this text:

Single line per question! Match the following cities with the correct state:
* San Francisco: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Tucson: {1:MULTICHOICE:California#Wrong~%100%Arizona#OK}
* Los Angeles: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Phoenix: {1:MULTICHOICE:%0%California#Wrong~=Arizona#OK}

The capital of France is {1:SHORTANSWER:%100%Paris#Congratulations!~%50%Marseille#No, that is the second largest city in France (after Paris).~*#Wrong answer. The capital of France is Paris, of course.}.

23+ 0.8 = {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8 ~%50%23.8:2#Feedback for ½credit near correct answer}. 	 

You would get all three questions as different parts of ONE question. (NOTE see that there are no linebreaks between the { } !)

Multiple CLOZE questions can be imported using the XML format:

<?xml version="1.0" encoding="UTF-8"?>

<!-- question: 1  -->
<question type="cloze">
<name><text>Book Test #1</text>

<!-- question: 2 -->
<question type="cloze">
<name><text>Book Test #2</text>


You would put the question text including CLOZE code in the ....... spaces.

Online Cloze Question generator

  • There is a website to generate CLOZE quizzes for Moodle (1.9 and 2.x and 3.x versions) and/or to try out the CLOZE editor integration for Moodle.
  • This editor was built at the Chair of Applied English Linguistics at Universitaet Tuebingen, Germany, by Andreas Glombitza (andiglombitza(at)googlemail.com) and Achim Skuta (achim.skuta(at)googlemail.com).
  • The authors are currently maintaining this software and webservice as a private project.

Website: http://projects.ael.uni-tuebingen.de/quiz/htmlarea/index.php

Cloze editor plugin for TinyMCE

Cloze editor plugin for Atto

This new plugin for Moodle 3.1+ was developed by Daniel Thies and is available for download and install from the Moodle plugins database..

Question with 1 media (e.g. audio) and several subquestions

As described in this forum post, you can easily make a question where the student inspect a media (e.g. an audio file) and then has to answer several small multiple choice questions. The example below is from a Moodle 3.5.2+ site using the new Record audio tool in the Atto editor. The Record video tool will also let you add video as part of the question, if you want to.

CLOZE question with 1 audio and 3 sub-questions.png

Questions with student notes and feedback for teacher

You can easily make one/many/all question(s) with an optional field for student notes and/or feedback for the teacher, as requested in this forum thread. Note that only the first MULTICHOICE question is marked, and the two optional fields do not score positive nor negative points:

CLOZE question with student comment and teacher feedback.png

The full question for the above example is:

Which of the following options is the right answer ?
{1:MULTICHOICE_VS:~A wrong answer~Another wrong answer~Yet another wrong answer~%100%This is the only right answer}
Optionally:Write a personal note: {0:SHORTANSWER:~%0%I want to have a longer input box for the note.~%100%*}
Optionally:Send feedback to teacher:{0:SHORTANSWER:~%0%I want to have a longer input box for the feedback.~%100%*}

See also

This information was drawn from: