Webデザインにおけるフォームデザインテクニックのまとめ

Webデザインにおけるフォームデザインテクニックのまとめ

「脳が多数の領域間の関係を処理できるように、入力は論理的なグループに分割する必要があります。」 – HTML の決定版ガイド

Web アプリケーションでは、データの入力と構成を処理するために常にフォームが利用されていますが、すべてのフォームが同じように作成されているわけではありません。入力領域の配置、そのラベル、操作方法、周囲の視覚要素は、ユーザーの行動に多かれ少なかれ影響を与えます。

フォームレイアウト

ユーザーがフォームを完了するのにかかる時間はできる限り短くする必要があり、収集されるデータはユーザーにとって馴染み深いもの (名前、住所、支払い情報など) であることを考慮すると、垂直に揃えられたラベルと入力フィールドがおそらく最適です。各ラベルと入力ボックスのペアを垂直に配置することで近接感が生まれ、一貫して左に配置することで目の動きが減り、処理時間が短縮されます。ユーザーは下方向へ移動するだけです。

このレイアウトでは、太字のラベルを使用することをお勧めします。これにより、ラベルの視覚的な重みが増し、目立つようになります。太字のテキストがなければ、ユーザーの観点からはラベルと入力ボックス内のテキストはほぼ同じになります。

フォーム上のデータがわかりにくい場合や論理的にグループ化するのが難しい場合 (住所の複数のコンポーネントなど)、左揃えのラベルを使用すると、フォームの情報を簡単にスキャンできます。ユーザーは、入力ボックスに邪魔されることなく、左の列のラベルを上下に見るだけで済みます。ただし、この場合、ラベルとそれに対応する入力ボックス間の距離は通常、ラベルが長くなることによって長くなり、フォームへの入力時間に影響する可能性があります。ユーザーは、対応する 2 つのラベルと入力ボックスを見つけるために、目を前後に動かす必要があります。

そこで、ラベルと入力ボックスの接続がより近くなるようにラベルを右揃えにする代替ソリューションが作成されました。しかし、その結果、左側のギザギザの空白とラベルにより、ユーザーがフォームのコンテンツをすばやく取得することが難しくなります。西洋諸国では、人々は左から右に書くことに慣れているため、この右揃えのレイアウトはユーザーにとって読みにくくなります。

視覚的な要素

「左揃えのラベル レイアウト」には、検索が容易で垂直の高さが低減されるという利点があるため、その主な欠点 (ラベルと入力フィールドの分離) を修正したくなるものです。

解決策の 1 つは、背景色と区切り線を追加することです。異なる背景色により、垂直ラベルの列と垂直入力ボックスの列が作成されます。ラベルと入力ボックスの各グループは、明確な水平線で区切られます。これは良いように聞こえますが、まだ問題が残っています。

以前の形式(ユーザーの主観的な視覚的区別)と比較すると、中心線、背景色のセル、水平線など 15 個の視覚要素が追加されます。これらの要素はユーザーの注意をそらし、ラベルや入力ボックスなどの重要な要素に集中することを困難にします。 エドワード・タフテは、「情報の差別化は必然的に異なる認識を生み出す」と指摘しています。言い換えれば、レイアウトに貢献しない視覚要素は常にレイアウトを乱すことになります。左側のタブをスキャンしようとすると、目が絶えず中断され、水平線、セル、背景色について考えるために立ち止まってしまいます。

もちろん、これは背景色や線を放棄することを意味するものではありません。関連するエリア情報を分割するのに、依然として非常に効果的です。たとえば、細い水平線や明るい背景色を使用すると、関連するデータを視覚的にグループ化できます。背景色と線は、フォームの主要なアクション ボタンを区別するのに特に効果的です。

一次および二次操作

フォームの主なアクション (通常は「送信」または「保存」) には、強力な視覚的重み (上記の例では、明るい色、太字のフォント、背景色など) が必要です。これは、ユーザーにフォームの記入が完了したか、もうすぐ完了するというヒントを与えることと同じです。

フォームに「続行」や「戻る」などの複数のアクションがある場合は、セカンダリアクションの視覚的な重みを減らすことが理にかなっています。これにより、ユーザーによる潜在的な操作エラーのリスクが最小限に抑えられます。

上記の内容はフォームをより適切に設計するのに役立ちますが、レイアウト、視覚要素、コンテンツの組み合わせは、ユーザーによるテストとデータ分析 (完了評価、エラー報告など) が必要です。

<<:  CSS3は水平方向の中央揃え、垂直方向の中央揃え、水平方向と垂直方向の中央揃えのサンプルコードを実装しています。

>>:  HTML の値属性と名前属性の機能と使用法の紹介

推薦する

Ubuntu 20.04 は Wi-Fi に接続します (2 つの方法)

最近Ubuntu 20.04をインストールしましたが、Wi-Fiに接続できず、Wi-Fiアイコンも表...

遭遇したいくつかのブラウザ互換性の問題について簡単に説明します

背景ブラウザの互換性の問題を解決するのは非常に面倒なことです。高度な技術はそれほど必要ありませんが、...

Vue+Springbootでインターフェースシグネチャを実装するためのサンプルコード

1. 実装のアイデアインターフェース署名の目的は、リクエストパラメータが改ざんされていないか、リクエ...

JSはショッピングカート効果の単純な加算と減算を実装します

この記事の例では、ショッピングカートの簡単な追加と削除を実現するためのJSの具体的なコードを参考まで...

Linux LVM 論理ボリューム構成プロセス (作成、増加、削減、削除、アンインストール) の詳細な説明

Linux LVM論理ボリューム構成プロセスの詳細な説明多くの Linux ユーザーは、オペレーティ...

MySQL 起動時に報告される ERROR:2002 の分析と解決方法

序文この記事は主にMySQL起動エラー2002の分析と解決方法を紹介しています。参考と勉強のために共...

Vueでaxiosをカプセル化する方法

目次1. インストール1. はじめに3. インターフェースルートアドレス4. 使用例4.1 ダウンロ...

JavaScript で文字列を数値に変換する方法

目次1.parseInt(文字列、基数) 2. 数値() 3.parseFloat()主なメソッドは...

フロントエンドは画像を遅延ロードする方法を知っている必要があります(3つの方法)

目次1. 遅延読み込みとは何ですか? 2. 遅延読み込みを実装する🌄: 2.1 最初の方法: 2.2...

Apache Tika を使用してファイルが破損しているかどうかを検出する方法

Apache Tika は、さまざまな形式のファイルからファイル タイプを検出し、コンテンツを抽出す...

TypeScriptの基本型の詳細な説明

目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...

Vueは画像切り替え効果を実現

この記事の例では、画像切り替え効果を実現するためのVueの具体的なコードを参考までに共有しています。...

Node.js での組み込みモジュールとカスタムモジュールの実装

1. コモンズCommonjsはNode.jsのカスタムモジュールですCommonjs 仕様は、Ja...

MySQL のロングトランザクション例の詳細な説明

序文: 「MySQL 入門」シリーズの記事は終了しました。今後も引き続き MySQL に焦点を当て、...