アクセシビリティやユーザビリティの本には実装が楽かどうかの観点がほとんどない。
逆にWebプログラミングの本にはアクセシブルかどうかの観点がほとんどない。
フォームをアクセシブルにする最低限の条件は以下の通り。
- 必須項目かどうかが入力前に色・位置・記号に依存しない形で示されていること
- 入力方法がいくつか考えられる場合、入力方法が入力前に示されていること
- ラベルと入力部品(ラジオボタン・チェックボックス)が適切に関連づけられていること
日本で普及している入力フォームで、ユーザーにとっても、実装側にとってもやっかいとなる部分は、以下の部分だろう。
- 読みがな
- 電話番号
- 郵便番号
- 年月日入力
読みがな入力
「カタカナで入力してください」とか文字種の指定は、入力する側としては、結構苦痛だったりする。文字種なんて、サーバー側で変換するべき。PHPならmb_convert_kana()とかあるんだし。変換した後の結果が仕様通りかを正規表現で確認するべき。
電話番号・郵便番号
ハイフンを入れるのか、半角で入力するのかといったところがネックになる。ハイフンごとに入力項目を区切るという手もある。ただし、PCではよくても携帯電話では問題になりやすい。プロフィールから項目を引用するときに面倒なのだ。
携帯も考慮に入れるのなら数字だけで入力してもらった方がいいだろう。
国内の郵便番号なら、前3桁-後4桁というフォーマットが決まっているのだから、印刷時などでハイフンがほしい場合は、substr()などで、文字を取り出せばいいことですから。
半角・全角の変換はサーバー側で行うこと。PHPならmb_convert_kana()でできるんだし。
電話番号はやっかいだけど。
生年月日入力
年月日すべてプルダウンメニューというのは一番勘弁してもらいたい。PCでも携帯でも選ぶのが激しく面倒。実装も楽じゃないし。分割が必要な場合でも、テキストボックスにしてほしい。
どうせDBに格納するときにはYYYYmmddでやるんでしょ?だったら素直に全部数字で入れてもらったら楽だよね。これもフォーマットが決まっているのだから、必要なところはsubstr()で取り出せば、入力チェックもできますよね。
半角・全角の変換はサーバー側で行うこと。
他にも文字種の指定はいろいろ面倒
住所とかの入力で、番地とか部屋番号入力するのに半角で入力すると怒られるフォームがあるのだけど、これも勘弁してほしい。こういうフォームに限って、後出しで「全角で入力」なんだよね。
サーバー側で変換するのが面倒だからなのか、プログラマーの腕前が(ry かは知らないけど。DBにデータを格納するときの制限とか印刷上の制限とかがあるなら、それはサーバー側で処理するべきことであって、サイトを使うユーザがやるべきことじゃない。
よけいな分割入力も面倒
携帯電話で入力するときに何が面倒かというと、メールアドレスの入力。こんなのは、プロフィールから引き出して入れたいと思う。なので、ローカルパート入力とドメイン入力がわかれているなんて言うのは勘弁ですな。
