フォームにおけるバリデーション、システム面の防御よりも過剰である必要はあるか?
フォームのバリデーション(入力文字チェック)で離脱率が大きく変わることはよくあります。
最も離脱率が低くなるのはバリデーションを行わないことですが、これではスパムも通してしまいますし、システム的に色々リスクがあります。
フォームの入力値処理として最低限妥協してはいけないのが、システムが破壊されたり、スパムメールを多量に送られたりしてしまう恐れがある入力を排除することです。
例えば、多重送信をブロックしていないと、山のように Web管理者であるあなた宛に、問い合わせ完了メールが届くことがありますが、この際、同時に入力者が入力したメールアドレス宛にも『問い合わせ承りました。』という趣旨のメールを送信していませんか?
多重送信をブロックしていないと、あなたの Webサイトから、世界中にスパムメールがばらまかれる可能性があります。
他にも当然、DB を操作できてしまう可能性がある入力や、各種コマンド等、エスケープ処理すべき事は多々あります。
自分にも他人にも被害を与えないというバリデーションができた上で、考えるのは、入力データをより有用なものにするためのバリデーションかと思います。
「全角カナのみ」とか「半角数字のみ」とか、フリガナ、電話番号ほか、色々な入力項目にバリデーションは存在しており、リアルタイムにエラーを出したり、送信ボタンをクリックした際にエラーを出したりなどをしていますが、一度振り返って考える必要があります。
ですが、電話番号が半角数字でないと困るのでしょうか?実際は困ると思いますが、それは結果として半角数字である必要があるだけで、入力者に強いる必要は無いですよね。全角で入力された後、半角にシステム側で置換してあげればいいのではないでしょうか。ハイフン有り無しも、そんなに重要ですかね。
メールアドレスに至っては、実質的に使用できない半角文字は存在しないので、『全て半角で @ を含み、@ 以降が . を含む 5 文字以上』というバリデーション以外をするだけ無駄な気がします。
できるだけ、入力が面倒という印象および実感をもたれないよう快適な入力環境を用意し、かつ、悪意のある入力は排除し、エラーが出にくい(特にエラーの意味が分からない状態が発生しない)設計を検討しましょう。
たかがフォーム、されどフォームです。マーケターは、システムに明るい方にも協力してもらい、離脱率を低減しつつ、システム的なリスクを負わないフォームを目指しましょう。