What’s the deal with What’s This??


Via the suggestion box, Matthew Douglass-Riley wonders about the history and fate of the What's This? button. (The same question was repeated by an anonymous coward.)

The What's This? button (more formally known as the contextual help caption button) is turned on by the WS_EX_CONTEXT­HELP extended style and takes the form of a question mark. When the user clicks the button, the cursor changes to an arrow with a question mark, and when the user clicks on a child window, a WM_HELP message is delivered to that window.

As originally written, the intended response is for the window to call the WinHelp function with the HELP_CONTEXT­POPUP command and information describing the location of the desired help text. The WinHelp.exe program displays the help text in a pop-up window.

As a clue to how old this technology is, you may observe that the pop-up window causes the original window to become disabled, and it comes with a rather sad looking shadow effect. This was long before the introduction of the CS_DROP­SHADOW window style or even layered windows. To get a drop shadow effect, you had to draw it yourself. And this was also the days of 4-bit color, so the drop shadow effect is actually a dither.

Anyway, it wasn't long for What's This? to fall out of favor and become replaced with HTML Help, which in turn has taken a back seat to Windows Vista Help. It seems that help technologies change rather often, and I'm not sure why. Maybe it's because the user assistance folks are willing to experiment with a lot of different ideas, unashamed of abandoning their previous efforts when they fail to pan out. Maybe because designing a good help system is hard. Maybe because users simply don't bother checking the help, so it doesn't matter how good your help system is since nobody uses it anyway.

I find it interesting that the Help Guidelines asks the question, "Are you using Help to fix a bad UI?" There's even an entire section titled Designing UI so that Help is unnecessary. I find the guidelines interesting because they capture lessons learned from earlier versions of Windows which violated those guidelines.

Matthew calls out one particular dialog in Windows XP that has a non-functional contextual help caption button. Sorry about that. It's a leftover from the days when contextual help was still the recommended way of providing user assistance. The contextual help was removed, but the button wasn't cleaned up. You'll be happy to learn that the UI glitch has been fixed in Windows Vista.

