# Cloze math with image (imageclozeformula)

The cloze math with image Question is referenced by its Question type in the code, which is imageclozeformula. This Question allows students to easily enter complex math formula as a response on top of an image, with advanced validation capabilities using math specific scoring methods.

## Examples

{
"response_id": "60034",
"type": "imageclozeformula",
"image": {
"alt": "Scalene triangle with sixty-four degree angle",
"src": "//assets.learnosity.com/questiontypes/content/triangle.png"
},
"is_math" :true,
"response_container": {
"pointer": "",
"template": ""
},
"response_containers": [{
"template": "",
"pointer": "left",
"width": "100px",
"height": "20px"
} , {
"template": "",
"pointer": "right",
"width": "100px",
"height": "20px"
}],
"response_positions": [{
"x":31.25,
"y": 0
} , {
"x": 72.75,
"y": 16.8
}],
"stimulus": "<p>Express the angles a &amp; b in terms of simple arithmetic involving all the angles of the given triangle.</p><p>E.g.&nbsp;\$$180-2\\left(64\\right)\$$</p>",
"type": "imageclozeformula",
"ui_style": {
"type": "block-on-focus-keyboard"
},
"validation": {
"scoring_type": "exactMatch",
"valid_response": {
"score": 2,
"value": [
[{
"method": "equivValue",
"value": "64",
"options": {
"decimalPlaces": 10
}
}] , [{
"method": "equivValue",
"value": "52",
"options": {
"decimalPlaces": 10
}
}]
]
}
}
}

## Attributes

• text_blocks array

List of custom text blocks. Maximum length 9 characters.

Default: []

• is_math boolean

Set to true to have LaTeX or MathML contents to be rendered with mathjax.

Default: false

• metadata object

Object containing additional information about the question.

• metadata.distractor_rationale string

Used to display individual response feedback/rationale to the student.

• metadata.rubric_reference string

A unique identifier for the rubric to be used with the question - defaults to course rubric if assigned in activity

• metadata.sample_answer string

A sample answer to be displayed on the Learnosity Reports API. HTML is supported.

• metadata.acknowledgements string

References for any text passages, documents, images etc. used in the question.

• metadata.distractor_rationale_response_level array

Used to display individual response feedback/rationale to the learner, at the relevant response level. Note that this is a premium Learnosity feature, contact Learnosity support to have it enabled.

• stimulus string

The question stimulus. This can include text, tables, images, resources and LaTeX entered via the Math Editor.

• stimulus_review string

HTML/Text content displayed only in review state rendered above the response area. Supports embedded Feature <span> tags. Will override stimulus in review state.

• instructor_stimulus string

HTML/Text content displayed when showInstructorStimulus is set to true on the activity. Supports embedded Feature <span> tags.

• type string

Type of question being asked, e.g. 'association'

Default: "imageclozeformula"

• ui_style object

Object used to control different aspects of the UI

• ui_style.fontsize string

Controls the size of base font for this question. Options are among 'small', 'normal', 'large', 'xlarge' and 'xxlarge'.

Default: "normal"

• ui_style.validation_stem_numeration string

Numeration character to be displayed to the left of the validation label.

Default: "number"

• ui_style.response_font_scale string

This scales the font relative to the question's font size. Possible values:

• "boosted" 150%
• "normal" 100%

Default: "boosted"

• ui_style.type string

Keyboard style. See Keypad Customization for more information. Possible values:

• "floating-keyboard"

A movable keypad appears when the learner brings focus into the response box

• "block-keyboard"

A fixed keypad that is always visible

• "block-on-focus-keyboard"

A fixed keypad appears when the learner brings focus into the response box

• "no-input-ui"

No keypad

Default: "block-on-focus-keyboard"

• ui_style.min_width stringUnits

Controls the minimum width of the response input area, e.g. 550px

Default: ""

• ui_style.keyboard_below_response_area boolean

When enabled, this will position the floating keyboard below the last line of the response area. Otherwise, this will partially overlap the response area.

Default: false

• feedback_attempts number

If instant_feedback is true, this field determines how many times the user can click on the 'Check Answer' button. 0 means unlimited.

Default: 0

• instant_feedback boolean

Flag to determine whether to display a 'Check Answer' button to provide instant feedback to the user.

Default: false

• validation object

In this section, configure the correct answer(s) for the question.

• validation.allow_negative_scores boolean

Negative scores will be normalised to zero by default. Allowing negative scores, on the other hand, means that the score can drop below zero when penalties are applied.

Default: false

• validation.penalty number

Value indicating the marks deducted for an incorrect response.

Default: 0

• validation.min_score_if_attempted number

Positive value indicating the minimum score if a student attempted the question.

Default: 0

• validation.scoring_type string

The way in which marks are distributed for the question. Possible options:
'exactMatch': Exact Match - All parts of the question must be answered correctly to receive a mark.
'partialMatchV2': Partial Match - Each correct response element will be scored individually, and the overall question score will be divided between the responses.
'partialMatch': Partial Match per Response - Each correct response element will be awarded an individual score.

Default: "exactMatch"

