trial_categorize_html function is used to display
an HTML stimulus, collect a categorization response with the
keyboard, and provide feedback.
trial_categorize_html( stimulus, key_answer, choices = respond_any_key(), text_answer = "", correct_text = "Correct", incorrect_text = "Wrong", prompt = NULL, force_correct_button_press = FALSE, show_stim_with_feedback = TRUE, show_feedback_on_timeout = FALSE, timeout_message = "Please respond faster", stimulus_duration = NULL, feedback_duration = 2000, trial_duration = NULL, post_trial_gap = 0, on_finish = NULL, on_load = NULL, data = NULL )
The HTML to be displayed.
The numeric key code indicating the correct response
A character vector of keycodes (either numeric values or the characters themselves). Alternatively, respond_any_key() and respond_no_key() can be used
A label associated with the correct answer
Text to display when correct answer given ('%ANS%' substitutes text_answer)
Text to display when wrong answer given ('%ANS%' substitutes text_answer)
A string (may contain HTML) that will be displayed below the stimulus, intended as a reminder about the actions to take (e.g., which key to press).
If TRUE the correct button must be pressed after feedback in order to advance
If TRUE the stimulus image will be displayed as part of the feedback. Otherwise only text is shown
If TRUE the "wrong answer" feedback will be presented on timeout. If FALSE, a timeout message is shown
The message to show on a timeout non-response
How long to show the stimulus, in milliseconds. If NULL, then the stimulus will be shown until the subject makes a response
How long to show the feedback, in milliseconds
How long to wait for a response before ending trial in milliseconds. If NULL, the trial will wait indefinitely. If no response is made before the deadline is reached, the response will be recorded as NULL.
The gap in milliseconds between the current trial and the next trial. If NULL, there will be no gap.
An object containing additional data to store for the trial
Functions with a
trial_ prefix always return a "trial" object.
A trial object is simply a list containing the input arguments, with
NULL elements removed. Logical values in the input (
FALSE) are transformed to character vectors
and are specified to be objects of class "json", ensuring that they will be
trial_categorize_html function is used to show an HTML object on the screen.
The subject responds by pressing a key. Feedback indicating the correctness
of the response is given.
stimulus argument is a string specifying the text to be displayed
as the stimulus. It can include HTML markup, meaning that it can be used to
any stimulus that can be specified using HTML. It remains on screen for a
length of time corresponding to the
stimulus_duration parameter in
milliseconds (or indefinitely if the parameter is
For this kind of trial, participants can make a response by pressing a key,
choices argument is used to control which keys will register
a valid response. The default value
choices = respond_any_key()
is to allow the participant to press any key to register their response.
Alternatively it is possible to set
choices = respond_no_key(),
which prevents all keys from registering a response: this can be useful if
the trial is designed to run for a fixed duration, regardless of what the
In many situations it is preferable to require the participant to respond
using specific keys (e.g., for a binary choice tasks, it may be desirable to
require participants to press F for one response or J for the other). This
can be achieved in two ways. One possibility is to use a character vector
as input (e.g.,
choices = c("f","j")). The other is to use the
case would be
choices = c(70, 74). To make it a little easier to
work with numeric codes, the jaysire package includes the
keycode() function to make it easier to convert from one format
to the other.
In a categorisation trial, there is always presumed to be a "correct" response for any given stimulus, and the participant is presented with feedback after the response is given. This feedback can be customised in several ways:
key_answer argument specifies the numeric
that corresponds to the correct response for the current trial.
incorrect_text arguments are used to
customise the feedback text that is presented to the participant after a
response is given. In both cases, there is a special value
can be used, and will be substituted with the value of
For example if we set
text_answer = "WUG", we could then set
correct_text = "Correct! This is a %ANS%" and
incorrect_text = "Wrong. This is a %ANS%". This functionality can be
particularly useful if the values of
are specified using timeline variables (see
force_correct_button_press argument is a logical variable.
If set to
TRUE the participant cannot move forward to the next trial
until the correct response is given.
show_stim_with_feedback = TRUE, the
on screen while the feedback is presented. If it is set to
stimulus is not visible.
Sometimes a categorisation trial has a deadline, specified by the value
trial_duration. If a response is not given by that time, the trial
ends. Optionally, a feedback screen can be presented whenever this occurs,
show_feedback_on_timeout = FALSE, and the text of this
feedback is specified by using the
prompt argument is used to specify text that remains on screen while
the animation displays. The intended use is to remind participants of the
valid response keys, but it allows HTML markup to be included and so can be
used for more general purposes.
Like all functions in the
trial_ family it contains four additional
post_trial_gap argument is a numeric value specifying the
length of the pause between the current trial ending and the next one
beginning. This parameter overrides any default values defined using the
build_experiment function, and a blank screen is displayed
during this gap period.
on_finish arguments can be used to
fn_ family of functions supplies a variety of functions that may
be useful in many cases.
data argument can be used to insert custom data values into
the jsPsych data storage for this trial
When this function is called from R it returns the trial object that will
later be inserted into the experiment when
is called. However, when the trial runs as part of the experiment it returns
values that are recorded in the jsPsych data store and eventually form part
of the data set for the experiment.
The data recorded by this trial is as follows:
stimulus value is the HTML displayed on the trial.
key_press value indicates which key the subject pressed. The
value is the numeric key code corresponding to the subject's response.
rt value is the
response time in milliseconds for the subject to make a response. The time is
measured from when the stimulus first appears on the screen until the subject's
correct value is true if the subject got the correct answer,
In addition, it records default variables that are recorded by all trials:
trial_type is a string that records the name of the plugin used to run the trial.
trial_index is a number that records the index of the current trial across the whole experiment.
time_elapsed counts the number of milliseconds since the start of the experiment when the trial ended.
internal_node_id is a string identifier for the current "node" in the timeline.