同時打鍵とは
一回の動作で、文字キーと親指キーとの二つを順不同で、ピアノの和音のように、同時性を意図して打鍵すること。1
同時打鍵を認識できれば、単独打鍵、右親指キーとの同時打鍵、左親指キーとの同時打鍵、の3つの入力に対して異なる文字を割り当てることで、すべてのひらがなを1ストロークで入力することが可能になる。
同時打鍵の入力方法
同時打鍵はキー押下の時間差のみに注目する。すなわち、同時打鍵は、
- 親指キーを押し、一定時間内に文字キーを押す。
- 文字キーを押し、一定時間内に親指キーを押す。
のいずれかであると言い換えることができる。このとき、キー押下の時間差の最大許容時間を同時打鍵判定時間と呼ぶ。同時打鍵判定時間は50~200msが妥当とされる。
同時打鍵の検出
単独打鍵処理
同時打鍵ではない、単独打鍵と認識されるのは、
- 文字キーを押し、タイムアウトを迎える。
- 文字キーを押し、その文字キーを離す。
- 文字キーを押し、他の文字キーを押す。
の3パターンが考えられる。
2キー同時打鍵処理
キー入力が2つの場合、同時打鍵と認識されるのは、
- 親指キーを押し、判定時間内に文字キーを押す。
- 文字キーを押し、判定時間内に親指キーを押す。
の2パターンが考えられる。
3キー同時打鍵処理
キー入力が3つの場合、文字キー、親指キー、文字キーの順番で押され、両方の文字キーが親指キーと判定時間内である場合、親指キーが前の文字キーと後の文字キーのどちらの文字キーと同時打鍵したかを判断しなければならない。
規格では、
基本的には、押下時刻が、より親指キーに近い文字キーとの間に同時打鍵が成立すると判断する。2
としている。ちなみに、親指キーが前の文字キーと同時打鍵した場合、後の文字キーはその親指キーと同時打鍵していないが、次に来る親指キーと同時打鍵する可能性がある。
同時打鍵と逐次打鍵の識別
逐次打鍵とは
時間順序を意図して連続して打鍵するキー操作3
である。逐次打鍵ではキー入力は独立して処理されるが、高速な逐次打鍵では、キーが離される前に次のキーが押されることがあり、同時打鍵であると誤判定されることが起こり得る。
これには、逐次打鍵判定に遊びを設けることで対処する。すなわち、キー押下がオーバーラップしない、もしくは少しだけオーバーラップする場合、逐次打鍵したと判定する。
規格では、前のキーが押してから離されるまでの間の半分より後に、後のキーが押される場合逐次打鍵として判定する、としている。加えて、前のキー押下時間が指定時間より短い場合、その時間によらず逐次打鍵として判定する手法が考えられるが、検討の余地が多く残されている、としている。
アクセシビリティ
規格では、
同時打鍵は2つのキーを押す時間差を規定しているため、素早いキー操作に困難を伴う利用者にとっては使いにくいものになってしまう恐れがある。4
として、親指キー押下状態ではタイムアウト処理を無くす事を提案している。
また、
一回の動作で1つのキーしか打鍵出来ないような場合、2つのキーを同時に操作する同時打鍵入力を行うことができない。5
として、親指キーをstickyとすることを提案している。