• validation.unscored boolean

When enabled, this option will remove all scoring from the question. This is useful for creating practice questions.

Default: false

• validation.valid_response object

An object containing the valid response score and value.

• validation.valid_response.score number

Score awarded for the correct response(s).

Default: 1

• validation.valid_response.value array

A collection of arrays containing objects with the valid response.

Default: []

• validation.valid_response.value[ ][ ].method string

The method used to compare user input against the valid response value.

Default: "equivLiteral"

• validation.valid_response.value[ ][ ].value string

The value to match against

Default: ""

• validation.valid_response.value[ ][ ].aria_label string

A plain text version of the correct answer, available in review state for screen reader users

Default: ""

• validation.valid_response.value[ ][ ].options object

Extra options for the selected method.

• validation.valid_response.value[ ][ ].options.ignoreLeadingAndTrailingSpaces boolean

Setting it to true allows treating ' a ' and 'a' as the same.

Default: true

• validation.valid_response.value[ ][ ].options.treatMultipleSpacesAsOne boolean

Setting it to true allows treating 'a b' and 'a b' as the same.

Default: true

• validation.valid_response.value[ ][ ][ ].method string

The method used to compare user input against the valid response value.

Default: "equivLiteral"

• validation.valid_response.value[ ][ ][ ].value string

The value to match against

Default: ""

• validation.valid_response.value[ ][ ][ ].aria_label string

A plain text version of the correct answer, available in review state for screen reader users

Default: ""

• validation.valid_response.value[ ][ ][ ].options object

Extra options for the selected method.

• validation.valid_response.value[ ][ ][ ].options.ignoreLeadingAndTrailingSpaces boolean

Setting it to true allows treating ' a ' and 'a' as the same.

Default: true

• validation.valid_response.value[ ][ ][ ].options.treatMultipleSpacesAsOne boolean

Setting it to true allows treating 'a b' and 'a b' as the same.

Default: true

• validation.automarkable boolean

Defines whether the question will be marked automatically, or must be marked manually.

Default: true

• validation.alt_responses array

Add an alternate response if there is more than one correct overall solution to a question.

• validation.alt_responses[ ].score number

Score if the alternative response is correct.

Default: 1

• validation.alt_responses[ ].value array

An array of arrays that contain the valid responses.

Default: []

• validation.alt_responses[ ].value[ ][ ].method string

The method used to compare user input against the valid response value.

Default: "equivLiteral"

• validation.alt_responses[ ].value[ ][ ].value string

The value to match against

Default: ""

• validation.alt_responses[ ].value[ ][ ].aria_label string

A plain text version of the correct answer, available in review state for screen reader users

Default: ""

• validation.alt_responses[ ].value[ ][ ].options object

Extra options for the selected method.

• validation.alt_responses[ ].value[ ][ ].options.ignoreLeadingAndTrailingSpaces boolean

Setting it to true allows treating ' a ' and 'a' as the same.

Default: true

• validation.alt_responses[ ].value[ ][ ].options.treatMultipleSpacesAsOne boolean

Setting it to true allows treating 'a b' and 'a b' as the same.

Default: true

• validation.alt_responses[ ].value[ ][ ][ ].method string

The method used to compare user input against the valid response value.

Default: "equivLiteral"

• validation.alt_responses[ ].value[ ][ ][ ].value string

The value to match against

Default: ""

• validation.alt_responses[ ].value[ ][ ][ ].aria_label string

A plain text version of the correct answer, available in review state for screen reader users

Default: ""

• validation.alt_responses[ ].value[ ][ ][ ].options object

Extra options for the selected method.

• validation.alt_responses[ ].value[ ][ ][ ].options.ignoreLeadingAndTrailingSpaces boolean

Setting it to true allows treating ' a ' and 'a' as the same.

Default: true

• validation.alt_responses[ ].value[ ][ ][ ].options.treatMultipleSpacesAsOne boolean

Setting it to true allows treating 'a b' and 'a b' as the same.

Default: true

• validation.alt_responses[ ][ ].score number

Score if the alternative response is correct.

Default: 1

• validation.alt_responses[ ][ ].value array

An array of arrays that contain the valid responses.

Default: []

• validation.alt_responses[ ][ ].value[ ][ ].method string

The method used to compare user input against the valid response value.

Default: "equivLiteral"

• validation.alt_responses[ ][ ].value[ ][ ].value string

The value to match against

Default: ""

• validation.alt_responses[ ][ ].value[ ][ ].aria_label string

A plain text version of the correct answer, available in review state for screen reader users

Default: ""

• validation.alt_responses[ ][ ].value[ ][ ].options object

Extra options for the selected method.

• validation.alt_responses[ ][ ].value[ ][ ].options.ignoreLeadingAndTrailingSpaces boolean

Setting it to true allows treating ' a ' and 'a' as the same.

Default: true

• validation.alt_responses[ ][ ].value[ ][ ].options.treatMultipleSpacesAsOne boolean

Setting it to true allows treating 'a b' and 'a b' as the same.

Default: true

• validation.alt_responses[ ][ ].value[ ][ ][ ].method string