Comments (17)
  1. yuhong2 says:

    Not to mention that WinHelp is not installed by default in Vista and later, you have to install it as a download.

    [I should get a dollar each time Yuhong Bao says "not to mention…" and then brings up something unrelated. -Raymond]
  2. SvenG says:

    The link to the original question int the suggestion box doesn't work with the site update.

  3. anonymuos says:

    But HTML help also supports "What this" type help. "What's this" was one of the most useful, innovative, non-intrusive and powerful form of help that didn't annoyingly open a separate window on top of the app window or by resizing the app window, and didn't require the user to focus his eyes to locate the relevant text or paragraph to read from the long page of documentation that opened. It provided help only about the small little feature that the user wanted help with and with a simple click anywhere, it would go away and return control to the disabled window. Sadly Microsoft did away with it in Windows Vista (probably because Windows' "What's this" used WinHelp throughout the OS). MS should have updated it to use HTML help in Vista. Doing away with it because it used WinHelp was lazy. I'd love to see it back in some future version of Windows based on HTML help. Also in my own experience, XP had fully functional What's this help. Vista forgot to fully clean up the dialog (only cleaned up some of them), but Windows 7 cleaned it up (if you mean Windows 7=Vista 1.1 then sure Vista cleaned it up).

    en.wikipedia.org/…/List_of_features_removed_in_Windows_Vista also mentions this: "Context-sensitive help is not available in Windows Vista, since it was dependent on WinHelp. Although the HTML Help technology also supports context-sensitive help (including "What's this" help), Windows Vista dialogs remove the "What's This" button and context sensitive and the "What's This" help functionality"

  4. Gregory Kong says:

    @Lawrence: No, Raymond actually means 16-bit colour. Probably.

    At one stage, Windows supported a mode called "hi-color", which was 65,536 colours or thereabouts, as opposed to the 16.7 million colours of "true color", or 24-bit colour. FWIW, I think they still support hi-color. Maybe.

    To be honest, though, I still like the idea of contextual help. I miss it very much on the newer apps. It gave you just that additional information without you having to open HTML Help, which always felt like overkill when you're trying to explain a single particular radio button or checkbox.

    So, there you have it, Raymond. Some people still like the idea. And some time in the future, when you're at lunch with whoever came up with it, you can casually mention that we'd like it back… ;)

    [Lawrence is right. I meant 4-bit color. -Raymond]
  5. Agnel C J Kurian says:

    "What's this" was one of my all time favorite Windows features. I am yet to see a help interface that's half as good as "What's this". Windows help today is quite useless compared to the introductory tutorial of Windows 3.1 (that's where I first learned to use a mouse). I can't think of a single good reason for this compromise.

    And CHM was/is great too… even the Safari browser's help file was CHM on Windows (as a result of which Safari users relied on IE to view their help file).

  6. Contextual help was the greatest usability innovation since the tooltip. It will be sorely missed.

  7. Jon says:

    "it doesn't matter how good your help system is since nobody uses it anyway" – that wouldn't be a good reason to keep changing it :)

    It does seem that help regresses with each new version. Most dialogs have no context-sensitive help anymore, which is something we've lost since the "What's This?" days, apart from speed. I think a good solution would be tooltips instead of "What's This?", with a hyperlink for a longer explanation, if necessary.

  8. Really Unneeded says:

    A gripe about the new commenting system: if you want to refresh the thread, you have to cut off the last part of the url otherwise it wants to resubmit your comment.

  9. Really Unneeded says:

    Oh… it appears the sign-in system is at fault, not the commenting system. I hope it will soon be possible again to comment without signing in then.

    —–(the comment I thought I posted but apparently didn't appears below)—–

    When the HTML help system was introduced there was no talk yet on removing What's this? help and Windows (and other software) contained both a .chm file that contained the help shown via the Help menu, and a .hlp for the little pop-ups. It would have been absolutely trivial to add the ability to display little pop-ups to the HTML help system. Why wasn't this done? It would have made the lives of help developers (including Microsoft's own) a lot easier.

    In any case, does this mean that What's this? help is considered legacy now, only included for backward compatibility? While personally I am in favour of designing software in such a way that no help is needed, I find that there are some things that are by their nature somewhat complicated yet necessary to grasp (say, e.g. colour spaces, in an image editor) so some help will always be necessary and context help did strike me as the best way in a lot of situations when it was introduced. Should we avoid WM_HELP now, or should we just keep using it, but implement handling it with something new and improved and altogether not so reminiscent of Windows 3.1?

  10. anonymous says:

    @Really Unneeded, "It would have been absolutely trivial to add the ability to display little pop-ups to the HTML help system." HTML Help also supports "What's this" help. MS have been lazy not to update their dialogs that used "What's this" WinHelp to "What's this" HTML help and so found it easy to do away with the feature probably hoping no one would care about the little ? button in dialogs.

  11. someone says:

    This was one of the annoying regressions in Office 2003 as well which did away with What's this help present last in Office XP.

  12. dbacher says:

    The "whats this" option doesn't really help with a confusing dialog box, and that's the core issue and why it was removed.  

    Providing the help at the field level is like talking to a 2nd grader who asks you "whats this," and as soon as you answer then points at something else and asks "whats this" over and over again.  It's not a good solution, generally, to the problem — it's not usable.

    What is more usable is to route F1 or a button labeled help through to help for the entire dialog box or process the user is performing, and use the old-school help info to route it to a specific anchor.

    More usable still, in some cases, is to put the help on the right side of the dialog box in a panel, and hide it by resizing the dialog box so the panel is off the edge, then resize the dialog box up in response to the user asking for help.  The issue is that requires more work to be L10N and I18N, but it's a much more user friendly approach.

    Also — when you're I18N and L10N the help, having a lot of little one sentence entries is a problem.  You don't have the context of what the user clicked on when you're translating the one-liner in the help.

  13. katastrofa says:

    "The "whats this" option doesn't really help with a confusing dialog box, and that's the core issue and why it was removed."

    It did help me, when it presented some info about more advanced configuration options. It was easy to use for me, too bad if it was removed.

  14. Alexandre Grigoriev says:

    Nobody is using Vista Help because it's useless. I challenge everyone to come with keywords for any meaningful help search results. I didn't have any luck with it. It returns all kinds of unrelated BS links. I guess full text search is not that good; XP help with keyword search was actually useful.

  15. Miral says:

    While it's definitely true that UI should be designed to be sufficiently intuitive that Help is not required, the reality is that as your audience grows wider you're going to get people who need a "nudge" now and then, especially if they're using something outside of their comfort zone.  (And no, that doesn't make them idiots.)

    So "but our UI is intuitive!" is *NOT* an excuse to remove context-sensitive help.  And I hope that it returns in future versions of Windows.

    (Incidentally, while the Windows help isn't too bad, the utter abomination that pretends to be the Office 2007 help desperately needs killing.  It is massively worse than the level of help that was available in Office 97.)  [And I know that's off-topic.  I'm just venting now.]

  16. David Walker says:

    The "what's this" feature was well-intentioned, but often badly implemented by the programmers who CREATED the help content.  No rap on the implementers of the feature.

    There are lots of examples from all vendors, but when you are looking at a dense set of options (let's use Internet Explorer/Tools/Internet Options/Advanced, just to pick on one program from one vendor), and there's an option labeled, oh, "flib the grommet unless it has been flabbed" or "Force offscreen compositing even under Terminal Server", or on the Security tab, "Allow data sources across domains"… it would be MOST EXCELLENT if the programmers who put together the Help would fill in something OTHER THAN "select the options you want, and deselect the options you don't want".  AAArgh!  I want to know what each option MEANS to me; it's completely obvious that I can select or deselect them.  

    If I point at ONE option with "What's This", I would like for it to tell me what "offscreen compositing" is, and give some guidance in what situations I would want to pick that option or not, even under Terminal Services.  And if I point at the "data sources across domains" item, I would like "What's this" to tell me the ramifications of each choice… at least in a broad outline.  As it is, you have to go to an external source… or search engine… which makes the "What's this" feature much less useful than if it had been used better.

  17. andy says:

    "Providing the help at the field level is like talking to a 2nd grader who asks you "whats this," and as soon as you answer then points at something else and asks "whats this" over and over again.  It's not a good solution, generally, to the problem — it's not usable."

    I believe you are wrong. Context sensitive help *is* a good solution when you know about the process in general but a small subset (e.g., one checkbox) makes you wonder a little. It is terrible that you then have to open a new application/window and change focus to that one to figure out that small detail. And after you've figured out where in that pile of help the stuff you wanted help about is located you've probably have forgotten where you where in the process. And then you feel warm and happy about the great helping system and next time try to avoid using it and rather guess as good as you can at the options. Or Google/Bing it instead and hope to find a quick description.

    The kind of help system described by dbacher sounds useful if people would read it before they start some procedure/process. But not so useful when you're in the middle of it…

Comments are closed.