やまろぐはてな

yamanokuの技術メモとか戯言。真面目に見たり見なかったりしてください

エンジニア立ち居振舞い : 誰がどう触っても良いようにつくる

お題「エンジニア立ち居振舞い」

マークアップなのかフロントエンドなのかいまいち良く分からない位置付けに居ますが、自分の中で大事にしていることについて。

タイトルの通りなんですが簡単な例でいくと、jQueryでトグルボタンを実装する時に

$("#button").on("click",function(){
  $(this).next().slideToggle();
});

という風になると思う。でもこれには問題があって、ボタンを何度もクリックすると律儀なまでにトグルする動作が押された回数分繰り返されるのでボタンを押すのを止めても動作し続けてしまう。

なので以下のように対応する。

$("#button").on("click",function(){
  $(this).next().stop().slideToggle();
});

これはstop()メソッドを使用することでトグルしようとする動作を一度ストップさせるので、押す→トグル動作の間にボタンを押してもその動作をキャンセルして次の動作へ移行させることができる。

動作イメージは以下よりどうぞ。

https://jsfiddle.net/ft21p1cy/2/

これは非常に単純な例ですが、ユーザーはどういった操作をするかはエンジニアには検討が全くつかない。我々は「1回クリックする」だけのことを考えますが、間違って2回クリックしてしまうとその人は「何だこれは」という風になってしまいます。たった1つのメソッドを追加するでだいぶ使いやすくなるのに、そういったことに気がつけないというのが一番怖い部分です。

だからどんな人がどのようなシチュエーションで弄ったとしても「出来る限り」平等なユーザー体験をもたらさなければならない、というのが私たちの使命なのだと感じています。

こちらからは以上です