The method used to compare user input against the valid response value.

Default: "equivLiteral"

• validation.alt_responses[ ][ ].value[ ][ ][ ].value string

The value to match against

Default: ""

• validation.alt_responses[ ][ ].value[ ][ ][ ].aria_label string

A plain text version of the correct answer, available in review state for screen reader users

Default: ""

• validation.alt_responses[ ][ ].value[ ][ ][ ].options object

Extra options for the selected method.

• validation.alt_responses[ ][ ].value[ ][ ][ ].options.ignoreLeadingAndTrailingSpaces boolean

Setting it to true allows treating ' a ' and 'a' as the same.

Default: true

• validation.alt_responses[ ][ ].value[ ][ ][ ].options.treatMultipleSpacesAsOne boolean

Setting it to true allows treating 'a b' and 'a b' as the same.

Default: true

• handwriting_recognises string

A string with the name of one of the available math grammar sets.

Default: "standard"

• is_dynamic_content boolean

This attribute will be set to true when the Question has been created by the Math Question Generator.

Default: false

• equiv_literal_legacy boolean

Allows equivLiteral (2)(x) evaluate to true.

Default: false

• response_containers array

Configure attributes, such as Height and Width, for each response container individually.

• response_containers[ ].template string

The initial value in the formula field. If response containers are used, only they will be editable.

• response_containers[ ].width stringUnits

Width of an individual response container, in pixels. Individual container setting.

• response_containers[ ].height stringUnits

Height of an individual response container, in pixels. Individual container setting.

• response_containers[ ].aria_label string

The ARIA label for the response container. The label will be "Response area" by default if no label is provided.

• response_containers[ ][ ].template string

The initial value in the formula field. If response containers are used, only they will be editable.

• response_containers[ ][ ].width stringUnits

Width of an individual response container, in pixels. Individual container setting.

• response_containers[ ][ ].height stringUnits

Height of an individual response container, in pixels. Individual container setting.

• response_containers[ ][ ].aria_label string

The ARIA label for the response container. The label will be "Response area" by default if no label is provided.

• response_container response container object

Define the template and dimensions for all response containers

• response_container.template string

The initial value in the formula field. If response containers are used, only they will be editable.

• response_container.height stringUnits

Height of the response container, in pixels. Global setting.

• response_container.width stringUnits

Width of the response container, in pixels. Global setting.

• response_container.aria_label string

The ARIA label for the response container. The label will be "Response area" by default if no label is provided.

• response_container.vertical_top boolean

This setting ensures that the position of the response boxes stays at the position set by the author, regardless of changes to the font size or container's size, i.e. it ensures that the position of the responses stays at top: 0, left: 0 of the container.

Default: false

• showHints boolean

Disables hint, including keyboard shortcuts and group titles, shown on the keyboard's top left corner when hovering over a symbol group key.

Default: true

• horizontal_layout boolean

Enables a horizontal layout with ten columns and two rows.

Default: false

• image object

Image settings are defined here.

• image.src string

The URL to the image file.

• image.alt textarea

The alternative text of the image.

Default: ""

• image.width number

Specify the width of the image, in pixels (optional).

• image.height number

Specify the height of the image, in pixels (optional).

• image.title string

The text to be shown on hover.

• image.prevent_scale boolean

Prevent image to be scaled along with screen size change

• image.scale boolean

Allow image to be scaled along with font size

• image.preview hidden

Preview of the chosen image

• response_positions array

Array of responsePosition objects (x and y) indicating the distance of the top left corner of the response field from the top left corner of the image.

• response_positions[ ].x number

x value indicating the horizontal position of the top left corner of the response field on the image. The value is a percentage of the total width of the image.

• response_positions[ ].y number

y value indicating the vertical position of the top left corner of the response field on the image. The value is a percentage of the total height of the image.

• response_positions[ ][ ].x number

x value indicating the horizontal position of the top left corner of the response field on the image. The value is a percentage of the total width of the image.

• response_positions[ ][ ].y number

y value indicating the vertical position of the top left corner of the response field on the image. The value is a percentage of the total height of the image.

## Response format

The data returned in the response format for this Question is the math formulas which students have added on top of an image.

### Response format examples

{
"value": [
null,
"\frac{o}{a}"
],
"responses": [
null,
[]
],
"type": "array",
"apiVersion": "v2.173.0",
"revision": 1,
"feedbackAttemptsCount": 1
}

### Response attributes

• value array

The math formulas entered by the student on the image.

• responses array

Contains the content that the student entered into each individual response box when multiple response boxes are contained in the content. These response boxes are the scoreable answers.

• type string

Informs the scoring engine about what kind of data to expect in the values entered by the student. For this Question type, you must always supply a string for this attribute with the value "array".

• apiVersion string

The version of the Questions API that returned this response.

• revision numeric

Keeps track of the number of Question attempt submissions, i.e. how many times the student answered the Question and submitted it.

• feedbackAttemptsCount numeric

Keeps track of the number of feedback attempts.

Was this article helpful?

Did you arrive here by accident? If so, learn more about Learnosity.