(57)【特許請求の範囲】
【請求項１】
使用者によるデータの入力を支援するシステムであって、
複数の入力フィールドを含むページを表示する表示部と、
前記複数の入力フィールドのそれぞれに対応付けて、当該入力フィールドに設定するべき入力支援機能を予め記憶している記憶装置と、
入力フィールドに代わってデータの入力を受け付ける代替フィールドを、前記複数の入力フィールドについて共通に生成して前記表示部に表示させるフィールド生成部と、
使用者の操作に基づいて、前記複数の入力フィールドのうち使用者がデータを入力するために選択した入力フィールドを検出する選択検出部と、
前記選択検出部が前記入力フィールドを検出したことに応じて、検出した前記入力フィールドに重なる位置に、前記代替フィールドを移動して表示させるフィールド制御部と、
検出した前記入力フィールドに対応付けられた入力支援機能を前記記憶装置から読み出して、読み出した前記入力支援機能を前記代替フィールドに設定する機能設定部と、
前記代替フィールドに対し入力されたデータを、検出した前記入力フィールドにコピーするコピー部と
を備え、
前記フィールド制御部は、前記選択検出部が検出した前記入力フィールドのフィールド枠の高さ又は幅を含む表示属性を、前記代替フィールドに設定する
システム。
【請求項２】
前記コピー部は、前記選択検出部が第１入力フィールドの次に第２入力フィールドを検出したことに応じて、前記第２入力フィールドが検出されるまでに前記代替フィールドに対し入力されたデータを、前記第１入力フィールドにコピーする、
請求項１に記載のシステム。
【請求項３】
前記コピー部は、前記選択検出部が第１入力フィールドの次に第２入力フィールドを検出したことに応じて、さらに、前記第２入力フィールドが検出されるまでに既に前記第２入力フィールドに対し入力されていたデータを、前記代替フィールドにコピーする、
請求項２に記載のシステム。
【請求項４】
前記機能設定部は、前記選択検出部が第１入力フィールドの次に第２入力フィールドを検出したことに応じて、前記第１入力フィールドに対応する第１入力支援機能を前記代替フィールドにおいて無効化すると共に、前記第２入力フィールドに対応する第２入力支援機能を前記代替フィールドに設定する、請求項２に記載のシステム。
【請求項５】
前記機能設定部は、前記選択検出部が第１入力フィールドの次に第２入力フィールドを検出したことに応じて、前記第１入力フィールドに対応する第１入力支援機能と、前記第２入力フィールドに対応する第２入力支援機能を比較し、前記第１入力支援機能および前記第２入力支援機能が一致した場合に、前記第１入力支援機能が前記代替フィールドに設定された状態で前記代替フィールドにより前記第２入力フィールドへのデータの入力を受け付けさせる請求項４に記載のシステム。
【請求項６】
前記選択検出部は、使用者がポインティングデバイスを用いてクリックした入力フィールドを検出する、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記記憶装置は、前記複数の入力フィールドのそれぞれに対応付けて、当該入力フィールドがフォーカスされる順序を更に記憶し、
前記選択検出部は、既に第１入力フィールドを検出した状態において、次の入力フィールドをフォーカスする指示を検出したことに応じて、記憶された前記順序において前記第１入力フィールドの次の第２入力フィールドを、使用者から選択された入力フィールドとして検出し、
前記コピー部は、既に前記第２入力フィールドに対し入力されていたデータを、前記代替フィールドにコピーする請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記記憶装置は、表示されている前記複数の入力フィールドについて、使用者がタブキーを順次操作することにより選択される順序を更に記憶しており、
前記選択検出部は、既に第１入力フィールドを検出した状態において、タブキーの操作を検出した場合には、記憶された前記順序において前記第１入力フィールドの次の第２入力フィールドを、使用者から選択された入力フィールドとして検出する、
請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記表示部は、複数の入力フィールドを行列状に配列したページを表示しており、
前記記憶装置は、表示されている前記複数の入力フィールドのそれぞれについての、前記行列状の配列における座標位置を記憶しており、
前記選択検出部は、既に第１入力フィールドを検出した状態において、方向キーの操作を検出した場合には、前記第１入力フィールドを基準として前記方向キーの方向に隣接する第２入力フィールドを前記座標位置に基づいて特定して、特定した前記第２入力フィールドを、使用者から選択された入力フィールドとして検出する、
請求項１から８のいずれか１項に記載のシステム。
【請求項１０】
入力フィールドに予め対応付けられた前記入力支援機能は、当該入力フィールドに対し入力されたデータのフォーマットを予め定められたフォーマットに変更して前記表示部に表示する機能である、請求項１から９のいずれか１項に記載のシステム。
【請求項１１】
入力フィールドに入力されるデータは数値であり、前記予め定められたフォーマットは、予め定められた数の桁ごとにカンマで区切った数値のフォーマットである、請求項１０に記載のシステム。
【請求項１２】
入力フィールドに予め対応付けられた前記入力支援機能は、当該入力フィールドに対し入力されたデータの種類が予め定められた種類と同一か否かを判断して、同一であることを条件にデータの入力を受け付ける機能である、請求項１から１１のいずれか１項に記載のシステム。
【請求項１３】
使用者によるデータの入力を支援する方法であって、
複数の入力フィールドを含むページを表示部に表示するステップと、
前記複数の入力フィールドのそれぞれに対応付けて、当該入力フィールドに設定するべき入力支援機能を記憶装置に予め記憶するステップと、
入力フィールドに代わってデータの入力を受け付ける代替フィールドを、前記複数の入力フィールドについて共通に生成して前記表示部に表示させるステップと、
使用者の操作に基づいて、前記複数の入力フィールドのうち使用者がデータを入力するために選択した入力フィールドを検出するステップと、
前記検出するステップで前記入力フィールドを検出したことに応じて、検出した前記入力フィールドに重なる位置に、前記入力フィールドのフィールド枠の高さ又は幅を含む表示属性が設定された前記代替フィールドを移動して表示させるステップと、
検出した前記入力フィールドに対応付けられた入力支援機能を前記記憶装置から読み出して、読み出した前記入力支援機能を前記代替フィールドに設定するステップと、
前記代替フィールドに対し入力されたデータを、検出した前記入力フィールドにコピーするステップと
を備える方法。
【請求項１４】
使用者によるデータの入力を支援するシステムとして、コンピュータを機能させるプログラムであって、
前記コンピュータを、
複数の入力フィールドを含むページを表示する表示部と、
前記複数の入力フィールドのそれぞれに対応付けて、当該入力フィールドに設定するべき入力支援機能を予め記憶している記憶装置と、
入力フィールドに代わってデータの入力を受け付ける代替フィールドを、前記複数の入力フィールドについて共通に生成して前記表示部に表示させるフィールド生成部と、
使用者の操作に基づいて、前記複数の入力フィールドのうち使用者がデータを入力するために選択した入力フィールドを検出する選択検出部と、
前記選択検出部が前記入力フィールドを検出したことに応じて、検出した前記入力フィールドに重なる位置に、前記代替フィールドを移動して表示させ、前記選択検出部が検出した前記入力フィールドのフィールド枠の高さ又は幅を含む表示属性を、前記代替フィールドに設定するフィールド制御部と、
検出した前記入力フィールドに対応付けられた入力支援機能を前記記憶装置から読み出して、読み出した前記入力支援機能を前記代替フィールドに設定する機能設定部と、
前記代替フィールドに対し入力されたデータを、検出した前記入力フィールドにコピーするコピー部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、使用者によるデータの入力を支援する技術に関する。特に、本発明は、入力フィールドに対する使用者によるデータの入力を支援する技術に関する。
【背景技術】
【０００２】
ウェブ・ページに表示される入力フィールドには、様々な入力支援機能を設定することができる。例えば、ある入力支援機能によれば、入力フィールドに対し入力された数値を３桁ごとにカンマを付して表示させることができる。また、他の入力支援機能によれば、アルファベットのみを受け付け、数字や記号などは受け付けないようにすることができる。このような入力支援機能によって、使用者の利便性を向上し、また、誤入力を未然に防止できる。
【０００３】
【特許文献１】特開平１１−２１２６９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年、費用の低減や開発・保守の効率化のため、ウェブ・ブラウザおよびウェブ・サーバなどのような汎用的な技術は、業務用の情報システムなどにも広く利用されるようになってきている。例えば金融や流通などの業務のシステムにおいては、通常のウェブ・ページなどと比較して、価格や数量などの数値データを数多く入力する機会が多い場合がある。そのような入力をウェブ技術で実現すると、例えばウェブ・ブラウザ内のページには数多くの入力フィールドが表示される。
【０００５】
各入力フィールドに入力支援機能を設定するためには、従来、ページを表示するときに、ＪａｖａＳｃｒｉｐｔなどのプログラム言語で記述されたプログラムが実行されている（ＪａｖａＳｃｒｉｐｔを利用した技術については上記特許文献１を参照されたい。）。そのプログラムは、入力フィールドごとに、その入力フィールドに対応する入力支援機能を有効化する処理を行う。従って、入力フィールドの数が多いと、有効化のための処理時間はその数に応じて長くなる。その処理時間は、使用者にとってはページを利用可能となるまでの待ち時間になってしまい、使用者の利便性を低下させてしまうおそれがある。
【０００６】
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の第１の形態においては、使用者によるデータの入力を支援するシステムであって、複数の入力フィールドを含むページを表示する表示部と、前記複数の入力フィールドのそれぞれに対応付けて、当該入力フィールドに設定するべき入力支援機能を予め記憶している記憶装置と、入力フィールドに代わってデータの入力を受け付ける代替フィールドを、前記複数の入力フィールドについて共通に生成して前記表示部に表示させるフィールド生成部と、使用者の操作に基づいて、前記複数の入力フィールドのうち使用者がデータを入力するために選択した入力フィールドを検出する選択検出部と、検出した前記入力フィールドに対応付けられた入力支援機能を前記記憶装置から読み出して、読み出した前記入力支援機能を前記代替フィールドに設定する機能設定部と、前記代替フィールドに対し入力されたデータを、検出した前記入力フィールドにコピーするコピー部とを備えるシステムを提供する。また、当該システムとしてコンピュータを機能させる方法およびプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る情報システム１０の全体構成を示す。情報システム１０は、サーバ装置１００と、サーバ装置１００に通信ネットワークを介して接続されたクライアント装置２００とを備える。この通信ネットワークは、例えばインターネットなどのような公共のネットワークでもよいし、例えば企業の社内ネットワークのように、プライベートなネットワークであってもよい。
【００１０】
サーバ装置１００は、基本的なハードウェアとして、例えばハードディスクドライブなどである記憶装置１０４と、例えばネットワーク・インターフェイス・カード（ＮＩＣ）などである通信インターフェイス１０２とを有する。また、サーバ装置１００は、記憶装置１０４から読み出したプログラムをＣＰＵにより実行することで、ウェブ・サーバ１０６として機能する。ウェブ・サーバ１０６は、クライアント装置２００から受けたリクエストに応じてウェブページを返信する。
【００１１】
クライアント装置２００は、基本的なハードウェアとして、例えばハードディスクドライブなどである記憶装置２０４と、例えばネットワーク・インターフェイス・カード（ＮＩＣ）などである通信インターフェイス２０２と、例えば表示画面・ポインティングデバイス・キーボードなどであるユーザ・インターフェイス２０８とを有する。また、クライアント装置２００は、記憶装置２０４から読み出したプログラムをＣＰＵにより実行することで、ウェブ・ブラウザ２０６として機能する、ウェブ・ブラウザ２０６は、使用者から選択操作や入力操作を受けると、その選択結果や入力結果をその使用者に対し表示する。
【００１２】
また、ウェブ・ブラウザ２０６は、必要に応じてウェブ・サーバ１０６に対しリクエストを送信する。そのリクエストに対する返信は次のウェブページを示す。そのようなリクエストを繰り返してウェブ・ブラウザ２０６は次々とウェブページを受信してユーザ・インターフェイス２０８に表示する。これにより、使用者は所望の情報をウェブ・サーバ１０６から取得したり、所望の入力データ（例えば商品の注文、価格）をサーバ装置１００内のデータベースに反映させたりすることができる。
【００１３】
図２は、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の一例を示す。このようなウェブ・サーバ１０６およびウェブ・ブラウザ２０６は、一般のインターネットのみならず、企業等のプライベートなネットワークにおいて使用される場合もある。そのような場合には、業務の種類によっては、入力するべきデータが多数になり、その結果、ページには多数の入力フィールドが表示されることがある。
【００１４】
例えば、ユーザ・インターフェイス２０８には、商品ごとに、商品コードの入力を受け付ける入力フィールド、その商品コードを入力する日付を受け付ける入力フィールド、および、その商品の価格を受け付ける入力フィールドが表示される。そして、それら３つの入力フィールドは、それぞれの商品に対応付けられているから、入力フィールドの数は商品の数に３を乗じた個数となり、多くなりすぎる場合がある。例えば図２では、２つの商品について合計６つの入力フィールドが表示されている。
【００１５】
それぞれの入力フィールドには、その入力フィールドに入力されることが期待されるデータの種類に応じて入力支援機能が設定されていることが望ましい。例えば、商品コードの入力フィールドには、商品コードを規定するためのアルファベットのみの入力を受け付け、その他の種類の文字の入力は受け付けないような入力支援機能が設定される。これにより、使用者は商品コードの誤入力を防止できる。
【００１６】
また、日付の入力フィールドには、入力された数値のフォーマットを、日付を示す予め定められたフォーマットに変換する入力支援機能が設定されていることが望ましい。例えば、「２００７１２２０」という数値が入力されると、この入力支援機能によって、その数値は、「２００７／１２／２０」に変更される。これにより、使用者は「／」などの記号を入力しなくても日付を適切に入力でき、利便性が高い。
【００１７】
同じように、価格の入力フィールドにもそれに対応する入力支援機能が設定されている。例えば、このフィールドに入力された数値は、予め定められた数の桁（ここでは例えば３桁）ごとにカンマで区切った数値のフォーマットに変更される。入力支援機能はこれらに限らず、例えばマスク入力機能またはエラーチェック機能と呼ばれるような、多様な機能を含んでよい。
このような入力支援機能は便利な反面、入力支援機能の設定にはある程度の処理時間がかかる場合がある。
【００１８】
例えばこのような入力支援機能を、ウェブページ内におけるＪａｖａＳｃｒｉｐｔで記述したプログラムで実現しようとすると、入力支援機能の設定には入力フィールドの数に応じた処理時間がかかる。入力フィールドの数が僅かな場合にはその処理時間は使用者にとって判別できない程度に短い。しかしながら、例えば業務用データをウェブページに入力させようとする場合には、入力フィールドの数が膨大となって長い待ち時間が生じかねない。
【００１９】
これに対し、本実施形態においては、入力支援機能を各入力フィールドに設定するのに代えて単一の代替の入力フィールドに設定することで、待ち時間の短縮を図る。その例を図３ａ−ｃに示す。
図３ａは、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の構造を示す第１図である。本実施形態に係るウェブ・ブラウザ２０６は、まず、代替フィールドを１つ生成する。この代替フィールドは、ページ内の複数の入力フィールドに代わってデータの入力を受け付けるために、複数の入力フィールドについて共通に生成される。
【００２０】
そのような代替フィールドは、例えばそれらの入力フィールドの何れかに重ねて表示される。実際には代替フィールドは入力フィールドと重なっているから使用者により判別できない。図３ａではそのような代替フィールドを容易に判別可能とするため、ユーザ・インターフェイス２０８の画面とは３次元方向にずらして示す。
【００２１】
具体的には、使用者が、いま、商品１の商品コードの入力を受け付けるための第１の入力フィールドをポインティングデバイスなどによって選択すると、代替フィールドはその第１の入力フィールドに重ねて表示される。そして、使用者がデータ「ａｂｃｄｅｆ」を入力すると、そのデータは第１の入力フィールドではなく代替フィールドに入力される。
【００２２】
但し、代替フィールドは第１の入力フィールドに重ねて表示されているので、使用者はあたかもその第１の入力フィールドにデータを入力したかのように認識する。また、代替フィールドには、第１の入力フィールドに設定するべき入力支援機能が設定される。従って、アルファベットのみの入力が受け付けられるので、使用者は商品コードを適切に入力することができる。
【００２３】
図３ｂは、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の構造を示す第２図である。次に、使用者が、商品１の日付の入力を受け付けるための第２の入力フィールドをポインティングデバイスなどによって選択すると、代替フィールドはその第２の入力フィールドに重なるように移動して表示される。その場合は、さらに、移動前に代替フィールドに対し入力されていたデータ「ａｂｃｄｅｆ」は、移動前に代替フィールドと重なって表示されていた第１の入力フィールドにコピーされる。
【００２４】
そして、移動後の状態において使用者がデータ「２００７１２２０」を入力すると、そのデータは第２の入力フィールドではなく代替フィールドに入力される。但し、代替フィールドは第２の入力フィールドに重ねて表示されているので、使用者はあたかもその第２の入力フィールドにデータを入力したかのように認識する。また、代替フィールドには、第２の入力フィールドに設定するべき入力支援機能が設定される。従って、数値は日付のフォーマットに適切に変更されるので、使用者は日付を簡単な操作で入力できる。
【００２５】
図３ｃは、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の構造を示す第３図である。次に、使用者が、商品１の価格の入力を受け付けるための第３の入力フィールドをポインティングデバイスなどによって選択すると、代替フィールドはその第３の入力フィールドに重なるように移動して表示される。既にこの第３の入力フィールドに入力されていたデータは、その代替フィールドにコピーして表示される。従って、使用者は、あたかも第３の入力フィールドがその入力データと共にそのまま表示されているかのように認識できる。
【００２６】
以上の構成によれば、ページの表示時に全ての入力フィールドについて入力支援機能を設定しなくても、入力フィールドが選択される毎に代替フィールドの入力支援機能を切り換えることで、それぞれの入力フィールドの性質に応じた適切な入力支援を実現できる。これにより、入力支援による利便性の高さを損なうことなく、ページの表示時における待ち時間を短縮できる。以降、これを実現する構成について説明を続ける。
【００２７】
図４は、本実施形態に係るウェブ・ブラウザ２０６の機能構成をユーザ・インターフェイス２０８の機能と共に示す。ウェブ・ブラウザ２０６は、ページ制御部４００と、選択検出部４２５とを有する。ページ制御部４００は、ウェブ・ブラウザ２０６の基本的機能の１つを実現する部材であり、ウェブ・サーバ１０６からウェブページを受信して記憶装置２０４に格納する。ウェブページの受信には通信インターフェイス２０２が利用される。また、ウェブ・ブラウザ２０６は、そのウェブページをユーザ・インターフェイス２０８の表示部４１０に表示する。
【００２８】
ウェブページには、入力フィールドが複数含まれている。また、ウェブページは、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などで記述されたいわゆるページ記述部分のみならず、ＪａｖａＳｃｒｉｐｔなどで記述されたプログラム部分を含んでよい。そのようなプログラム部分を制御プログラム４０５とする（なお、制御プログラム４０５は１つのファイルで構成されるとは限らない。例えばあるファイルに他のファイルがインクルード処理されることにより、制御プログラム４０５が構成されてよい。以降の説明においては説明の簡潔化のため、これら複数ファイルで構成されるものも単に制御プログラム４０５と呼ぶ。）。ウェブ・ブラウザ２０６は、ＣＰＵの制御によりその制御プログラム４０５を実行することで、フィールド生成部４１５、コピー部４３０、機能設定部４４０、およびフィールド制御部４５０として機能する。
【００２９】
フィールド生成部４１５は、ウェブページが表示部４１０に表示されると直ちに動作を開始する。そして、フィールド生成部４１５は、入力フィールドに代わってデータの入力を受け付ける代替フィールドを、ページ内の複数の入力フィールドについて共通に生成して表示部４１０に表示させる。代替フィールドの表示は、例えば、記憶装置２０４に記憶された上記ページ記述部分に、代替フィールドを示すオブジェクトを追加する処理により実現されてよい。
【００３０】
また、ウェブページが表示されるタイミングにおいては、ページ内の複数の入力フィールドのそれぞれに対応付けて、当該入力フィールドに設定するべき入力支援機能が記憶装置２０４内に格納される。例えば、第１の入力フィールドにはアルファベット入力機能、第２の入力フィールドには日付入力機能などのように、入力フィールドごとに個別に入力支援機能が対応付けて記憶される。また、記憶装置２０４は、ページ内の複数の入力フィールドのそれぞれに対応付けて、ページ内の複数の入力フィールドの中で当該入力フィールドがフォーカスされる順序を更に格納してよい。なお、入力フィールドがフォーカスされるとは、当該入力フィールドに対してデータを入力できるように入力フィールドが選択されることである。
【００３１】
選択検出部４２５は、ウェブ・ブラウザ２０６の基本的機能の１つを実現する。具体的には、選択検出部４２５は、使用者による入力部４２０の操作に基づいて、ページ内の複数の入力フィールドのうち使用者がデータを入力するために選択した入力フィールドを検出する。ここで、入力部４２０は、例えばキーボード、または、マウスなどのポインティングデバイスなどである。
【００３２】
そして、「選択する」とは、キーボードのタブキーまたは方向キーを操作してカーソルを入力フィールドに合わせる操作をいう。これに代えて、「選択する」とは、ポインティングデバイスにより入力フィールドをクリックすることであってよい。なお、使用者が例えばタブキーにより次の入力フィールドをフォーカスする操作をすると、現在選択されている入力フィールドの次に順序付けられた入力フィールドが選択され、使用者が例えばシフトキーを押しながらタブキーを押すことにより前の入力フィールドをフォーカスする操作をすると、現在選択されている入力フィールドの前に順序付けられた入力フィールドが選択される。
【００３３】
選択の操作は、ＪａｖａＳｃｒｉｐｔのプログラムの観点から見ると、マウスのクリック、および、キーの押下、のそれぞれに予め対応付けられたイベントが発生することをいう。選択検出部４２５は、そのような各種のイベントを発生させて、制御プログラム４０５の各種処理を開始させる役割を果たす。
【００３４】
選択検出部４２５が、ある第１の入力フィールドを、選択された入力フィールドとして検出している状態を前提に説明を続ける。その場合において、フィールド制御部４５０は、代替フィールドを移動させて、第１の入力フィールドが表示されるページ内の位置に応じた位置に表示させている。代替フィールドを表示させる位置は、好ましくは、第１の入力フィールドに重なる位置である。重なる、とはフィールドの少なくとも一部が重なることをいう。好ましくは、代替フィールドと第１入力フィールドとが同一の形状・大きさを有し、そのそれぞれがぴったりと重なることが好ましい。
【００３５】
この状態において、選択検出部４２５が、次に、第２の入力フィールドを検出したとして説明を続ける。まず、コピー部４３０は、第２の入力フィールドが検出されるまでに代替フィールドに入力されたデータを、第１の入力フィールドにコピーする。このようなフィールド間のコピーについても、記憶装置２０４内のページ記述部分を変更する処理によって実現されてよい。そして、次に、コピー部４３０は、第２入力フィールドが検出されるまでに既にその第２入力フィールドに対し入力されていたデータを、代替フィールドにコピーする。
【００３６】
また、機能設定部４４０は、第１入力フィールドに対応して既に設定されていた第１入力支援機能を代替フィールドにおいて無効化する。そして、機能設定部４４０は、第２入力フィールドに対応する第２入力支援機能を記憶装置２０４から読み出して代替フィールドに設定する。これにより、代替フィールドに対する入力操作は、あたかも第２入力フィールドに対する入力操作であるかのような支援を受けることができる。
【００３７】
そして、フィールド制御部４５０は、第２入力支援機能を設定したその代替フィールドを第２入力フィールドに重ねて表示する。フィールド制御部４５０は、さらに、第２入力フィールドの表示属性を、代替フィールドに設定することが望ましい。表示属性とは、例えば、フィールド枠の高さまたは幅などである。
【００３８】
これに加えて、表示属性とは、そのフィールドに入力される文字を表示するためのフォントまたはその文字を表示する色彩であってよい。さらに、表示属性とは、フィールドの背景色または前景色であってよい。これにより、使用者は、代替フィールドの存在を全く意識せずに入力操作を継続できる。
【００３９】
図５は、本実施形態に係る記憶装置２０４のデータ構造の一例を示す。記憶装置２０４は、制御プログラム４０５の動作開始時に、制御プログラム４０５の機能によって予め入力支援機能を記憶する。具体的には、記憶装置２０４は、複数の入力フィールドのそれぞれに対応付けて、当該入力フィールドに設定するべき入力支援機能を記憶する。これに加え、記憶装置２０４は、複数の入力フィールドの中で当該入力フィールドがフォーカスされる順序を更に記憶しても良い。
【００４０】
一例として、記憶装置２０４は、ある入力フィールドについて、その入力フィールドのＩＤ「ｉｎｐｕｔ１」を、その入力フィールドに設定するべき入力支援機能「アルファベット入力」に対応付けて記憶している。即ちこの入力フィールドは、アルファベットのみの入力を受け付けて、その他の種類の文字の入力は受け付けない。
【００４１】
なお、この図５にはこの「アルファベット入力」という文字のように、説明のため分かりやすくその機能の概要を記している。但し、実際には、記憶装置２０４は、この「アルファベット入力」の文字に代えて、この「アルファベット入力」の機能を実現するための関数の呼出文を記憶している。
これらの処理を、ＪａｖａＳｃｒｉｐｔで実現すると、例えば以下のように表される。
【００４２】
ｅｖｅｎｔＲｅｇｉｓｔｒｙＡｒｒａｙ［"ｉｎｐｕｔ１"］＝"ｓｅｔＢｅｈａｖｉｏｕｒＡｓｓｉｓｔ（）；"；
但し、関数ｓｅｔＢｅｈａｖｉｏｒＡｓｓｉｓｔ（）についても同じく制御プログラム４０５中で例えば下記のように定義される。
ｆｕｎｃｔｉｏｎ  ｓｅｔＢｅｈａｖｉｏｒＡｓｓｉｓｔ（）  ｛
／＊入力支援機能１：アルファベットのみを受け付けるように設定する処理＊／
…
｝
【００４３】
ここで、ｅｖｅｎｔＲｅｇｉｓｔｒｙＡｒｒａｙは配列変数であり、この配列変数の添字が入力フィールドを表し、この配列変数の実体が入力支援機能を表す。ここでは、設定するべき入力支援機能をまとめてｓｅｔＢｅｈａｖｉｏｒＡｓｓｉｓｔという関数で表している。上記のように、設定するべき入力支援機能が１つであれば、ｓｅｔＢｅｈａｖｉｏｒＡｓｓｉｓｔという関数の実体は１つの設定処理によって表される。
【００４４】
この入力支援機能１は、キーの入力をイベントとして検出して、そのキー入力により入力されるデータの種類がアルファベットか否かを判断すると共に、アルファベットであることを条件にそのデータの入力を受け付ける機能を示す。入力されるデータの種類がアルファベットで無い場合には、単に入力が受け付けられないことのほかに、受け付けられなかったことをわかり易くするために入力フィールドが特定の色彩で着色されて点滅してもよい。
【００４５】
同様に、他の入力フィールドのＩＤには、当該他の入力フィールドに対応付けられた入力支援機能が対応付けて記憶されている。例えばある入力フィールドのＩＤ「ｉｎｐｕｔ３」には、その入力フィールドに設定するべき第１の入力支援機能「数値入力」および第２の入力支援機能「３桁カンマ」が対応付けて記憶されている。このように、ある１つの入力フィールドには、２以上の入力支援機能が対応付けて記憶されていてもよい。
【００４６】
一例として、これらの入力支援機能を、同じようにＪａｖａＳｃｒｉｐｔのプログラムで表記すると、例えば以下のようになる。
ｅｖｅｎｔＲｅｇｉｓｔｒｙＡｒｒａｙ［"ｉｎｐｕｔ３"］＝"ｓｅｔＮｕｍｂｅｒＡｓｓｉｓｔ（）；"；
但し、関数ｓｅｔＮｕｍｂｅｒＡｓｓｉｓｔ（）についても同じく制御プログラム４０５中で例えば下記のように定義される。
ｆｕｎｃｔｉｏｎ  ｓｅｔＮｕｍｂｅｒＡｓｓｉｓｔ（）  ｛
／＊入力支援機能１：数値のみを受け付けるように設定する処理＊／
…
／＊入力支援機能２：３桁カンマを付すように設定する処理＊／
…
｝
【００４７】
このように、ある１つの入力フィールドに複数の入力支援機能が対応付けられてもよい。その場合には、その入力フィールドに対応付けられる関数には、上記のように、複数の入力支援機能を設定するためのコマンドが記述される。
以上のように、ウェブ・ブラウザ２０６がウェブページを受信した時点においては、入力支援機能それ自体が設定されるのではなく、単に入力支援機能を設定するための関数が、各入力フィールドに対応付けて登録される。これは、ＪａｖａＳｃｒｉｐｔのプログラムにおいては、単に配列変数への値の代入処理である。従って、ウェブページを表示する時点においては使用者の待ち時間は殆んど発生しない。
【００４８】
図６は、本実施形態に係るウェブ・ブラウザ２０６により使用者からデータの入力を受け付ける処理の一例を示す。まず、ページ制御部４００は、ウェブ・サーバ１０６からウェブページを示すファイルを受信して記憶装置２０４に格納する（Ｓ６００）。すると、まず、ページ制御部４００は、そのファイルに含めて受信した制御プログラム４０５を実行することで、入力支援機能を入力フィールドに対応付けて記憶装置２０４に格納する（Ｓ６１０）。
【００４９】
入力支援機能を入力フィールドに対応付けて記憶装置２０４に格納する処理については、図５を参照して説明したとおりである。即ち例えば、入力フィールドのＩＤを添え字とする配列変数ｅｖｅｎｔＲｅｇｉｓｔｒｙＡｒｒａｙが定義され、その変数ｅｖｅｎｔＲｅｇｉｓｔｒｙＡｒｒａｙ［ｉｎｐｕｔ１］に、"ｓｅｔＢｅｈａｖｉｏｒＡｓｓｉｓｔ（）"という文字列が代入される。この"ｓｅｔＢｅｈａｖｉｏｒＡｓｓｉｓｔ（）"という関数の実体は、入力支援機能「アルファベット入力」をその入力フィールド「ｉｎｐｕｔ１」に設定するコマンドである。
【００５０】
次に、フィールド生成部４１５は、入力フィールドに代わってデータの入力を受け付ける代替フィールドを、ページ内の複数の入力フィールドについて共通に生成して表示部４１０に表示させる（Ｓ６２０）。代替フィールドの表示は、例えば、記憶装置２０４に記憶された上記ページ記述部分に、代替フィールドを示すオブジェクトを追加する処理により実現されてよい。この処理はＪａｖａＳｃｒｐｉｔで実現すると、例えば以下のように表される。なお、ｄｕｍｍｙという変数が代替フィールドを示す。
【００５１】
ｖａｒ  ｄｕｍｍｙ  ＝  ｄｏｃｕｍｅｎｔ．ｃｒｅａｔｅＥｌｅｍｅｎｔ（"ｉｎｐｕｔ"）；
ｄｕｍｍｙ．ｉｄ＝"＿ｄｕｍｍｙ"；
【００５２】
また、ページ制御部４００は、制御プログラム４０５を実行することでタブ・インデックスを生成して記憶装置２０４に格納する（Ｓ６３０）。通常のウェブ・ブラウザ２０６において、ある第１の入力フィールドが選択されている状態において、使用者がタブ（ＴＡＢ）キーを押下すると、第１の入力フィールドの例えば隣に位置する第２の入力フィールドが選択される。これは、ウェブ・ブラウザ２０６に備わっている基本的な機能により実現される場合が多い。
【００５３】
しかしながら、本実施形態に係るウェブ・ブラウザ２０６においては、あたかもある入力フィールドが選択されているかのように表示された状態においても、実際にはその入力フィールドに重ねて表示した代替フィールドが選択されている。また、そのような状態においてタブキーが押下される等により次の入力フィールドをフォーカスする指示を受けた場合に期待される処理は、選択されている入力フィールドの変更ではなく、代替フィールドの移動の処理である。この移動の処理により、第１の入力フィールドに重なって表示された代替フィールドを、第２の入力フィールド上に移動させることができる。
【００５４】
タブ・インデックスは、このような処理を実現するために準備される。具体的には、タブ・インデックスは、複数の入力フィールドのそれぞれに対応付けて、各入力フィールドがフォーカスされる順序を記憶したものであり、より具体的には、複数の入力フィールドについて、使用者がタブキーを順次操作することにより選択される順序を記憶したものである。
本実施形態においては、あらかじめ各入力フィールド設定されたタブ・インデックスに基づき、フォーカスの当たる順序で、入力フィールドのｉｄ を記憶装置へ保存する。ある入力フィールド「ｉｎｐｕｔ１」のタブ・インデックスは、以下のように取得する。
【００５５】
ｖａｒ  ｉｎｐｕｔＦｉｅｌｄ＝ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔＢｙＩｄ（"ｉｎｐｕｔ１"）；
ｉｎｐｕｔＦｉｅｌｄ．ｔａｂＩｎｄｅｘが、入力フィールド「ｉｎｐｕｔ１」のタブ・インデックスを示す。
【００５６】
以上のような処理を、ページ内の各入力フィールドについて繰り返し、入力フィールドｉｄとタブ・インデックスの組み合わせを取得し、タブ・インデックスの値に応じて、昇順に入力フィールドのｉｄ を整列し、結果を変数ｔａｂＯｒｅｄｅｒＡｒｒａｙ へ格納する。その結果、変数ｔａｂＯｒｅｒＡｒｒａｙには、各入力フィールドの選択順序が格納される。例えば、配列変数ｔａｂＯｒｄｅｒＡｒｒａｙの値は以下のようになる。
ｔａｂＯｒｄｅｒＡｒｒａｙ［０］＝"ｉｎｐｕｔ１"
ｔａｂＯｒｄｅｒＡｒｒａｙ［１］＝"ｉｎｐｕｔ２"
ｔａｂＯｒｄｅｒＡｒｒａｙ［２］＝"ｉｎｐｕｔ３"
【００５７】
フォーカスの当たっている入力フィールドが、何番目の入力フィールドであるかを、変数ｎｏｗＯｒｄｅｒへ格納する。初期時に、タブ・インデックスが最小な入力フィールドにフォーカスを当てる場合は、ｎｏｗＯｒｄｅｒに０を代入する。
【００５８】
次に、ページ制御部４００は、制御プログラム４０５を実行することで、表示部４１０に表示されているページ全体を示すオブジェクト（例えばＨＴＭＬのｂｏｄｙ）に対し、検出するべきイベントを設定する（Ｓ６４０）。この処理は、ＪａｖａＳｃｒｉｐｔで記述すると例えば以下のように表される。
【００５９】
ｖａｒ  ｂｏｄｙ＝ｄｏｃｕｍｅｎｔ．ｂｏｄｙ；
ｂｏｄｙ［"ｏｎｋｅｙｄｏｗｎ"］＝"ｈａｎｄｌｅＫｅｙＤｏｗｎ（ｅｖｅｎｔ）"；
ｂｏｄｙ［"ｏｎｋｅｙｕｐ"］＝"ｈａｎｄｌｅＫｅｙＵｐ（ｅｖｅｎｔ）"；
ｂｏｄｙ［"ｏｎｃｌｉｃｋ"］＝"ｈａｎｄｌｅＭｏｕｓｅＣｌｉｃｋ（ｅｖｅｎｔ）"；
【００６０】
これにより、キーが押下されたことを示すイベント「ｏｎｋｅｙｄｏｗｎ」が発生すると、ｄｏｃｕｍｅｎｔ．ｂｏｄｙオブジェクトについて、ｈａｎｄｌｅＫｅｙＤｏｗｎという関数が実行されるように設定される。同様に、イベント「ｏｎｋｅｙｕｐ」が発生するとｈａｎｄｌｅＫｅｙＵｐという関数が実行され、イベント「ｏｎｃｌｉｃｋ」が発生するとｈａｎｄｌｅＭｏｕｓｅＣｌｉｃｋという関数が実行されるように設定される。
【００６１】
"ｈａｎｄｌｅＫｅｙＤｏｗｎ（ｅｖｅｎｔ）"では、ｔａｂキーが押された時と、それ以外のキーが押されたときで、別々に処理をする。ｔａｂキーが押されたとき、代替フィールドから、第１の入力フィールドへ値をコピーし、代替フィールドへ設定された入力支援機能を解除する。それ以外のキー入力は、代替フィールドへのデータ入力として扱う。
【００６２】
"ｈａｎｄｌｅＫｅｙＵｐ（ｅｖｅｎｔ）"では、ｔａｂキーを離したときと、それ以外のキーを離したときで、別々に処理をする。ｔａｂキーが離されたとき、前記記憶装置から、第２フィールドを検出する。第２フィールドに応じた入力支援機能を代替フィールドへ設定し、代替フィールドを第２フィールドと重なる位置へ移動する。それ以外のキーを離したときは、代替フィールドへのデータ入力として扱う。
【００６３】
"ｈａｎｄｌｅＭｏｕｓｅＣｌｉｃｋ（ｅｖｅｎｔ）"では、"ｈａｎｄｌｅＫｅｙＤｏｗｎ（ｅｖｅｎｔ）"において、ｔａｂキーが押された時と同じ処理を行い、次に、第２フィールドを、クリックされた入力フィールドとして、"ｈａｎｄｌｅＫｅｙＵｐ（ｅｖｅｎｔ）"におけるｔａｂキーが離されたときと同じ処理を行う。
【００６４】
次に、選択検出部４２５は、使用者の操作に基づいて、複数の入力フィールドのうち使用者がデータを入力するために選択した入力フィールドを検出する（Ｓ６５０）。以降、選択検出部４２５が第１の入力フィールドの次に第２の入力フィールドを検出したとして説明を進める。
【００６５】
入力フィールドの選択は、例えば、ポインティングデバイスによるその入力フィールドのクリック、または、キーボードのタブキーの押下により実現される。タブキーの押下による入力フィールドの選択を実現するために、現在の入力フィールドの順番を、ｎｏｗＯｒｄｅｒ変数で記憶する。その結果選択された入力フィールドのｉｄは、例えば以下のようにして検出される。
（ポインティングデバイスの場合）
ｖａｒ  ｎｅｘｔＩｄ＝ｅｖｅｎｔ．ｓｒｃＥｌｅｍｅｎｔ．ｉｄ；
（タブキーの場合）
ｎｏｗＯｒｄｅｒ＋＋；
ｖａｒ  ｎｅｘｔＩｄ＝ｔａｂＯｒｄｅｒＡｒｒａｙ［ｎｏｗＯｒｄｅｒ］；
【００６６】
即ち、ポインティングデバイスの場合は、選択検出部４２５は、ポインティングデバイスのクリックのイベントが検出されたエレメントのＩＤを取得する。一方、タブキーの場合には、選択検出部４２５は、上記Ｓ６３０においてタブ・インデックスとして記憶された順序において、上記第１入力フィールドの次の入力フィールドを、使用者から選択された第２入力フィールドとして検出する。これにより、既に第1入力フィールドを検出していた状態において、タブキーにより次の入力フィールドをフォーカスする指示を検出したことに応じて、タブ・インデックスに記憶された順序において第１入力フィールドの次の第2入力フィールドを、使用者により選択された入力フィールドとして検出することができる。
【００６７】
ポインティングデバイスを使用した後、タブキーを入力した場合、変数ｎｅｘｔＩｄ と配列ｔａｂＯｒｄｅｒＡｒｒａｙから、変数ｎｏｗＯｒｄｅｒ を再計算し、上記、タブキーの場合と同じ手続きで、ｎｅｘｔＩｄ を計算する。
【００６８】
第２の入力フィールドが検出されたことに応じて（Ｓ６５０：ＹＥＳ）、フィールド制御部４５０および機能設定部４４０は、代替フィールドを第２の入力フィールド上に重ねて表示する処理を行う（Ｓ６６０）。その説明のために図７を参照する。
【００６９】
図７は、図６のＳ６６０における処理の詳細な流れを示す。まず、機能設定部４４０は、第１入力フィールドに対応する第１入力支援機能を代替フィールドにおいて無効化する（Ｓ７００）。これは、例えば以下のプログラムにより実現される。
ｄｕｍｍｙ［（設定されているイベント）］＝ｎｕｌｌ；
【００７０】
これにより、第１入力支援機能を実現するために検出すべきとして設定されたイベント、例えばキーの入力イベントが無効化される。
次に、コピー部４３０は、選択検出部４２５が第２入力フィールドを検出するまでに代替フィールドに対し入力されたデータを、第１入力フィールドにコピーする（Ｓ７１０）。これは、例えば以下のプログラムにより実現される。
ｖａｒ  ｉｎｐｕｔＦｉｅｌｄ＝ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔＢｙＩｄ（ｎｏｗＯｒｄｅｒ）；
ｉｎｐｕｔＦｉｅｌｄ．ｖａｌｕｅ＝ｄｕｍｍｙ．ｖａｌｕｅ；
【００７１】
代替フィールドにデータを入力する過程で、代替フィールドの表示属性が変更される場合が想定される。例えば、何らかの異常な入力の結果、代替フィールドの背景色が、異常を示す色彩に変更されているかもしれない。このような場合には、代替フィールドの表示属性を第１入力フィールドに引き継ぐことが望ましい。したがって、フィールド制御部４５０は、代替フィールドの表示属性を第１入力フィールドにコピーする（Ｓ７２０）。これは、例えば以下のプログラムにより実現される。
ｉｎｐｕｔＦｉｅｌｄ．ａｔｔｒｉｂｕｔｅ＝ｄｕｍｍｙ．ａｔｔｒｉｂｕｔｅ；
【００７２】
但し、「ａｔｔｒｉｂｕｔｅ」は表示属性を例示したものである。表示属性を示す名前が他のものである場合には、上記「ａｔｔｒｉｂｕｔｅ」を、表示属性を示す名前に変更すればよい。
【００７３】
次に、フィールド制御部４５０は、代替フィールドを第２入力フィールドに重なる位置に移動させて表示する（Ｓ７３０）。これは、例えば以下のプログラムにより実現される。
ｖａｒ  ｎｅｘｔＦｉｅｌｄ＝ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔＢｙＩｄ（ｎｅｘｔＩｄ）；
ｄｕｍｍｙ．座標ｘ＝ｎｅｘｔＦｉｅｌｄ．座標ｘ；
ｄｕｍｍｙ．座標ｙ＝ｎｅｘｔＦｉｅｌｄ．座標ｙ；
【００７４】
但し、上記「座標ｘ」および「座標ｙ」は入力フィールドが表示される位置を例示したものである。位置を示す名前が他のものである場合には、上記「座標ｘ」および「座標ｙ」を、位置を示す名前に変更すればよい。
【００７５】
次に、フィールド制御部４５０は、第２入力フィールドの表示属性を代替フィールドにコピーする（Ｓ７４０）。これは、例えば以下のプログラムにより実現される。
ｄｕｍｍｙ．ａｔｔｒｉｂｕｔｅ＝ｎｅｘｔＦｉｅｌｄ．ａｔｔｒｉｂｕｔｅ；
【００７６】
表示属性は、既に述べたように、例えば、フィールドの高さ方向の長さ、フィールドの幅方向の長さ、フィールドに設定するべき背景色、フィールドに設定するべき前景色、および、フィールドに入力された文字のフォント、などを示す。このような表示属性を引き継ぐことで、使用者は、代替フィールドの存在を意識せずに入力作業を継続できる。
【００７７】
次に、フィールド制御部４５０は、選択検出部４２５が第２入力フィールドを検出するまでに既に第２入力フィールドに入力されていたデータを、代替フィールドにコピーする（Ｓ７５０）。この処理は、例えば以下のプログラムにより実現される。
ｄｕｍｍｙ．ｖａｌｕｅ＝ｎｅｘｔＦｉｅｌｄ．ｖａｌｕｅ；
【００７８】
そして、機能設定部４４０は、第２入力フィールドに対応付けられた入力支援機能を記憶装置２０４から読み出して、読み出したその入力支援機能を代替フィールドに設定する（Ｓ７６０）。この処理は、例えば以下のプログラムにより実現される。
ｖａｒ  ｅｖｅｎｔＳｔｒ＝ｅｖｅｎｔＲｅｇｉｓｔｒｙＡｒｒａｙ［ｎｅｘｔＩｄ］；
ｅｖａｌ（ｅｖｅｎｔＳｔｒ）；
【００７９】
ただし、第１入力フィールドおよび第２入力フィールドに設定するべき入力支援機能が同一の場合には、機能設定部４４０は、Ｓ７００として説明した入力支援機能の解除、および、Ｓ７６０として説明した入力支援機能の設定を省略してもよい。すなわち、機能設定部４４０は、選択検出部４２５が第１入力フィールドの次に第２入力フィールドを検出したことに応じて、第１入力フィールドに対応する第１入力支援機能と第２入力フィールドに対応する第２入力支援機能を比較する。そして、機能設定部４４０は、第１入力支援機能および第２入力支援機能が一致した場合に、第１入力支援機能が代替フィールドに設定された状態のまま、代替フィールドにより第２入力フィールドへのデータ入力を受け付けさせる。ここで、入力支援機能が同一かどうかの判断は、例えば、記憶装置２０４に保持された入力フィールドに対応付けられた入力支援機能の文字列が同一かどうかによって簡易的に判断してよい。そのような簡易的な判断によれば、同一かどうかの判断自体の処理時間も僅かであるから、処理の省略により処理時間を削減して操作性を向上させることができる。
【００８０】
以上の処理により、代替フィールドは第２入力フィールドに重ねて表示される。また第２入力フィールドの表示属性は代替フィールドに受け継がれる。また、第２入力フィールドに入力済みのデータは代替フィールドにコピーされる。これにより、使用者は代替フィールドの存在を意識せずに、データ入力を継続できる。
【００８１】
図６の説明に戻る。次に、ウェブ・ブラウザ２０６は、所定の終了条件が成立したか否かを判断する（Ｓ６７０）。終了条件は、例えば、使用者がハイパーリンクをクリックするなどして別のページを要求した場合、使用者がＵＲＬ入力欄にアドレスを入力する等して別のページを要求した場合、または、ウェブ・ブラウザ２０６の実行を終了するイベントを検出した場合、などの場合に成立する。その場合には、ウェブ・ブラウザ２０６は、図６の処理を終了する。
【００８２】
一方、終了条件が成立していない場合には（Ｓ６７０）、ウェブ・ブラウザ２０６は、Ｓ６５０に処理を戻して、使用者が他の入力フィールドを選択したかどうかを判断する（Ｓ６５０）。
以上、図６および図７を参照して説明したように、本実施形態に係るクライアント装置２００によれば、ページの受信時には各入力フィールドに対し入力支援機能を設定せず、使用者の選択に応じてその都度入力支援機能を代替フィールドに設定するので、ページの受信時における処理の待ち時間を短縮することができる。
【００８３】
更に、入力フィールドへフォーカスが当たる順序と、入力フィールドのｉｄ をｔａｂＯｒｄｅｒＡｒｒａｙ 変数で管理することで、タブキーによるフィールド選択を可能とすることができる。具体的には、本実施形態においてデータの入力は本来の入力フィールドではなく代替フィールドが受け付ける。このため、ブラウザがサポートするタブキーの機能によっては、入力フィールドが入力のために選択されることは無い。これに対し、本実施形態に係る制御プログラム４０５は、入力フィールドへフォーカスが当たる順序と、入力フィールドのｉｄを管理すると共に、タブキーの押下の毎に代替フィールドを移動させることで、通常のブラウザと同様の操作性を使用者に提供できる。
【００８４】
なお、ウェブ・ブラウザ標準の機能によれば、スプレッドシート型のページなどにおいては、タブキーに加えて、または、タブキーに代えて、方向キーによっても各入力フィールドを選択できる場合がある。そのような場合においても通常のウェブ・ブラウザと同様の操作性を確保するため、本実施形態に係るクライアント装置２００は、方向キーの押下に応じた制御を行ってよい。その一例を、図８を参照して変形例として説明する。
【００８５】
図８は、本実施形態の変形例において表示部４１０に表示される画面の一例を、入力部４２０の一例と共に示す。本変形例において、表示部４１０は、１〜６行およびＡ〜Ｅ列の入力フィールドを行列状に配列して表示している。ウェブ・ブラウザ２０６の種類によっては、このような行列状の入力フィールドを、方向キーによって選択する。
【００８６】
例えば、入力フィールド（４行Ｃ列：以降Ｃ４と表記する。）が選択されている場合において、入力部４２０内が上（Ｕ）キーの入力を受け付けると、ウェブ・ブラウザ２０６は、入力フィールドＣ４の上側に隣接する入力フィールドＣ３を選択する。同じように、入力部４２０内が下（Ｄ）キーの入力を受け付けると、ウェブ・ブラウザ２０６は、入力フィールドＣ４の下側に隣接する入力フィールドＣ５を選択する。
【００８７】
また、入力部４２０内が左（Ｌ）キーの入力を受け付けると、ウェブ・ブラウザ２０６は、入力フィールドＣ４の左側に隣接する入力フィールドＢ４を選択する。同じように、入力部４２０内が右（Ｒ）キーの入力を受け付けると、ウェブ・ブラウザ２０６は、入力フィールドＣ４の右側に隣接する入力フィールドＤ４を選択する。
【００８８】
代替フィールドを導入してもこのような操作を違和感無く実現できるようにするために、本変形例においては以下のように処理をする。まず、記憶装置２０４は、制御プログラム４０５の受信時に、制御プログラム４０５の働きによって、複数の入力フィールドのそれぞれについて、行列状の配列におけるその座標位置を記憶する。これは、上記図６のＳ６３０のタブ・インデックスの生成に代えて行われる。プログラムとして表すと例えば以下のようになる。
【００８９】
ｖａｒ  ｉｎｐｕｔＦｉｅｌｄ＝ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔＢｙＩｄ（"ｉｎｐｕｔ１"）；
ｉｎｐｕｔＦｉｅｌｄ．ＩｎｄｅｘＸ＝＜入力フィールドｉｎｐｕｔ１のＸ座標を示す数値＞；
ｉｎｐｕｔＦｉｅｌｄ．ＩｎｄｅｘＹ＝＜入力フィールドｉｎｐｕｔ１のＹ座標を示す数値＞；
ｔａｂＯｒｄｅｒＡｒｒａｙ［＜入力フィールドｉｎｐｕｔ１のＸ座標を示す数値＞］［＜入力フィールドｉｎｐｕｔ１のＹ座標を示す数値＞］＝"ｉｎｐｕｔ１"；
【００９０】
以上の処理を、表示されたページ内の各入力フィールドについて繰り返せば、それぞれの入力フィールドには座標位置が対応付けて管理される。この結果生成される配列変数ｔａｂＯｒｄｅｒＡｒｒａｙは、例えば以下のようになる。但し、この座標位置における原点は行列の最も左側かつ最も上側の入力フィールドである。また、画面表示における右方向をＸ軸の正の方向として、画面表示における下方向をＹ軸の正の方向とする。
ｔａｂＯｒｄｅｒＡｒｒａｙ［０］［０］＝"ｉｎｐｕｔ１"
ｔａｂＯｒｄｅｒＡｒｒａｙ［１］［０］＝"ｉｎｐｕｔ２"
ｔａｂＯｒｄｅｒＡｒｒａｙ［０］［１］＝"ｉｎｐｕｔ６"
【００９１】
これとともに、選択検出部４２５は、図６のＳ６５０においてタブキーの押下に応じて入力フィールドを検出した処理に代えて、方向キーの押下に応じて入力フィールドを検出する処理を行う。具体的には、選択検出部４２５は、既にある第１入力フィールドを検出している状態において、方向キーの操作を検出した場合には、当該第１入力フィールドを基準として当該方向キーの方向に隣接する第２入力フィールドを上記座標位置に基づいて特定する。そして、選択検出部４２５は、当該特定した第２入力フィールドを、使用者から選択された入力フィールドとして検出する。この処理をプログラムで表すと例えば以下のようになる。
（右キー）
ｎｏｗＬｏｃａｔｉｏｎＸ＋＋；
ｖａｒ  ｎｅｘｔＩｄ＝ｔａｂＯｒｄｅｒＡｒｒａｙ［ｎｏｗＬｏｃａｔｉｏｎＸ］［ｎｏｗＬｏｃａｔｉｏｎＹ］；
【００９２】
（左キー）
ｎｏｗＬｏｃａｔｉｏｎＸ――；
ｖａｒ  ｎｅｘｔＩｄ＝ｔａｂＯｒｄｅｒＡｒｒａｙ［ｎｏｗＬｏｃａｔｉｏｎＸ］［ｎｏｗＬｏｃａｔｉｏｎＹ］；
【００９３】
（上キー）
ｎｏｗＬｏｃａｔｉｏｎＹ――；
ｖａｒ  ｎｅｘｔＩｄ＝ｔａｂＯｒｄｅｒＡｒｒａｙ［ｎｏｗＬｏｃａｔｉｏｎＸ］［ｎｏｗＬｏｃａｔｉｏｎＹ］；
【００９４】
（下キー）
ｎｏｗＬｏｃａｔｉｏｎＹ＋＋；
ｖａｒ  ｎｅｘｔＩｄ＝ｔａｂＯｒｄｅｒＡｒｒａｙ［ｎｏｗＬｏｃａｔｉｏｎＸ］［ｎｏｗＬｏｃａｔｉｏｎＹ］；
【００９５】
但し、ｎｏｗＬｏｃａｔｉｏｎＸは、第１入力フィールドのＸ座標を示し、ｎｏｗＬｏｃａｔｉｏｎＹは、第１入力フィールドのＹ座標を示し、方向キーの押下による入力フィールドの選択を実現するために、現在、フォーカスの当たっている入力フィールドのＸ座標、Ｙ座標を、ｎｏｗＬｏｃａｔｉｏｎＸ、ｎｏｗＬｏｃａｔｉｏｎＹ変数で記憶する。
【００９６】
ポインティングデバイスによりクリックされた場合は、例えば以下のようなプログラムによって、クリックされたＸ座標、およびＹ座標を取得する。
ｖａｒ  ｉｎｐｕｔＦｉｅｌｄ＝ｅｖｅｎｔ．ｓｒｃＥｌｅｍｅｎｔ；
ｎｏｗＬｏｃａｔｉｏｎＸ＝ｉｎｐｕｔＦｉｅｌｄ．ＩｎｄｅｘＸ；
ｎｏｗＬｏｃａｔｉｏｎＹ＝ｉｎｐｕｔＦｉｅｌｄ．ＩｎｄｅｘＹ；
なお、その他の動作は、図１から図７までを参照して説明した実施形態と略同一であるから説明を省略する。
以上、本実施形態の変形例によれば、表示部４１０が多数の入力フィールドをスプレッドシート型に配列して表示する場合においては、方向キーの操作によって代替フィールドを適切に移動させることができる。これにより、代替フィールドの導入によっても、使用者は方向キーなどの使い慣れたインターフェイスを使い続けることができ、作業の効率を維持できる。
【００９７】
図９は、本実施形態またはその変形例に係るクライアント装置２００として機能するコンピュータのハードウェア構成の一例を示す。コンピュータは、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００９８】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０（例えば上記表示部４１０を実現する装置である）上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００９９】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、例えば上記通信インターフェイス２０２を実現するものであり、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、例えば上記記憶装置１０４の一例であり、コンピュータが使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【０１００】
また、入出力コントローラ１０８４には、例えば上記入力部４２０と、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータの起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータのハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【０１０１】
コンピュータに提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータにインストールされて実行される。プログラムがコンピュータ等に働きかけて行わせる動作は、図１から図８において説明したクライアント装置２００における動作と同一であるから、説明を省略する。
【０１０２】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータに提供してもよい。
【０１０３】
以上、本実施形態およびその変形例によれば、多くの入力フィールドを含むページについて、そのページの表示時に各入力フィールドに入力支援機能を設定するのではなく、入力フィールドが選択される毎にその都度対応する入力支援機能を代替フィールドに設定するので、入力支援による使用者の利便性を低下させることなく、ページ表示時における処理の待ち時間を短縮できる。即ち例えば、数多くの入力フィールドに多様な入力支援機能を設定しても、ページ表示時には殆んど待ち時間を生じさせないようにすることができる。
【０１０４】
更に、代替フィールドは入力フィールドに重ねて表示され、その表示属性や入力データも引き継がれるので、使用者にとっては代替フィールドの存在を意識することなく使い慣れた操作方法を継続して使用できる。また、タブキーや方向キーの操作に対応して代替フィールを移動させるので、既存のウェブ・ブラウザと比較しても違和感のない操作性を実現することができる。
【０１０５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【０１０６】
【図１】図１は、本実施形態に係る情報システム１０の全体構成を示す。
【図２】図２は、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の一例を示す。
【図３ａ】図３ａは、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の構造を示す第１図である。
【図３ｂ】図３ｂは、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の構造を示す第２図である。
【図３ｃ】図３ｃは、本実施形態に係るユーザ・インターフェイス２０８に表示される画面の構造を示す第３図である。
【図４】図４は、本実施形態に係るウェブ・ブラウザ２０６の機能構成をユーザ・インターフェイス２０８の機能と共に示す。
【図５】図５は、本実施形態に係る記憶装置２０４のデータ構造の一例を示す。
【図６】図６は、本実施形態に係るウェブ・ブラウザ２０６により使用者からデータの入力を受け付ける処理の一例を示す。
【図７】図７は、図６のＳ６６０における処理の詳細な流れを示す。
【図８】図８は、本実施形態の変形例において表示部４１０に表示される画面の一例を、入力部４２０の一例と共に示す。
【図９】図９は、本実施形態またはその変形例に係るクライアント装置２００として機能するコンピュータのハードウェア構成の一例を示す。
【符号の説明】
【０１０７】
１０  情報システム
１００  サーバ装置
１０２  通信インターフェイス
１０４  記憶装置
１０６  ウェブ・サーバ
２００  クライアント装置
２０２  通信インターフェイス
２０４  記憶装置
２０６  ウェブ・ブラウザ
２０８  ユーザ・インターフェイス
４００  ページ制御部
４０５  制御プログラム
４１０  表示部
４１５  フィールド生成部
４２０  入力部
４２５  選択検出部
４３０  コピー部
４４０  機能設定部
４５０  フィールド制御部
【図１】
0005229871.tif 000002
【図２】
0005229871.tif 000003
【図３ａ】
0005229871.tif 000004
【図３ｂ】
0005229871.tif 000005
【図３ｃ】
0005229871.tif 000006
【図４】
0005229871.tif 000007
【図５】
0005229871.tif 000008
【図６】
0005229871.tif 000009
【図７】
0005229871.tif 000010
【図８】
0005229871.tif 000011
【図９】
0005229871.tif 000012