Entry

カレンダーコントロールは便利なのか問題

2011年01月30日

普段は開発者向けのツールを作っていたりするんですけれど,この頃,ちょっと所用でエンドユーザ向けのツールを作っていたりします。

で,作るにあたっては,普通,競合となるような同機能のソフトを取り上げて,使い心地を検証することになるわけですけれど,この中で,カレンダーコントロールの位置づけがどうにも微妙で困っています。

カレンダーコントロールというのは,文字通りカレンダーが表示されるコントロールです。主に,カレンダーから日付を選択するような場合に使われます。ここで説明するまでもなく,もうおなじみのコントロールですよね。しかしこれ,ユーザビリティ的に非常に微妙なんじゃないだろうか,と。

例えば,今日の日付を指定したい場合,「本日」とかいったボタンを1個用意すれば事足ります。わざわざカレンダーを表示する意味はない。同様に,一言で表せるような日付(「昨日」とか「明日」とか)については,それ用のボタンなりプルダウンメニューなりを用意すれば十分です。カレンダーコントロールが必要になる場合はどんな場合かというと,これはおそらく日付をランダムに指定するような場合になるのだと思う。例えば,1985年9月2日とかいった具合に,特定の日付をピンポイントで指定するような場合に使われるのだと思います。しかし,そうだとしても,カレンダーコントロールが日付を指定する上でベストのコントロールかというと,やはり微妙です。カレンダーである必要がどこまであるんだろう……。

いうまでもなく,カレンダーの体裁は,曜日と週のマトリックスなわけで,日付はこの行列の交点に注目することで指定することになります。例えば,「1950年9月第2週の水曜日」といった指定の仕方は,行列の位置を確認するだけで求まるので非常に自然です。計算量的にいっても O(1) です。一方,「9月のカレンダーから15日を見つけ出す(指定する)」といったタスクは,カレンダーの体裁上工夫しても,二分探索的な方法で走査しなくちゃいけません。計算量的にいったら O(logN) になってしまう。月曜日の日付からその日付が含まれる週を二分探索で探索すれば,もう少しやることは少なくなるかもしれないけれども,いずれにしても O(1) にはかないません。

日付にランダムアクセスする場合,一番素朴で簡単なコントロールは,テキストボックスに直接日付を入力するコントロールです。これも,入力したい日付を一発で入力することになるから,O(1) で行えます。ただし,この場合は,入力する手間があるので,キーボードに慣れている人には簡単だけれども,慣れていない人には難しいところがある。結局のところ,日付を指定するにあたって,キーボードで入力してもらうか,カレンダーから入力するかは,ユーザさんのキーボードアレルギーの程度に依る,といえなくもなさそうなんですけれど,それにしてもカレンダーコントロールの非効率性にはにんともかんともなところがあったりします。

カレンダーをつけようかと思っていたけれど,今のところ,意味ねいんでね?説がかなり有力。どうしたもんだろ。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN