All The Things I Think About When I Think About Web Forms
Large, large forms on the SkyUp Airlines website: https://skyup.aero/uk/

All The Things I Think About When I Think About Web Forms

Over the last 7 years, I've been working on collecting interface design patterns, examples and thoughts about better design on mobile and desktop for things that are usually difficult to design and build. Things like a real-time car configurator, election results map, theatre seat selection, a sports timeline and so many others. And as I like checklists, I've been creating design checklists for all kinds of these components — now with 25 free PDF checklists ready to be shared for all of us to use.

Here's one on web forms, with pretty much everything I think about when thinking about it. I sincerely hope that you'll find them useful — and please let me know if something is missing!

01 — What’s the absolute minimum user input we need for new customers to get started?

02 — When is the right time and place to ask users to verify critical input (email, password, permissions)?

03 — For each piece of data, what’s the best form element to collect it fast and accurately?

04 — For sensitive data input (e.g. phone number), do we explain why we need it?

05 — Are there any form elements which need hints (e.g. password requirements, username)?

06 — Do we have an attribute profile for each input in our form — required/optional, allowed characters, min/max length, pre-filling enabled/disabled, masking/validation/auto-formatting needed, accessible tooltip, dependencies on other elements, detection by IP.

07 — Do we always prioritize actionable copy: instead of “Password”, “Choose password”?

08 — Do we always prefer tap-friendly components, i.e. large buttons, toggles, and sliders?

09 — Do text boxes appear as text boxes (good padding, bordered).

10 — Have we adjusted the width of each box to give users a hint of the expected length of input?

11 — Do we use proper labels, associated with input fields?

12 — Do we use letter case for the microcopy on labels?

13 — Do we highlight required or optional fields, or both (preferably either optional or both)?

14 — How do we style placeholders, and is the microcopy helpful?

15 — Will labels be top-aligned or right-aligned (preferably the former)?

16 — Will we be using floating labels? If so, check if they are still announced to screen readers?

17 — Do inputs have :focus and :active styles?

18 — For each input, do we need to enable/disable autocorrect, spell-checking and autocapitalization?

19 — Do we use HTML5’s pattern to restrict input with in-browser validation?

20 — Are there any inputs where we need to provide a reasonable default value?

21 — Do we make use of autofill with the autocomplete attribute?

22 — Do we always display the right keyboard on mobile (inputmode)?

23 — Do we use autofocus to bring focus to the first input element on page load?

24 — Do we lay out fields in a single column (preferably yes)?

25 — Do we lay out field groups in multiple pages (one-thing-per-page pattern)?

26 — Do we show at most 7–8 input fields at a time on desktop, 3–4 on mobile?

27 — Are radio buttons actually round (preferably yes)?

28 — For radio buttons, are there any where a fallback input is required (e.g. “I’d rather not say” for gender, age etc.)?

29 — Are checkboxes square, with enough padding and large font size (18px+)?

30 — For checkboxes used as filters, do we track incompatibility of options or low result count to prevent users from landing on pages with no results?

31 — Do we avoid <select>-dropdowns as much as possible, and use steppers (<10 options) or datalist with autocomplete (>10 options) instead?

32 — For autocomplete, do we surface frequent hits at the top of autosuggestions?

33 — For a country selector autocomplete, do we need to display some countries as frequently used? Do they also appear in the alphabetical list?

34 — How do we design the country selector, and what height should it have (6–7 rows)?

35 — For our autocomplete, do we also accept abbreviations (GB, UK, DE, NL, CH etc.)?

36 — For our autocomplete, do we also accept alternative manual input?

37 — Do we display the results count for categories with autocomplete?

38 — Is autocomplete keyboard-accessible, and forgiving of minor typos and errors?

39 — Do we use a localization based on user-provided country or ZIP/postal code (placeholders, masks, input field(s) width, formatting, spelling, currency, legal requirements)?

40 — Can we ask for a full name instead of first, middle and last names?

41 — Do we avoid “Address Line 2” and use more contextual labels instead (“Apartment, suite, unit, floor”)?

42 — Can we use an address look-up widget (Loqate, Algolia Place, Google Place Autocomplete) to speed up location input?

43 — For date and time input, do we display input boxes or widgets with steppers for quick jumps?

44 — Do we provide autoformatting for phone number, birthday, amounts, numbers, dates, postal codes?

45 — For credit card input, can we avoid selection of the credit card type before input?

