web-dev-qa-db-ja.com

結果のフィルタリング:並列選択:チェックボックスとリンク

同僚との話し合いを解決して、検索絞り込み動作の一般的な方法について洞察を得ようとしています。

私は ファセット検索フィルターを設計するためのベストプラクティス を読み、主題に触れるいくつかのディスカッションを見ましたが、フォーム要素の誤用であると思われるものについてはまだ何も遭遇していません。

確かに、標準のフォームで複数の選択肢を提供する場合は、チェックボックスを使用します。チェックボックスが結果の絞り込みメニューにどのように組み込まれたかについても理解しています。結局のところ、並列選択を提供するときは、複数の選択が利用できることを明らかにする必要があります。

ここで私はいくつかの助けが必要です:

これが間違っている場合は修正してください。フォーム要素を使用すると、<form>、送信ボタンを提供する必要があります( W3Cリファレンス )。それで、並列選択を使用して結果を絞り込む場合、多くのWebサイトで例外が発生するのはなぜですか?具体的には、自動更新の結果について話しています。

これはフォーム要素を本質的に誤用している場合ではありませんか?つまり、フォームに送信ボタンが必要で、チェックボックスがフォームの送信を開始することを目的としていないため、多くのサイトがデフォルトの動作をオーバーライドするのはなぜですか?並列選択のチェックボックスを削除する方が理想的です。

4
e_known

W3Cリファレンス では、次のものが目立っていたので、フォーム要素の誤用ではないと思います。

  • 送信ボタンの使用目的は、フォームに入力されたデータを送信するHTTPリクエストを生成することです

ただし、[テスト]セクション(強調が追加されています):

  • [送信ボタンを持つ]が成功基準の十分な手法である場合、このテスト手順に失敗しても、必ずしも他の方法で成功基準が満たされていないことを意味するわけではありません、それだけこの手法は正常に実装されておらず、適合を主張するために使用することはできません。

私たちが持っているのは、「HTTPリクエスト[...]がフォームに入力されたデータを送信する」という要件であり、1つの手法は送信ボタンを使用することです。それがあなたが使用することを選択した手法である場合、テストするには、すべてのフォームに送信ボタンがあることを確認します。

ただし、クライアント側のスクリプトを使用して、ユーザーが要素をクリックしたときに結果を自動更新することは、HTTP要求を送信する要件を満たすもう1つの手法です。

本当の質問は次のとおりです:ユーザーに最適なものは何ですか?

ファセットと結果の自動更新には、特定のユースケースに適した有効な手法となる特定のユースケースがあります。ファセットを選択することによって、結果のデータセットに他のファセットの一部が含まれていない場合は、そのことをユーザーに示し、ユーザーがそれらを選択できないようにする必要があります。

選択するたびに、自動更新によってユーザーに即時かつ正確なフィードバックが提供されます。これは、オプションAを選択することでオプションBを検索から除外し、無効/望ましくない状態になるアクションを実行しないように通知します。

これがまさにファセット検索のメリットです。ユーザーエクスペリエンスから無関係なデータを排除できます。

ユーザーが開始するポストバックを待機する送信ボタンを使用すると、ユーザーが定義したファセットの結果が存在しないことを説明するために、より多くのクリックとメッセージングが必要になると主張できます。この設計では、ユーザーにもサービスは提供されません。

実際の目標を達成しようとしている実際の人々のための相互作用を設計するとき、仕様の文字はガイドラインの詳細です。ルールを理解し、それに従うことは良い習慣ですが、より良い体験が得られるようにそれらのルールを「破る」ことはあなたの特権でもあります。

この場合、リンクの言語が代替案を指定せずに1つの手法にすぎないことを示唆しているため、送信ボタンをhave持つことは「ルール」であることに本当に同意しません。

2
Charles Wesley