The ability to execute HTAs was introduced to Microsoft Windows in 1999, along with the release of Microsoft Internet Explorer 5.[1] On December 9, 2003 this technology was patented.[2]

HTAs give the developer the features of HTML together with the advantages of scripting languages. They are popular with Microsoft system administrators who use them for system administration tasks, such as user-forms and pre-written network queries, since, for example, VBScript and JScript can access the Windows Task Manager. In general, HTAs are said to be suitable for many purposes, from prototypes to "full-scale" applications, especially where flexibility and speed of development are critical.[3]

Beside the advantage of programming applications in Internet environment programming languages, which can usually be easier, due to the use of markup languages to build a UI (like XAML, which was later presented by Microsoft as a part of WPF), there are a few disadvantages of the current standard of HTA:

An HTA is executed using the program mshta.exe, or, alternatively, double-clicking on the file. This program is typically installed when Internet Explorer is installed. mshta.exe executes the HTA by instantiating the Internet Explorer rendering engine (mshtml) as well as any required language engines (such as vbscript.dll).

By default, HTAs are rendered as per "standards-mode content in IE7 Standards mode and quirks mode content in IE5 (Quirks) mode", but this can be altered using X-UA-Compatible headers.[5]

When a regular HTML file is executed, the execution is confined to the security model of the web browser, that is, it is confined to communicating with the server, manipulating the pages object model (usually to validate forms and/or create interesting visual effects) and reading or writing cookies.

To customize the appearance of an HTA, a new (optional) tag hta:application was introduced to the HEAD section. This tag exposes a set of attributes that enable control of border style, the program icon, etc., and provide information such as the argument (commandline) used to launch the HTA.[6]

Otherwise, an HTA has the same format as an HTML page.

Any text editor can be used to create an HTA. Editors with special features for developing HTML applications may be obtained from Microsoft[7] or from third-party sources.[8]

An existing HTML file (with file extension .htm or .html, for example) can be changed to an HTA by simply changing the extension to .hta.

This is an example of Hello World as an HTML Application.