In my desktop application, there are two tables presented to the user side by side. Each table displays a list of people. One table displays all the people already assigned to a role (let's call it the target table), the other displays all the people that can be assigned to that role (let's call it source). The people can be assigned to that role by dragging one or more persons (one or more rows) from one table to a another.

Now, my question is, on which side do you intuitively expect the tables to be, the source table on the left side and and the target on the right or the other way round? It would be nice if you can point me to some examples or to what the best practice is.

  • Ok, so the user selects a Role and two tables appear where one lists all persons already assigned to that role and the other lists all persons that can be assigned to that role. Is this assumption correct? Jun 27, 2012 at 10:04
  • Yes, that is correct. Sorry if it was unclear. I've edited the question for better understanding.
    – Jim Holden
    Jun 27, 2012 at 10:50
  • The key to good UX isn't asking experts about what they think should be the order but asking your actual users about that. Your design must adhere to their mental models not ours.
    – dnbrv
    Jun 28, 2012 at 5:01
  • I'd say the key is not so much asking the users this questions, but testing which design works best. Asking (potential) users what they want, especially in cases like these, is not a very useful technique. Observe how they react to being confronted with the actual design and have to work with it.
    – André
    Jun 28, 2012 at 5:09

2 Answers 2


For left-to-right languages I would expect the list of available people to be on the left and the list of assigned people to be on the right. This is because the action of moving people from the available list to the assigned list is "forwards".

This is either indicated by the right facing arrow or by the act of dragging the name from the available list to the assigned list.


download bmml source – Wireframes created with Balsamiq Mockups

This, of course, implies you should reverse the order for right-to-left languages.

  • 1
    Have a look at any Oracle product for hundreds of examples of this model! Jun 27, 2012 at 12:53
  • And Microsoft Word's template manager, and I've also seen it in a PDF printer driver to specify which fonts should be embedded. This mechanism is fairly standard. Jun 27, 2012 at 13:23

I'm not sure the answer is as simple as ChrisF suggests. I think the idea of moving people "forward" is correct, but I think you should also considder if the dialog where this occurs is only used for creating the list, or also later on for reviewing and editing it. If it is also used for reviewing the selected items, then you'd have to considder if it is logical to look at the right hand list to find your data. I don't think so. I seem to remember from back when these kinds of lists were used a lot, the pattern was usually the other way around. However, I am not sure about that.

I am wondering if another approach might not be better. Why not just use a single list with checkable items?


download bmml source – Wireframes created with Balsamiq Mockups

  • Interesting idea with the check boxes! But how would one assign multiple users at once? With a small context menu?
    – Jim Holden
    Jun 27, 2012 at 13:54
  • 2
    Perhaps I misunderstood your question then. How do you assign multiple users at once in the model you were proposing? You still have to select them, right? If you have to select them, you might as well just check them it seems to me. But again: I may just misunderstand what you are after.
    – André
    Jun 27, 2012 at 14:03
  • The users are displayed in a table widget with several columns. Each row is selectable. I select multiple users by clicking them while holding the Shift Button (just as you can in any file explorer) and dragging them to the other table. I can't exactly see how that would work with the check box mechanism.
    – Jim Holden
    Jun 27, 2012 at 15:19
  • If you simply allow clicking the row to toggle a check-box, then you: a) remove the need to support unintuitive multi-select (shift & ctrl) and b) remove the need for the drag operation right at the end. Jun 27, 2012 at 17:00
  • The only time I foresee potential difficulty with this mechanism (and not much difficulty at that) is when a large list is used for a small selection. a) It can be tricky to see exactly what's selected (mitigated by being able to sort check items to the top). b) An exceptionally large source list might need filtering to be manageable. And the filtering introduces more user effort to see what's selected. Jun 27, 2012 at 17:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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