Forgiving Format

Example of the Forgiving Format UX pattern.

Problem

Users need to provide information but probably won’t (and shouldn’t have to) know a lot about what format your system is expecting.

Solution

Allow users to enter data in formats that seem natural to them and have your system take responsibility for intelligently parsing and structuring it.

Context

  • The data you need to collect from the user has multiple everyday formats.
  • The natural way a user might think about the data does not match the more structured format your system needs.

Rationale

In many cases, a user would have no way of knowing what exact format you expect input data to take on. Rather than requiring users to read a mini-manual for each data field, or forcing users to go through an iterative process of incorrectly entering data and getting error messages, just let users enter data in more natural formats and you do the work.

Implementation

Consider showing the user what you have interpreted the input to mean, giving the user a chance to notice when the interpretation is incorrect. In cases where your backend is unsure of exactly what the user entered, show the user alternatives that might match, and let the user select the correct one, or indicate none are correct; e.g. multiple potential matches for an address.

You can of course provide brief contextual hints to complement this, but one benefit to allowing users to enter data in ways they already think of it is that you hopefully won’t have to provide as many hints.

Help Me Get There

Infragistics has some tools that can jumpstart your efforts to implement this pattern. Broken down by technology, they are as follows.

Windows Forms

You can use the NetAdvantage for Windows Forms controls: WinCombo and WinComboEditor to implement this pattern by using the auto complete functionality. If you download the NetAdvantage for Win Client bundle, you can find a sample in the WinForms sample browser called AutoComplete Mode to see it in action.

Examples

The primary example from maps.live.com lets you type anything that can map to a location: a zip code, city, country, full address, etc. If it is too ambiguous it shows you potential options to choose from.

http://quince.infragistics.com/11ei

Example of the Forgiving Format UX Pattern Example of the Forgiving Format UX Pattern

This example comes from Microsoft Outlook's tool for setting up a meeting. Look at the "Start time:" and "End time:" fields at the bottom -- you don't need to give it a fully defined date, like what appears in the text fields. If today is April 24, and you want to set up a meeting for April 29, you can type any of the following terms: - next Thu - nxt Thu - thu - 29/4/2008 - 4/29/2008 - 29/4 - 4/29 - five days - 5 days And so on -- there are probably other accepted formats, too. The specified date is then "echoed back" to the user in the appropriate format for the user's language and location, as shown in this example.

http://quince.infragistics.com/10x1

Example of the Forgiving Format UX Pattern Example of the Forgiving Format UX Pattern

This example from Google Calendar shows how users can enter free form text representing all attributes of a meeting.

http://quince.infragistics.com/118x

Example of the Forgiving Format UX Pattern Example of the Forgiving Format UX Pattern

Microsoft Word 2007 lets you enter the spacing in points, or any other supported measure like “in” or “cm.”

http://quince.infragistics.com/117d

Example of the Forgiving Format UX Pattern Example of the Forgiving Format UX Pattern

Sources

Jennifer Tidwell, Forgiving Format

Tags

Format, Data Entry, Date Entry.