{"id":39343,"date":"2004-05-14T07:01:00","date_gmt":"2004-05-14T07:01:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2004\/05\/14\/when-do-you-disable-an-option-and-when-do-you-remove-it\/"},"modified":"2004-05-14T07:01:00","modified_gmt":"2004-05-14T07:01:00","slug":"when-do-you-disable-an-option-and-when-do-you-remove-it","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20040514-00\/?p=39343","title":{"rendered":"When do you disable an option and when do you remove it?"},"content":{"rendered":"<p>When you&#8217;re displaying a menu item or a dialog option,  and the option is not available,  you can either disable it or you can remove it.  What is the rule for deciding which one to do?\n  Experiments have shown that if something is shown but  disabled, users expect that they will be able to get it  enabled if they tinker around enough.\n  So leave a menu item shown but disabled if there is something  the user can do to cause the operation to become available.  For example, in a media playback program,  the option to stop playback is disabled if the media file  is not playing.  But once it starts playing, the option  becomes available again.\n  On the other hand, if the option is not available for  a reason the user has no control over, then remove it.  Otherwise the user will go nuts looking for the magic way  to enable it.  For example,  if a printer is not capable of printing color,  don&#8217;t show any of the color management options,  since there&#8217;s nothing the user can do with your program  to make that printer a color printer.\n  By analogy, consider a text adventure game.  The player tries something clever like  &#8220;Take the torch from the wall&#8221;, and the computer replies,  &#8220;You can&#8217;t do that, yet.&#8221;  This is the adventure game equivalent to graying out  a menu item.  The user is now going to go nuts  trying to figure out &#8220;Hm, maybe I need a chair,  or the torch is too hot, or I&#8217;m carrying too much  stuff, or I have to find another character and ask him  to do it for me&#8230;&#8221;\n  If it turns out that the torch is simply not removable,  what you&#8217;ve done is send the user down fruitless paths  to accomplish something that simply can&#8217;t be done.  For an adventure game, this frustration is part of the  fun.  But for a computer program, frustration is not  something people tend to enjoy.<\/p>\n<p>  Note that this isn&#8217;t a hard-and-fast rule; it&#8217;s just a guideline.  Other considerations might override this principle.  For example, you may believe that a consistent menu structure  is more desireable because it is less confusing.  (A media playback program for example might decide to leave the  video-related options visible but grayed when playing a music file.)  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you&#8217;re displaying a menu item or a dialog option, and the option is not available, you can either disable it or you can remove it. What is the rule for deciding which one to do? Experiments have shown that if something is shown but disabled, users expect that they will be able to get [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-39343","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-other"],"acf":[],"blog_post_summary":"<p>When you&#8217;re displaying a menu item or a dialog option, and the option is not available, you can either disable it or you can remove it. What is the rule for deciding which one to do? Experiments have shown that if something is shown but disabled, users expect that they will be able to get [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/39343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=39343"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/39343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=39343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=39343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=39343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}