「ほんとうの、親指シフトエミュレータ」が、ついに登場。

(関連:http://www.kokoroweb.org/guide/guide_7.html)
(過去:あと何兆年待てば、「NICOLA配列規格書」の「規格要件」を真面目に満たした、NICOLA(親指シフト)エミュレータが出るのかしら……。 - 雑記/えもじならべあそび)
(過去:NICOLA(親指シフト)は、「シフト残り」を防ぐために、「同期非連続シフト」を採用した……って、「シフト残り」は和英共用できるロジックでも防げるってばorz。 - 雑記/えもじならべあそび)
(過去:「アクセシビリティ適応性を付加した」連続シフト系配列用の共用ロジックである「タイムシフト+プレフィックスシフト」を用いて、「アクセシビリティ対応のかえでライティあすか」を表現してみるテスト。 - 雑記/えもじならべあそび)
(過去:今日の「仮名漢字変換システム用同時打けん型入力法 X 9xxx-200x」は【一本指でも親指シフト!】。 - 雑記/えもじならべあそび)


 緩慢な打鍵操作の究極形は、「1本指打鍵」だよね……って話。
 NICOLA配列規格書 | NICOLA 日本語入力コンソーシアムで掲げられてたこの話、もともと「繭姫/姫踊子草」でも、定義を書けば出来ていた……ってのは、何度か書いてきたと思うけれど。
 ……ついに、NICOLA配列規格書 | NICOLA 日本語入力コンソーシアム意図をきちんとサポートする「1本指でも親指シフト!を使えるエミュレータ」が登場しました!

 ここまで「何気ないほど自然な」形*1になっていると、思わずこれが「親指シフトエミュレータの、あるべき姿」だよなぁ……と思ってしまうところで。
 こうなってるからこそ、「1本指でどーにかする」とか「フットスイッチ先行で行く」とか、いろいろな手が広がるんだし。
 #ちなみに、この設定のままで「全ての親指シフト系配列」が使えます(NICOLAの同期非連続シフトロジックに「想定外の依存」さえしていなければ、ですが……)。


 この「やまぶき」の実装を見てから、以下の「NICOLA配列規格書 | NICOLA 日本語入力コンソーシアム」を見て欲しい……NICOLAの規格書では、けっして「思いつき」とかで書いたわけじゃない!ってゆーのが、掴みやすく書かれていると思う。

3.規格の要件
 制定にあたっては欧米の歴史に学び、また、日本語の特性も考慮して、以下の6つの要件を満たすことを目標とした。


(1)効率的な入力のタッチ打法が容易であること
 現在の4段型キーボードにおいて、効率的な入力を目指すならば、文字キーは指の移動量の少ない範囲にまとめるべきである。NICOLA配列では日本語の入力を英文タッチ打法と同様に文字キーを3段に配置して入力操作を容易ならしめた。


(2)自然な日本語入力ができること
 自然な日本語入力とは、一つの文字で表記される音が一回の打鍵操作で入力できることである。ひとつのかな文字には濁音や半濁音も含まれる。
 日本語の文章に常用される記号類で、特に使用頻度の高いものや、その呼称が一般的に確立されていないために仮名漢字変換での発生に適していないもの、及び数字を配置する場所としてタッチ打法の範囲外である鍵盤の最上段(4段目)を開放できること。


(3)身体的な負担が少ないこと
 キーボードを日常的に操作する場合、その身体的な負担は軽い方が望ましいだけではなく、一般に力の入りにくい小指の多用は避けるべきである。


(4)アクセシビリティに配慮していること
 日本語入力鍵盤は全ての国民に利用され得るものでなければならず、従ってアクセシビリティに配慮した使用の製品実現を許容する規格でなければならない。


(5)国際規格と矛盾しないこと
 現代の日本語の文章には欧米の文字や記号が部分的にせよ含まれているので、日本語入力の鍵盤といえども欧文入力にも利用できなければならない。
 そのためにはキーの全体的な配置と個数が国際規格の欧文配列をあるがままに受けいれる適合性を備えている必要がある。


(6)実績に裏付けられていること
 日本語入力鍵盤は人々が生涯を通じて日常的に使用するものであることを考えるなら、その規格化に当たっては理論的・実験的裏付けのみならず工業製品としての長期にわたる大規模な実用実績等にも考慮して妥当性を検証すべきである。


(from NICOLA配列規格書 | NICOLA 日本語入力コンソーシアム )

9.同時打鍵操作のアクセシビリティ対応
同時打鍵は親指キーと文字キーの同時操作が必要となるため、両手の動作に困難を伴う利用者の使用に対して考慮しておく必要がある。
9.1 緩慢な打鍵操作について
同時打鍵は2つのキーを押す時間差を規定しているため、素早いキー操作に困難を伴う利用者にとっては使いにくいものになってしまう恐れがある。
9.1.1 緩慢な打鍵操作に対する対応
親指キーを先に押し、後から文字キーを打鍵する操作(英文入力におけるシフト操作と同じ)も同時打鍵と認める方法。


→ 別紙「親指キー併用形鍵盤の制御マトリクス」において、
  親指キー押下状態におけるタイムアウト処理を無くす。


利点:受信側のソフトウェアの変更は不要。
欠点:親指キーの単独押下はキーを離すまで確定しない。


親指キーの単独打鍵を使う必要の無い、変換/無変換キーを独立して持つシステムならば、ごきインプリメントを行っても実害はなく、実際に多くの機種で採用されている。


9.2 一本指操作について
一回の動作で1つのキーしか打鍵出来ないような場合、2つのキーを同時に操作する同時打鍵入力を行うことができない。
9.2.1 一本指操作に対する対応
親指キー単独打鍵の後、文字キーを押した場合も同時打鍵と認める方法。


→ “親指キー単独打鍵コード+文字キーONコード”を受信した場合にも
  同時打鍵と認めるように本体側のソフトウェアで対応する。


利点:キーボード側の変更は不要。
欠点:受信側のソフトウェアの変更が必要。


親指キーの単独打鍵を使う必要の無い、変換/無変換キーを独立して持つシステムならば、受信側のキーコード解析プログラムを変更することで対応できる。

親指キー単独打鍵を変換/無変換キーとして用いるシステムの場合は、2回連続して親指キーを打鍵した場合に、変換/無変換動作を行うようにするなど上位レベルのソフトウェア対応が必要である。 *2


(from NICOLA配列規格書 | NICOLA 日本語入力コンソーシアム 、文末注記のみ、相沢かえでによるメモ。)

*1:「シンプルさと多機能の両立」という難題を、いかにもyamaさんらしいセンスで解決してるところがナイスだと思う。

*2:これについては、数日間延々とテストしてみた……のだけど、「モード表示のない状態で、モーダルな動きをするもの」というのは、やはり使いにくすぎる気がする……というか、度々混乱させられた。ゆえに、「2回連打で単独打鍵と見なす」とか、そういう仕掛けは使わないほうがよいと思う。「やまぶき」の動きは、こういった紛らわしさのある「2回目でoff、2回目で単独打鍵、2回目でキャンセル」とかいう挙動をせず、「2回目の単独打鍵は無視して、前置シフト状態を維持」するように設定されているので、モードがらみで混乱することはないと思う。