UIの質問:グリッドへのデータ入力を実装するための最良の方法(「エンドユーザーが最も好む方法」として定義される)または最も悪い方法についてのコンセンサスはありますか?
多くの行があるグリッドがあります。グリッドの列には、ユーザーが入力/編集できるさまざまなタイプのプロパティが含まれています。プロパティの「タイプ」は次のとおりです。
- フリーテキスト
- 数字(数字)
- 列挙値(たとえば、「高」、「中」、「低」のいずれか)
- その他(日付、期間など)
「フリーテキスト」タイプは設計が難しくありませんが(それについては質問しません)、次の2つのタイプについてはどうでしょうか。
数字
- キーボードを使用して数値を入力する場合、フリーテキスト入力を許可してから、ぼかしで検証メソッドを実行しますか?または、各キー押下を監視して、データ入力を数字のみに制限しますか?
- 一部の列のデータの構文が数値のみに制限されていることを(フォームではなくグリッド上で)ユーザーにどのように伝えますか?ユーザーが間違った(数値以外の)キーを押した場合はどうしますか?
- 「spin」または「spinner」コントロールは、標準のWindowsコントロールです。HTMLベースのグリッドでも使用するのは適切ですか?
列挙値
マウスを使用して列挙値を入力または編集するには、マウスクリックで小さなコンテキストメニューをポップすることが重要だと思います。
<select>
別の方法は、入力コントロール(つまりコンボボックス)を使用することです。列全体のコンボボックスを使用することは、テキスト値の列を使用することほど読みにくいと思います(コンボボックスはテキスト以外のインクを追加するため)。通常はプレーンテキストを表示しますが、フィールドが入力フォーカスを取得したときにそのテキストをコンボボックスに置き換える(そしてぼかし時にコンボボックスを削除する)ことについてどう思いますか?- マウス(つまりクリック)の結果ではなく、キーボード(つまり[Tab]キー)の結果としてフォーカスが変更されたときに、同じメニューをフォーカスにポップしますか?つまり、フィールドにタブで移動すると、ポップアップメニューが表示されますか?ちなみに、私が見たCSSベースのポップアップメニューは、マウスには反応しますが、キーボードには反応しません(たとえば、[上]および[下]矢印キー)。ブラウザで実行できるIntellisenseのようなデータ入力の実装を知っていますか?
例えば?
また、あなたが模範的な例だと思うものを見たいと思います。デスクトップUIやブラウザ内の回答に興味があります。
編集:[data-entry]タグを付けた別の質問(「誰かがSigma Grid(Javascriptベースの編集可能なデータグリッド)を使用したことがありますか?」)に続いて、SigmaGridの例を見ています。IMOは多くのことをうまく実行します(キーボードとジャストインタイム選択ボックスの優れたサポート)。ただし、数値フィールドのサポートは不完全な場合があります。たとえば、数値セルで「a」を押すと、警告ボックスが表示されて、間違っていることを通知することがあります(ツールチップの邪魔にならない場合があります)。および/またはセルを空(空白)のままにし、「a」を消去して何も残さない場合があります。
以下の回答のいずれかに返信して編集してください。
ただし、ここでも、フォームの主な用途を決定し、そのために最適化します。データの視覚化または分析には、一括入力とは異なるニーズがあり、キーボードユーザーを満足させることは、キーボード+マウスユーザーとはまったく異なります。
同じ表示(つまり、テーブル/グリッド)が、既存のプロパティの表示、新しいプロパティの作成、および既存のプロパティの編集にうまく機能するようにしたいです。数十のアイテム(つまり、数十行のデータ)があり、それぞれに数列しかありません(たとえば、テキスト/アイテムの説明の1列と、1つ以上の関連アイテムプロパティの1つ以上の列)。
一部のデータ/プロパティは主観的で相対的なものである可能性があります(たとえば、各アイテムの2つのプロパティは、各アイテムの「優先度」または「難易度」であり、他のアイテムと比較した場合にのみ特に意味があります)。これが私が望む理由です。すべてのデータを1つの画面にまとめて表示する:エンドユーザーがそれらを比較できるようにします。
私のアプリケーションは、比較的専門的な(初心者ではない)コンピューターユーザー向けですが、データ入力スペシャリスト向けではありません。たとえば、ユーザーはソフトウェア開発者、プロジェクトマネージャー、製品マネージャー、QA担当者などですが、ある程度は顧客でもあります。イントラネット(パブリックインターネットではない)で実行されていますが、使いやすくて楽しいことと、習得しやすいこと、または直感的に理解できることの両方が重要です。
また、キーボードユーザーの満足度がキーボード+マウスユーザーと完全に異なる理由もわかりません。単一のソリューションでどちらかまたは両方をサポートできる/すべきだと思いました。