Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

I have a grid that has a bunch of data. Some of the fields are editable and cause a postback updating the data. What are the best ways to show that to the user? i.e. Is there a best practice for how to make a distinction between editable and non-editable from a UI perspective?

share|improve this question
add comment

7 Answers

up vote 14 down vote accepted

I usually keep my editable fields white and non-editable fields grey (or monochromatic colors if not white fields, light-color: editable and dark-color: non-editable).

share|improve this answer
    
I chose to go this route, though Charles' idea is also a good one. –  Dan Feb 10 '11 at 21:34
add comment

Yeah, there is a best practice - make editable fields look like text boxes and non-editable fields look like text. There's a reason that those two UI elements have distinct looks.

share|improve this answer
1  
I like that idea (for text boxes) but how does that work for a grid. Does this mean that your grid must use a border for those cells that are editable? I'm thinking of grids where there borders are off and rows are indicated using an alternate row color. –  Richard DesLonde Mar 20 '11 at 7:11
add comment

Text boxes are great in simpler layouts, where the primary use of the element is editing. In a grid where the control is repeated indefinately, they (like buttons or other controls) will increase visual clutter. This is a problem since on of the reasons we use grids is to provide us with overview.

I really like designs where editable fields are very neutral-looking, like any interface text, but upon hovering they switch to a state that shows they can be edited. This could be achieved using a color, or an icon, that is only visible upon hovering. When clicking, you enter the actual edit mode. Jira´s web app is an excellent example of this approach.

share|improve this answer
    
You need to keep in mind that anything relying on hover won't work if someone is using a touch device –  JohnGB May 12 at 11:02
add comment

Best practice is generally using inputs for editable content and plain text for non-editable content. You can make the inputs subtle, so they don't create so much clutter even in somewhat heavily populated grid.

If the clutter caused by the exposed inputs is too high, you have option of using controls shown on hover (edit action icon) or transform the plain text to input field on hover (works for one line content, with caution even for multi line content).

However, in terms of providing editable clue only on hover, you should ask yourself what is the primary context of use. If it's mobile touch devices, then you can't rely on hover and you have to expose the edibility right away (again, either using icon for edit action, or exposing input field).

share|improve this answer
add comment

This may reveal a personal bias but I also tend to prefer some kind of "focus visual" that indicates to a user which field they are on. A soft background or border are ways to accomplish this.

share|improve this answer
1  
You are more talking about indicating current focus, whereas the question is about showing which fields are editable on the whole form. –  jameswanless Feb 10 '11 at 19:05
add comment

Typically I have a grey background and white editable field. When the field is not editable I set it's background to the same grey (which technically is the same as transparent,, but the user doesn't care about that.. They just see that it is the same).

share|improve this answer
add comment

Somewhat off topic but unless it is meant for simple data entry, providing editable grids might actually be an anti-pattern. See http://skizz.biz/blog/2007/02/23/the-editable-grid-antipattern/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.