Update on Help from Microsoft
By Matthew Ellison
Click a link below to jump to a particular section; click any "
CONTENTS" image following a section heading to jump back here.
During the 1990's, business computing embraced Windows as the dominant platform for software applications. Writing online user assistance became almost synonymous with developing Microsoft Windows Help, and Help authors became accustomed to relying on Microsoft to provide the technology they needed. This technology included a Help engine, standard viewer, compiler, and API that everyone used.
The last two years or so have seen the situation for Help authors become less clear-cutother platforms (such as UNIX, Linux, and Java) have become increasingly important, and there has been a popular trend toward applications being hosted on the Web. This has coincided with an apparent delay in Microsoft's process of developing and updating its own Windows Help format. Although Microsoft Help 2 has actually been released in some developer-focused products (for example, Visual Studio .NET), it lacks several features that the Help authoring community and end users will needincluding, most importantly, a standard viewer. A general release of Help 2 that includes these features has been delayed until at least 2003.
As a result of having to cater for multiple platforms, many Help authors have begun to adopt alternative (usually uncompiled) HTML-based Help formats. The uncertainty surrounding the future of Microsoft' s Help format has caused even those people supporting exclusively Windows-based applications to consider their optionsMicrosoft's Help format is no longer the automatic choice for all.
But what is the reality of the situation with regard to Help from Microsoft? Is it still the best solution for supporting Windows applications? And if so, which version should you be using? This article looks at the Help technology currently available from Microsoft and assesses its strengths and limitations. It provides advice on selecting the best strategy for supporting Windows-based products, taking into account the anticipated release of Microsoft Help 2.0 in 2003.
Birth of a New HTML-based Help Format
At the 1996 WinWriters Conference, Microsoft announced that it was discontinuing further development of its then-current Help format (WinHelp 4), and would be introducing a new HTML-based compiled format, to be called HTML Help. HTML Help 1.0 was duly released in early 1997. Among the innovations most emphasized by Microsoft at that time were web integration (the ability to link to web-based topics, and to include them within the TOC and index), as well as the ability to exploit HTML-based technology (anything you can do in a web page, you can do in an HTML Help topic). Coupled with the new tri-pane window, which allowed users to view navigation and topic content side-by-side, these benefits provided compensation for the restricted built-in support for popups, browse sequences, and secondary windowsall features that had been richly supported by WinHelp.
Although the compiled (.CHM) format required Microsoft's Internet Explorer browser to be installed on the user's PC, the first release of HTML Help included a Java applet. This provided a basic set of navigation features for an uncompiled version of HTML Help that could be displayed using any Java-enabled browser. Many Help authors welcomed this as an intention by Microsoft to enable deployment of HTML Help (albeit with reduced functionality) to a number of leading non-Windows platforms, and further development of the Java applet was anticipated.
In the early days, Microsoft also highlighted "information types"a revolutionary new feature that (we were told) would enable users to customize our Help systems to their own specific needs. Although implementation of information types in version 1.0 was rudimentary, future versions held the prospect of users being able to filter topics within the TOC, index, and searchas well as the interesting possibility of "hidden" information types that would enable us to customize Help content "on the fly" on the basis of a user's profile (as determined by a user's login). At the 1998 WinWriters Conference, a presentation by Ralph Walden and HTML Help Program Manager Kate Harper forecast a release date of summer 1998 for a 1.2 release of HTML Help that would include enhanced functionality for information types.
The Current Version of Microsoft's Help
Five years after the first release of HTML Help it's still the standard Help engine built into current versions of Windows, and we have progressed to version 1.3. The incremental releases during this period have provided bug fixes, better windowing support, advanced search options, and limited Unicode support.
The full-feature set for information types unfortunately never materialized, and information types have not proved useful in their original limited implementation.
No work has been done since 1997 on the Java applet that supported a cross-browser uncompiled version of HTML Help. The original development effort, a response by Microsoft to its customers' requests for a cross-platform solution, had expended considerable development and testing resources, while failing to meet either Microsoft or customer expectations. The major challenge cited by Microsoft had been the incompatibilities among Java implementations. As a result of this, Microsoft chose to concentrate its development efforts on the Windows-specific compiled version of HTML Help.
You can download the latest version of the HTML Help 1.3 SDK from the following location on the MSDN web site:
Incidentally, the predecessor to HTML Help has not quite yet become a footnote. According to the 2001 WinWriters Skills and Technology Survey, WinHelp was still actively used by 42% of survey respondents. You can download the latest version of the WinHelp compiler from here:
How Microsoft Delivers Help for Its Own Software
Microsoft promotes HTML Help 1.3 as the current standard for Windows online Help, and uses this format as the basis of the Help for most of its own applications. However, you would not necessarily recognize a number of its Help systems as HTML Help, because Microsoft has made extensive use of the ability to customize Help to its specific requirements.
For example, the Help for Office XP does not have the regular index and search tabs within its navigation pane. Instead, the Help uses an "Answer Wizard" tab that provides a natural language interface with its own custom index tab that behaves very differently from a regular HTML Help index tab. Neither of these features is available to developers outside of Microsoft, by the way.
Many of Microsoft's home products (such as Money 2002) also use HTML Help 1.3, but with a highly customized UI, and hosted within a pane of the application itself.
Finally the Help for the operating system within recent releases of Windows (including ME and XP) displays its content within a special application called the Help and Support Center (HSC). You can find out more about this by reading an article on the Help and Support Center on this site by Joe Welinske.
Although it looks very different from the HTML Help tri-pane window, again the core engine for this application is actually HTML Help 1.3.
In terms of the Help provided by Microsoft on the Web, there is an apparent divergence in style from HTML Help and visions of Help 2.0. Web-based applications like HotMail and Passport are hosting ASP-generated Help content in a standard browser window compatible with Navigator and other browsers. However, on the server Microsoft's actually using a compiled Help format that uses the same TOC, search, and storage technology as HTML Help.
A Glimpse at the Future of Microsoft Help
Visual Studio .NET (Microsoft's new development environment for creating rich Windows applications, web applications, and XML web services) uses the new-generation Help 2 format for its own user assistance. If you're interested in previewing this new Help technology, then it's possible to get your hands on the development toolsMicrosoft has recently made available a collection of Help tools and documentation called the "Visual Studio Help Integration Kit." You can download this from:
Designed for organizations that need to extend the Help of Visual Studio .NET by documenting its own components and add-ins, the Help Integration Kit contains a pre-release version of the new Microsoft Help Workshopthis enables you to compile your topics into the Microsoft Help 2 format. Even if you're not planning to document a component of Visual Studio .NET, then you may find it interesting to experiment with the new tools. Please note, however, that you need to have a copy of Visual Studio .NET installed on your machine as a pre-requisite for installing the Visual Studio Help Integration Kit. If your organization does not already have a copy, then you can order a 60-day evaluation copy of Visual Studio .NET Professional from:
You should also note that any Help you create using the Visual Studio Help Integration Kit will only run within the Visual Studio .NET environment. In other words, the users of the Help have to have Visual Studio .NET installed, too. So this is not a way of getting ahead of your competitors by shipping Microsoft Help 2 with your own productsunless they happen to be components of Visual Studio .NET!
Microsoft Help 2
So why should we be interested in this new version of Help that we've all been waiting for so long? What new features will it have when it is finally released in 2003 (or beyond)? The answer right now is that no one knows for surethe product is still under development, and Microsoft has not yet announced a final set of features. However, we can make some good guesses based on the Help for Visual Studio .NET, and on what Microsoft has said publicly at the 2001 and 2002 WinWriters Conferences.
XML will play an important part in Help 2, with an XML-based file format replacing the proprietary "Site Map" format used for the TOC and index in HTML Help. Within topics, there will be no more object tags (currently used for accessing commands within the HTML Help ActiveX control)instead, XML "data islands" will provide special features normally associated with online Help, such as dynamic links. XML data islands are snippets of XML code embedded within the HTML-based topic files to provide information to the Help 2 compiler.
Help 2 will have a new architecture for modular Help based on the concept of "collections," which enables you to define groups of related Help files sharing a common navigation system. You will be able to add your own Help file to a collection defined by someone else, and collections will support extremely large numbers of Help files and topics (much larger than those currently supported by modular HTML Help).
The new feature that is probably most significant for the majority of Help authors is the implementation of topic attributes and filters. This finally delivers on the same kind of functionality that was originally planned for information types in HTML Help. Users will be able to filter topics according to their own needs, using some sort of control provided within the Help interface.
Help 2 will also be significantly easier to integrate and embed within applications. This opens the way for dynamic Help systems that display useful information automatically, based on users actions or context within the application itself. If you have access to Visual Studio .NET, you should look at the "Dynamic Help Window"although not in itself a feature of Help 2, it is a good example of a dynamic Help feature that is based on the infrastructure provided by Help 2.
However, in all that Microsoft has said about Help 2 so far, one key feature has not been promisedthe ability to access and use the compiled Help system via web protocols. As a result, even with the .NET revolution almost upon us, Help 2 systems will have to be installed locally on the client machine.
Planning Your Windows Application Support
A lot of authors are wondering which Help format they should choose right now for supporting Windows applications. Should they invest time and development effort in HTML Help if it is due to be superseded by Microsoft Help 2 in a year or so's time? What about the Microsoft Help and Support Centerwhere does that fit in? And is there any need to look outside of Microsoft for the most appropriate Help technologies?
If you're supporting Windows software...
...then chances are HTML Help is meeting your needs, and will continue to do so for the foreseeable future. If you'd like to take advantage of the new features of Microsoft Help 2 when it's released, you will need to discard all your HTML Help files and start again. But don't be concernedMicrosoft will be providing migration tools and mechanisms that enable you to convert your HTML Help projects to the new Help format.
If you're working with a tool (such as RoboHelp, Doc-To-Help, or AuthorIT) that shields you from the technical details of the Help file formats, then chances are good that the process of switching to Microsoft Help 2 will be even easier. It could be as simple as selecting a new Help 2 output option when it's time to generate the compiled Help. However, if the tool vendors do their jobs well, a number of new capabilities will become available when targeting Microsoft Help 2.
If you're still using WinHelp, then if it's not broke, don't fix it. WinHelp is supported by the latest versions of Windows and the Microsoft Help team is not aware of any plans to discontinue this support in the future. However, the era of this reliable RTF-based format is near its end with the software industry's full embrace of web protocols for applications and documentation.
Should you be including your Help within the Microsoft Help and Support Center? Well, there is nothing to stop you doing so, as long as you're able to obtain an Authenticode Digital ID and Class-3 software publishing certificate from a certification authority such as VeriSign or GTE. Microsoft has created a Content Integration Guide that provides detailed guidance on the process. This document is available within the PC Health section of the Microsoft Management Alliance web site, which has restricted access. You can register to be a member of the site here:
If you do include your Help within the HSC, then anyone who opens the HSC will find your topics within the overall TOC and via full-text search. However, integrating your Help into the HSC may not make sense unless you're supporting a component of the Windows operating system, such as a printer driver or a network card. The more likely place for users to seek Help for a general application is through the Help buttons and options available within the interface of that applicationin which case, regular HTML Help is probably the best option.
Finally, what about the option of moving away from a compiled Microsoft Help format? It's worth keeping in mind that recent WinWriters surveys have shown a significant movement toward browser-based Help, even among Windows developers. Some organizations are choosing to have dynamically changing Help available on the server, even in support of client applications. Browser-based Help is also being used as a locally installed alternative to HTML Helpit offers cross-platform support and is compatible with the evolution toward open source web protocols. Further details of browser-based Help solutions are in the final section of this article.
If you're supporting add-in components for the Visual Studio .NET development environment...
...then you should be looking at the Visual Studio Help Integration Kit mentioned earlier in this article. This will enable you to add the user assistance for your components, add-ins, and libraries right into the existing Help structure for Visual Studio .NET (technically, you will be "plugging into the collection"). This experience will also give you a useful preview of what it will be like to author for the general release version of Microsoft Help 2 due out in 2003 (or beyond).
If you're planning to support products in the .NET framework...
...then Microsoft states that HTML Help 1.3 is up to the job of supporting managed Windows applications. What is more, the .NET framework includes a class called HelpProvider, which makes it easy to add context-sensitive Help to forms. Microsoft Help 2, when it's released, will be even better suited to this environment, and you should be able to migrate smoothly and easily from HTML Help to Microsoft Help 2 at that time.
Having said that, neither HTML Help nor Microsoft Help 2 is a truly web-based format. It is possible (with both Help formats) to access web-based Help content; however, the navigation information (in the form of a compiled Help file) must be downloaded and run on the client. We'll probably have to look beyond 2003 for a compiled Microsoft Help format that is based entirely on the Web.
If you're already supporting web-based applications...
...then you are no longer writing Help that will be used exclusively on Windows PCs. Microsoft has always (quite justifiably) designed their Help formats specifically for the Windows platformthese formats do not meet the needs of developers who are supporting cross-platform or web-based applications. In this situation, you need to look for an uncompiled, browser-based Help format.
There are plenty of browser-based Help formats to choose from, including the following:
Finally, a current trend within many web applications is embedding Help text into the UI, either as static text or using a range of DHTML techniques. Unfortunately, this requires each developer to create a custom Help solutionthere is no sign yet of an industry standard, whether from Microsoft or from anyone else, to support this kind of Help model.