基本の実験として作成した単語の自由再生課題では,自由再生は紙に行ってもらう設定でした。しかし,紙に書いてもらう場合は対面実験でしか実験ができません。そこで,この課題を発展させ,自由再生をキーワード入力で行ってもらう課題を実装します。
キーボード入力はテキストフォームを用意して,そこに回答をキーボードで入力してもらう形式では,多くの場合にIMEの推測変換によって思い出していなくても回答できてしまうという問題が生じます。そこで,推測変換無効でひらがなでキーワード入力で行う実験を作成する必要がでてきます。推測変換をjavaScriptで無効化することは困難だったため,この問題についての対策はこれまでありませんでした。しかし,今回,この対策としてjsPsych用のプラグイン(jspsych-htmll-keyboard-japaneseTextInput.js)を作成したので,このプラグインを用いて自由再生課題を作成します。テクニカルな点がいくつかあるので,応用課題としています。
基本のベースは単語自由再生1と同様ですので,単語自由再生1のコードを改変することとします。記憶実験1(単語自由再生1)★ のmain.jsのコードは以下です。
このコードのうち,テスト段階を修正していきます。まず,ひらがな入力のためのjsPsychプラグインが必要です。以下から,jspsych-html-keyboard-japaneseTextInput.jsとjspsych_mk.cssを入手してください。
mklab-japan/japaneseTextInputForJsPsych
次に,jspsych-html-keyboard-japaneseTextInput.jsの動作に必要なWanaKana.jsを以下から入手してください。ページのDownloadを右クリックして保存します。ファイル名はwakana.min.jsです。
ダウンロードした3つのファイルを実験のフォルダに入れてください。これで準備完了です。実験に必要なjavascriptとcssを読み込むため,index.htmlを以下のように作成してください(もしくは修正してください)。なお,後ででてくるjspsych-call-function.jsも読み込んでおいてください。
wanakana.min.jsはjspsych-html-keyboard-japaneseTextInput.jsよりも先に読み込む必要があるので注意してください。
続いて,main.jsを修正していきます。テスト段階の部分を削除します。以下の部分です。
//自由再生開始
const startFreeRecall = {
type: 'html-keyboard-response',
stimulus: '<p>先ほど覚えた単語を思い出し,回答用紙に記入してください。</p>'+
'<p>60秒が経過したら,この画面が切り替わります。回答をやめてください。</p>',
trial_duration: 60 * 1000,
choices: jsPsych.NO_KEYS
};
const stopFreeRecall = {
type: 'html-keyboard-response',
stimulus: '<p style = "color: tomato; font-size:4vh;">回答をやめてください。</p>',
trial_duration: 5 * 1000,
choices: jsPsych.NO_KEYS
};
//テスト段階を構成
const testPhase = {
timeline: [startFreeRecall, stopFreeRecall]
};
そして,ここにひらがな入力を行う試行を作成します。jspsych-html-keyboard-japaneseTextInput.jsを用います。
const testTrial = {
type: 'html-keyboard-japaneseTextInput',
inputType: 'hiragana',
stimulus: '',
prompt: '<p>先ほど覚えた単語を思い出し,キーボードで入力してください。</p>'+
'<p>入力後,Enterを押すと新しい入力欄が表示されます。</p>',
enter_ends_trial: true,
post_trial_gap: 400
}
これで,ひらがなを入力し,Enterを押すと終了する試行ができました。なお,jspsych-html-keyboard-japaneseTextInput.jsは以下のような設定が可能です。例えば,ひらがなではなく,カタカナのキーボード入力を受けつけたい場合はinputSystem = 'katakana'
としてください。
<aside> 💡 - stimulus : 画面中央に出す文字列(html)
</aside>