私が開発するシステム/アプリにおいて、大多数の場合、次のようなUIルールにしています。
・全角と半角どちらでも入力可(特に数字やアルファベットの入力欄)
・ひらがなでもカタカナでもどちらでも入力可(例えばふりがな欄など)
・ハイフンは入れても入れなくてもよい(例えば電話番号など)
システム側の要件として、数字は半角じゃないとダメ、電話番号は数字だけで管理しているからハイフンを入れられると困る、という場合もそれなりにあります。
メールアドレスに全角文字を入れられてしまうと、実際の送信処理時でエラーになることもあります。
全角で数字を入れられてしまうと、DBのint型の列に値を入れるときにエラーになってしまう、ってこともあります。
ところで全角と半角って、システム屋さんからすればハッキリ別物と認識はしているのですが、一般のパソコンユーザーは、全角と半角を区別せずに使っている人も多いです。
数字やアルファベットが、標準で半角に変換されるのか、それとも全角に変換されるのか、これは各利用者ごとのマシン環境に依存するものです(Windowsならコントロールパネルで設定できる)
だからといって、私が作るシステムでは、システムに合わせた入力をユーザーに強制することはほとんどありません。
なぜなら、さまざまな入力を受け付けても、適切な変換をしてからDBに保存したり処理にかけるようにしているからです。
最初に3つの事例を挙げましたが、.NETであれば
・全角文字のうち、半角に変換できるものを、一括で半角変換する
・ひらがな文字を、カタカナ文字に変換
・ハイフンやアンダーバーを、文字列から一括で除去
といった処理を簡単に行うメソッドが、標準で存在するので、それを使っています。
半角と全角を入れ間違えたために、何度もエラーメッセージが出て、めんどくさくなったのでそのサイトの利用をやめた。
こんな理由で顧客を失うのはとてももったいないですね。
世間には、システムに合わせた入力要件を要求するサイトが、まだまだたくさんあります。
ぜひとも、変換ロジックを用意して、柔軟に入力を受け付ける体制を作ってほしいと思います。
そんなに難しいことではありませんからね。