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
- Neuropsychological Assessment: Standard measure of processing speed
- Educational Psychology: Identify learning disabilities and processing deficits
- Aging Research: Sensitive to age-related cognitive slowing
- Clinical Screening: Assess attention and processing in ADHD, brain injury
- Research on Cognitive Efficiency: Correlate with other cognitive abilities
Where to Configure
Study Form → Tasks → Visual Symbol Search → Configure.
Configuration Parameters
Display Options
| Parameter | Key | Type | Default | Range | Description |
|---|---|---|---|---|---|
| Symbol size | symbol_size_px | number | 60 | 20-200 | Symbol container size in pixels |
| Target font size | target_font_size_px | number | 48 | 8-200 | Font size of the target symbols in pixels |
| Search font size | search_font_size_px | number | 48 | 8-200 | Font size of the search-group symbols in pixels |
| Background color | background_color_hex | hex string | #FFFFFF | — | Background color of the task screen |
| Symbol color | symbol_color_hex | hex string | #000000 | — | Color of the search-group symbols |
| Target color | target_color_hex | hex string | #000080 | — | Color of the target symbols |
| Time based | time_based | boolean | true | — | When enabled, each trial auto-advances at its stimulus_ms time limit; when disabled, trials are self-paced |
| Show progress | show_progress | boolean | false | — | Show 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 enabled | practice_enabled | boolean | true | — | Run a practice phase (with feedback) before the scored trials |
Keyboard Shortcuts
Researchers can customize the keyboard bindings used during the task:
| Parameter | Key | Type | Default | Description |
|---|---|---|---|---|
| Show keyboard hint | vss_show_keyboard_hint | boolean | true | Display an on-screen hint showing the configured keys |
| Yes key | vss_key_yes | key | y | Key for the "yes" (target present) response |
| Yes action label | vss_yes_action_label | text | Yes | Label shown in the keyboard hint |
| No key | vss_key_no | key | n | Key for the "no" (target absent) response |
| No action label | vss_no_action_label | text | No | Label 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
- The participant sees a target symbol at the top of the screen and a row of symbols below.
- The participant decides as quickly as possible whether the target symbol appears in the row.
- The participant presses y for "Yes" or n for "No" (or clicks the corresponding buttons) to respond. (Default keys -- configurable by researcher.)
- The next trial appears immediately. Trials continue until all items are completed or the time limit expires.
- 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.
| Marker | Data fields | Description |
|---|---|---|
..._trial_start / ..._practice_trial_start | trial_index (or practice_trial_index), is_practice, stimulus_id, target_symbols, search_symbols, contains_target, block, difficulty, fixation_ms, stimulus_ms | Trial onset |
fixation_onset | trial_index/practice_trial_index, is_practice, fixation_ms | Fixation cross shown (only when fixation duration > 0) |
fixation_offset | trial_index/practice_trial_index, is_practice | Fixation cross removed |
stimulus_shown | trial_index/practice_trial_index, is_practice, stimulus_id, target_symbols, search_symbols, contains_target, block, difficulty | Search array displayed |
feedback_shown | practice_trial_index, is_practice, response_correct | Practice feedback shown (practice only) |
response_recorded | trial_index/practice_trial_index, is_practice | Participant 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 ofkeyboard,button,timeout, ormoderator_advance.response_value:true("yes"),false("no"), ornull(no response).response_correct:true/false, ornullwhen no response was recorded.- Practice responses carry
practice_trial_indexinstead oftrial_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 targetsspecificity: Correct Rejections / total target-absent trials -- ability to reject absent targetshits: Target present + correct "Yes" responsefalse_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
| Issue | Solution |
|---|---|
| Participants respond too slowly | Emphasize speed in instructions; ensure practice trials are completed |
| Accuracy is very low | Use fewer search symbols per trial; add more practice trials; check that symbols are visually distinct |
| Trials time out before participants respond | Increase the per-trial Stimulus (ms), or disable Time based for self-paced trials |
| Floor or ceiling effects | Adjust 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
- Visual Search - Attention-based search task
- Visual Lexical Decision - Word recognition speed