UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Web】Adobe流フォーム設計のベストプラクティス

Adobeのフォーム設計のベストプラクティスなる記事を知ったので読んでみた

xd.adobe.com

今後気をつけていきたいもの、知らなかったことだけメモしておく

● 1 つの列と複数の列だったら1つの列がよい

● フィールド数はフォームのデザインに関して言えば、経験則として、短い方が良い
やるとしては一度に5 ~ 7 個の入力フィールドのみを表示するのが一般的

● フォームの任意フィールドは避けるようにすべき

● インプットマスクというものを利用する
インプットマスクとは入力したらカード番号や電話番号などが自動でフォーマットされるもの

https://demo.grapecity.com/wijmo/demos/Input/InputMask/Overview/purejs

● 単純な日付ピッカーでもキーボード操作できるように、W3Cガイドラインに従う必要がある

ARIA Authoring Practices Guide | APG | WAI | W3C

● ラベルは1語または2語で短くする
Amazonの登録フォームの以前のバージョンには多くの単語が含まれていたため完了率が低かったが、現在のバージョンはラベルが短くなっている

● Title case と Sentence case
日本語以外の場合、ラベルをすべて大文字にするのを避けるべきだが、単語を大文字にする方法が 2 つある

  • Title caseとは全ての単語の頭文字が大文字: “This Is Title Case.”
  • Sentence case とは最初の単語の頭文字だけ大文字: “This is sentence case.”

Sentence case は長いテキストの場合に利点がある(Title case は長いと読みにくい)

●ラベルの配置は上がよい
ラベルの配置に関するMatteo Penzo の 2006 年の記事では、ラベルがフィールドの上にあると、フォームがより速く完成することが示唆されている

●入力中にバリデーションするか、入力後にバリデーションするか
Mihael Konjević は、彼の記事 “Inline Validation in Forms: Designing the Experience”で、さまざまなバリデーション戦略を検討し、両方を満足させるハイブリッド戦略を提案している

  • ユーザーが有効な状態のフィールドにデータを入力した場合 (つまり、以前に入力されたデータが有効だった場合)、データ入力後にバリデーションする
  • ユーザーが無効な状態のフィールドにデータを入力した場合 (つまり、以前に入力されたデータが無効だった場合)、データ入力中にバリデーションする

●データの保護
フォームへの入力を開始した後で誤ってページを更新しても、データがフィールドに残すべき

Garlic.jsなどのツールを使用すると、フォームが送信されるまでフォームの値をローカルに保持できる