We have an application where users perform an action on a large set of things. The user decides which things to perform the action on by selecting to either include or exclude things based on various attributes. First, the user selects from a list of attributes (shown on the left). The selected attributes then get added to a second list where the user needs to decide whether to include or exclude the attribute (shown on the right).


download bmml source – Wireframes created with Balsamiq Mockups

The end result is a union of the things with the included attributes and a subtraction of the things with the excluded attributes. Based on feedback from customers, this procedure is very confusing and users constantly make mistakes.

For example, let's say the things are people. If a user wants to perform the action on all people with brown hair, they would simply include the brown hair attribute. If the user wanted only brown-haired males, they would have to include the brown hair attribute and exclude the female attribute (yuck!). A common mistake in this case is to include brown hair and include males. However, this selection would include all people who have brown hair OR who are male (e.g. the result would include brown-haired females). The problem seems to be that sometimes users want a union of attributes (brown-hair OR black-hair) and other times they want an intersection of attributes (brown-hair AND male), but there is no way to make this distinction in the UI.

How can we improve this interface so that it is clear what is actually being chosen? Is there a better approach that still allows both inclusion and exclusion?

I found a similar question: Searching for items that include/exclude an attribute, but the accepted answer which suggests to intelligently prioritize results wont work for us. User's aren't selecting attributes to filter search results and then make a choice...the selection of attributes is the choice in itself. The other answers will only work with a small set of attributes (which isn't our case). Also, it isn't feasible to list out all of the things for users to validate that their selection is correct (there could be millions).

2 Answers 2


I think using words like "and" and "or" will be best to ensure your users understand what they are doing. In this example the user would set the first attribute and then they can choose "And" or "Or" for the second attribute to determine if it is a union or an intersection. This can be done for both included and excluded items. You could select "and/or" for each subsequent attribute.

1 2

Having this include the words "items which meet" or similar will produce a SQL-like sentence which should help understanding. The user can read "INCLUDE people with Brown Hair AND Male" or "INCLUDE people with Brown Hair OR Male." Even to people unfamiliar with SQL or the concept of data sets, this should make sense.

  • I like the idea of spelling it out in a sentence-like manner (especially since that's what I did to explain the problem...it didn't cross my mind to use a similar approach to explain things to users as well).
    – DannyMo
    Mar 28, 2014 at 16:16
  • I would remove the icons on the include and exclude buttons because they confuse me as to whether I am adding items to either include or exclude, or adding or removing items from the include list.
    – Daniel F
    Dec 14, 2015 at 17:59

I think the two steps is definitely confusing. Making it a list of search terms that you can add via dialog would simplify it for me:

List of filters with add filter dialog

Most users will understand that these terms are and'ed together. Handling combinations of and/or can greatly increase the complexity: "brunette man or redhead/blonde female." Then you really have to weigh the benefits of the functionality vs. the complexity of the interface.

  • Yes, I have seen a lot of interfaces where the AND is implied in this manner. I would say that in use cases such as this one, where OR is not even an option, it is simpler to drop it.
    – Franchesca
    Mar 28, 2014 at 8:39
  • 2
    Your example is essentially saying "brunette males", correct? My worry is that we will still have the same problem where users will try to add two filters "Is brunette" and "Is blonde" thinking that their selection means "All brunettes plus all blondes" when it really means "All people who are both brunette and blonde" (which is probably no one).
    – DannyMo
    Mar 28, 2014 at 16:13
  • 1
    If you want to support brunettes and blondes, I'd suggest the Add Filter view is a multi-select for options. Hair > Is > Brunette, Blonde, Black. Then you and together filters, and or options for filters. If you want two items of the same type and'ed instead of or'ed, you add two filters for the same type.
    – Dennis
    Mar 31, 2014 at 22:42

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.