# フォーム入力支援

ウェブを閲覧して回っていると、ウェブフォームに特定の内容を記入しなければならないことがあります。それは、ウェブメールや掲示板を利用するためのログインデータであったり、オンラインショップでの自分の住所であったりします。訪れる度に入力し直さなければならないウェブページもありますが、iCab ではこの手順を省いたり簡略化することができます。

iCab はウェブフォームへの入力を簡略化し迅速化するいくつかの機能を実装しています。入力フィールドベースの自動補完では、ウェブフォームのテキストボックスに入力を始めると、同じ文字で始まる語句が自動的に入力補完されます。これにより、2、3 文字を入力するだけで、ユーザ名やメールアドレスなどを入力し終えることができます。他にもiCab は、ツールバーのボタンをクリックするだけでウェブフォームに入力した内容を保存したり、その内容を再び入力し直したりする機能を実装しています。

ウェブフォームへの入力支援機能に関しては、「ツール」メニューから利用できるフォームマネージャで管理できます。

iCab はフォームデータを保存するのに Mac OS のキーチェーンアプリケーションを使用します。従って、すべてのデータは安全に暗号化されて保存されます。ただし、キーチェーンにフォームデータの保存と呼び出しを許可させる必要があります。特に iCab の新しいバージョンをインストールした場合は、古い iCab によって保存されたフォームデータを新しい iCab がアクセスすることを許可するかどうかキーチェーンに尋ねられます。この確認はエラーではなく、通常の挙動ですので、許可するようにします。

## フォームマネージャ

フォームマネージャウインドウには、3 つのタブがあり、それぞれに異なったタイプの入力支援機能に関する設定が用意されています。

入力フィールド

  ここは入力フィールドベースの自動補完に関する設定です。いろいろなウェブサイトで入力する可能性があるような語句をここの一覧に登録します。名前や住所、メールアドレスなどがそれに当たります。

  この自動補完が有効になっていると、ウェブフォームのテキストボックスへの入力に合わせて、iCab はここの一覧の中から語句を上から照合し、適合したものをそのテキストボックスに自動的に補完します。これにより、2、3 文字を入力しただけで目的の語句を入力し終えることができます。

  この自動補完はすべての入力フィールドが対象になるので、初めて訪れる未知のウェブページでも入力作業を簡略化できるかもしれません。

すべてのフォーム

  この自動入力は、入力フィールドベースの自動補完のように入力フィールドに別々に補完するのとは異なり、表示中のウェブページの中の対象となるすべての入力フィールドに一括して自動入力します。これはすべてのウェブサイトが対象となります。

  iCab はここの一覧に登録されているデータに基づいて、ウェブページでの入力フィールドを埋めようとします。従って、まず最初にここの一覧にデータを登録しなければなりません。ここでのデータは、どのウェブサイトでも利用される可能性があるので、登録する項目は特定のウェブサイトに限定的なログインデータやパスワードよりも、名前や住所、メールアドレスなどが適しています。

  一覧の各項目は「フィールド名」と「値」という二つの要素を持ちます。「フィールド名」はウェブページによって内部的に入力フィールドに与えられた名前（name属性）で、「値」はその名前を与えられた入力フィールドに iCab が自動入力する語句になります。残念なことに、標準的な規格がないので、フィールド名はウェブページによってまちまちになります。従って、この機能による自動入力が成功する確率はあまり高くありません。自動入力できる可能性を高くするために、フィールド名にはカンマ区切りで複数を入力できます。

  例：

  フィールド名 | 値
  --- | ---
  city,stadt,ort,town | 東京都
  country,land | 日本
  email,mail | dummy@example.com
  address,adresse,street,strasse | 中央区日本橋

  ウェブページで使用されている言語に関わらず、フィールド名には英語が使用される場合が多いようです。そこで、この例では複数の言語でフィールド名を指定しています。項目あたりのフィールド名の数が増える程、自動入力できる可能性は高くなります。しかし、フィールド名にランダムな文字列が与えられているようなウェブページではこの機能による自動入力は難しいでしょう。

  「表示」メニュー＞「フォームに入力」と選択するか、ナビゲーションツールバーの「フォーム」ボタン（表示されていない場合は「表示」メニュー＞「ツールバーをカスタマイズ」で追加できます）をクリックすることで、自動入力を実行できます。

特定のウェブサイト

  この自動入力は、特定のウェブサイトのフォームが対象になります。この機能を使用するには、まずフォームのあるウェブページを訪れて通常通りにフォームに入力し、「表示」メニュー＞「フォーム入力を保存」と選択するか、ナビゲーションツールバーの「フォーム」ボタン（表示されていない場合は「表示」メニュー＞「ツールバーをカスタマイズ」で追加できます）をクリックします。すると、iCab はウェブページの URL と入力されていたデータを保存し、この一覧にそのことを表示します。

  再び同じウェブページを訪れて、「表示」メニュー＞「フォームに入力」と選択するか、ナビゲーションツールバーの「フォーム」ボタンをクリックすることで、自動入力を実行できます。

  「ウェブページを開いたときに自動的にフォームに入力」という項目にチェックが入っている場合は、ウェブページを読み込んだ直後に自動的に自動入力が実行されるので、メニューやボタンを操作する必要はなくなります。

  iCab はフォーム入力を保存する際に、フォームの内部的なデータやパラメータを保存します。そして、自動入力を実行する前に、対象となるフォームの保存済みデータと現在の内部的なデータを比較し、安全なフォームであるか、それともパスワードやフォームデータを騙し取る恐れのあるような偽装フォームであるかを確認します。

  他のウェブブラウザの多くは不注意にもこのような確認をせずにフォームにデータを入力し送信してしまいます。これは、頻繁にレイアウトや内部データを変更するようなウェブページでも自動入力機能が働くようになるので、便利であるかのように感じさせてしまいますが、偽装サイトでユーザの気がつかない内にパスワードなどの個人情報が騙し取られる危険性もあるのです。

  不正なフォームに個人情報を記入しないように、iCab は厳密に確認を行います。しかし残念なことに、正当ではあるけれども、訪れるたびにフォームの内部的なデータが変わってしまうウェブページでは、厳密な確認を実行すると自動入力することができなくなります。正当なフォームで頻繁にデータが変更されるのは、一般的には「セッション ID」と呼ばれるものが原因になっていることが多いようです。セッション ID はユーザを識別してその行動を追跡したり、サービスが重複することを防止するために利用されたりします。

  セッション ID などによる変更が原因で自動入力できなくなることを回避するために、iCab に保存されているフォームデータの内容は編集できます。「特定のウェブサイト」タブの一覧から対象の項目をダブルクリックすると、フォームデータの詳細が一覧表示されます。一覧の各項目は「名前」と「値」から構成されています。「名前」はフォームを構成している要素の名前で、「値」はその構成要素のデフォルトの値です。「値」にランダムな文字の羅列が指定されている場合、それがセッション ID である可能性があります。この値の代わりにワイルドカードの「*」（半角のアスタリスク）を指定すると、iCab は対象の名前の要素にどんな値が設定されていても受け入れるようになります。このワイルドカードは、値の文字列の一部分だけを代用することにも使用できます。ただし、フォームデータに変更を加えるのには注意が必要です。変更が多くなる程、危険性が増すことを忘れないでください。

  他に、フォームの確認を適度にするように設定できます。これにより、多少の変更は無視するのでリスクは高まりますが、自動入力できる確率も高くなります。