Scribble at 2020-08-04 12:51:31 Last modified: 2020-08-05 12:45:04
フォームを制作するときに、入力した値をバックボタンで戻って修正したいというユーザはいると思うのだけれど、そもそもウェブのリソースというものは stateless なのだから、そういう backward cache のようなブラウザの実装に頼ってフロントエンドを組むのは筋が悪いと思う。原理的には、「戻る」とは言ってもリファラとして記憶されているに過ぎない《別のページへの移動》なのだから、銀行のようにブラウザのバックボタンで戻るとセッションが切れてしまうような実装が《正しい》のである。たとえ中小零細のコーポレート・サイトに実装する簡単な問い合わせフォームのようなものであろうと、そこは手抜きをせずに「戻る(修正する)」ボタンを正しくクリックして戻ってもらうような UI を設計するのが正論というものであろう。こういう場合、一口に「UX」と称してユーザの心地よさを優先したところで、それは場当たり的で(ブラウザの仕様が変われば、バックボタンで戻っても値が保存されている保証はない)安全でもない設計なのだから、デザイナーやコーダは "customer first" の内容を再考した方がよい。
僕は、最近の事例だと問い合わせフォームやキャンペーンの応募フォームを制作するときに、もう大半は1ページで全てのモードを JavaScript で切り替えている。つまり、入力画面からエラー画面や確認画面への遷移は単なる section 要素の display プロパティを切り替えているにすぎず、ユーザがフォームへ入力しているときはエラー画面や確認画面にも同じ値をセットしている。このようなページで入力してもらっている場合、キャンペーンのようにフォームが LP としてブラウザで最初に表示する画面となっているなら、そもそもバックボタンで戻るべきページなどないのだから、ユーザが誤ってバックボタンを押したり Alt + ← を叩こうと何も起きないので安全だ。