46 — As a label for the name on a credit card, do we use “Name on card”?

47 — As a label for security code, can we use “Security code” instead of “CVC” etc.?

48 — As a label for expiry date, can we use a single input field with auto-masking?

49 — Can we use Payment Request API, Apple Pay, Google Pay to avoid lengthy input altogether?

50 — For inline validation, can we define a threshold per input field, after which we start validating input?

51 — Can we not validate the input yet unless the threshold is reached?

52 — Do we show success only if the user has moved to the next field?

53 — When editing a field that was valid, do we validate after full data entry? (Reward early)

54 — When editing a field that was invalid, do we validate during data entry? (Punish late)

55 — Do our error messages drive users to a clear path on how to fix the error?

56 — On submit, do we scroll the user to the first error and focus on it?

57 — …or display the error above the submit button (focused)?

58 — If there are a few errors, do we additionally display a summary of errors at the top of the page?

59 — Do we display the error message just above the input field (not covered by keyboard on mobile)?

60 — Do we show the number of errors in the tab title as a prefix?

61 — Can we not disable submit buttons until all fields are filled in (easier to highlight and explain errors)?

62 — Do we display confirmation boxes only for absolutely critical situations (e.g. deleting email list entirely)? Can we use undos to help users quickly restore them instead?

63 — Do we move users to the next input field automatically after successful input?

64 — Do we persist the data on refresh?

65 — Have we tabbed through the entire form (incl. date picker and autocomplete)? Is the tab order predictable and reasonable?

66 — Have we tested the form on desktop, tablet, mobile? Where do error messages appear? Do labels always appear in full?

67 — For lengthy forms, do we need to first explain to users how much time the form will require, what documents they need to be prepared, and if they can save input and continue later?

68 — Do we have an input budget in place (max number of input fields per step)?

69 — Do we track the tap count (min number of taps needed to successfully complete the form)?

70 — Have we considered what happens when the form is loading (skeleton screen, loading indicator)?

If you'd like to see a few more examples of various #uxpatterns, we have a few friendly, inclusive online workshops on smart interface design patterns and UX coming soooooon: https://smashingconf.com/online-workshops/ — meow! ;-)

要查看或添加评论,请登录

Vitaly Friedman的更多文章

  • Designing For Stress and Emergencies

    Designing For Stress and Emergencies

    No design exists in isolation. As designers, we often imagine specific situations in which people will use our product.

    12 条评论
  • ? How To Build Confidence In Your UX Work

    ? How To Build Confidence In Your UX Work

    When I start any UX project, typically there is very little confidence in the successful outcome of my UX initiatives…

    12 条评论
  • ?????? How To Test And Measure Content In UX

    ?????? How To Test And Measure Content In UX

    The goal of the content design is to reduce confusion and improve clarity. Yet often it’s difficult to pin point a…

    21 条评论
  • Useful Customer Journey Maps (+ Figma & Miro Templates)

    Useful Customer Journey Maps (+ Figma & Miro Templates)

    User journey maps are an effective way to visualize user’s experience for the entire team. Instead of pointing to…

    22 条评论
  • ?? Sustainable Design Patterns For UX Designers

    ?? Sustainable Design Patterns For UX Designers

    Digital sustainability is often seen as a technical concern for engineers. We speak about optimization of assets, and…

    23 条评论
  • ?? Designing For Gen Z: Expectations and UX Guidelines

    ?? Designing For Gen Z: Expectations and UX Guidelines

    Every generation is different in very unique ways, with different habits, views, standards and expectations. So when…

    17 条评论
  • ?? How To Improve UX In Legacy Systems

    ?? How To Improve UX In Legacy Systems

    Imagine that you need to improve the UX of a legacy system. A system that has been silently working in the background…

    56 条评论
  • Design Guidelines For Better Notifications UX

    Design Guidelines For Better Notifications UX

    Over the years, I’ve developed a habit to turn off all notifications once a year — both on mobile and on desktop. There…

    32 条评论
  • ?? How To Make A Strong Case For UX Research

    ?? How To Make A Strong Case For UX Research

    Getting a buy-in for UX research can be remarkably difficult. You might find yourself constrained by wrong assumptions…

    14 条评论
  • ?? How To Design Complex Data Tables (+ Figma Kits)

    ?? How To Design Complex Data Tables (+ Figma Kits)

    Complex data tables are difficult to get right. They always come along with filters, sorting, customization options…

    61 条评论

社区洞察

其他会员也浏览了