Input Controls

Also known as: List of Items, Form Widgets, Input Fields.

This pattern is a stub. There are more input controls, such as list boxes, buttons, sliders controls etc, which will be described later.

What

A special pattern describing basic input controls in Web applications.

Example image

Basic input controls

Different types of input controls, created using Wufoo form builder. See it live.

Use when

Text box

  • You need to get text input from the user.
  • It is not possible to make a good guess of the input.

Group of check boxes

  • There is a list of options and the user is allowed to select any number of choices.
  • All the choices are independent from each other.
    • None of the choices the user makes will affect other choices.

Stand-alone check box

  • You have a yes-or-no / on-or-off style question.

Group of radio buttons

  • There are two or more options and the user is allowed to select exactly one choice.

Drop-down list

  • Use like group of radio buttons. Prefer radio buttons if there are only few options, and drop-down if there are several options from where to choose since it uses less screen real estate.

Why

Text box

  • Pros: Fast to use and flexible.
  • Cons: Easy to make input errors.

Group of check boxes

  • Pros: All options are always shown. Fast and easy to use.
  • Cons: High screen estate usage.

Stand-alone check box

  • Pros: Simple if the question is clearly worded. Low screen estate usage.
  • Cons: Only the “on” state is expressed and therefore it requires some extra concentration to understand what it means when it is unchecked (especially if the question is negatively worded, e.g. “Don’t add me to the mailing list”).

Group of radio buttons

  • Pros: All options are always shown.
  • Cons: High screen estate usage.

Drop-down list

  • Pros: Saves screen real estate.
  • Cons: The user needs to open the list to see other options than the one currently selected.

How it works

General for all controls

  • Label input controls clearly.
  • Associate label elements with controls using
  • Highlight the control / control group currently being active using a light background color.
  • Provide good default values.
  • Try to be consistent. Prefer controls you have already used on the page.
  • When you have a list of options, sort options in a logical order, and show meta options such as “None” and “All” at the beginning of the list.
  • When you disable an input control, disable also labels associated with it.
  • Don’t use the change of these controls to perform commands on the page.
    • (Exception: You can reveal dynamically follow-up question(s) based on user’s answer on the initial question. In other word, you can reveal more controls related to the selected control depending on the selection).

Text box

  • Use Autocompletion if possible to help the user to provide the right answer quicker and without typographical errors.

Stand-alone check box & Group of check boxes

  • Use positive phrasing for labels to make it easier to understand what it means when it is checked (Exception: “Don’t show this again”-checkbox).

Radio buttons

  • If possible, make one of the options selected by default.
  • Sometimes it is wise to provide a neutral “empty / none” option so that the user can cancel the selection.

Drop-down list

  • Avoid blank items in the list since they might cause confusion. Prefer meta options such as “None” and “All”.

History

This pattern was created by Janne Lammi. It is inspired by “Control Choice” from Jenifer Tidwell’s book “Designing Interfaces: Patterns for Effective Interaction Design” and several other books and articles.

Pattern Gallery

Show Your Pattern Examples Here!

Add your examples to this pattern by adding them to flickr.com group UIPatternFactory.com and tagging with this tag:


photos in UIPatternFactory.com tagged with 	input-controlsMore photos in Flickr group "UIPatternFactory.com" tagged with input-controls

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

5 Responses to “Input Controls”


  1. 1 Stephan

    The stand-alone checkbox example looks wrong. This is a clear yes/no question, and should therefore be a radiogroup

  2. 2 Janne Lammi

    Stephan, in this case stand-alone checkbox is used for a single option that the user can turn on or off. "I don't agree to terms of service" is not important option, so using radio buttons would be incorrect in this context.

  3. 3 Florida Designer

    Nice, I tend to believe that Wufoo has the best UI of any web application in existence.

  4. 4 Florida Designer

    Nice trickery with your comments. Don't comment here. He has nofollow and removes it with JavaScript to trick users.

  5. 5 Janne Lammi

    Hi,

    I'm sorry, but I wasn't aware of this. I use WordPress blog engine to run this blog, and by default, WordPress uses 'nofollow' tag. The comment system I use is IntenseDebate which uses JavaScript, making the comments invisible to search engines. I did some research on this and found a way to solve the problem, and I will fix this issue ASAP.

    Thanks for pointing this out.

Leave a Reply