(57)【特許請求の範囲】
【請求項１】
表示部に表示されたソフトウェアキーボードによる文字入力を受け付ける情報処理装置であって、
前記ソフトウェアキーボードを用いて入力された文字に基づいて、前記文字によって構成される１以上の文字列の候補を特定する候補特定手段と、
前記表示部において、前記ソフトウェアキーボードを用いて入力中の文字列を移動させることで、該入力中の文字列と、前記候補特定手段によって特定された１以上の文字列の候補と、前記ソフトウェアキーボードとを、近接した位置に配置して表示させる表示制御手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記表示制御手段は、少なくとも前記候補特定手段によって特定された１以上の文字列の候補と、前記ソフトウェアキーボードと隣接させて表示させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示制御手段は、前記ソフトウェアキーボードを用いて文字が入力されたことに応じて、前記ソフトウェアキーボードを用いて入力中の文字列を含む行を含む領域を、前記候補特定手段によって特定された１以上の文字列の候補と、前記ソフトウェアキーボードのいずれかに隣接するまでスクロールさせることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記表示制御手段は、前記表示部の画面の端から、前記ソフトウェアキーボード、前記候補特定手段によって特定された１以上の文字列の候補、前記ソフトウェアキーボードを用いて入力中の文字列を含む行を含む領域の順に隣接した画像を表示させる
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記表示制御手段は、前記ソフトウェアキーボードを用いて入力中の文字列を含む行を含む領域の一部に、前記領域に表示される文字列をスクロールさせるためのタッチ操作に関連する表示アイテムを表示させ、前記表示アイテムに対するタッチ操作を受け付けたことに応じて、前記領域に表示される文字列をスクロールさせる
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記表示制御手段は、前記ソフトウェアキーボードを用いて入力中の文字列を含む行を含む領域を移動させるためのタッチ操作に関連する表示アイテムを表示させ、前記表示アイテムに対するタッチ操作を受け付けたことに応じて、前記領域を移動させることで、前記領域に表示される文字列を変更する
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
前記表示制御手段は、位置が固定された所定の入力欄に、前記ソフトウェアキーボードを用いて文字が入力される場合は、
前記入力欄の複製と、前記候補特定手段によって特定された１以上の文字列の候補と、前記ソフトウェアキーボードとを、前記表示部において近接した位置に配置して表示させことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記表示制御手段は、少なくとも前記候補特定手段によって特定された１以上の文字列の候補と、前記ソフトウェアキーボードと隣接させて表示させることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記表示制御手段は、前記ソフトウェアキーボードを用いて文字が入力されたことに応じて、前記入力欄の複製を、前記候補特定手段によって特定された１以上の文字列の候補と、前記ソフトウェアキーボードに近接した位置に表示させることを特徴とする請求項７又は８に記載の情報処理装置。
【請求項１０】
前記表示制御手段は、前記表示部の画面の端から、前記ソフトウェアキーボード、前記候補特定手段によって特定された１以上の文字列の候補、前記入力欄の複製の順に隣接した画像を表示させる
ことを特徴とする請求項７乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記表示部は、タッチセンサを含んで構成されたタッチパネルディスプレイであって、
前記ソフトウェアキーボードに対するタッチ操作に基づいて、入力された文字を特定し、前記候補特定手段によって特定された１以上の文字列の候補に対するタッチ操作に基づいて、前記入力された文字によって構成される１の文字列を特定する操作特定手段を更に備えることを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
表示部に表示されたソフトウェアキーボードによる文字入力を受け付ける情報処理装置の制御方法であって、
候補特定手段により、前記ソフトウェアキーボードを用いて入力された文字に基づいて、前記文字によって構成される１以上の文字列の候補を特定する候補特定工程と、
表示制御手段により、前記表示部において、前記ソフトウェアキーボードを用いて入力中の文字列を移動させることで、該入力中の文字列と、前記候補特定工程において特定された１以上の文字列の候補と、前記ソフトウェアキーボードとを、近接した位置に配置して表示させる表示制御工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１３】
コンピュータに読み込ませ実行させることによって、前記コンピュータに、請求項１２に記載された情報処理装置の制御方法を実行させるプログラム。
【請求項１４】
請求項１３に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアキーボードによって文字入力を行う技術に関する。
【背景技術】
【０００２】
スマートフォンやタブレットなどのモバイル端末では、タッチパネルディスプレイ上の一部にソフトウェアキーボードを表示し、そのソフトウェアキーボードに対するタッチを検出することによって文字入力を実現している。その際、文字入力を支援する方法の１つとして、ソフトウェアキーボードに隣接して変換候補を表示する方法が提案されている。
【０００３】
特許文献１では、ソフトウェアキーボード、文字を入力するための入力エリア、前記ソフトウェアキーボード上でフォーカスされているキーを含むフォーカスエリアを横方向の１直線上に配置した表示方法を提案している。そして、遠隔操作による方向指示によってフォーカスエリア内のキーを変更することで入力する文字を選択させるので、文字入力操作中に必要とされるユーザの視線の移動を低減させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−４８４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、横に並べやすいように各要素が縦長のデザインとなる。そのため、遠隔操作ではなく、画面を直接タッチして操作するスマートフォンやタブレットなどに適用した場合、画面内での上下の大きな視線移動を誘発する可能性がある。
本発明は上記課題を鑑みたものであり、ソフトウェアキーボードを用いた文字入力において、予測変換された文字列を提示する入力支援機能の操作性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、表示部に表示されたソフトウェアキーボードによる文字入力を受け付ける情報処理装置であって、前記ソフトウェアキーボードを用いて入力された文字に基づいて、前記文字によって構成される１以上の文字列の候補を特定する候補特定手段と、前記表示部において、前記ソフトウェアキーボードを用いて入力中の文字列を移動させることで、該入力中の文字列と、前記候補特定手段によって特定された１以上の文字列の候補と、前記ソフトウェアキーボードとを、近接した位置に配置して表示させる表示制御手段とを備える。
【発明の効果】
【０００７】
本発明によれば、ソフトウェアキーボードを用いた文字入力において、予測変換された文字列を提示する入力支援機能の操作性が向上する。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置の使用例と表示されるスクリーン画像の例
【図２】情報処理装置のハードウェア構成、及び機能構成を示すブロック図
【図３】本件の文字入力支援方法を示す図
【図４】第１の実施形態で実行される文字入力支援処理を示すフローチャート
【図５】第１の実施形態で実行される予測変換処理を示すフローチャート
【図６】変形例１で実行される文字入力支援処理を示すフローチャート
【図７】情報処理装置が表示するスクリーン画像の例を示す図
【図８】情報処理装置が表示するスクリーン画像の例を示す図
【図９】第２の実施形態で実行される文字入力支援処理を示すフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、以下で説明する実施形態は、本発明を実施した場合の一例を示すものであり、これに限るものではない。
【００１０】
＜第１の実施形態＞
第１の実施形態として、スマートフォン・タブレット端末において複数行の文字列を入力可能な場面での文字入力支援方法の例に挙げて説明する。複数行の文字列を入力可能な場面としては、例えばアプリケーションでメモやメールの文章を作成する場合などである。図１は、本実施形態で説明する情報処理装置１００の使用例と表示されるスクリーン画像の例を示している。本実施形態の情報処理装置１００は、タッチパネルディスプレイ１１０と不図示のハードウェアボタンを備えている。情報処理装置１００に対するユーザ操作は、タッチパネルディスプレイ１１０とユーザが操作する指示部との接触を検出することによって行われる。つまり、ユーザはタッチパネルディスプレイ上に表示されるメニューやボタン、ソフトウェアキーボードをユーザがタッチすることによって文字入力や各種操作を行う（タッチ操作）。また、本実施形態でユーザがタッチ操作に利用する指示部の一例としては、ユーザ自身の手指１０２を挙げて説明する。しかし、スタイラスなどユーザの身体意外を利用したタッチ検出システムに対しても、本実施形態は適用可能である。
【００１１】
図１の画像１０１は、情報処理装置１００のタッチパネルディスプレイ１１０上に表示されるスクリーン画像の一例である。本実施形態では複数行の文字列を入力する場合について説明するため、画像１０１には、複数行の文字入力が可能な入力エリア１０３とＱＷＥＲＴＹ型のソフトウェアキーボード１０４が所定の位置に表示されている。また、画像１０１には情報処理装置１００が有する予測変換機能によって予測される変換候補を表示するための変換候補表示エリア１０５も表示されている。さらに画像１０１には、画像１０１上で現在の入力位置を指し示すカーソル１０７と、入力エリア１０３内で入力された文字を表示する行を示すカーソル行１０６が表示されている。カーソル行１０６とは、その時点で編集対象として注目している文字列を含む行（またはその行自体を含む領域）であって、入力中の文字列１０６はカーソル行に表示される。入力中の文字列とは、最後に入力され、まだ表記が確定されていない文字（変換の必要の有無、及び変換結果が特定されていない状態の文字）を含む文字列である。本実施形態では、文字入力を行っている間は、カーソル行１０６はカーソル１０７を含んでいる。後述するが、文字を入力する位置（編集対象の位置）が確定されていない、あるいは、文字を入力する以外の編集（入力済みの文字の選択など）が行われているという場合は、カーソル行１０６がカーソル１０７を含まない場合もある。
【００１２】
なお、本実施例では見た目で分かり易いようにカーソル行１０６をハイライト表示したが、ハイライトしなくても構わない。また本実施形態の全ての例において、ＱＷＥＲＴＹ型のソフトウェアキーボード１０４を表示して利用する場合について説明するが、その他への適用も可能である。例えば、本件の文字入力支援方法は、図１の１０４’で示すような日本語入力に特化したソフトウェアキーボード、もしくはタッチ操作での入力が可能なその他ソフトウェアキーボードにも適用可能である。
【００１３】
本実施形態では、情報処理装置１００が生成したスクリーン画像１０１を描画するための信号がタッチパネルディスプレイ１１０に出力され、画面に表示された状態からユーザは手指１０２を用いてタッチ操作を行い、文字入力を開始する。以下、他図を用いて同じものを説明する場合には同一の符号を付し、その説明を省略する。
【００１４】
図２（Ａ）は、本実施形態における情報処理装置１００のハードウェア構成の一例を示すブロック図である。同図において、ＣＰＵ２００は、バス２０３を介して接続する各デバイスを統括的に制御する。オペレーティングシステム（ＯＳ）をはじめ、後述するフローチャートに示されるような本発明に係る各処理プログラム、デバイスドライバ等はＲＯＭ２０２に記憶されており、ＲＡＭ２０１に展開され、ＣＰＵ２００によって適宜実行される。ＲＡＭ２０１は、高速にアクセス可能なＣＰＵ２００の主メモリ、ワークエリア等の一時記憶領域として用いられる。ここでＯＳおよび各処理プログラム等はストレージ２０７に記憶されていてもよく、その場合は電源投入時に必要な情報がＲＡＭ２０１に適宜読み込まれる。また、ディスプレイＩ／Ｆ  ２０４は、情報処理装置１００で生成されるスクリーン画像をタッチパネルディスプレイ１１０が出力可能な信号に変換する。なお、本実施形態では、タッチパネルディスプレイ１１０は情報処理装置１００の一部として構成されているが、外部に接続された独立したデバイスであっても本実施形態を適用可能である。入力Ｉ／Ｆ  ２０５は、タッチセンサを備えたタッチパネルディスプレイ１１０が検出した該表示部への接触を情報処理装置１００が処理可能な情報に変換する。ストレージＩ／Ｆ  ２０６は、ストレージ２０７へのデータの入出力を行う。
【００１５】
本実施形態では、タッチパネルディスプレイ１１０は、スマートフォンやタブレットで一般的に用いられている静電容量方式のタッチセンサを想定している。ただし、抵抗膜方式、赤外線方式、超音波方式、音響波方式、振動検出方式等の各種タッチパネルが利用できる。他にも、距離画像センサや、ステレオカメラなどの三次元空間での位置を検出できるもので入力対象面に触れたかどうかを検出し、入力対象面上で定義される位置情報を取得してもよい。また、情報処理装置の表面に接触はしていないが、ある程度近接した状態（ホバー状態）でのユーザの指などの位置情報を検出できる検出手段を用いて得られたホバー状態での位置（ホバー位置）情報を、入力された位置として扱うことも可能である。
【００１６】
ストレージ２０７には、情報処理装置１００が生成、出力するコンテンツやＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の部品となる画像などが格納されているものとする。なお、本実施形態では特にユーザが過去に入力した文字列が入力履歴としてストレージ２０７に格納されていることを想定している。ストレージ２０７としては、ディスクデバイスやフラッシュメモリ、ネットワークドライブやＵＳＢドライブなどの大容量記憶装置を使用する。また、複数の記憶装置を並列に接続して構成されていてもよいし、クラウド上のストレージであっても構わない。
【００１７】
図２（Ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。情報処理装置１００は、位置取得部３００、操作特定部３０１、保持部３０２から構成される。さらに、情報処理装置１００は、データ取得部３０３、候補特定部３０４、表示制御部３０５から構成される。これらの各機能部は、ＣＰＵ２００が、ＲＯＭ２０２に格納されたプログラムをＲＡＭ２０１に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００１８】
位置取得部３００は、タッチパネルディスプレイ１１０から出力されたタッチ情報を入力として受け付け、そのタッチ情報に基づいてタッチパネルディスプレイ１１０上での座標を示す位置情報を取得する。タッチ情報には、位置情報に加えて、センサによって情報が検出された時刻、接触が検出されているかあるいはリリース（画面をタッチしていた手指などが離されること）されたかを示すタッチイベントが含まれる。本実施形態では、このうち少なくとも位置情報がＲＡＭ２０１に保持される。
【００１９】
操作特定部３０１は、ＲＡＭ２０１に保持されている位置情報を利用することによって情報処理装置１００への各種操作を特定する。本実施形態では、主にソフトウェアキーボードの『各キーの押下』、『文字入力』、および『カーソル位置の移動』の操作が行われたことを特定する。このうち『文字入力』は、必ず『各キーの押下』に伴って検出される操作である。各操作の具体的な特定処理は後述する。
【００２０】
保持部３０２は、ストレージ２０７により実現される。保持部３０２には、操作特定部３０１によって文字入力操作が行われたと特定された場合、それによって入力された入力文字と、入力文字によって構成された入力文字列が、ユーザの入力履歴として保持される。また、文字入力を支援するために利用する単語やフレーズが辞書として記録されている。保持部３０２に記録された入力履歴や辞書は、ユーザがソフトウェアキーボードのキーをタッチして文字を入力する度に、データ取得部３０３によって適宜読み出され、ＲＡＭ２０１に保持される。例えば、「Ｓ」という入力文字が入力された際に、それが「Ｓｈｉｍｏｍａｒｕｋｏ」という入力文字列を構成するために用いられた場合、「Ｓ」に対応付けて「Ｓｈｉｍｏｍａｒｕｋｏ」という単語が入力履歴として入力支援用に保持される。なお、日本語の入力の場合は、必ずしも入力文字列の表記の中に入力文字そのものが含まれるとは限らない。例えば、「し」という入力文字が「下丸子で」という漢字の文字列を構成するために用いられた場合、「し」の入力に対応付けて、「下丸子で」という「し」そのものは含まない文字列が、「し」によって構成される文字列の１つとして保持される。
【００２１】
候補特定部３０４は、操作特定部３０１によって特定された入力文字とＲＡＭ２０１に保持されているユーザの入力履歴および辞書からユーザがこれから入力するであろうとみなされる文字列の候補を特定する。特定した候補は、変換候補としてＲＡＭ２０１に保持される。または、さらにストレージ２０７に記憶して蓄積してもよい。
【００２２】
表示制御部３０５は、操作特定部３０１で特定された操作に応じて表示を制御する。例えば、操作特定部３０１で特定された操作が文字入力（ソフトウェアキーボードのキーの押下）であった場合は、押下されたキーに対応する文字をカーソル位置に表示する。さらに、前記キーの押下によって候補特定部３０４が特定した変換候補がＲＡＭ２０１に存在する場合は、変換候補を変換候補表示エリア１０５に表示する。
【００２３】
ここで、図３（Ａ）を用いて本件の最も基本となるアイディアについて説明する。図３（Ａ）に示すスクリーン画像１０１ａは、複数行の文字を入力する際の初期画面表示である。つまり、ソフトウェアキーボード１０４と変換候補表示エリア１０５、カーソル１０７を含むカーソル行１０６が隣接して表示されている。また、スクリーン画像１０１ｂは、ソフトウェアキーボードのキーの押下によって『Ｈｅｌｌｏ  Ｗｏｒｌｄ！』と入力した直後の表示例である。スクリーン画像１０１ｂの状態から、さらにソフトウェアキーボードのリターンキーを２回押下し、続けて『Ｓｍａｒｔ  Ｐｈｏｎｅ  ＆  Ｔａｂｌｅｔ』と入力した直後の表示はスクリーン画像１０１ｃとなる。図３のスクリーン画像１０１ａ、１０１ｂ、１０１ｃで示すように、本実施形態の情報処理装置では、カーソル行１０６は常に入力エリア１０３の最下部に存在し、入力した文字は上方向にスクロール表示される。つまり、カーソル１０７およびカーソル行１０６は移動しない。ここで、本実施形態では、リターンキーが押下された位置を明示するため、スクリーン画像１０１ｃにはリターンマーク１０８が含まれる。ただし、実際の装置の動作においては、リターンマークの表示は省略して構わない。
【００２４】
従来のスマートフォンやタブレット端末で、複数行の文字列が入力可能なアプリケーションを利用する場合、１行目が表示される位置は、入力エリア１０３の最上部となることが多い。その場合、文字を入力してリターンキーを押下する度にカーソル１０７を含むカーソル行１０６は、下方向に移動する。従来の文字入力では、特に最初の文字を入力する場合には、入力エリア１０３の最上部に表示されるカーソル１０７とスクリーン画像１０１の最下部に表示されるソフトウェアキーボード１０４、もしくは変換候補表示エリア１０５とが、離れた位置に表示される。この結果、ユーザには、文字を入力する度に視線を上下する必要が生じ、操作性の低下や疲労を感じる場合がある。画面のサイズが大きくなると、カーソル１０７、ソフトウェアキーボード１０４、または変換候補表示エリア１０５の間の距離がより大きくなる。その結果、必要とされる視線の移動距離がさらに大きくなる。
【００２５】
以下で説明する本実施形態の具体的な処理は、特に、視線の上下移動を低減することを目的としている。
【００２６】
図３（Ｂ）ならびに図４のフローチャートを用いて、本実施形態における情報処理装置１００の処理過程を詳細に説明する。図４は、本実施形態の情報処理装置１００が実行する文字入力支援処理の一例を示すフローチャートである。本実施形態では、メモの作成やメール文章の作成など、複数行のテキストを入力・編集するために情報処理装置１００が文字入力モードになると図４のフローチャートが開始される。
【００２７】
ステップＳ１００において表示制御部３０５は、タッチパネルディスプレイ１１０の表示部に文字を入力するための入力エリア１０３とソフトウェアキーボード１０４を表示する。ユーザは表示されたソフトウェアキーボード１０４をタッチ操作することによって、文字列の入力を開始する。
【００２８】
ステップＳ１０１において、位置取得部３００は、タッチパネルディスプレイ１１０から通知される信号に基づいて、表示部に対するユーザの手指１０２による接触が検出されたか否かの検出を行う。接触が検出されていないと判定される場合（ステップＳ１０１でＮＯ）は、ステップＳ１０１の処理を所定の周期で繰り返してタッチの入力を待つ。接触が検出されたと判定される場合（ステップＳ１０１でＹＥＳ）は、ステップＳ１０２に処理が進む。
【００２９】
ステップＳ１０２において、位置取得部３００は、タッチパネルディスプレイ１１０から通知された信号に基づいて、タッチパネルディスプレイ１１０の表示部上での位置座標を取得する。例えば、タッチパネルディスプレイ１１０の表示部の左上を原点として、右方向にｘ軸、下方向にｙ軸を設定した場合、位置取得部３００によってタッチ位置（ｘ、ｙ）を取得し、ＲＡＭ２０１に保持する。このとき、位置情報以外の検出時刻やタッチイベントなどのタッチ情報は、各タッチ位置に関連付けて保持しておく。
【００３０】
ステップＳ１０３において、操作特定部３０１は、ＲＡＭ２０１に保持されているタッチ位置の位置情報を利用して、タッチ位置が入力エリア１０３内に存在するか否かを判定する。タッチ位置が入力エリア１０３内に存在すると判定される場合（ステップＳ１０３でＹＥＳ）、ステップＳ１０４に処理が進む。
【００３１】
ステップＳ１０４では、操作特定部３０１は、入力された操作は『カーソルの移動操作』であると特定する。それに応じて表示制御部３０５は、入力エリア内のタッチ位置にカーソル１０７を移動する表示制御を行う。そして、ステップＳ１１３に処理が移行する。ステップＳ１１３の処理については後述する。
【００３２】
一方、ステップＳ１０３において、タッチ位置が入力エリア１０３内に存在しないと判定された場合（ステップＳ１０３でＮＯ）は、ステップＳ１０５に処理が進む。ステップＳ１０５において、操作特定部３０１は、タッチ位置がソフトウェアキーボード上の任意のキーの表示範囲内か否かを判定する。タッチ位置が任意のキーの表示範囲外である場合（ステップＳ１０５でＮＯ）は、操作特定部３０１は有効な操作は行われなかったと特定し、ステップＳ１０１の処理に戻る。タッチ位置が任意のキーの表示範囲内である場合（ステップＳ１０５でＹＥＳ）、ステップＳ１０６に進む。
【００３３】
ステップＳ１０６では、操作特定部３０１は、入力された操作は『文字入力』であると特定する。そして、操作特定部３０１はソフトウェアキーボードの押下されたキーを特定し、特定されたキーに対応する入力文字を示す情報をＲＡＭ２０１に保持する。またこの時、操作特定部３０１は入力が確定した入力文字をユーザの入力履歴として保持部３０２に記録する。
【００３４】
ステップＳ１０７では、表示制御部３０５が、最後に生成したスクリーン画像の情報に基づいて、ソフトウェアキーボード１０４とカーソル行１０６、ならびに変換候補表示エリア１０５の３つのエリアが既に近接して表示されているか判定する。前記３つのエリアが近接して表示されていると判定される場合（ステップＳ１０７でＹＥＳ）は、ステップＳ１０９の予測変換処理に処理が移行する。ステップＳ１０９の予測変換処理については後述する。前記３つのエリアが近接して表示されていないと判定される場合（ステップＳ１０７でＮＯ）は、ステップＳ１０８に処理が移行する。
【００３５】
ステップＳ１０８において、表示制御部３０５は、ソフトウェアキーボード１０４とカーソル行１０６、及び変換候補表示エリア１０５の３つが近接し合うよう配置されたスクリーン画像を生成し、タッチパネルディスプレイ１１０に出力する。すなわち、本実施形態では、ソフトウェアキーボード１０４を用いて文字が入力されたことに応じて、入力中の文字列を、変換候補表示エリア１０５と、ソフトウェアキーボード１０４に近づけて表示させる。本実施形態では、表示部の画面内の最下部にソフトウェキーボード１０４、それに接するように変換候補表示エリア１０５、さらにそれに接するようにカーソル行１０６が上下に並んで表示されるように配置する。つまり、画面の下端からソフトウェキーボード１０４、変換候補表示エリア１０５、カーソル行１０６の順に並んだ状態が表示される。本実施形態のステップＳ１０８において生成されるスクリーン画像は図３（Ｂ）を用いて詳細を後述する。ステップＳ１０８の処理が完了するとステップＳ１０９に処理が進む。
【００３６】
ここで、ステップＳ１０９において実行される本実施形態の予測変換処理を図５のフローチャートを参照して説明する。ステップＳ１０９の処理が開始されると、まずステップＳ２００の処理が開始される。ステップＳ２００において、候補特定部３０４はＲＡＭ２０１に保持されている入力文字に関連する入力履歴および辞書データを、データ取得部３０３を介して保持部３０２から取得する。このとき、入力文字に関連する入力履歴および辞書データは、直前までの文字入力に応じて蓄積されているか、あるいは、ストレージ２０７に記憶された情報から読み出されてＲＡＭ２０１に保持された状態にある。
【００３７】
ステップＳ２０１において、候補特定部３０４は、取得した入力履歴と辞書データを用いて、ユーザが入力する可能性が高いとみなされる文字列の１以上の候補を特定し、予測変換の結果として情報を取得する。取得された１以上の候補の文字列が、ユーザに提示される変換候補である。候補特定部３０４は、取得された１以上の変換候補をＲＡＭ２０１に保持する。ただし、入力された文字の使用頻度が低い場合や、変換候補が存在しない文字が入力された場合などは、ユーザが入力する可能性が高いとみなされる文字列の１以上の候補が特定されない場合もある。特定された候補が無い場合には、候補がないことを示す情報をＲＡＭ２０１に保持する。あるいは、予測変換処理を中断して図４のメインフローチャートに戻ってよい。
【００３８】
ステップＳ２０２において、表示制御部３０５は、ＲＡＭ２０１に保持されている変換候補を変換候補表示エリア１０５に表示する。具体的には、変換候補表示エリア１０５内に１以上の変換候補を並べて配置したスクリーン画像を生成し、タッチパネルディスプレイ１１０に出力する。変換候補がない場合には、変換候補表示エリア１０５を空の状態で表示する。なお、変換候補が多数存在する場合は、スクロール操作によって変換候補表示エリア１０５内の表示内容を変更可能としてもよい。
【００３９】
ステップＳ２０３において、位置取得部３００は、タッチパネルディスプレイ１１０から通知された信号に基づいて、一定時間の間に表示部への接触があったかを判定する。表示部への接触があったと判定した場合（ステップＳ２０３でＹＥＳ）、ステップＳ２０４において、位置取得部３００が、タッチパネルディスプレイ１１０の表示部上での位置座標を取得し、ＲＡＭ２０１に保持する。表示部への接触はないと判定された場合（ステップＳ２０３でＮＯ）、予測変換処理を終了してメイン処理に戻る。なおステップＳ２０３の処理は、ステップＳ２０２の処理後一定時間に限らず、変換候補が表示されて続けている間は、常に割り込み処理として実行されてもよい。
【００４０】
ステップＳ２０５において、操作特定部３０１は、ＲＡＭ２０１に保持されているタッチ位置の位置情報を利用して、タッチ位置が、変換候補表示エリア１０５の変換候補が表示された範囲に存在するか否かを判定する。タッチ位置が変換候補表示エリア１０５の変換候補が表示された範囲内に存在すると判定される場合（ステップＳ２０５でＹＥＳ）、ステップＳ２０６に処理が進む。タッチ位置が変換候補表示エリア１０５の変換候補が表示された範囲内に存在しないと判定される場合（ステップＳ２０５でＮＯ）、予測変換処理を終了する。
【００４１】
ステップＳ２０６では、表示制御部３０５が、タッチ位置に基づいて特定された変換候補の文字列をカーソルの位置に挿入するとともに、変換候補表示エリア１０５に表示されていたその他の変換候補をクリア（非表示）にするようスクリーン画像を更新する。同時に、予測変換処理においてＲＡＭ２０１に保持した情報のうち、タッチされた変換候補以外の情報はクリアする。ステップＳ２０６の処理が完了すると、予測変換処理Ｓ１０９は終了し、図４のフローチャートの処理に戻ってステップＳ１１０に進む。
【００４２】
ステップＳ１１０において、表示制御部３０５は、ＲＡＭ２０１に保持されている情報に基づいて、カーソル１０７の位置に入力された文字、あるいは文字列を挿入したスクリーン画像を生成し、出力する。ステップＳ１０９の予測変換処理において、特定の予測変換候補が選ばれていた場合は、選ばれた変換結果の文字列が表示される。特定の予測変換候補が選ばれていない場合は、入力された文字がそのまま表示される。そして、カーソル位置は、入力された文字あるいは文字列の後に移動する。
【００４３】
ステップＳ１１１において、操作特定部３０１は、それまでの操作に応じて入力され、カーソル行１０６に表示されている文字の数が、予め定められた１行分の最大文字数を超えたか否かの判定を行う。カーソル行に含まれる文字数が１行の最大文字数を超えていないと判定される場合（ステップＳ１１１でＮＯ）は、ステップＳ１１３に処理が移行する。カーソル行に含まれる文字数が１行の最大文字数を超えたと判定される場合（ステップＳ１１１でＹＥＳ）は、ステップＳ１１２に処理が移行する。
【００４４】
ステップＳ１１２において、表示制御部３０５は、１行の文字数が最大となる文字の直後を改行したスクリーン画像を生成し、出力する。この場合に行われる改行表示は、図３（Ｃ）で示す改行とは異なり、リターンキーを入力したことによる改行ではないので、リターンキーマーク１０８は表示されない。スクリーン画像の制約のためスクリーン画像上でただ単に改行されているに過ぎない。ステップＳ１１２の処理が完了すると、ステップ１１３に処理が進む。
【００４５】
ステップＳ１１３において、情報処理装置１００は文字入力を終了するか否か（入力モードを終了するか否か）の判断を行う。例えば、図３の各スクリーン画像に示すＤｏｎｅボタン１１１の押下を操作特定部３０１が検出することによって文字入力の終了を検知してもよいし、一定時間文字入力がなされない場合に自動で文字入力モードを終了しても構わない。文字入力を終了しないと判定される場合（ステップＳ１１３でＮＯ）は、ステップ１０１に処理が移行し、タッチが検出される度に、前述した処理を繰り返しながら、文字入力を繰り返す。一方、文字入力を終了したと判定される場合（ステップＳ１１３でＹＥＳ）は図４で示す全ての処理が終了し、情報処理装置１００は文字入力モードを終了する。
【００４６】
なお、上述した例では、図４のフローチャートの処理のうちステップＳ１０４では、タッチした位置にカーソル１０７を移動したが、その限りではない。例えば、タッチした箇所に文字・文字列が無い場合、タッチした箇所を含む行の先頭にカーソル１０７を移動しても構わない。また、タッチした箇所に文字・文字列は無いが、タッチした箇所を含む行に文字・文字列が存在する場合は、その文字・文字列の最後尾にカーソル１０７を移動してもよいし、文字・文字列の前（行の先頭）にカーソル１０７を移動しても構わない。
【００４７】
＜操作例＞
次に、図３（Ｂ）を参照して、第１の実施形態に係る情報処理装置１００の具体的な操作例を説明する。図３のスクリーン画像１０１ｄは、複数の文字列を入力している最中の画面であり、ちょうど『Ｓｏｆｔｗａｒｅ  Ｋｅ』まで入力が完了したことを示している。この時、変換候補表示エリア１０５には、候補特定部３０４が特定した変換候補『Ｋｅｙ』、『Ｋｅｙｂｏａｒｄ』、『Ｋｅｙｎｏｔｅ』が表示されている。例えば、ユーザが変換候補のうち『Ｋｅｙｂｏａｒｄ』を選択した（ステップＳ２０５でＹＥＳ）とすると、スクリーン画像１０１ｅで示すように、カーソル行１０６には『Ｓｏｆｔｗａｒｅ  Ｋｅｙｂｏａｒｄ』という文字列が入力される（ステップＳ２０６）。また、カーソル１０７の位置は、スクリーン画像１０１ｄでの１０７ｄの位置からスクリーン画像１０１ｅでの１０７ｅ１の位置へ移動する。
【００４８】
続いて、ユーザが既に入力した文字列『ＳｍａｒｔＰｈｏｎｅ  ＆  Ｔａｂｌｅｔ』を編集するために、入力エリア１０３の該当部分（Ｐｈｏｎｅと＆の間）をタッチしたとする（ステップＳ１０３でＹＥＳ）。この時、表示制御部３０５は、スクリーン画像１０１ｅでの、カーソル１０７ｅ２の位置にカーソルを移動する表示制御を行う（ステップＳ１０４）。但し、カーソル行１０６は移動しない。つまり本実施形態ではこの時、カーソル行１０６はカーソル１０７を含んでいない。
【００４９】
カーソルが、位置１０７ｅ２に表示されている状態で、さらにユーザが文字入力を行った場合に表示されるのが、スクリーン画像１０１ｆである。例えば、ユーザがソフトウェアキーボードのＵキーをタッチしたとすると、その瞬間に図４のステップＳ１０７の判断が行われる。この時、カーソル行１０６は変換候補表示エリア１０５ならびにソフトウェアキーボード１０４と離れて表示されている（ステップＳ１０７でＮＯ）。従って、処理は表示制御部３０５の処理により（ステップＳ１０８）、カーソル１０７を含む行がカーソル行１０６となるように入力エリア１０３全体が上下にスクロール表示される。スクリーン画像１０１ｆでは、スクリーン画像１０１ｅの状態でタッチされた位置１０７ｅ２を含む行が、カーソル行１０６に一致するように入力エリア１０３の内部に表示している文字列をスクロールされている。つまりカーソル行は再びカーソル１０７を含んだ状態となる。つまり、Ｕキーを入力したのをきっかけに、入力エリア内の文字列がスクロールした後にカーソル行に表示されている文字列は『ＳｍａｒｔＰｈｏｎｅ  Ｕ  ＆  Ｔａｂｌｅｔ』となる。またこの時、カーソル１０７の位置は１０７ｆとなる。
【００５０】
本実施形態では、ユーザが入力エリア１０３内をタッチしたタイミングではなく、文字入力のためにキーをタッチしたタイミングで入力エリア内の文字列をスクロールし、カーソル行１０６まで編集対象となるカーソル位置を移動させた。これは、入力エリア１０３をタッチした段階では、まだ、ユーザが文字入力を目的としているか否かを決定できないためである。例えばユーザは、文字入力を目的としておらず、入力済みの文字列を選択するためや、あるいは、文章全体を大きくスクロールして閲覧するために、入力エリア１０３をタッチしただけの可能性もある。従って、本実施形態では、文字を入力する意図が示された段階で、カーソル行を基準とするスクロールを実行することで、誤動作を低減しユーザの意図に沿った入力支援を行うことができる。
【００５１】
しかしながら、他のタイミングであっても構わない。例えば、スマートフォンのインカメラ（表示画面側に配置されたカメラ）によってユーザの視線の移動を常に検知し、ユーザの視線の移動が大きい場合だけ、前記隣接表示制御を行ってもよい。大きな視線移動を検知したタイミングで隣接表示制御をおこなうことができれば、ユーザとスクリーン画像の距離が大きい場合は視線の移動が相対的に小さくなるため、隣接表示制御を行わないとった機能も実現可能である。また、スクロールによりカーソルの位置を移動させた後で、文字の編集が行われない時間が一定時間以上続いた場合は、移動させたカーソル位置を基の位置に戻す処理を追加しても構わない。この場合、文字入力が再開されれば再度スクロールをするなど、上記処理を繰り返すような実施形態も実現可能である。
【００５２】
図３で例示したように、ソフトウェアキーボード１０４、変換候補表示エリア１０５、カーソル行１０６は隣接して表示することで、視線の上下移動を低減でき、操作性を低下することなく文字入力を継続できる。文字入力中のユーザは、最も頻繁にタッチするソフトウェアキーボード１０４を操作するために最適な位置に手を配置している可能性が高い。そこで、本実施形態では、入力支援のために表示され、ソフトウェアキーボード１０４のキーと同様にタッチの対象となる変換候補表示エリア１０５は、キーをタッチする手の位置からタッチしやすいように近くに表示される。これにより、入力中に手指を移動させる必要がある移動量も抑えることができ、操作性が向上する。入力エリア１０３には、カーソル行１０６の前後にも文章が続くため、ソフトウェアキーボード１０４、変換候補表示エリア１０５以外のできるだけ広い面積を割り当てた上でカーソル行１０６の位置を制御することで、効率的な入力支援が可能となる。従って、図３で例示したように、スクリーン画像下部からソフトウェアキーボード１０４、変換候補表示エリア１０５、カーソル行１０６の順番で隣接して表示した場合が最も視線の上下移動を低減できる。
【００５３】
ただし、本実施形態は、ソフトウェアキーボード１０４、変換候補表示エリア１０５、カーソル行１０６の順に隣接して（接するように）する形態に限られない。例えは、本実施形態で示すソフトウェアキーボード１０４と比較してソフトウェアキーボードのサイズが小さい（例えば１行程度のサイズである）場合は、ソフトウェアキーボード１０４と変換候補表示エリア１０５が逆の順番でも構わない。また、入力エリア１０３が１行である場合は、カーソル行１０６（入力エリア１０３）と変換候補表示エリア１０５もしくはソフトウェアキーボード１０４の順番を入れ替えることも可能である。このように、デバイスの設定や大きさに応じて、変換候補表示エリア１０５と、カーソル行１０６の順番を入れ替えても構わないし、これら３つが必ずしも接している必要はなく、視線の移動が少ない範囲で近接して（少し離れて）表示されていても構わない。なお、本実施形態では、カーソル行１０６が１行表示される場合について説明したが、カーソル行１０６が複数行表示されても構わない。例えば、画面サイズが大きい時、もしくは画面の向きが縦向きから横向きになった時に、カーソル行１０６を１行から２行に変更して表示しても構わない。
【００５４】
以上、説明したように、本実施形態では、文字入力操作を受け付ける場合に、ソフトウェアキーボード１０４と変換候補表示エリア１０５、カーソル行１０６を隣接して表示する。その結果、文字入力の際にユーザの視線の上下移動を低減できるため、操作性が向上するとともに、ユーザの疲労や認知負荷を低減できる。
【００５５】
＜第１の実施形態の変形例１＞
第１の実施形態の変形例では、第１の実施形態とは別の入力モードとして、カーソルを入力済みの文字列に合わせるためのＵＩ部品をさらに表示する例を説明する。変形例１では、このようなＵＩ部品を用いることで、入力済みの文字列を編集対象として指定する場合でも、視線や手指の大きな移動を必要としないため、例えば画面サイズが大きい場合でも、操作性が向上するとともに、ユーザの疲労や認知負荷を低減できる。
【００５６】
以下、変形例１について図面を参照して詳細に説明する。なお、第１の実施形態において説明した内容と共通するものについては同番号を付し、適宜説明を省略する。
【００５７】
また、変形例１にかかる情報処理装置１００のハードウェア構成、及び機能構成は第１の実施形態に準じる。ただし、変形例１ではカーソル行１０６の内容を上下にスクロール移動させるためのＵＩ部品が新規に表示される。図７のスクリーン画像１０１ｇでは、カーソル行１０６の先頭部分にハンドル１０９が表示されている。ハンドル１０９は、カーソル行１０６に設けられた「持ち手」のメタファであって、カーソル行１０６として表示された領域のうち、ハンドル１０９の上をタッチした状態のときはカーソル行を上下移動させることが可能になる。ハンドル１０９以外の部分をタッチした場合は、カーソル行１０６を移動させることはできない。変形例１の操作特定部３０１は、表示されたハンドル１０９をタッチされたことに応じて、入力された操作が『ハンドル操作』であると特定する。本実施形態においてハンドル操作とは、カーソル行を、内容をカーソル行の大きさを単位として１つ分（例えば１行分で）上下にスライド移動させる操作である。
【００５８】
変形例１における情報処理装置１００の処理過程を図６のフローチャートを参照して説明する。ただし、図４のフローチャートと同じ内容の処理ステップには同じ番号を付し、セル名を省略する。変形例１では、文字入力モードが開始されると、ステップＳ３００において、表示制御部３０５は、タッチパネルディスプレイ１１０の表示部に文字を入力するための入力エリア１０３とソフトウェアキーボード１０４に加えてハンドル１０９を表示する。
【００５９】
そして、ステップＳ１０３でタッチ位置が入力エリア内ではないと判定された場合、ステップＳ３００において、操作特定部３０１は、ＲＡＭ２０１に保持されているタッチ位置の位置情報を利用して、ハンドル操作が行われたかを判定する。具体的には、タッチ位置の座標が、所定の表示アイテムの表示範囲に含まれるかを判定する。ハンドル操作が行われたと判定される場合（ステップＳ３００でＹＥＳ）、ステップＳ３００に処理が進む。ハンドル操作ではない判定される場合（ステップＳ３００でＮＯ）、ステップＳ１０５に処理が進む。ステップＳ３０１では、操作特定部３０１は、ハンドル操作によって指示されたカーソル行１０６の移動方向を特定する。それに応じて表示制御部３０５は、カーソル行１０６が上下のいずれかに移動し、元に戻る様子を表示するスクリーン画像を生成して出力する。ステップＳ３０２では、表示制御部３０５が、ハンドル操作によって指示された方向に、入力エリア１０３の内容をカーソル行１０６の行数の分、スクロールする。すなわち、カーソル行１０６の中に移動した、入力済みの文字列や空白行が、入力中の文字列とみなされ、変換処理などの編集の対象になる。
【００６０】
なお、図６のフローチャートの例では、第１の実施形態の処理に、ハンドル操作を判定する処理を加えた例として説明しているが、独立したモードとしても構わない。その場合は、ステップＳ１０３及びステップＳ１０４の処理を省略し、ステップＳ１０２でタッチ位置が取得されたことに応じて、ステップＳ３００の処理が実行されるように変形すればよい。また、ユーザが設定によりいずれのモードを使用するかを選択可能としてもよい。後述する変形例についても同様に選択肢となる。
【００６１】
＜操作例＞
次に具体的な操作例を説明する。まず、図７で示すように、情報処理装置１００にスクリーン画像１０１ｇが表示されている。入力エリア１０３にはドキュメント７００に示す文字列が入力されているが、ソフトウェアキーボード１０４、変換候補表示エリア１０５、カーソル行１０６を隣接させて表示させているため、入力エリア１０３の一部が隠れている。隣接表示制御の結果、『Ｔｏｕｃｈ  Ｐａｎｅｌ』が入力されている行がカーソル行１０６となっている。つまり文字列『Ｓｏｆｔｗａｒｅ  Ｋｅｙｂｏａｒｄ』は隠れている状態である。
【００６２】
変形例１では、操作特定部３０１によって『ハンドル操作』であると特定されると、ユーザはハンドル１０９をタッチした手指を上下に動かすことによって、カーソル行１０６をカーソル行の高さ分だけ上下に移動できるようになる。この時、例えば図７の矢印７０１で示す方向にカーソル行を一旦移動させ、元の位置に戻して離すという操作をした場合、操作特定部３０１は上方向のスクロールが指示されたと解釈する。それに応じ、指示入力エリア１０３を１行だけ上方向にスクロールする操作が行われたと特定する。その特定結果を受けて、表示制御部３０５は、入力エリア１０３を１行だけ上方向にスクロールする表示制御を行う。その結果、情報処理装置１００のでは図７のスクリーン画像１０１ｈが表示される。つまり、のスクリーン画像１０１ｇでは隠れて見えなくなっていた文字列『Ｓｏｆｔｗａｒｅ  Ｋｅｙｂｏａｒｄ』が表示される。
【００６３】
同様に、スクリーン画像１０１ｇが表示された状態で、矢印７０２で示す方向にハンドル１０９をタッチした指を一旦下方向に移動させて元の位置に戻すという操作は、操作特定部３０１は入力エリア１０３を１行下方向のスクロールする指示として解釈される。それに応じ、表示制御部３０５は入力エリア１０３を１行だけ下方向にスクロールする表示制御を行う。その結果、情報処理装置１００には図７に示されるスクリーン画像１０１ｉが表示される。つまり、スクリーン画像１０１ｈでカーソル行１０６に表示されていた文字列『Ｔｏｕｃｈ  Ｐａｎｅｌ』は、スクロール表示制御によって見えなくなり、カーソル行１０６には代わりに文字列『Ａｎｄ』が表示される。
【００６４】
また、ハンドル１０９の操作を繰り返したり、あるいは所定以上の時間をかけて入力したりすることによって、入力エリア１０３に入力されている文字列を連続スクロールしたり、または先頭行もしくは末尾行まで一気にスクロールすることを可能としてもよい。例えば、ハンドル１０９をタッチした指を、矢印７０１で示す方向にカーソル行１０６の高さ分だけ移動し、その状態を所定の時間を維持するという操作を行ったとする。この場合、操作特定部３０１は入力エリア１０３を上方向に１行単位で連続的にスクロールすることを指示する操作として特定する。特定結果に応じて、表示制御部３０５は、ユーザがハンドル１０９を元の位置に戻すまでの間、入力エリア１０３を上方向に１行ずつ連続的にスクロールする表示制御を行う。
【００６５】
また、変形例１では、ハンドル１０９に対して、の矢印７０２で示す方向のフリック操作が入力されたことに応じて、入力エリア１０３の先頭行に表示されている文字列をカーソル行１０６の位置へ一気にスクロールする。ここでフリック操作とは、タッチパネルディスプレイ１１０上で指を素早く動かしたり弾いたりする操作のことである。この場合、操作特定部３０１は下方向のフリック操作が行われたと特定し、表示制御部３０５は、入力エリア１０３の先頭行に表示されている文字列がカーソル行１０６の位置に表示されるように入力エリア１０３を一気にスクロールする表示制御を行う。同様に、入力エリア１０３の末尾行に表示されている文字列をカーソル行１０６の位置へ一気にスクロールするためには、ハンドル１０９を図７の矢印７０１で示す方向にフリック操作すれば良い。
【００６６】
以上説明したように、変形例１ではカーソル行１０６の近くに（ユーザの指が容易に届く位置）にハンドル１０９を表示することで、入力済みの文字列に対する編集を所望とする場合も、視線や指の移動量を抑えることが可能となる。
【００６７】
＜第１の実施形態の変形例２＞
変形例２では、ユーザが任意の位置にカーソル行１０６を設定できる例を説明する。以下、変形例２について図８（Ａ）を参照して説明する。なお、第１の実施形態において説明した内容と共通するものについては同番号を付し、適宜説明を省略する。
【００６８】
また、変形例２にかかる情報処理装置１００のハードウェア構成、及び機能構成は第１の実施形態に準じる。また、変形例１と同様にカーソル行１０６の先頭部分にハンドル１０９を表示する。変形例１との違いはハンドル１０９を使って入力エリア１０３内の任意の行位置にカーソル行１０６を移動できることである。つまり、カーソル行１０６の位置を変換候補表示エリア１０５のすぐ上の行だけでなく、２行上もしくは３行上という具合に自由に設定できる。
【００６９】
図８（Ａ）のスクリーン画像１０１ｇ’では、図７に示した表示例と比較してカーソル行１０６が１行上に設定されている。この結果、カーソル行１０６よりも上の行の文字列だけでなく、カーソル行１０６よりも１行下の文字列まで表示されている。カーソル行１０６の位置は一度設定した後は再設定するまでは移動しない。また変形例２では、カーソル行１０６の位置が変更可能となるだけで、その他の機能は第１の実施形態およびその変形例１で説明した内容と同じである。
【００７０】
以上説明したように、変形例２によれば、ユーザが好きな位置にカーソル行１０６を設定できるようにすることで、カーソル行１０６の前後に入力された文字を確認しながら文字入力を行うことが可能となる。変形例２で示した方法は、カーソル行前後の文字を確認しながら文字入力を行う場合に有効な方法である。
【００７１】
＜第２の実施形態＞
第２の実施形態では、上下方向の入力エリア１０３の位置が固定されて（レイアウトされて）動かせない場合であっても、ソフトウェアキーボード１０４，変換候補表示エリア１０５、カーソル行１０６を近接して表示する方法について説明する。以下、第２の実施形態について図面を参照して詳細に説明する。なお、第１の実施形態において説明したのと共通する内容については同番号を付し、適宜説明を省略する。また、第２の実施形態にかかる情報処理装置１００のハードウェア構成、及び機能構成は第１の実施形態に準じる。
【００７２】
図８の（Ｂ）、及び図９のフローチャートを用いて、本実施形態における情報処理装置１００が実行する処理を説明する。
【００７３】
本実施形態では、ＷｅｂブラウザのＵＲＬ入力欄など、位置が固定された所定の入力欄に対して文字入力する例について説明する。例えば、図８（Ｂ）のスクリーン画像１０１ｊは、Ｗｅｂブラウザを実行中の画面に表示される画像であり、ソフトウェアキーボード１０４、変換候補表示エリア１０５、入力エリア１０３、Ｗｅｂコンテンツ表示エリア８００から構成されている。第２の実施形態では入力エリア１０３は１行であるので、この行がカーソル行１０６となる。
【００７４】
図９は、本実施形態の情報処理装置１００が実行する文字入力支援処理の一例を示すフローチャートである。本実施形態では、ＷｅｂブラウザのＵＲＬ入力欄（入力エリア１０３）をタッチすることによって情報処理装置１００が文字入力モードになると、図９のフローチャートが開始される。
【００７５】
第２の実施形態では、ステップＳ４００において、表示制御部３０５が、タッチパネルディスプレイ１１０の表示部に、入力エリア１０３（カーソル行１０６）の複製８０２、ソフトウェアキーボード１０４、変換候補表示エリア１０５と近接して表示させる。本実施形態では、図８（Ｂ）のスクリーン画像１０１ｋで示すように、変換候補表示エリア１０５のすぐ上に入力エリア１０３（カーソル行１０６）の複製８０２を配置する。
【００７６】
ステップＳ４０１において、表示制御部３０５は、表示部において、入力エリア１０３（カーソル行１０６）とその複製８０２を強調して表示させる。本実施形態では、スクリーン画像１０１ｋの８０１で示すように、Ｗｅｂコンテンツ表示エリアをグレーアウトすることによって、入力エリア１０３（カーソル行１０６）とその複製８０２を強調して表示させる。しかし、その限りではない。例えば、入力エリア１０３（カーソル行１０６）とその複製８０２を同じ色のフレームで囲むことによって強調表示しても構わない。ステップＳ４０１が完了すると、ステップＳ１０１に処理が進む。以降ステップＳ１１０までの処理は、第１の実施形態と同一となるので説明を省略する。
【００７７】
ステップＳ４０２では、表示制御部３０５によって、入力エリア１０３（カーソル行１０６）とその複製８０２の表示内容を同期させたスクリーン画像が表示される。つまり、入力エリア１０３（カーソル行１０６）に文字を入力すると、その結果が直ちに複製８０２に反映される。その結果、入力エリア１０３（カーソル行１０６）とその複製には常に同じ文字列が表示される。
【００７８】
第２の実施形態では、表示部の画面内の最下部にソフトウェキーボード１０４、それに接するように変換候補表示エリア１０５、さらにそれに接するように入力エリア１０３の複製８０２が上下に並んで表示されるように配置する。つまり、画面の下端からソフトウェキーボード１０４、変換候補表示エリア１０５、入力エリア１０３の複製８０２の順に並んだ状態が表示される。これは第１の実施形態と同様、最もタッチされる頻度の高いソフトウェアキーボードの位置を基準にした配置である。
【００７９】
以上、説明したように、本実施形態の方法で入力エリア１０３の複製を作成すれば、入力エリア１０３がレイアウトされて動かせない場合であっても、ソフトウェアキーボード１０４、変換候補表示エリア１０５、カーソル行１０６を近接表示できる。従って、ユーザの視線や手指の移動を低減し、操作性を向上させることができる。
【００８０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８１】
３００  位置取得部
３０１  操作特定部
３０２  保持部
３０３  データ取得部
３０４  候補特定部
３０５  表示制御部
【図１】
0006376953.tif 000002
【図２】
0006376953.tif 000003
【図３】
0006376953.tif 000004
【図４】
0006376953.tif 000005
【図５】
0006376953.tif 000006
【図６】
0006376953.tif 000007
【図７】
0006376953.tif 000008
【図８】
0006376953.tif 000009
【図９】
0006376953.tif 000010