ボタン hover 時のマウスポインター形状
たまたま「Buttons shouldn’t have a hand cursor - Simple = Human」という記事が目に留まり、興味深く読みました。「インクルーシブ HTML + CSS & JavaScript」日本語版の翻訳レビューをしたとき、同書の P.181 で以下の通り紹介されていたのがきっかけです。
<button> がリンクと異なっているもうひとつの点は、pointer カーソルスタイルを持たないことです。アダム・シルバー(Adam Silver)は「Buttons shouldn’t have a hand cursor」の中で、<button> 要素に手動で cursor: pointer を追加することが、ユーザビリティ上の誤りである理由を説明しています。<button> にこのカーソルスタイルを適用するのは標準の動作ではなく、長年続いてきた慣習を破ることにはリスクがあります。
ウェブページに表示されるボタンにおいては、マウスオーバー (hover) 時のマウスポインター形状を「人差し指」型にする (CSS で、button {cursor: pointer;} のように指定する) のは避けるべき、という議論です。「人差し指」型のポインターは、そこが「クリック可能」であることを示すのではなく、あくまでも「リンクである」ことを示すものだから、というのがその理由です。
- クリック可能な要素に対するマウスポインターがすべて「人差し指」型というわけではない。たとえば OS のフォルダやファイルアイコン、デスクトップアプリケーションの各種ボタンなどでは、マウスポインター形状は (デフォルトの「矢印」型ポインターのまま) 変わらない。ウェブページにおいても、いくつかのインタラクティブな UI 部品において、マウスポインターが「人差し指」型にならない例はいろいろある (セレクトメニュー、チェックボックス、ラジオボタン、など)。
- ウェブページのボタンは、きちんとボタンとして認識できるようにデザインされていれば、マウスポインターを「人差し指」型にしなくてもよいはず。
- W3C 勧告「Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification」の「18.1 Cursors: the ‘cursor’ property」でも、「人差し指」型のポインター ({cursor: pointer;}) は「リンクを示すもの」とされている。
- リンクには独自のコンテキストメニューがあり (たとえば右クリックで別タブ/別ウィンドウで開いたりリンク先URLをコピーしたりなど)、マウスポインターが「人差し指」型になることで、そういったコンテキストメニューが存在する旨の手がかりをユーザーに与え得る。
…といったことを根拠にロジカルに説いていますが、コメント欄を見ると議論が白熱していて興味深いです。個人的には、この記事の主旨は理解できますし、標準仕様をいたずらにハックしないという点で賛成なのですが、以下のように若干気になることもあります。
- さりげないあしらい (いかにもボタン然とした枠線などが無い) でアイコンが配置されているような場合、よく見れば文脈的にそれがボタンであると類推できるとしても、マウスポインターが「人差し指」型になることで、そこがクリック可能であることが明確に伝わりやすくなるのではないか。
- マウスを動かすという間接操作においては、ポインターが「人差し指」型に変わって「そこがクリック可能な領域である」ことが明示的になることで、ユーザーは安心して操作できるのではないか。
- HTML 要素ごとの独自コンテキストメニューの手がかりとしてのマウスポインター形状について。たとえば画像 (<img> 要素) にも独自のコンテキストメニューが用意されているが (画像を保存する、画像を別タブで開く、など)、その手がかりはマウスポインターの形状変化では示されない。
また昨今では、セマンティクス的にはリンク (<a> 要素) でも、CTA (Call To Action : 行動喚起) として外観をボタンのようにあしらうデザインも多く見られます。hover 時にはマウスポインターが「人差し指」型になるわけですが、こうなると、ボタン然とした UI に対してポインターが「矢印」型のままであることもあれば「人差し指」型に変わるときもある、という具合に「一貫性の無いフィードバックが混在する」ように見えてしまいそうです。大半のユーザーは、HTML 要素の種別にかかわらず、ボタンのようなオブジェクトは一緒くたに「ボタン」と認知するでしょうから、こうしたちょっとしたインタラクションの不一致は、ふとした拍子に「予想外の挙動」として目についてしまい、クリックできるのかできないのか、無駄にユーザーに考えさせてしまう恐れがあります。
きちんとボタンが使えている限りは、マウスポインターの形は「どちらでもよい」のかもしれませんが (コンテンツそのものにエンゲージしてしまうと、マウスポインター形状は案外気にならなくなってしまうからです)、ユーザーの認知/学習負荷をいたずらに高めないようにするためにも、少なくともひとつのウェブサイト (アプリケーション) の中ではデザイン判断として、マウスポインターのスタイリングに一貫性のある定義を設けておきたいところです。議論が分かれそうなトピックではありますが、それだけに、プロジェクト内でどう意識合わせをするか、細かいながらも大きな課題と言えるかもしれません