Skip to main content

Visual Symbol Search Task

Version: v1 (current)

A processing speed task measuring the ability to quickly scan and compare visual symbols.

Overview

The Visual Symbol Search task assesses perceptual speed and visual attention by presenting a target symbol alongside an array of symbols. Participants must quickly determine whether the target appears in the array. Unlike visual search tasks that study attention mechanisms, symbol search emphasizes processing speed, measuring how fast you can scan and compare visual information.

This task is widely used in neuropsychological assessment batteries (e.g., WAIS, WISC) as a measure of processing speed, visual scanning, and sustained attention. Performance correlates with working memory, learning disabilities, and general cognitive efficiency.

Scientific Background

Classic Findings:

  • Processing Speed: Healthy adults complete 20-30 items per minute
  • Age Trajectory: Speed increases through childhood, peaks in young adulthood, declines with aging
  • Individual Differences: Correlates with IQ, working memory, and academic achievement
  • Practice Effects: Modest improvement with repeated administration

Key Mechanisms:

  • Perceptual Speed: Rapid rate of visual information processing
  • Visual Scanning: Systematic or random search through array
  • Decision Speed: Quick match/no-match judgment

Seminal Papers:

  • Wechsler (1997): WAIS-III and processing speed index
  • Salthouse (1996): The processing-speed theory of adult age differences in cognition

Why Researchers Use This Task

  1. Neuropsychological Assessment: Standard measure of processing speed
  2. Educational Psychology: Identify learning disabilities and processing deficits
  3. Aging Research: Sensitive to age-related cognitive slowing
  4. Clinical Screening: Assess attention and processing in ADHD, brain injury
  5. Research on Cognitive Efficiency: Correlate with other cognitive abilities

Where to Configure

Study Form → Tasks → Visual Symbol Search → Configure.

Configuration Parameters

Display Options

ParameterKeyTypeDefaultRangeDescription
Symbol sizesymbol_size_pxnumber6020-200Symbol container size in pixels
Target font sizetarget_font_size_pxnumber488-200Font size of the target symbols in pixels
Search font sizesearch_font_size_pxnumber488-200Font size of the search-group symbols in pixels
Background colorbackground_color_hexhex string#FFFFFFBackground color of the task screen
Symbol colorsymbol_color_hexhex string#000000Color of the search-group symbols
Target colortarget_color_hexhex string#000080Color of the target symbols
Time basedtime_basedbooleantrueWhen enabled, each trial auto-advances at its stimulus_ms time limit; when disabled, trials are self-paced
Show progressshow_progressbooleanfalseShow the trial counter during the task; hidden by default, enable it only if your protocol calls for the participant to see their position in the sequence
Practice enabledpractice_enabledbooleantrueRun a practice phase (with feedback) before the scored trials

Keyboard Shortcuts

Researchers can customize the keyboard bindings used during the task:

ParameterKeyTypeDefaultDescription
Show keyboard hintvss_show_keyboard_hintbooleantrueDisplay an on-screen hint showing the configured keys
Yes keyvss_key_yeskeyyKey for the "yes" (target present) response
Yes action labelvss_yes_action_labeltextYesLabel shown in the keyboard hint
No keyvss_key_nokeynKey for the "no" (target absent) response
No action labelvss_no_action_labeltextNoLabel shown in the keyboard hint

Instructions

Rich-text instruction panels: main instructions (main_instructions), hint instructions (hint_instructions), and -- when practice is enabled -- practice instructions (practice_instructions) and pre-main trials instructions (trials_instructions).

Trials

Trials are defined in a spreadsheet (a separate practice-trials sheet appears when practice is enabled). Each row has the columns: Target Symbols, Search Symbols, Contains Target (checkbox), Block, Difficulty, Fixation (ms), and Stimulus (ms). Target and search symbols are entered as comma-separated values. Fixation (ms) defaults to 500 and Stimulus (ms) defaults to 5000 (a value of 0 makes the trial self-paced with no time limit).

Participant Flow

  1. The participant sees a target symbol at the top of the screen and a row of symbols below.
  2. The participant decides as quickly as possible whether the target symbol appears in the row.
  3. The participant presses y for "Yes" or n for "No" (or clicks the corresponding buttons) to respond. (Default keys -- configurable by researcher.)
  4. The next trial appears immediately. Trials continue until all items are completed or the time limit expires.
  5. Accuracy and response time are recorded for each trial.

All keyboard bindings are configurable by the researcher in the study configuration. The keys listed above are the defaults.

Data Output

Markers

Trial-level markers are prefixed with the task slug (e.g. visual_symbol_search_trial_start; practice-phase markers use the practice_ infix, e.g. visual_symbol_search_practice_trial_start). During practice the trial index is carried as practice_trial_index instead of trial_index.

MarkerData fieldsDescription
..._trial_start / ..._practice_trial_starttrial_index (or practice_trial_index), is_practice, stimulus_id, target_symbols, search_symbols, contains_target, block, difficulty, fixation_ms, stimulus_msTrial onset
fixation_onsettrial_index/practice_trial_index, is_practice, fixation_msFixation cross shown (only when fixation duration > 0)
fixation_offsettrial_index/practice_trial_index, is_practiceFixation cross removed
stimulus_showntrial_index/practice_trial_index, is_practice, stimulus_id, target_symbols, search_symbols, contains_target, block, difficultySearch array displayed
feedback_shownpractice_trial_index, is_practice, response_correctPractice feedback shown (practice only)
response_recordedtrial_index/practice_trial_index, is_practiceParticipant response recorded

stimulus_id has the form visual_symbol_search_<taskIndex>_<trialNumber> (practice trials are prefixed practice_, e.g. practice_visual_symbol_search_0_1).

Response Data

Each response is recorded with these fields:

{
"trial_index": 1,
"stimulus_id": "visual_symbol_search_0_1",
"source": "keyboard",
"raw_key": "y",
"target_symbols": ["@", "#"],
"search_symbols": ["@", "#", "$", "%", "^", "&"],
"contains_target": true,
"response_value": true,
"response_correct": true,
"responded": true,
"is_practice": false,
"block": "main",
"difficulty": 2,
"latency_ms": 1250
}
  • source: one of keyboard, button, timeout, or moderator_advance.
  • response_value: true ("yes"), false ("no"), or null (no response).
  • response_correct: true/false, or null when no response was recorded.
  • Practice responses carry practice_trial_index instead of trial_index.

Summary Artifact

A JSON file (visual_symbol_search_summary_<taskIndex>.json) with signal detection metrics:

{
"task_kind": "visual_symbol_search",
"task_index": 0,
"overall": {
"total": 40,
"valid_responses": 38,
"correct": 34,
"accuracy": 0.89,
"mean_rt_ms": 1250,
"mean_correct_rt_ms": 1180,
"timeouts": 2,
"hits": 17,
"misses": 2,
"false_alarms": 2,
"correct_rejections": 17,
"sensitivity": 0.89,
"specificity": 0.89
},
"breakdowns": {
"block": { /* per-block stats, present only when blocks are defined */ },
"difficulty": { /* per-difficulty stats, present only when difficulty is defined */ }
},
"extras": {
"total_trials": 40
},
"trials": [ /* per-trial data */ ],
"practice": { /* same shape (overall, breakdowns, extras, trials), present only when practice ran */ }
}

The block / difficulty sub-objects under breakdowns are present only when the trials define those fields, and practice is present only when the practice phase produced responses.

Key metrics (computed per group via the overall/breakdown stats):

  • sensitivity: Hits / total target-present trials -- ability to detect present targets
  • specificity: Correct Rejections / total target-absent trials -- ability to reject absent targets
  • hits: Target present + correct "Yes" response
  • false_alarms: Target absent + "Yes" response

Design Recommendations

  • Array Size: Set the number of symbols per trial via the Search Symbols column. Around 5 symbols is standard for adult populations; reduce to 3-4 for children or clinical populations.
  • Per-trial Time Limit: Use the Stimulus (ms) column to cap each trial (with Time based enabled). Ensure the limit is long enough for most participants to respond, or set it to 0 for self-paced trials.
  • Trial Count: Each spreadsheet row is one trial; 40 items is typical for research, and 60 items provides more reliable estimates.
  • Target Probability: Balance the Contains Target column across trials. A 50% present/absent split is standard; skewing it can change task difficulty.
  • Practice Trials: Enable practice (with feedback) so participants understand the task before the scored trials begin.
  • Symbol Sets: Use abstract symbols to minimize cultural or linguistic bias.

Common Issues and Solutions

IssueSolution
Participants respond too slowlyEmphasize speed in instructions; ensure practice trials are completed
Accuracy is very lowUse fewer search symbols per trial; add more practice trials; check that symbols are visually distinct
Trials time out before participants respondIncrease the per-trial Stimulus (ms), or disable Time based for self-paced trials
Floor or ceiling effectsAdjust the number of search symbols or trials to match your population

References

  • Wechsler, D. (1997). WAIS-III: Wechsler Adult Intelligence Scale (3rd ed.). The Psychological Corporation.
  • Salthouse, T. A. (1996). The processing-speed theory of adult age differences in cognition. Psychological Review, 103(3), 403-428.

See Also