There is a page in a system I'm working on, that deals with user permissions regarding the current item being viewed. There are 4 groups that people can be added to. When creating a new item, you need to set up the permissions and are presented with the 4 groups, with no people added by default.

In error, I did not provide a wireframe to the developers for the null state of these tables. What has been implemented is therefore a table header row, with no data nor an empty row, I'm not sure it's even clear that there are 4 tables being shown. Table headers only I raised a fix to show a text alternative to the empty table, rather than show these weird headers. The developer has said that the adding and removing of the table would be jumpy (if the user adds then removes 1 person to the group for example) which would be jarring for the user and that it should stay as it is. The Tester agreed and closed the ticket. Empty Table Message With No Table Shown So, I thought about this some more. Maybe neither implementation is the right answer or provides the best user experience. So I came up with another 2 options. The first is to add an empty row to the table. This makes it at least slightly more obvious that there is a table, and it's empty. This suggests to the user that they could add more items. Empty Row Added to Table Second was to add an empty row to the table, with a null state message below. Empty Row Added with Null State Message I'm sure there are many versions of this question, I've read a few, but I would love to have some more opinions on what the best approach might be in this scenario, due to the multiple occurrences of the "table" on the page.

(Bit more insight: This is a bespoke piece of software created for record management and used by a team of about 50 people. Accuracy and efficiency are key. The users of this system are not super tech savvy but work in an office and use computers on a day to day basis. They tend to prefer being able to see all information at once and scroll down a page, rather than having to do lots of navigation.)

  • I think that the 3 solutions you suggested would all be an improvement on the original, I would probably say the 3rd is most clear to me.Sometimes being a designer means you need to know when to dig your heels in and when to let it go. I dont see there being a big problem with the original and perhaps its not worth the extra development work to just slightly improve the user experience. You are figuring out solutions and thats all you can really do sometimes. Jan 23, 2019 at 21:31
  • Hey Laura, welcome to UXSE. I believe this page: ux.stackexchange.com/questions/123222/… can awnser your question somewhat. What you are looking for is the 'best' empty state. The best empty state for your users can be found by user testing. Now what the dev says is somewhat correct however there are plenty of ways to fix that 'jumpy-ness', for example that only on page refresh will the header go away when the last row is deleted or such.
    – Kevin M.
    Jan 23, 2019 at 21:45
  • I think that the last option you mention is the best one, the reason for this (in my opinion) is because with this empty state you already 'tell' the user what data they require to add a new row. However please keep in mind that the best empty state is found by user testing.
    – Kevin M.
    Jan 23, 2019 at 21:48
  • I think these replies are interesting. I have a difficult situation in that I'm not currently given user access to test ideas at the moment. I try to run ideas past as many colleagues as possible, but being in a youngish tech company, we are far from the average user! It does seem like I'm going to be able to observe some UAT testing and so I will ensure to note how they respond to the different elements on this screen. I'm hoping it will be an eye opening research session. It unfortunately means that the improvements won't happen for about another year (yay waterfall projects)
    – Laura
    Jan 25, 2019 at 10:58
  • Although, as pointed out, the extra development time on something users may not see as a huge benefit might not be worth it just yet! I appreciate the comments!
    – Laura
    Jan 25, 2019 at 10:59

1 Answer 1


The main problem seems to me the unclear structure and not so much the emptystate of the tables. What i do not understand exactly is the dropdown in front of the CTA "add person". It is not clear what happens when clicking on "add person" does it just creat a new row or does it open a searchbox? Without that knowledge i came up with the following solution. Bring the Grouptitle and the according Table together as a unit. Show an empty row containing the CTA. This way it seams less cluttered it is obvious, that the Table in a specific Group is empty. Hope that gives some ideas. enter image description here

  • This was my first thought about this problem as well. Bring the action into context by having the CTA part of the new line placeholder.
    – Dwev
    Jan 25, 2019 at 9:53
  • This is a really interesting reply and speaks to something I was concerned over. The way the dropdown currently works, which was designed many years ago, is that you select a system user, and then click "Add Person" to add them to the group, creating a new row in the table. This definitely isn't the most logical way of doing this and I am interested in your suggestion. What would you imagine happened when they clicked "Add person" in your example? How would they search the users?
    – Laura
    Jan 25, 2019 at 10:44
  • @Laura Ok, i understand. The first thing coming to my mind is creating a new row with the name or email field as writable. If the user begins to type show autocomplete options. but this only works if the name is known by the user.
    – BrunoH
    Jan 25, 2019 at 11:11

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.