Webフォームで住所などを入力する時に
数字入力のところで、
●電話番号は半角
●住所の番地は全角
●郵便番号は半角
となっているサイトって結構ありますよね。
正しい数字を入れているにもかかわらず、
上記の「半角・全角」の決まりを守らないと
エラーになって再入力させられます。
すごくややこしいんですが、
なぜこのようになってるのでしょうか?
不親切な仕様ですよね
例えば、このようには出来ないのでしょうか?↓
●電話番号も住所の番地も半角(または全角)
に統一する。もしくは
●半角でも全角でもどちらでも良い
上記どちらかには出来ないものなのでしょうか?
上記を実現するには、プログラムの実装が難しいんでしょうか?
もちろん、上記を実現していて、わかりやすいユーザインターフェースのサイトも
あるにはあると思いますが。
No.1
- 回答日時:
>上記を実現していて、わかりやすいユーザインターフェースの
>サイトもあるにはあると思いますが
と御自分でも言及されているとおり、実現は可能です。
もっとも、「●半角でも全角でもどちらでも良い」以外は、
「他人の考え方は違うかもしれない…」視点で見ると、
どれも一長一短で程度は変わりません。
>実現するには、プログラムの実装が難しいんでしょうか?
難しい、難しくないで判断する事項では無いですね。
「手間がかかる(=手間賃が増える)」
「面倒(=貰えるお金は変わらないのに、機能追加しなきゃいけない)」
「何も考えてない(=業者まかせ→『面倒』へ)」
等が主な理由でしょう。
この回答への補足
早速のご回答ありがとうございます!
すみません・・・私の読解力がないせいで不明点がいくつかあるので
再度わかりやすいご回答頂ければ幸いです。。。
> 難しい、難しくないで判断する事項では無いですね。
> 「手間がかかる(=手間賃が増える)」
「半角でも全角でもどちらでも良い」という仕様にすると、実装に手間がかかる
という事でしょうか?手間がかかる理由は、実装が難しいからですか?
●電話番号は半角
●住所の番地は全角
●郵便番号は半角
のような仕様に決めた理由は
上記のようにするのが、「一番手間がかからない」と考えてるという事でしょうか?
> 「面倒(=貰えるお金は変わらないのに、機能追加しなきゃいけない)」
機能追加の前の段階、一番最初の、Webフォームを作るにあたっての仕様を決める段階で
●電話番号は半角
●住所の番地は全角
●郵便番号は半角
のような仕様で行こうと考える理由って何なのでしょうか?
最初からこんなややこしい仕様にしなければ、機能追加の必要もないわけですし・・・・不思議です
> 「何も考えてない(=業者まかせ→『面倒』へ)」
その、作る側(実装する側)の業者は、仕様をまかされた時に
●電話番号は半角
●住所の番地は全角
●郵便番号は半角
という仕様に決める理由は何なんでしょうね・・・
「手間がかからない」=「難しくない」から?
No.2
- 回答日時:
郵便番号と電話番号は通常、データベース上では数字として扱いますので半角である必要があります。
これが全角で入っていても、一応一文字ずつ判別する処理を入れてそれを置き換えてというようなことは可能と言えば可能ですが、単に面倒というのとそういう無駄な処理をはさむとバグの温床になるので、様々な文字コードでの対応も考えてテストしなければならないしとか、そういう手間を考えると最初から半角しか受け付けませんとしていた方がはるかに楽で確実だからです。ということで実装は難しくないが面倒で、且つそんな面倒なことをやったとしても得られるメリットが然程ない。
住所の場合はここは文字列扱いになるので番地の部分は半角でもデータの受付自体は問題ないですが、中には受け付けれない仕様のDBもあるかもしれませんし、それよりもそのデータを二次加工する時(例えばハガキ・封筒などにまとめて印刷するとか)に全角の方が対応がしやすいというのもあるかと思います。またここの部分は数字が入るのが番地の部分だけとは限らない(町名などに数字が入る場合もある)ため、自動処理での置き換えは非常に難しいです。
こちらのケースはどちらでも良いというパターンも結構あるとは思いますが、基本的に自由入力の欄になるため自動処理での置き換えはほぼ不可能でしょう。
この回答への補足
ご回答ありがとうございます!
面倒な上にメリットがないという点は理解しました。
更に質問なのですが。。。。
【郵便番号、電話番号の入力について】
「郵便番号、電話番号などとして入力された数字を一文字ずつ判別して、全角⇔半角に置換」
という処理は、実装・テストなど全て含めると、どれくらいの期間がかかるのでしょうか?
膨大な期間がかかりますか?
例えば、最初の一度だけ上記のような処理を作ってクラス化して
それを後で、色んなシステムで使いまわすだけ、という方法って可能なんでしょうか?
それとも、こういうのはクラス化とかは出来ない処理になるんでしょうか?
【住所の入力について】
住所内の数字部分を全て全角で入力させるようにする理由は
●全角を受け付けれない仕様のDBを考慮して
●データを二次加工する時に全角の方が対応が楽
の2つということですね。
半角だと二次加工しにくいというのは、例えば具体的にどういう事でしょうか?
度々すみません。。。ご回答いただけると幸いです
No.3
- 回答日時:
メリットが然程ないというのが一番大きいですよ。
こんな機能はわざわざ仕様書に組み込むほどのものでもないですし、口頭で上司にこうしましょっかと提案して、あーやっといてとか別にわざわざ良いよで済む程度のものです。
でそういうことをわざわざして、バクテストの項目を2,3増やす手間(コード上の問題はクラス化なり関数化して使いまわすことは可能ですし、環境が変わっても大した修正は必要ないですが)をかけるのかどうかというただそれだけのことです。
この機能を入れると明らかに入力ミスが減るとか、ユーザーの負担が激減するとかまでなるなら分かりますが、逆にここはこう決め打ちしてくださいと案内したって、それはそれで丁寧な案内にもなりますから、どっちもどっちです。ここは半角/全角どちらでも良いですとここは半角しかダメですの案内の差ってそんなに拘りが大きく出るものですかね?
二次加工の件についてもこれもそんな大きい問題でも無いですがw 例えば縦書きで印刷するときとかのことです。封筒やハガキの印刷ソフトをいくつか試されてみたら分かりますが、全角の方がきれいに揃うソフトもあります(でもその逆はないです)。どちらでも適当にそろえてくれるのもありますので、基本的にはどっちでも良い程度の差しかありませんが。
まぁやはりそんな熱く語るほどのテーマでも無いというのが扱いが適当になっている一番の理由かと思います。エンドユーザーから熱く注文を受けたのであれば率先して対応しますけど、別にこの機能に限らずですが、最後回しにされるような場合は暇で暇でどうしようもなかったからついでにやっちゃいましたぐらいまでになら無い限りは実装されないでしょう。
この回答への補足
度々ご回答ありがとうございます!
> こんな機能はわざわざ仕様書に組み込むほどのものでもないですし、口頭で上司にこうしましょっかと提案して、あーやっといてとか別にわざわざ良いよで済む程度のものです。
> ここは半角/全角どちらでも良いですとここは半角しかダメですの案内の差ってそんなに拘りが大きく出るものですかね?
> まぁやはりそんな熱く語るほどのテーマでも無いというのが扱いが適当になっている一番の理由かと思います。
半角全角の区別はないほうが明らかに良いと思える理由は以下です↓
1. 半角全角の区別が良くわからないPC初心者
2. 半角全角の切り替え方がまだわからないPC初心者
3. 住所を手打ちせずにコピペしている人
↑コピペする理由は
住所が長い、入力が面倒、手入力だとミスする可能性有り
あと、入力後に変換しなければ、全角にならない場合もあるので面倒とか。。。
上記のような場合は、半角全角の区別はないほうが明らかに良いですよね。。。
「この程度の機能」と仰いますが、自分自身、結構不便に思ったことがありますね・・・・
自分は3や4として、自分の親は、1や2として、いちいち質問の電話が実家からかかってきたりして、それで、このような質問をするにあたったわけですが・・・・
今、PCユーザ層は確実に広がってきているので、作成者側としては、上記のように自分の想像を絶する場合があるかもしれませんが、そこはプロとして頑張って欲しいところです。高飛車にならずに・・・。
すみません!お礼欄に書くつもりだったのに、補足欄に書いてしまいました・・・
ついでなので、、、追加で書きます。。
つまり、自分的には、
●半角でも全角でもどちらでも良い
が一番親切だと思っています。
例えば、「ここは全角で・・・」とか「ここは半角で・・・」とか書いてあると
いちいち読むのしんどい時ありますし、
あと、数字とかを入力する時に、えーっとここは全角?とか考えながら
その点についての注意書きを一応探さないといけないし、かなりしんどいです。
そういう事を何も考えずにさっと入力して、次にいきたいですよね。
でも、その次の画面でエラーが出て、再入力させられる・・・・
住所と書いてあるフォームに入力する前に、まず注意書きを読む、という作業が面倒です。
登録しようと考えた時は、住所のフォームを見つけると、反射的に入力し始めますので。
それを一旦、止めて、注意書きを探して読まなければいけない、というのは
本当に面倒です。
例えば、お店で会員登録などする時に、申込書とかに住所や電話番号や郵便番号などを
書いていきますよね。結構面倒な作業なので、記入欄に続けて、ざーっとすばやく書いていく感じです。
こんな事で時間をとられたくないし、簡単な作業なので。。
でも、その時に、記入欄の横に注意書きがあって、それを、手を止めて一旦読む瞬間を作って
記入しなければいけないとしたら結構面倒に感じます。
Webフォームでも同じです。
全角とか半角とか、ああ、やっぱりWebはちょっと面倒なんだな、、
って思う人も、沢山いると思います。
そういう壁を越えれたらすばらしいなとは思うんですが・・・
やっぱりまだまだ、紙のようにはいかないんだな。って印象ですね
No.4
- 回答日時:
>なぜこのようになってるのでしょうか?
ユーザビリティを考慮して作っていないからです。
質問者さんが
>すごくややこしい
>不親切な仕様ですよね
と思っているのがよい証拠です。この程度のことでユーザに不便を強いる仕様は開発者側の都合をユーザに押しつけているに過ぎません(実際にはユーザに不便を強いらなければ解決出来ないこともありますが…)。
半角全角が混ざっていることを検出してエラーを出すくらいなら、全角数字を半角数字に自動的に変換してくれた方が親切ですし、技術的に難しいことではありません。
また、全角半角の区別は内部的な問題(データベースの型など)であって、普通はユーザに意識させてはいけないものです。なので、「入力は全角でも半角でもよい」かつ「画面上に"半角","全角"などの文字がない」ことが理想です。
ということで、
>上記どちらかには出来ないものなのでしょうか?
できます。
>上記を実現するには、プログラムの実装が難しいんでしょうか?
そんなに難しいことではありません。あまり見かけないのは、まだまだユーザビリティを考慮して作る習慣が根付いていないことと、他の方が書かれているように納期やコスト的な問題で優先順位が低いことが挙げられます。
この回答への補足
ご回答ありがとうございます!!
> ユーザビリティを考慮して作っていないからです。
自分もそんな気がします。
> また、全角半角の区別は内部的な問題(データベースの型など)であって、普通はユーザに意識させてはいけないものです。なので、「入力は全角でも半角でもよい」かつ「画面上に"半角","全角"などの文字がない」ことが理想です。
そうですよね。例えば住所とかを「全角で入力!」と言われても、
単純に「なんでだろう・・・」と思いますし。すごく気になります。
そういう事を全く思わせずに、登録する事に集中させて欲しいです。
> 半角全角が混ざっていることを検出してエラーを出すくらいなら、
↑上記のような事が起こると、「ああやっぱりWebは面倒だな」って思いますね
郵便番号入力前に、半角全角の注意書きを探して、、、
住所入力前に、半角全角の注意書きを探して、、、
電話番号入力前に、半角全角の注意書きを探して、、、
いい加減にしろや!って気分にだんだんなってきますよ
全角半角くらい、そっちで変換しろや!!って。。。
なんでこっちでいちいち考慮して入力しなきゃなんないのかって。。。。
「Webってまだこんな段階?」
「オンラインは面倒」
って印象持ちました。
No.5
- 回答日時:
最近では、シャンプー容器側面の凹凸等、身の回りの多くのものにユニバーサルデザインが導入されていますよね。
では、Webにおけるユニバーサルデザインの取組みは?
この業界は歴史が浅く、ユニバーサルデザイン取組みの面では遅れているのが実情です。そんな中でも、この全角半角問題は英語圏にはない問題なので、情報源が少なく議論に上がること自体も少ないのでしょう。
Webは、極最近に、手馴れた人々によるニッチな社会から、多様な人々による大衆社会への移行を遂げました。この問題も、そんな社会の常として存在する、社会的取組みが必要な課題の一つじゃないですかね?
# 個人的には、全ブラウザ、携帯で共通に利用できる
# IME制御の仕組みが欲しいなぁ…
# ちなみに全角制限は、根本がCOBOLの亡霊のパターンも多いです。
この回答への補足
ご回答ありがとうございます!
>この全角半角問題は英語圏にはない問題なので、情報源が少なく議論に上がること自体も少ないのでしょう。
英語圏にはない問題!ほんとそうですよね
だから遅れてしまってるんですね。
もしかして、英語圏の方々なら、革新的に解決してるのかも。。
No.6
- 回答日時:
IMEをonにして、キーボードの1をクリックして、スペースをおしてください。
候補が出ると思います。全角数字に対応するということはそのすべてに対応するということになります。さらに、たとえば11だとしたら、日本語だと十一とかにも対応。英語の自動翻訳と同じ処理のめんどくささとなります。
今、ブラウザがどうなってるかとか、実際のコードの値がどうなっているかとかは把握できてませんが、文字データは内部的に、結局コードで制御されているわけです。たとえば、SJISだと、
http://docs.hp.com/ja/B3782-90873/apcs01.html
のような表であらわされるとおりのコードが各漢字に設定されています。
IEだと、IE上で右クリックを押したときに出てくるメニューに「エンコード」というものがありますよね?
日本語(EUC)とかUnicodeとかが選択できると思います。
このEUCとかUnicodeというものはそのコードの定義の体系で、
SJISとEUCでは、同じ文字だとしても、設定されているコードが違うわけです。たとえばSJIS、EUCだと2Byteのコードであらわされていますが、違うコードが振られていて、UTF-8とかだと3Byteで表現されたりするわけです。
もし全角対応するとなると、その全角文字を何という文字かを判別するなどの対応が必要がでてくるわけです。
しかし、半角の英数字は基本的にASCIIコードといって同じ1Byteのコード番号で振られるため、文字コードに依存せず使用できるため、処理が楽なわけです。
簡単に言っちゃうと、半角文字はそのままコンピュータが認識できるけど、全角文字はコンピュータそのまま認識できないのでその対応をプログラムとして作らないとだめということです。
で、郵便番号を半角でお願いしているのは、郵便番号をキーに住所をひっぱってくるとかの機能がついている場合だと思います。つまりそのデータを元にデータを取得するという処理が有る場合、よくあります。
住所に関しては、住所の名前なのか、番地なのかの判別つけようとおもえば、すべての住所のデータが必要となります。たとえば
○○区というところに、丸一という住所があったとすると、その1丁目とかだと、丸一1丁目、どこまでが丁目の表示?とかいう話になるわけです。
なんか見当違いな回答な気もしますがかなり「実装がめんどくさい」ということです。
#というかその全角半角の処理エンジン作って公開してくだされば解決ですよ(゜w|
でも、全角半角どっちでも同じ文字やん!ってよくお客さん(年配の方が特に多いです)によく言われますorz
それでも、歩み寄りとして、webアプリケーションだったら、javascriptで入力フィールドに入った際にIMEをオン、オフ、
winアプリケーションなら、漢字、半角カナ、全角ひらがな、全角カタカナ、数字のみ入力可能にするとかができるので、ある程度軽減するとかはやっていますけどね・・・
この回答への補足
ご回答ありがとうございます!
>#というかその全角半角の処理エンジン作って公開してくだされば解決ですよ(゜w|
プログラマではないのでそれは無茶な話です。。。
でも不便さを訴えられると、「じゃあ自分で作れ」って事はどうしても言いたくなりますよね・・・すみません
>でも、全角半角どっちでも同じ文字やん!ってよくお客さん(年配の方が特に多いです)によく言われますorz
念の為、、自分は年配ではないですが、、
あえて「年配」というのを強調されたい気持ちもわかりますが、一般的には若い年代でもPC初心者には多数見られる傾向のような気が、自分的にはしますね。自分の周辺では。
やはりこの問題はあまりしつこく触れてはいけない問題のような気が、ron3さんのご回答読ませていただくとそんな気がしましたが。。。
プログラム制作者の方にこの問題についてしつこく聞くと、ちょっとムッとされた経験は、実は過去にもありますので。。
制作者さんの機嫌を損ねるのを意図してしつこく聞いたわけではないんですが、結果的にもしそうなってしまったならすみません。。。
No.7ベストアンサー
- 回答日時:
これイイ質問ですよね。
他には、
・郵便番号は123-5678でも1235678でもいいじゃないか
とか
・棒線の「-」は「ー」でもいいじゃないか
とか
・スペースは「 」でも「 」でもいいじゃないか
とか
・スペースの有無でいちいち別物て思わないでほしい
なんてのもあります。
これらはプログラムを開発する際の共通部品の設計段階で、
そのようなインタフェース要件を念頭に入れて設計してやれば
大してテスト費用や時間(要するに工数)を割く必要は出てきません。
(例えば、「123-5678」と新規登録したデータを
「123-5678」で検索できるかどうかを見ればいいだけですから)
>上記どちらかには出来ないものなのでしょうか?
>上記を実現するには、プログラムの実装が難しいんでしょうか?
→WEBサイトによっては「半角で入力してください」と
わざわざエラー表示してくれるサイトもありますよね。
逆にいえば、何らか半角・全角チェックをしているサイトもある
ということです。
つまり、
チェックする程度の苦労は惜しまない作成者もいるということです。
「1丁目ー5-10」と「1-5-10」を同じデータだと扱わせるんだったら
多少難しいと思うのですが、
全角半角程度であれば、それほどではないと考えます。
(そういう変換プログラムを共通して使えばよいだけですから。
せいぜい各CGIプログラムあたり1行追加程度)
ただし、思惑どおりいかない場面もでてくると思われます。
(例:そのWEBフォームに何か入力すると
第三者が保有している外部のデータベースを
検索する動作をするようなものである場合は
外部のデータベースのデータ仕様に合わせる必要があります。
もし、そのデータ仕様が、全角と半角の数字の混在を
許す使用の場合はWEBフォームの入力内容を
加工するわけにもいかなくなってきます)
元々ソフト業界自体が、
広く一般の皆様に使ってもらえるものを作るよりも
固定の顧客に使ってもらえるものを長いこと作ってきたため
「運用方法でなんとかする(してもらう)」
という風習が根強く残っています。
※昔のコンピュータは能力が大変低かったので
本当にそうしてもらわないといけなかったこともありました
それがいつしか
「そういうものなのでよろしく」
となってしまい、
「エラーですよ」
と、チェックしてるんだったら何とかできないの?
みたいなプログラムしか提供しない現状となっているのも
否定できません。
この回答への補足
ご回答ありがとうございます!
ご回答、大変納得しました!
この問題を制作者側の人に伝えると、ちょっと不機嫌になる人が多いので、いつもあまり深くは聞くことができませんでした。それでこちらで質問してみたわけですが、slowboatさんのご回答でちょっと納得しました。
そしてやっぱり制作者側の方は、ユーザ優先では作っていないんだろうな、そこまでの余裕も細やかな想像力もきっとないんだろうな、常にいっぱいいっぱいなんだろうな、という思いは結局未だに消えませんでした。。。
でも。人間が作っているものだしそれ故限界はあるんだろうし、完璧を求めるのはきっと制作者さんにとって非情だしタブーなんだろうな、と他の方々の回答読んでて思いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- その他(動画サービス) u-nextの31日間無料体験に申し込むためのdアカウントの電話番号登録について 3 2022/08/27 00:29
- X(旧Twitter) 教えてgooの新規アカウント登録について 3 2023/03/28 23:42
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- iOS これは日本語入力の大発明ですか? 7 2022/12/21 07:17
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- その他(学校・勉強) 問2 次の文中の空欄にあてはまる数や言葉を答えなさい。英数字・符号は半角、それ以外の文字は全角で入力 1 2022/06/15 12:39
- Windows Me・NT・2000 半角数字で電話番号を入れてるのに半角数字と認識されず困ってます^^;ほかのさいとなどでは半角数字と認 3 2022/04/24 15:44
- その他(IT・Webサービス) クロネコヤマトのお客さま情報について。 お客さま情報で私の住所を入力しようとしたんですが、私のアパー 3 2022/05/25 21:36
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
英数字のみ全角から半角に変換
-
VBA Shift-JISをJISに変換する...
-
全角入力
-
エクセルにMicrosoft Barcode C...
-
VBAの文字列の中に”(全角のダブ...
-
バッチファイルでデスクトップ...
-
全角/半角キーをSendkeys関数で...
-
IEからEdgeへの移行に伴うIMEの...
-
プログラミングでは、半角括弧...
-
全角→半角変換 C UNIX
-
正しいメールアドレスの形式で...
-
コマンドプロンプト 全角を含ん...
-
ExcelVBA:KeyCode「半角/全角...
-
C言語のコンパイルエラーなん...
-
VB.net、テキストボックス入力...
-
全角英数字の必要性が理解できない
-
Accessでのグループ化で全角・...
-
VBAでシングルクオート(8217)を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
住宅にカナを入力する際に丁目...
-
エクセルにMicrosoft Barcode C...
-
プログラミングでは、半角括弧...
-
IEからEdgeへの移行に伴うIMEの...
-
全角英数字の必要性が理解できない
-
VBA 文字に半角が含まれて...
-
Accessのテキストボックスの入...
-
word差し込み印刷 半角カタカ...
-
COBOL・全角判定
-
全角入力
-
VB.net、テキストボックス入力...
-
COBOLでの全角文字の判定をした...
-
CString Format にて全角空白文...
-
メモ帳の段落の揃え方
-
ダブルコーテーションの置換
-
正規表現で、全角文字を半角文...
-
VBで、String型のデータが、...
-
よくアカウント等に使われる 半...
-
エクセルでの”々”の扱い
おすすめ情報