I have a table accompanied by a search component. The table is filtering items upon typing according to the following rule:

  • If at least one of the item properties contains the text at the search box - show the item.
  • Otherwise - do not show the item.

Now, the table is allowing users to choose if a column is visible or not, so he can dismiss (hide) columns that he finds useless.

The question is, should the filter also take in account properties which their corresponding column is hidden?

Check the example below:

  1. Search box is empty - all table items are shown.
  2. Search box contains text - only items with relevant text are shown.

Now, when the Nickname column is hidden, should the table show the relevant item (4) or not (3)?


download bmml source – Wireframes created with Balsamiq Mockups

  • i like rewobs idea below, additional nice thing about checkbox is reminding users that they have hidden columns or have the ability to make hidden columns (win: win). i think the app should respond to searches for items that fall into hidden columns, a good secretarial shortcut is to search for known data without having to take preparative actions and change their screen workspace. Eh? Commented Jan 30, 2016 at 2:11

4 Answers 4


Avoiding the dilemma

There's a possible solution without falling into this dilemma:
Give users the choice, just by adding a checkbox below the search/filter input which specifies "Search in hidden columns too" or some similar text.


download bmml source – Wireframes created with Balsamiq Mockups

If for some reason that's not enough I'd choose 4 (show results even if the column is hidden).


  • With option 3 users will eventually forget what column they have hidden and then when they search for something they won't get any result, which will bring them to think that person/registry is not part of their data. That can only derive in awful consequences.
  • Visibility preferences are not by default the same as filtering/searching preferences. You can hide/show something for a reason and then search something specific with different reasons.
  • With option 3 you are forcing the user to remember what they have filtered and to perform additional actions when they just want to search/filter some data. Thus, you are delegating your responsibility to the users, adding cognitive load and more work for users.

If you want to offer a more specific search it will help to:

  • Add column filtering, thus the user will be able to search for a particular value of a visible column, leaving the top generic searching/filtering input to "search everywhere".

enter image description here

  • I think the additional check-box provides the best solution for the issue. However, I wonder if when the search "hit" only invisible column, some feedback should be given. When a visible column is hit, the matched text is highlighted (I updated the mockup to reflect it). So, maybe "play" with hidden columns visibility when a search hit one?
    – Assimiz
    Commented Jan 21, 2016 at 9:11
  • 1
    @Assimiz I thought of this but didn't include it in my answer cause I wasn't sure.And yes, ofr now I can think of three options,1)since there are just 4 columns and very distinguesheable, probably there's no need for clarification in this specific case 2) an "info message" above everything saying "Results contain data that was matched in Nickname hidden column, click here show that column" (my english is not the best but that would be the idea).3)Auto-Show the hidden columns that the search matched. I can't really say what's the best option without testing the option with the real final users. Commented Jan 21, 2016 at 11:03
  • Anyway keep thinking in other possibilities, there might be a better one. Commented Jan 21, 2016 at 11:04
  • 1
    The 3) extension would be to add an alternative and oppositive message of 2) that could be "We change the visibility of Nickname column from hidden to visible, because the results have matched its content". [Keep doing this] [Don't do this again] [Just this time]. It doesn't convince me either, but that's another option. Commented Jan 21, 2016 at 11:20

I choose (4) at first but after some careful analysis, I think (3) would fit your design better. The reason being that your search itself is already a filtering mechanism (keywords). It doesn't make sense to do further filtering on your results by hiding/showing relevant boxes. Also when I choose to hide a column, I am explicitly indicating that I'm not interested in whatever result that is shown in that particular column.

Just a suggestion, perhaps you could rearrange your design by putting the search on top of the show/hide box. Change the search label to "Search In.." so user has the options to search in one or more of the columns.

Example.. By default, all the boxes are checked, so the search should be performed in all the columns. If I uncheck all the boxes and only select "name", then the search should only be run on the "Name" column. This makes more sense to me.

enter image description here


So it boils down to whether the search is on the data or just the current view of the data?

I'd personally go for 4. Sometime columns are hidden just because of space restriction rather than lack of interest, though obviously the user tends to keep the columns they are most interested in, however as rewobs said often a user will forget what they can't see any more.

So option 4, but sort the returned results by whether the match was in a visible column or not. Thus you can split the results into two parts, the second perhaps being subtitled "you may also be interested in" and specify the field which caused the match for each result (this hinges on you getting that level of feedback from the search engine or being able to deduce it after the results are returned)

There's also the issue that the search seems set up for text fields only, how would you search for employee yes/no whether that column's visible or not, or what about an age (it would seem to be exact matches only, or typing '4' would return everyone who's 24,34,40-49,54,64, etc)


As adomsoh suggested the column is relevant to you as a user or it is not relevant. Hiding a column is saying "I don't care about this column". To then perform a search on it is inconsistent and confusing. Do you care about it or not?

It's confusing because there is nothing visually to correlate between your search query and your results. It can get even more confusing in cases where what you've searched for is found in visible columns for some rows and hidden columns in others (e.g. someone's name has "Peldi" in it and someone else's hidden nickname has "Peldi" in it). It will look like the search is broken. I've searched for "Peldi" and it's showing me rows that don't have Peldi in them.

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.