フォームに全角しか入力できないサイトが多いのは何でなんだぜ?

家のネット接続をADSLから光ファイバーに変更するついでに、ISPの契約体系を変更したりいろいろと手続きをしているんですけど、入力フォーム(特に住所欄)の入力文字を全角に制限してる所って多いですよね。あれ、なんでなんでしょう?


例えば、こんな風に入力すると怒られます。

京都市中京区俵屋町3-29-8 御池ビル802号室


正しくはこう入力してくれということらしい。

京都市中京区俵屋町3-29-8 御池ビル802号室


もしかすると日本語入力環境ではこっちの方が自然なのかも知れませんが、日頃「英数字は半角だろJK」と思ってる自分としてはどうも入力後の感じが気持ち悪くていけない。なんなんでしょうかこれ。単に、プログラマの手抜きなんでしょうかね?(やろうと思えば半角英数で入力された文字を全角にとか、全角英数で入力されたものを半角にとか簡単にできる…てか普通誰でも出来るよね?)


そんなこと思って少し調べてみたら人力検索で質問している人がいました。

住所欄の番地はなぜ全角?
ネットで買い物をしていて、住所を入力したら「住所欄には全角しか使えません」とエラーがでて腹がたったことありませんか?
僕はもう「数字=半角」(全角は単なる文字)というのに慣れすぎてるので、いつも番地やマンションの部屋番号はつい半角で入れちゃって毎回毎回エラーになります。どう考えても不親切なんですが、あれって何でなくならないのでしょうか?

仮説1.半角数字を全角にシステム側で変換するのが難しい(Javaとかだと難しい??)
仮説2.実はほとんどの人は住所のあとの番地を打つ時点で半角に切り替えないので、全角のままの方が自然?

そもそもあの全角チェックって何のエラー回避なんでしょうか
 


人力検索なので明らかにこれが正解!というものはなくて全て仮説ではあるんだけれども、なるほどと思う回答もいくつかありました。

列挙してみると、

  1. 半角カタカナ対策ではないか説
  2. 伝票に打つ時に機械の方で半角対応できない所が多いんじゃないか説
  3. ハイフンを長音記号(ー)で入力してしまうユーザを回避するためだよ説
  4. フロントはWebだけどバックエンドがオフコンや汎用機で、データベースの住所を入れる部分が”全角のみ”という事情なのではないか説

という感じ。


まさに諸説紛々って感じなんですけど、実際問題の話として、最近作られたWebサービスでそんな制限してるのってあんまり無いと思うんですよね…仮にXSS対策で半角を入力させないようにしているとしても、きちんとサニタイズして半角で何を入力されても大丈夫にするのが筋ってもんですし、半角カタカナについても同様です。世にあるプログラム言語の大半がほどよく枯れている今、その程度のことが出来なくてどうするって感じですよね。

長音記号の話は、おっと思いましたけどそれだけが問題なら別に別途チェックすればいいだけの話ですし、バックエンドの機械が全角のみだとしてもそれはその機械への出力時に調整すべき(ていうか普通入力時じゃなくて出力時にするんじゃないんですかね?)だと思いますし…ユーザの入力に対して全角/半角を制限する理由としてはいまいち弱い気がしますねぇ。もうちょっとちゃんと作ればいいのになぁ。


もちろん、「処理プログラムのコア部分が古いままだけどそこに金掛ける必要もないし、動いてるんだから別に不安定かもしれないプログラムに置き換える必要はないだろ」というのは、それはそれで十分に説得力があると思います。そりゃそうだ。

でもやっぱりなんかなー「自分の部屋番号を全角で入力してる自分が嫌だ」。結局そういうことなんですよね。多分、多くの人には関係ないことなんでしょうけどね。うん。