There is a hierarchy of selectable items, let's say a parent and two children. All three items have checkboxes. When both children are checked, the parent's checkbox is also checked. When both children are unchecked, the parent's checkbox is also clear. When only one of the children is checked, the parent is half-checked (color fill or a diagonal inside the checkbox).

This relationship works both ways - the parent's checkbox works as a select/clear all for the children checkboxes.

What should happen when users click the half-checked parent - check or uncheck? Or rather, what factors might influence this decision?

3 Answers 3


what factors might influence this decision?

Are new children checked by default?

This of course depends on the application. Since you didn't specify: lets discuss "selecting folders for backup". The best solution I found are WinZip project files, which works like this:

  • Even if all children are checked individually, the parent is set to "mixed." This indicates that unknown folders are not included.
  • When a folder is checked, all child items are displayed as "checked", and new child folders will be "checked", too.
  • When clicking the parent checkbox, you could cycle through "checked - all children checked", "unchecked - all children unchecked" and "previous mixed state."

I'd intuitively make the cycle mixed --> checked --> unchecked.

  • Thanks @Peter! With #1 I tend to disagree, I think that it harms the perceived consistency of the app - for one folder all checked children will mean a checked parent, but not for another - based on whether they were checked "top-down" or "bottom-up". That logic requires quite a big mental effort and a bit of actual research work from the user to understand it. #2 is great, and #3 is very interesting - I wasn't going to let them get back to "mixed" (mx->ch->unch->ch->unch), but now I'm thinking - why not? The only problem is with the new items which didn't exist in the original mixed state. Commented Mar 8, 2011 at 4:59
  • based on whether they were checked "top-down" or "bottom-up" - IMO WinZip exactly makes this distinction, so you can distinguish between "parent checked" (parent and all children will be backed up), and "children checked individually" (only known children will be backed up) - but yeah, that depends on your app. ---- going back to mixed would be enough during editing the rtee. I don't expect this to work after e.g. closing the app.
    – peterchen
    Commented Mar 8, 2011 at 8:33

I know it isn't what you asked, but the best solution is to not do this sort of thing at all. Users do not understand the "tri-state" checkbox. It doesn't make any sense whatsoever. A checkbox should only have two states - checked and unchecked.

If you need a way to select/deselect all children, add a button or a link next to the parent item to allow that functionality. It will be much more clear that way.

  • 4
    @Charles, this approach might - just might - hold up on websites that are simple, intended for the masses, and can afford no learning curve. When designing systems for trained professionals, who deal with large amounts of data organized in deep hierarchies with complex relationships between them, you can't afford sticking to the simplest solution. Complicated tasks require sophisticated tools, otherwise they become still much more complicated and unclear. Commented Mar 7, 2011 at 20:02
  • 2
    @Vitaly - I design interfaces for "trained professionals" all of the time, and they are not trained in using websites or applications; they are trained in the specifics of their profession. Unless you want to do actual training on your application for every new hire, you ALWAYS need to keep your interface simple and standard. Doing things the way you are suggesting here means that you will be dealing with more support than you would if you kept the interface simple. Commented Mar 7, 2011 at 20:07
  • 1
    @Vitaly - "Complicated tasks require sophisticated tools" - And where is it written that sophisticated tools should be completely counterintuitive? In fact, I'm pretty sure the opposite is true. A sophisticated tool should be one that doesn't require people to be confused every time they use it. The fact that you (as a supposed UI expert by being on this site) can't seem to figure out which way makes sense for this UI element should be reason enough for you to understand that it shouldn't be used. Commented Mar 7, 2011 at 20:10
  • @Vitaly - what is everyone's favorite usability book out there? Just look here: ui.stackexchange.com/questions/74/must-read-user-interface-book The title of the top book should tell you all you need to know. If your user needs to think about what the heck is happening when they do something in your UI, then it isn't a very good UI. Commented Mar 7, 2011 at 20:11
  • 8
    I'm not the brightest person on earth, and I understand tri-state checkboxes, at least if they look different. Everybody who isn't a complete lernresistant moron can understand 3 states. It's not rocketscience. My Keyboard has 105 keys, alone 4 types of them influence the meaning of the others (Alt, Shift, Strg, Alt-Gr). Just use another layout/form/size/color. Commented Mar 10, 2011 at 2:10

If you follow the windows approach, suppose you look at the properties of a folder and click on the read-only checkbox, it goes from fully checked to partially checked to unchecked and back to fully checked. So in my opinion, it should follow the same approach. Hope this helps.

Your Answer

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

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