I am looking for a clear labeling for a button that changes a status of an online test.

Currently, while a user works on the test setup, the button says:


In order to "publish" the test the user needs to click the button, which will change the label to:


I am thinking of changing this to something more obvious and would appreciate any suggestions.

I am starting to lean towards "Publish Test" but then what would be the opposite of it?

7 Answers 7


Your current approach makes it impossible for a user to know what will happen when he pushes the button. You say that "to 'publish' the test the user needs to click the button". Then why is your button not labeled "Publish test"?

The label on a button must always refer to the action it performs. Do not use the button's label to indicate a state. If you want to show a state as well, you have a number of options. These options are pointed out in the accepted answer of this question: Should a toggle button show its current state or the state to which it will change?

  • You are right, and as I mentioned in my post, I am considering "Publish Test". The only reason that I have not implemented it yet, is my hesitation about the label for a reverse action. "Un-Publish"? We have users from all over the world; the last thing we want is to start spreading un-English. Any suggestions? Oct 24, 2012 at 14:22
  • With regards to "unpublish", this question might help: link
    – Matt Obee
    Oct 24, 2012 at 14:29
  • @Matt Obee -- Thanks, it's a good discussion but I am afraid I am not convinced with 'Unpublish'. I'm starting to think more like: 'Take Test Offline', but that's too many words... Still looking. Oct 24, 2012 at 15:10
  • @usabilitest - Typically before something is published, it's a draft. Something along the lines of "Make Draft" or "Revert to Draft" may be what you're looking for.
    – John S
    Oct 24, 2012 at 16:28
  • 2
    Publish Test/End Test. Publish Test/Pause Test. Publish Test/Remove Test. Begin Test/End Test. Any of those work? Oct 24, 2012 at 18:12

Buttons should generally describe actions rather than states. So, for tests that are currently private the button that performs the publish action should probably simply say "Publish" while for tests that are already published the button that reverses that action should most likely say "un-publish" (or something similar).

  • Yes, good point. Please see my comment to @Bart. Thanks. Oct 24, 2012 at 14:22

Would you consider adding an extra element, like a label or text? I would probably go for a text explaining the current state and a button to change it. I know it's quite straightforward, but it's also quite clear:

(text) Online status: PRIVATE

(button) Change status to PUBLIC / Go PUBLIC

  • Yep, I am going in that direction too. Please see my last comment to under @Bart Gijssens post. Thanks for the confirmation -- I think this is the right direction. Oct 24, 2012 at 20:26

What about [make public] and [make private]?
Also, [make public] is equivalent to [publish].

  • There might be instances when the test is password protected and is not intended for public access. I think PUBLISH is widely understood. I'm just having concerns with un-Publish... :) Oct 24, 2012 at 21:15
  • Yes, I noticed your concerns with "un-publish" as an un-English term. That's why I'm suggesting "make private" as an alternate labeling (actually it might be worse, because I'm not an English speaker). <=see: period after parenthesis!
    – Juan Lanus
    Oct 24, 2012 at 21:22

A button is more clear labeled as an action or verb rather than a state... As other answers suggest "Publish test" is a good choice and would be what I would go for. The difficulty is the reverse operation... Is the operation truly symmetric?

It is difficult to avoid assuming what your users may have as a mental model of your application, so you might had to help them out and handhold them a bit so that they understand what it is they are doing...

Q: Why would they want to unpublish the test?

Is it because:

  • They made a mistake and need to change it?
  • This is how they terminate a test?
  • Some other reason?

Whilst unpublishing the test would cover all cases, they are quite different from the perspective of the user. For each option there may be considerations and nuances that need to be taken into account. What happens when a test has been published and other users can access it? For other users who might be looking for this test after it has been published, they might need to be shown a message instead rather than just hiding the test... How does the operation fit into the bigger picture?

If so your undo action may become something like "Revoke test" to temporarily take the test down because it is erroneous or "End test" to close the test as finished might be more appropriate.

  • The project owner would 'UN-PUBLISH' the test for a number of reasons, but the main is the timeliness. At some point you need to pull the plug and start analyzing the data. Oct 26, 2012 at 20:51

Wordpress does it quite well.

"Visibility: Private edit"

"Visibility: Public edit"

could add "Test visibility: Private edit"

Also after the test is created and the editor presses "Save Test" you could ask if they want to publish it: "At the moment the Test is not available for public, would you like to publish it?"

  • Not sure I want to get into Visibility. That's not quite accurate. The test is there, only not accessible. Oct 24, 2012 at 14:23
  • maybe something like this: "Status: visibility private" + "edit" link that would allow the editor to change the status.
    – Igor-G
    Oct 24, 2012 at 14:36
  • Yes, I am thinking of splitting the status and action, however, if I could come up with a clear opposite action to "Publish Test", I would rather use a single button. Oct 24, 2012 at 15:11
  • "Publish Test" -> "Hide Test" This could be like little iPhone slider on/off + colour code Or just as a button
    – Igor-G
    Oct 24, 2012 at 15:21

You can consider "Show/Hide" option since you are saying that the test is still there but is not accessible.

enter image description here

  • Uh, I like this! Show/Hide is definitely a good language. I may still split status and action, though. Thanks. Oct 25, 2012 at 21:48
  • If if the current status is obvious you may not even need to explicitly state it. I just included it as an example since I don't know how the rest of the UI looks. Oct 26, 2012 at 17:44

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.