質問紙調査として,Likert尺度に答えてもらう質問を作成します。jspsychでは,survey-likertプラグインを用いて実装できます。同じようなものに,multi-choiceプラグインもあります。この2つの違いとして,survey-likertは選択肢が水平方向に同一軸上に並び,選択肢間が(線で)繋がっていますが,multi-choiceは選択肢間は線で繋がっておらず,選択肢の配置は水平方向でも垂直方向でも可能です。同一軸上の高低を測定したいなどでLikert尺度を使う必要がある場合はsurvey-likert,特にこだわらない場合(一般的な質問紙)は,multi-choiceを使うとよいかと思います。
まず,選択肢を作成します。ワーディングはいくつかのバリエーションがありますが,典型的には「あてはらない」〜「よくあてはまる」といった5件法が用いられます(選択肢を増やしたバージョンもあります)。
//選択肢を作成
const responseValues = [
'あてはまらない',
'あまりあてはまらない',
'どちらとも言えない',
'ややあてはまる',
'あてはまる'
]
選択肢が数字だけの場合は,forループと使うと短いコードで済みます。
const responseValues = [];
for (i = 0; i < 5; i++)
{
responseValues[i] = String(i + 1);
};
こっちのコードでもOK。
const responseValues = [];
for (i = 0; i < 5; i++)
{
responseValues.psuh(String(i + 1));
};
上記コードの出力結果は以下のようになります。
//出力
responseValues = [
"1",
"2",
"3",
"4",
"5"
]
先ほど作成した選択肢と組み合わせて質問項目を作成します。typeにはsurvey-likertを使います。プラグインとしてjspsych-survey-likert.jsを読み込んでいてください。questions内のpromptに質問項目,labelsに選択肢を入力してください。この試行をtimelineに加えれば質問項目の完成です。
なお,文字ではなく,画像を選択肢にしたい場合は,typeにimage-button-responseを使い,choicesに画像を指定してください。
const askCatLiking = {
type: 'survey-likert',
questions: [{
prompt: 'わたしは猫が好きだ',
labels: responseValues
}]
};
基本構成のhtmlにこれまでのコードを記述し,最後にtimeline.push(askCatLiking)を行うと以下のようなhtmlになります。一度,保存して開いてみてください。
試してみていただくとわかりますが,デフォルト設定では,次へのボタンが英語(continue)になっています。そこでこのラベルを日本語に変更します。加えて,選択肢の幅も調整してみます。ラベルの変更はbutton_label,選択肢の幅はscale_widthで設定します(単位はpxです)。
const askCatLiking = {
type: 'survey-likert',
questions: [{
prompt: 'わたしは猫が好きだ',
labels: responseValues
}],
button_label: '次へ',
scale_width: 600
};