だから私は最近フォームに適用するためのベストプラクティスのリストをまとめており、そこには相反する研究がたくさんあります。私はブログからHCIカンファレンスレポートまで、あらゆるものを調べてきました。それで問題は、私が何かを逃した、または研究を通して明らかに反駁された何かを含んでいたのでしょうか?
以下はテーブルであるはずですが、UXはそれらを適切にレンダリングしていないようです
Short form with simple/short labels = On top or to the left, but right aligned
Short form and complex/long labels = To the left and left aligned
Long form and simple labels = To the left, but right aligned
Long form and complex labels = To left and left aligned
成功時のリダイレクトにより、「送信された情報を再送信するかキャンセルしますか?」などのメッセージが表示されなくなります。また、ユーザーによるページの更新と再投稿のトリガーを停止します。
あなたはこれらのリンクでより多くの情報を得ることができます:
http://www.jimthatcher.com/webcourse8.htm
http://www.afb.org/section.asp?SectionID=57&TopicID=167&DocumentID=2375
いいリスト。 JavaScriptを使用していないユーザーがフォームをどのように機能させる必要があるかを詳細に説明するだけで追加できます。
あなたが言うように、研究はここで矛盾します。私には、これらの問題に対する一方向の答えはありません。これらの多くは、それらが使用される状況により依存していると私は言うでしょう。リストのすべての項目をチェックして完了したと考えるのではなく、一連の一般的なアイデア( Pau Giner 回答など)を適用する方が良い場合があります。
私は1つの一般的なルールを追加します:ユーザーに親切にします。
たとえば、there are errors in the form
と言って障害を与えないで、代わりにalmost there! can you fill in that field as well?
のように言います。別の例は、フォームに問題があると言った後、フィールドに入力したことを記憶することです。
しかし、これも例にすぎません。私には、そのような一般的なルールを覚えておく方が良いでしょう。
まず、オプションとしてマークされたフィールドは、通常は避ける必要があります
特にフィールドのセットと組み合わせて使用する場合は、必須フィールドとオプションフィールドの両方にマークを付けると非常に良い場合があります。また、たとえば、> Advanced options
セクションのすべてのオプションフィールドを非表示にすることができます。
送信ボタンはフォームの下部に表示され、右揃えになっている必要があります
これは、フォーム全体の外観、およびラベル、フィールド、およびページの残りの配置方法によって異なります。 Daniel Newman とも言われています。
フォームの上部に、フォームに修正が必要なエラーがあることを示すメッセージが表示されます
特定のフィールドの問題を説明する各フィールドの個別のエラーメッセージは、ラベルとフィールドの上に表示されます。
「エラー」が1つしかない場合は、一般的な「フォームにエラーがあります」とユーザーに任せるのではなく、そのエラーの詳細を直接上部に示します。
[選択]プレースホルダーは、アクションとして書き換えられたラベルを反映する必要があります
その件名についてはより複雑な答えがあります。 [必須のドロップダウンリストのデフォルトオプションは何ですか? を参照してください。
[ラベルとしてのプレースホルダー]フォームを送信する前に確認することが困難になるため、これらは避けてください。
短いフォーム(最大5つのフィールド)では、問題である必要はなく、よりクリーンなフォームを作成できます。また、入力するフィールドについて常にフィードバックがある場合は、送信する前にすべてをチェックする必要が少なくなります。
[日付フィールド]カレンダーの日付ピッカーを使用して拡張する必要があります
希望する日付に依存します。本当に1日の精度が必要ですか?たとえば、将来的に何かを思い出させるように人々に依頼する場合、tomorrow, Saturday, next week
のリストでも十分です。
フォームが正常に完了したときに確認ページにユーザーをリダイレクトします
確認ページは常にthing successfully added
とは限りませんが、追加されたものを表示することもできます(ここに回答を投稿するときなど)。リダイレクト部分(更新警告を防ぐ)は良いことですが。
お役に立てば幸いです。
非常に、非常に役立つ投稿。私がお勧めする唯一の変更:
ボタン
送信ボタンはフォームの下部に表示され、右揃えになっている必要があります
送信ボタンの配置はフォームのスタイルに依存すると私は主張します。多段階の「ウィザード」では、次/続行/送信を右揃えにすることに同意します。ただし、より単純なフォーム(特にボタンが1つしかない場合、戻る/前のボタンがない場合)では、ボタンを入力フィールドと左揃えにして、視覚的な固定を最小限に抑え、ユーザーの視覚パスを追跡する必要があると考えています(出典: "フォームボタンを配置する方法" & "フォームのボタンを配置する最良の方法" )。
また、このセクションに追加するには、送信ボタンに決して「送信」というラベルを付けないでください。むしろ、それらはタスク固有でなければなりません...例「アカウントの作成」、「今すぐ購読」など(出典: "フォームのボタンで送信と言ってはいけない理由) )
一般的でありながらフォームデザインに適用できるいくつかのデザイン原則:
不要なものを避けます。フォームの目的とは無関係の情報を尋ねないでください。特定の形式を要求する代わりに、柔軟な入力、構造化入力、または空白入力アプローチを使用します。
情報を整理します。レイアウトに関するほとんどの原則はすでにコメントされています。
ユーザーにガイダンスを提供します。ユーザーは、何を、なぜ、どのように答えるかを明確にする説明が必要です。
故意に物事を難しくしないでください。オプションを非表示にしたり、ユーザーを強制的に選択したりしないでください(ニュースレターの購読など)。代わりに利点を説明してください。
数か月前、私はそれらの原則について投稿しました。詳細と例は http://pauginer.tumblr.com/post/7080830292/form-design で入手できます。
フォームをデザインする方法よりも、収集するデータについて、いくつか追加できます。
多くのWebページおよびサービスは、ユーザーについて知る必要がある2つのことの1つだけであることが多い場合に、ユーザーに関するあらゆる情報を要求します。たとえば、未成年者に不適切なコンテンツを提供している場合、本当に尋ねる必要があるのは「16歳以上ですか?」だけです。 -私の名前、メール、電話番号、生年月日を要求しないでください。
ユーザーが何度もデータを入力するのは面倒なだけではありません。ユーザーに複数回の送信を行わせる場合、同じデータを入力して重複レコードを作成する可能性は常にありますわずかに異なる。 John Smithが1つのフォームで「John William Smith」を送信し、次のフォームで「John W Smith」を送信するとします。これらの重複したレコードは、あなたの両方にとって重大な頭痛の種となりますandユーザーは、さらに将来のことです。
特定のデータを示唆するユーザーに関する他の情報がある場合は、フォームのオプションを適切にデフォルト設定してみてください。たとえば、ユーザーがフランスのIPアドレスから接続している場合は、「国」を「フランス」に設定します。ユーザーにソフトウェアのダウンロードを提供し、ユーザーエージェントがLinuxの使用を提案している場合は、デフォルトでLinuxバージョンを提供します。
個人的には、必須フィールドを示すためにアスタリスクを使用しません。デフォルトでは、すべてのフィールドが必須です。追加のオプションフィールドの横に「(optional)」と入力します。
両側で検証:
ux用のクライアント側。理想的には、html5属性だけでこれを実現できます。
サーバー側、検証用;すべてのフォームコントロールを検証して、フォーム送信が確実に成功するようにします。
input:reset
要素は"cancel"
のラベルで使用でき、shouldを使用できます。また、input:submit
ボタンとは明らかに異なるように見える必要があります。多くの場合、キャンセルボタンは追加機能を実行する必要があります(たとえば、ユーザーを前のページ/ステップ/状態/何にでも戻す)機能の一部は、すべてのデータのフォームをクリアすることも必要です。