Skip to content

Survey Response Types

Surveys & forms

On form trials (type = form), the responseType column picks the question widget and the responseOptions column supplies the answer choices or the widget’s settings. This page covers every survey question type and the columns that shape it.

For the anatomy of a form row, pages, and layout, see Forms and Surveys. For response types on experimental trials (buttons, keyboard, clicks, mic, drag), see Responses in Experiments.

Put one of these values in the responseType cell of a form row:

responseTypeRenders
boxSingle-line text input
commentMulti-line text area
radioRadio buttons (pick one)
likertLikert scale, one rating button per entry in responseOptions
checkboxesMultiple checkboxes (pick any)
dropdownDrop-down menu
sliderDraggable slider
stars5-star rating
rankDrag-to-rank items

The display-only fallback is also useful on purpose: a form row with head and body but no recognised responseType shows text between questions.

For radio, likert, checkboxes, dropdown, and rank, set responseOptions as a semicolon-separated list:

type,head,responseType,responseOptions
form,How much do you agree?,likert,Strongly agree;Agree;Neutral;Disagree;Strongly disagree
  • The written order is the display order (unless you randomise it).
  • responseCode in the results is the 1-based position of the chosen option in the order you wrote, even when the displayed order is randomised.
  • Empty segments are ignored, so a stray ; does not add a blank option.
  • %variable% placeholders in the cell are substituted before the question is built.

A choice question with an empty responseOptions cell has nothing for the participant to pick, so always fill this column in for radio, checkboxes, dropdown, rank, and likert.

Append :exclusive to a checkbox option to make it mutually exclusive with all other checkboxes (useful for “None of the above”). The keyword is removed from the displayed text:

type,head,responseType,responseOptions
form,Which devices do you own?,checkboxes,Phone;Laptop;Tablet;None of these:exclusive

Choice questions (radio, checkboxes, dropdown)

Section titled “Choice questions (radio, checkboxes, dropdown)”
  • radio shows the options as radio buttons; the participant picks exactly one.
  • checkboxes shows the options as checkboxes; the participant can tick any number (see Exclusive choices for “None of the above” style options).
  • dropdown shows the options in a drop-down menu.

All three support an “Other” option and become matrices or repeated panels with responseRows.

likert renders a rating scale sized to your responseOptions list, one rating button per entry. A 5-point scale is simply five semicolon-separated anchors:

type,head,responseType,responseOptions,required
form,How satisfied are you?,likert,Not at all;Somewhat;Very,1

stars shows a 5-star rating widget. It does not read responseOptions, so there is nothing to configure there.

rank lists the responseOptions items and participants drag them into order.

box renders a single-line text input.

On experimental trials the same value behaves differently (multiple boxes with box*N, positioning with responsePos, and HTML5 input constraints on test trials). See Text boxes in Responses in Experiments.

comment renders a multi-line text area for longer free-text answers.

For the experimental-trial variant, see Responses in Experiments.

slider renders a draggable slider. Configure it in responseOptions with the format min_max_step;startValue;flags:

type,head,responseType,responseOptions
form,How much pain are you in?,slider,0(no pain)_10(worst pain);5
  • The first segment is the scale: min_max or min_max_step (step defaults to 1). Numeric endpoints may carry a label in parentheses, as in 0(low)_10(high).
  • A first segment that is not numeric, or has more than three _-separated parts, becomes a labelled slider: poor_average_good gives three options with the values 1 to 3. For labelled sliders the recorded response is the label text and responseCode is the numeric value.
  • After the scale, an optional start value: a number, or one of the labels.
  • Then any of the flags hideValue, hideStart, hideGrid, hideMinMax, hideLabels, removeFill. Flag names are case-sensitive.

How form sliders are recorded:

  • An untouched slider inside a form records NA, even though the handle was showing its start value. A slider the participant deliberately sets to 0 records 0, not NA.
  • A required form slider must actually be touched (clicked, dragged, or operated by keyboard) before the survey validates.

The standalone experiment slider has extra behaviour (the noButton flag, required on test trials); see Sliders in Responses in Experiments.

Adding an “Other” option (responseOther)

Section titled “Adding an “Other” option (responseOther)”

Put a label in the responseOther column to append an “Other” choice with a free-text input to a choice question:

type,head,responseType,responseOptions,responseOther
form,How did you hear about us?,radio,Friend;Advert;Social media,Other (please specify)
  • Any non-empty cell turns the option on, and the cell value is used verbatim as its label. There is no built-in “Other (please specify)” text, and no on/off semantics (0 shows an option labelled “0”).
  • Only radio, checkboxes, and dropdown honour it; rank, likert, slider, box, comment, and stars ignore it.
  • The text the participant types is saved as the response, with a responseCode of NA (it is not one of the defined choices).

Matrix and battery questions (responseRows)

Section titled “Matrix and battery questions (responseRows)”

Use responseRows to turn a single question into a multi-item battery. Each semicolon-separated entry becomes one row, answered on the same scale defined in responseOptions:

type,head,responseType,responseOptions,responseRows
form,How often do you...,radio,Never;Sometimes;Often,Sleep well;Exercise;Eat healthy
  • With responseType = radio or checkboxes, the question becomes a single matrix (rows are your labels, columns are the responseOptions).
  • With any other question type (dropdown, slider, box, comment, likert, rank, stars), it becomes a panel of repeated questions, one full question per row, titled with the row text.
  • A matrix never shows an “Other” option, so responseOther has no effect there; with dropdown plus rows, each per-row dropdown gets its own Other item.

In the results, per-row responses are joined with _ and each answer is saved in its own row’s position (a skipped row saves as NA in that position). In the matrix example above, a participant answering Sleep well = Often, Exercise = Never, Eat healthy = Sometimes saves response Often_Never_Sometimes and responseCode 3_1_2.

For the full results format, including how rows combine with image stimuli, see the responseRows column page.

Two columns shuffle the display order per participant:

  • responseOptionsRandom shuffles the options of radio, checkbox, dropdown, rank, likert, and matrix questions. responseCode in the results still counts positions in the order you wrote, but the displayed order itself is not recorded anywhere.
  • responseRowsRandom shuffles the rows of a responseRows battery. The displayed order is written to the results as an extra responseRows_actual column, and the saved per-row responses follow that displayed order, so match them positionally against responseRows_actual.
type,head,responseType,responseOptions,responseRows,responseRowsRandom
form,How often do you...,radio,Never;Sometimes;Often,Sleep well;Exercise;Eat healthy,1

Exclusive checkbox options always render last, after the normal options, and the “Other” item is never shuffled.

Put exactly 1 in the required column to make a form question mandatory; the participant cannot advance without answering:

type,head,responseType,responseOptions,required
form,Do you consent?,radio,Yes;No,1
  • On form trials only the exact value 1 works; 0, yes, or true leave the question optional.
  • With responseRows, every row becomes required: a matrix question demands an answer in every matrix row, not just one.
  • A required form slider must be touched before the survey validates; sitting at its start value does not count as an answer.

Note that the same column follows different rules on experimental trials (any non-empty value, and a special grammar for label responses); see the required column page.