From the web site http://microsoft.com/enable Microsoft Active Accessibility Version 1.2 is Now Available Microsoft has released a new, more reliable version of Active Accessibility that also enables accessibility aids to work with the English-language version of Microsoft Windows NT® 4.0 with Service Pack 4. During the large and lengthy beta testing process, many bugs from the previous version were fixed and overall stability was enhanced. First introduced in May 1997, Active Accessibility is a technology that software developers employ to make programs more accessible to people who use accessibility aids, such as screen magnifiers and screen readers for people who are blind. Fundamentally, Active Accessibility deals with what's on a computer screen. For example, Active Accessibility helps accessibility aids distinguish toolbars, menus, text, graphics, columns, and cells (among many others), so that people with disabilities can work with these screen elements more effectively and reliably. Because Active Accessibility is primarily a developers' tool, it is built into operating systems, software programs, and accessibility aids. People who use accessibility aids and who are interested in the new version should contact their aid vendor. Vendors will let their customers know the best course of action for updating to Active Accessibility 1.2. New Support for the Windows NT Operating System One important improvement to Active Accessibility is support for the Windows NT operating system. The recent release of Windows NT 4.0 Service Pack 4 (SP4) helps in this effort, though the support is somewhat limited. SP4 is designed primarily to let accessibility aids work with programs that are "native" Active Accessibility servers, such as those in Microsoft® Office 97. Also, Active Accessibility is supported only on the English-language version of Windows NT 4.0 SP4. Currently there are no plans to support international versions of Windows NT 4.0. Availability in Foreign Languages The following outlines Microsoft's approach to providing localized versions of Active Accessibility. * Windows® 95. Microsoft has no plans to provide localized versions of Active Accessibility. * Windows® 98. Already includes international support, and future Service Packs will contain updated, localized versions of Active Accessibility. * Windows NT® 4.0 and earlier. Microsoft has no plans to provide localized versions of Active Accessibility. * Windows® 2000 (previously called Windows NT 5.0). Full support for Active Accessibility will be available in all localized versions of Windows 2000. How to Use the Redistribution Kit (RDK) Active Accessibility run-time components are available in the Redistribution Kit (RDK). Accessibility aid developers need to include the RDK with their products if their products depend on Active Accessibility, and if those products will be installed on Windows 95 or Windows NT 4.0 SP4. Accessibility aid developers do not need to include the RDK if their applications will be installed only on Windows 98 and Windows 2000 because these operating systems provide built-in support for Active Accessibility. When launched, the RDK (msaardk.exe) unpacks all the files, copies the Active Accessibility dynamic-link libraries (oleacc.dll and oleaccrc.dll) to the system directory, and updates the system files. The RDK is designed for English-language Windows 95 and Windows NT 4.0 systems only. Software vendors who wish to include the Active Accessibility run-time components in their products should join the Active Accessibility beta program to receive the latest released code and have an opportunity to test new versions before they are released. See How to Join the Beta Program for more information. For More Information * What Is Active Accessibility? * Benefits of Active Accessibility * Common Questions About Active Accessibility * Can People Who Use Aids Obtain New Versions of Active Accessibility? * Active Accessibility 1.2: Questions and Answers * Information for Developers About Active Accessibility (c) 1997-1998 Microsoft Corporation. All rights reserved. Legal Notices. Last updated on December 8, 1998. ---------- About Microsoft Active Accessibility To help individuals with disabilities use computers more easily and effectively, Microsoft developed Active Accessibility. This set of technologies improves the way programs and accessibility aids work together, providing people with disabilities more flexibility in choosing software and accessibility aids. A new version of Active Accessibility was released in mid-November 1998. It is more reliable and includes support for accessibility aids running on the English-language version of Microsoft® Windows NT® operating system. ---------- What Is Microsoft Active Accessibility? First introduced in May 1997, Microsoft Active Accessibility is a technology that software developers can use to make computer programs more accessible to people using accessibility aids, such as screen magnifiers and screen readers for people who are blind. Microsoft released version 1.2 of Active Accessibility in mid-November, 1998. While aids already convey information to computer users about the contents of the computer screen, Active Accessibility enables aids to convey even more information. For example, Active Accessibility helps aids distinguish between toolbars, menus, text, graphics, columns, and cells, so that people with disabilities can work with these screen elements more effectively and reliably. Because it is an underlying technology, Active Accessibility has no user interface. However, it must be in a user's operating system to enable the aid to collect and convey information. When users load an accessibility aid on their computers, the aid installs the appropriate components on the operating system. Active Accessibility is built into Microsoft Windows® 98 and beta versions of Windows 2000, so people with these systems already have the necessary components. In addition to making accessibility aids better for people who require them, Active Accessibility promotes the development of more powerful tools by delivering a wealth of information, including non-visual information. It can expand the capabilities of testing tools and other specialized utilities. Why Use Active Accessibility? The goal of Active Accessibility is to allow an accessibility aid to work with screen elements in a variety of programs without any specialized knowledge of that program. In the past, accessibility aid developers had to write custom code to work with each individual program. This complicates the development process of supporting new software programs and also makes it more difficult to automatically support new features when a program is updated. Previously, the only approach to providing consistent access to multiple programs was to restrict innovation in user interfaces and require that each program use operating system-provided controls and conventions. Active Accessibility resolves this limitation by allowing program developers to innovate without compromising accessibility. Today, accessibility aids that use Active Accessibility work with a wider variety of programs, and software programs that use Active Accessibility are compatible with more accessibility aids, utilities and other tools. More Information Is Available Because Active Accessibility retrieves information directly from software programs, it gives accessibility aids data about screen elements that previously had not been available to these aids. For example, a screen reader now has access to information about a screen element's relationship to other items on the screen. This allows screen readers to follow the logical order of items on a screen, regardless of visual layout. Accessibility aids that use Active Accessibility can give a user information about: * User interface elements - the controls, toolbars, menus, dialog boxes, and so forth that appear in the program's user interface or within some documents. * Document contents - the text and graphics that compose the document, including information about those items that may not be available (such as annotations, comments or images). * Document structure - how the document is organized into paragraphs, sections, tables, cells, columns, and so forth, and the identity of those elements. Active Accessibility Already Is in Use Active Accessibility already is incorporated in many software programs, such as those in Microsoft Office 97 and Microsoft Internet Explorer 3.0 and 4.01. It also is used by a wide range of accessibility aids, speech recognition systems, and testing utilities. More information about the products that use Active Accessibility will be available soon. ---------- Benefits of Using Microsoft Active Accessibility Active Accessibility provides benefits both for users of accessibility aids and for developers. It enables people who have accessibility aids to use software programs more effectively, and it increases the number of programs they can work with. For developers, Active Accessibility is a solution to some hard compatibility and functionality problems. Accessibility aid developers have had to keep up with an increasingly wider range of programs, and software program developers have had to make programs more accessible. Without a standard for how to make programs and aids work better together, it has been difficult for these developers to coordinate their efforts. Active Accessibility addresses these problems by providing a way for the operating system and programs to cooperate with accessibility aids and ultimately provide more meaningful information to computer users. It replaces older techniques that were less portable and reliable. Active Accessibility includes a set of Microsoft Windows® operating system functions with documentation, sample programs, and development and testing tools. Developers now can innovate more freely with their program's user interface without sacrificing compatibility with accessibility aids. They know what steps are required to be compatible with aids. Aids now can be created to get program or operating system information not previously available to them, such as how to read a column of text. Although built for the accessibility community, Active Accessibility has many potential uses. It can make available parts of the Windows operating system that are otherwise not accessible to developers, and can therefore be used to create automated testing tools. ---------- Common Questions About Microsoft Active Accessibility Q: How do people with disabilities get Active Accessibility? Active Accessibility is built into operating systems, accessibility aids, and software programs. It is not a consumer product, like a word processor, that can be purchased off-the-shelf. People interested in Active Accessibility can talk with aid vendors for more information about which aids have it. Q: How would someone know if an accessibility aid uses Active Accessibility? People who want to know if a specific accessibility aid uses Active Accessibility should contact the manufacturer of that aid. Contact information for many accessibility aid vendors is available from Microsoft's catalog of accessibility products. See Accessibility Aids and Resources for more information. Q: What are accessibility aids? Accessibility aids are specialized programs and devices that help people with disabilities use computers more effectively. There are many types of aids. Some examples include screen enlarger utilities for people who have low vision, screen review utilities for people who are blind, voice input utilities for people who provide verbal commands to their computer instead of using a keyboard or mouse, and keyboard enhancement utilities for people who have difficulty with standard keyboard behavior. See Accessibility Aids and Resources for more information. Q: Is Active Accessibility year 2000 (Y2K) compliant? Microsoft has already reviewed Active Accessibility for Y2K compliance. Because Active Accessibility is merely a conduit of information, it does not manipulate dates or perform calculations that could cause Y2K problems. Q: Active Accessibility 1.0 didn't work with any languages other than English, is this fixed? Yes. Microsoft Windows 98 includes international versions of Active Accessibility for each language that Windows 98 supports. Therefore, if you have the Czech version of Windows 98, you also have the Czech version of Active Accessibility. While Windows 95 and Windows NT® 4.0 (with Service Pack 4) support only the English-language version of Active Accessibility, Windows 2000 will provide full international support for Active Accessibility. Q: It seems like only Microsoft programs provide Active Accessibility information. Do other companies plan to use Active Accessibility? Many other companies are investigating or using Active Accessibility. Microsoft is actively promoting its benefits to the software industry, the accessibility community and others with the expectation that increasing awareness of Active Accessibility will encourage other companies to include it in their products. A complete list of products that provide and use Active Accessibility will be available on this Web site shortly. Q: When will Active Accessibility be available for the Microsoft Windows CE operating system? Currently, Windows CE does not have the necessary architecture to support "in-process COM servers," a requirement of Active Accessibility. Work is in progress to resolve this and include support for Active Accessibility in a future version. Q: How do developers get Active Accessibility? Developers must first download the Active Accessibility Software Developers Kit (SDK) and then join the Active Accessibility beta program to receive the current run-time components. See How Developers Can Obtain Active Accessibility for more information and to download the SDK. Q: What is the Software Development Kit (SDK)? The Active Accessibility SDK is for software developers. It includes the Active Accessibility run-time components, sample source code, libraries, header files, sample applications and documentation for Active Accessibility. The SDK enables developers to create accessibility aids and applications using Active Accessibility technology. (Note that the SDK, which was created for use with Active Accessibility 1.0, is currently being updated for the latest version of Active Accessibility. Also see How Developers Can Obtain Active Accessibility for more information. Q: What is the Redistribution Kit (RDK)? The RDK contains the run-time components that developers need to incorporate Active Accessibility technology into their client applications. Accessibility aids and other client applications need to include the RDK with their installation program so that the self-installing package can copy the necessary files into the Microsoft Windows® operating system. Complete information about redistributing Active Accessibility with an accessibility aid or any client application is available in the Active Accessibility Client Developer Package, which includes the RDK, release notes, and a license agreement. This package is available to developers who are part of the Active Accessibility beta program. See How Developers Can Obtain Active Accessibility for more information. Q. What is the latest version of Active Accessibility? Active Accessibility version 1.2 is available now. It is more reliable than earlier versions and includes support for accessibility aids running on the Windows NT operating system. See Version 1.2 of Active Accessibility Is Now Available for more information about this release. Q: How does Active Accessibility compare to the Microsoft Screen Access Model? These two technologies complement each other by addressing different aspects of computer accessibility. Active Accessibility enables developers to create or update accessibility-aware applications and provides a standard way for accessibility aids to interact with them. When available, the Screen Access Model will provide additional sources of information for accessibility aids and also will provide an information storage mechanism for information collected by Active Accessibility and other sources. Using the Screen Access Model, accessibility aids will be able to collect information about text and graphics drawn on the screen by applications that do not support Active Accessibility. Q: What about security? Although Active Accessibility does make available portions of the operating system that are not available through other programming techniques, it doesn't breach the security of the operating system. Q: Does Active Accessibility work with Java applications? Yes. Microsoft has developed Active Accessibility for Java specifications, allowing any Java application to make information about its user interface elements available to accessibility aids. Applications built with Microsoft's Application Foundation Classes for Java automatically include this support without additional work by developers. The Microsoft Virtual Machine for Java seamlessly handles communication between a Windows-based client that uses Active Accessibility information and a Java application that exposes it. See Active Accessibility for Java for more information. ---------- Can People Who Use Accessibility Aids Obtain New Versions of Microsoft® Active AccessibilityTM Active Accessibility is built into operating systems, accessibility aids, and software programs. It is not a consumer program, like a word processor, that can be purchased off-the-shelf. People interested in the most up-to-date version of Active Accessibility should first talk with their aid vendor. It is the vendor's decision whether to use Active Accessibility and whether to upgrade their aids when new versions of Active Accessibility are developed and released. They will let their customers know the best course of action. The recommended approach to obtaining Active Accessibility version 1.2 is summarized below by operating system. * Microsoft Windows® 95, Windows 98 and Windows 2000. Contact the accessibility aid vendor to obtain the latest version of their aid and to find out how to upgrade the operating system components. The vendor may ship these components with the upgraded aid, or may ask their customers to download them from Microsoft. * Microsoft Windows NT® 4.0. Contact the accessibility aid vendor for the latest upgrade of their aid and install Windows NT 4.0 Service Pack 4. Service Pack 4 must be installed prior to installing an upgraded aid. Please note that only English-language versions of Windows NT 4.0 are supported with Active Accessibility. * Microsoft Windows® 3.1, Microsoft Windows for Workgroups 3.11 and Microsoft Windows NT® 3.51. Active Accessibility is not available for these operating systems. However, people should contact their accessibility aid vendor for information about what aids are available for these systems and how to use them. * Microsoft Windows® CE. People using Windows CE should contact their accessibility aid vendor. Support is planned in a future version of Active Accessibility, but is not currently available. ---------- Microsoft Active Accessibility Version 1.2: Questions and Answers Q. What improvements does Active Accessibility 1.2 offer? The major goal of Active Accessibility 1.2 was to improve quality and stability. The Active Accessibility development team worked closely with software vendors during production and code testing to ensure this goal was achieved. A significant change in Active Accessibility 1.2 is its limited support for accessibility aids running on the English-language version of Microsoft Windows NT® 4.0 with Service Pack 4. This support allows some accessibility aids to work with programs that implement Active Accessibility natively, such as those in Microsoft® Office 97. Q. What do you mean by "programs that implement Active Accessibility natively?" Programs that use custom user interface elements must implement the Active Accessibility COM interface (IAccessible) to expose these elements to accessibility aids. Only applications that implement this interface will work properly with Active Accessibility 1.2 on Windows NT 4.0 Service Pack 4.0 (SP4). Although Active Accessibility 1.2 does automatically provide support for some controls on Windows NT 4.0 SP4, this support is limited. Q. Is Active Accessibility available for all the languages that Windows NT 4.0 supports? Unfortunately, no. Full international support for Active Accessibility on the Windows NT platform will be available in Microsoft Windows® 2000 (previously called Windows NT 5.0). Q. Do accessibility aids need to include the new Active Accessibility Redistribution Kit (RDK) to work with the English-language version of Windows NT 4.0 Service Pack 4? Yes. In order to support Active Accessibility, Windows NT 4.0 Service Pack 4 requires the Active Accessibility 1.2 RDK. Earlier versions of Active Accessibility do not work with Service Pack 4. Q. Where can accessibility aid users get Active Accessibility 1.2? Active Accessibility is built into operating systems, accessibility aids, and software programs. It is not a consumer product, like a word processor, that can be purchased off-the-shelf. People interested in version 1.2 should contact their accessibility aid vendor. They will let their customers know the best course of action. Q. Do I need Active Accessibility 1.2 for my accessibility aid running on Windows 95 or Windows 98? Not necessarily, although some accessibility aids may benefit from the enhancements made to Active Accessibility 1.2. You should contact your accessibility aid vendor for more information. Q. When will Microsoft provide international versions of Active Accessibility? As new operating systems are released, Microsoft will provide this support. For example, Microsoft Windows 98 includes localized versions of Active Accessibility. The next version of Microsoft Windows NT, now called Microsoft Windows 2000, will also support localized versions of Active Accessibility for all languages supported by Windows 2000. This version will also support multiple, simultaneous languages through the multi-language user interface. Microsoft currently has no plans to provide localized versions of Active Accessibility for Microsoft Windows® 95 or Windows NT 4.0. ---------- How Developers Can Obtain Microsoft Active Accessibility Active Accessibility technology is used by both client and server developers. Active Accessibility clients are programs such as accessibility aids that use Active Accessibility to obtain information about the user interface of other applications and the operating system. Servers are programs such as word processors that provide information about the contents of the computer screen that is within their control. Components Are Available in Two Kits Active Accessibility components are available in two kits: the Software Developers Kit (SDK) and the run-time components, which are packaged in the Redistribution Kit (RDK). For more information about the SDK, see The Software Developers Kit for Active Accessibility. The run-time components must be on the computer of a person who is using an accessibility aid. Either the components come with their operating system, or the RDK must be distributed with the aid so that those components will load on to the computer. What Is in the RDK The RDK contains core system files that enable communication between Active Accessibility clients and servers. These files let a client program take advantage of the information provided by servers. The RDK installs the Active Accessibility libraries onto Microsoft Windows® 95 or Microsoft Windows NT® 4.0 with Service Pack 4 operating systems. Microsoft Windows® 98 and beta copies of Windows 2000 include these files as part of their installation, so the RDK isn't necessary. What Client Developers Should Do In general, developers who create clients should use the SDK to develop their software, and then include the RDK in their setup program to ensure the run-time components get installed. Depending on the operating system for which the client was developed, it may not be necessary to use the RDK. * Clients developed for Windows 95 or Windows NT 4.0. Developers who update their accessibility aids should include the RDK along with any updates. * Clients developed solely for Windows 98 and Windows 2000. Developers who update their accessibility aids do not need to ship the RDK. The new components are included in the Windows 98 update that can be downloaded from Windows Update. The new components also are included in Windows 2000, beta 3. People who develop client programs should get the Client Developer Package. This package contains the RDK (the run-time components), release notes and a license agreement. The Client Developer Package is available only from the Active Accessibility Beta Program. What Server Developers Should Do People who develop server applications should download the Active Accessibility Software Developers Kit and install the latest run-time components to test with. Developers can get the run-time components by updating their operating system with the Windows Update feature or using the RDK. ---------- The Software Developers Kit (SDK) for Microsoft Active Accessibility The Active Accessibility Software Developers Kit (SDK) is intended solely for software developers who wish to incorporate Active Accessibility into their products. The SDK contains documentation, sample source code, and tools to incorporate Active Accessibility into both client and server applications. Clients are programs such as accessibility aids that use Active Accessibility to obtain information, and servers are programs that provide information, such as word processors. Contents of the Active Accessibility SDK Version 1.0 Version 1.0 of the SDK is the current release and contains these components: * Documentation in HTML, Microsoft Word, and Microsoft Windows Help formats * Testing tools * Sample source code * Header files and libraries * Version 1.0 of the Active Accessibility run-time components Developers of both Active Accessibility clients and servers should download the Active Accessibility SDK. It is currently in the process of being updated to version 1.2. Three stages of updates are planned, starting with the most critical components. The completely updated SDK version 1.2 should be available in March 1999. Additionally, developers of Active Accessibility clients should get the latest Active Accessibility Client Developer Package. This package contains the current run-time components (packaged as the Redistribution Kit, or RDK), release notes and license agreement. To get this package, developers must join the Active Accessibility Beta Program. Important Notes About the Active Accessibility SDK Version 1.0 * The SDK will install only on Microsoft Windows® 95 and Windows 98. It will present an error message when installing on Microsoft Windows NT® or Windows 2000. Active Accessibility run-time components can be used on the Windows NT platform, but, unfortunately, the SDK 1.0 will not install. While this is in the process of being fixed, there is a temporary work-around. First install the SDK on a computer running Windows 95 or Windows 98, then copy the samples, libraries and header files to the appropriate directory on the computer running Windows NT. * Installing the Active Accessibility run-time components on international versions of Windows 95 and Windows NT® 4.0 Service Pack 4 (SP4) will cause some text, such as dialog boxes, to be converted to English. Microsoft does not support these configurations. Furthermore, if these Active Accessibility run-time components are installed on Far Eastern- or Middle Eastern-language versions of Windows 95 or Windows NT 4.0 SP4, they may render the computer unbootable. Therefore, please do not install the Active Accessibility SDK on non-English versions of Windows 95 and Windows NT 4.0 SP4. These limitations will be fixed in a planned update of the Active Accessibility SDK. To Download the SDK Now If you want to download the SDK now, select the following: Active Accessibility Software Developers Kit version 1.0 Release Notes (text file, 17 KB) Active Accessibility Software Developers Kit version 1.0 License Agreement (text file, 12 KB) Download the Active Accessibility Software Developers Kit version 1.0 (self-extracting executable, 3,011 KB) You will need to update to the latest Active Accessibility run-time components (the RDK) after installing the SDK. See Version 1.2 of Active Accessibility Is Now Available for information about getting these components. The Active Accessibility documentation is included as part of the Windows Platform SDK. For more information go to the Microsoft Developers Network . ---------- How to Join the Microsoft Active Accessibility Beta Program Software developers interested in Active Accessibility should join the Active Accessibility beta program. As a member of the Active Accessibility beta program, you will receive a package that contains the latest released Redistribution Kit, current release notes, and the license agreement covering redistribution of Active Accessibility. Additionally, a private newsgroup, staffed by Support Engineers, is available to answer questions and resolve problems. To join, please send the following information to msaabeta@xxxxxxxxxxxxx: * Full Name * Title * Company * Physical Address (no Post Office boxes) * City, State, and Country * Postal/Zip Code * Phone Number (including country and/or area code) * Fax Number (including country and/or area code) * Internet E-mail Address * Web Site Address * Product Name ---------- Microsoft® Active Accessibility Technical Support for Developers All technical support for Active Accessibility is provided by Microsoft Technical Support, which offers several options, ranging from Support Online to working directly with a Support Engineer on the telephone for a fee. To help with support costs, Microsoft is sponsoring a program to subsidize qualified accessibility aid vendors. Please email enable@xxxxxxxxxxxxx for more information about the subsidy and how to apply. The Active Accessibility Newsgroup is a peer-to-peer newsgroup where you can exchange information with other developers who use Active Accessibility. Although some members of the Active Accessibility team monitor this newsgroup, support from Microsoft is not guaranteed. For more information about the Microsoft newsgroups, see Rules of Conduct. ---------- Details for Software Developers About Microsoft Active Accessibility Active Accessibility is based on the Component Object Model (COM), the Microsoft-developed industry standard that defines a common way for applications and operating systems to communicate. Using Active Accessibility, applications, referred to as servers, provide information about the contents of the computer screen that is within their control. Accessibility aids, referred to as clients, use Active Accessibility to obtain information about the user interface of other applications and the operating system. This page provides a technical overview for developers about how Active Accessibility works. This overview describes the architecture and key application programming interface (API) elements, and presents guidelines for both Active Accessibility clients and servers. COM Objects Represent User Interface Elements With Active Accessibility, user interface elements are exposed to clients as COM objects. These accessible objects maintain pieces of information, called properties, which describe the object's name, screen location, and other information needed by accessibility aids. Accessible objects also provide methods, which are functions that clients can call to cause the object to perform some action. Accessible objects are implemented using Active Accessibility's COM-based IAccessible interface. This interface includes functions such as IAccessible::get_accName and IAccessible::accLocation, which allow clients to examine an object's properties. The interface also provides methods such as IAccessible::accDoDefaultAction and IAccessible::accHitTest, which clients can call to cause the object to perform some action. Clients obtain information about or interact with an object by calling the IAccessible properties and methods. Depending on the user interface element, either Active Accessibility or a server application implements the IAccessible methods and properties that clients call. Support for Operating System-Provided User Interface Elements Active Accessibility uses the IAccessible interface to expose operating system-provided user interface elements, such as menus, scroll bars and dialog box controls. Any application that contains these user interface elements automatically inherits their accessibility. In other words, server applications do not need to implement the IAccessible interface for operating system-provided user interface elements because Active Accessibility exposes these elements. Server applications only need to implement the IAccessible interface to expose custom user interface elements such as floating tool palettes that are not already exposed by Active Accessibility. Dual Interface Provided In addition to the IAccessible interface, accessible objects also must support the standard COM interface IDispatch. The IDispatch interface allows client applications written in Microsoft Visual Basic® to access the methods exposed by IAccessible. In other words, accessible objects provide a dual interface, which provides access to the object indirectly through IDispatch::Invoke or directly with IAccessible. APIs Provide Clients Access to Objects Active Accessibility provides Microsoft Win32 ® APIs such as AccessibleObjectFromWindow and AccessibleObjectFromPoint, which allow clients to retrieve information about accessible objects in an application. These functions return either an IDispatch or IAccessible interface pointer through which clients can get information about the accessible object. When a client calls AccessibleObjectFromWindow or any of the other AccessibleObjectFromx APIs that retrieve an interface to an object, Active Accessibility sends the Microsoft Windows® operating system message WM_GETOBJECT to the appropriate server application. Server Responds to WM_GETOBJECT If the window that receives the WM_GETOBJECT message implements IAccessible, the window returns a reference to the IAccessible interface using the API LresultFromObject. Active Accessibility, in conjunction with the COM library, takes care of all the details of getting the interface pointer from the server back to the client. If the window that receives the message does not implement IAccessible, it should return 0. If the window does not handle the WM_GETOBJECT message, the Windows API DefWindowProc returns 0. If the server returns 0, Active Accessibility can still provide the client with information about the object. For most predefined objects such as list boxes and buttons, Active Accessibility provides complete information, while for other objects the information is limited. In any case, Active Accessibility returns an IAccessible interface pointer that the client can use to obtain information about the object. Other APIs Additional functions expose information that was previously known only to the operating system. For example: * With Microsoft Windows® 95 and Windows 98, clients can call SetDDIHook to expose all video drawing operations using a new "Display Device Interface (DDI) Redirector." Similar functionality is included in Windows 2000 (previously called Microsoft Windows NT® 5.0). However, the two architectures are not interoperable. * Clients can call GetGUIThreadInfo to retrieve information such as the handle of the window that has the keyboard focus and the handle of the window that is displaying the caret. WinEvents Notify Changes Active Accessibility provides a mechanism called WinEvents that allows servers to notify clients when an object has changed in some manner. For example, events will signal: * When an object is created or destroyed. * When an object receives or loses focus. * When an object's state or location has changed. Client applications tell the system which WinEvents they want to know about by calling the SetWinEventHook function to register a hook procedure. Using this function, the client sets one or more hook functions that the system calls in response to particular events. Hook functions can be located within the client's code body, in a dynamic-link library (DLL) mapped into the client's process, or in a DLL mapped into the server's process. Servers call the function NotifyWinEvent whenever they need to notify the system that an event has occurred. Active Accessibility checks to see if any client applications have expressed interest in the event, and calls the appropriate hook procedures as necessary. If no clients are running, the performance impact on servers for calling NotifyWinEvent is negligible. When it is called, the client's hook procedure receives a number of parameters that describe the event and the object that generated it. The hook procedure uses APIs like AccessibleObjectFromEvent, to gain access to the object of interest. Once the client retrieves the object, it can retrieve its properties, make selections, or perform other actions appropriate to the event. Guidelines for Servers For Active Accessibility to work as designed, servers must cooperate in providing accessibility information to clients. Active Accessibility servers should observe the following guidelines: * Follow the design guidelines described in Checklist of accessibility design guidelines to make your application more accessible. Note that The Designed for Microsoft Windows Logo Program requires applications to support a number of accessibility features to qualify for the logo. * Create accessible objects by implementing the IAccessible properties and methods for your custom user interface elements and for your application's client area (if needed). Be sure to provide a dual interface (that is, support both IAccessible and IDispatch) so that clients written in Visual Basic can obtain information about the objects. * Call NotifyWinEvent to notify clients of user interface changes. * Handle WM_GETOBJECT to provide access to your accessible objects. Guidelines for Clients Clients should use the following Active Accessibility functionality to obtain information about the contents of the computer screen. * Obtain an IAccessible interface to objects by calling AccessibleObjectFromWindow, AccessibleObjectFromPoint, or AccessibleObjectFromEvent. * Examine and manipulate accessible objects using the IAccessible properties and methods. * Respond to WinEvents by calling SetWinEventHook to register a WinEvent callback function. For More Information * How Developers Can Obtain Active Accessibility * The Software Developers Kit (SDK) for Active Accessibility * Technical Support for Developers * How to Join the Beta Program for Developers * General Information About Active Accessibility (c) 1997-1998 Microsoft Corporation. All rights reserved. Legal Notices. Last updated on December 9, 1998. ---------- From the web page http://msdn.microsoft.com/developer/news/devnews/novdec98/msaa.htm MSDN News November 2, 1998 Developing with Active Accessibility 1.2 by Charles Opperman Summary: Discusses how Microsoft Active Accessibility version 1.2 programming interfaces are making the Microsoft Windows and Windows NT platforms more accessible to people with disabilities. (3 printed pages) Introduction Version 1.2 of the Microsoft Active Accessibility (AA) tools is now available and, among other improvements, it includes support for clients running on the Microsoft Windows NT platform. Active Accessibility is technology developed by Microsoft to make the Windows platform more accessible to people with disabilities. This Component Object Model (COM)-based technology allows applications to expose their user interface elements as COM objects. First introduced in 1997, Active Accessibility is implemented in many applications and used by a wide range of accessibility aids, speech recognition systems, and testing utilities. Microsoft Office 97 implements Active Accessibility to expose custom menus, toolbars, and dialog boxes. Microsoft Internet Explorer 3.0 and Internet Explorer 4.01 expose the structure of HTML documents using the Active Accessibility object model. For consistency, Active Accessibility exposes normal Windows system and common controls such as BUTTON and ToolBar32. Application developers only need to implement Active Accessibility when they create custom user interface elements such as a floating tool palette or a custom grid control. Developers wishing to implement Active Accessibility can reference the Active Accessibility Software Developers Kit included on the MSDN Library CD. Clients can implement Active Accessibility to help the user navigate the user interface of an application. The Microsoft Magnifier included in Windows 98 uses Active Accessibility to magnify the currently focused control. Voice input utilities can gather information such as a list of menu items or controls in a dialog box and use that to manipulate the user interface. Version 1.2 of Active Accessibility brings about several enhancements for clients. The basic interface, Iaccessible, has not changed. The following section focuses on changes that benefit client utilities. What's New Platforms Support One of the most important improvements to Active Accessibility is support for the Windows NT platform. Because Active Accessibility was developed after Windows NT version 4.0 shipped, the necessary operating system support was not present on Windows NT. This has been largely corrected with the forthcoming Service Pack 4 for Windows NT 4.0. We say largely corrected because those NT guys are real sticklers for quality and do not want to sprinkle new code throughout the major subsystems in a Service Pack. The new APIs necessary for OLEACC to connect a client utility with a server-side Active Accessibility provider application are present, which allows applications to expose their custom user interfaces, but not system controls such as BUTTON. This means that Office 97 custom UI objects, such as command bars and dialog boxes, can be queried. Microsoft's HTML engine in Internet Explorer 3.0 and 4.01 also will work. As of this writing, a Knowledge Base article is being prepared to detail which objects are not supported under Windows NT 4.0. Current beta versions of Windows NT 5.0 and the final release will support all system UI objects and events. Future support for Windows CE also is planned. See Figure 1 for a list of platforms and languages supported. A major complaint from client-side software vendors using Active Accessibility was that version 1.0 supported only English-language Windows 95. Starting with the release of Windows 98, oleacc.dll has been localized for all the languages in which Windows is available. With version 1.2, oleacc.dll has a new resource dynamic-link library (DLL), oleaccrc.dll, which contains the localized strings. This means that accessibility aids querying OLEACC-provided strings from the GetRoleText and GetStateText APIs will get localized information. Unfortunately, because of the core changes made to the USER and GDI components in Windows 95, only the English-language versions of Windows 95 is supported. The same is true for Windows NT 4.0. Improvements A number of enhancements have been made to make Active Accessibility more reliable and faster. Changes to the LresultFromObject and ObjectFromLresult APIs provide more consistency in the reference counting of objects. Active Accessibility 1.2 also has benefited from a large and lengthy beta testing process that has resulted in many bug fixes and stability enhancements. Redistribution Active Accessibility is distributed in two forms-with Microsoft operating systems such as Windows 98 and redistribution by vendors of utilities that need the Active Accessibility information exposed by applications and the operating system. Only client utilities, which depend on getting Active Accessibility information, need to ship the Active Accessibility Redistribution Kit. Applications that expose Active Accessibility properties and methods do not need to ship any Active Accessibility components. The redistribution kit-msaardk.exe-is available by registering at the Accessibility and Disabilities Web site at http://www.microsoft.com/enable/. This single file, when launched, will unpack all the files, copy the oleacc.dll and oleaccrc.dll to the Windows system directory and update Windows 95 system files to the correct level of functionality needed. The msaardk.exe is designed for English-language Windows 95 and Windows NT 4.0 systems only. For Windows 98, Active Accessibility 1.2 is planned to be included in a Service Pack that can be downloaded or ordered by end users. Unlike previous versions of the Redistribution Kit, the 1.2 version will not install on non-English language Windows 95 systems. Table 1 shows the matrix of platform support and distribution method. Table 1. Languages Supported by Active Accessibility and Method of Distribution | Windows 95 | Windows 98 | Windows NT 4.0 on Intel (w/ Service Pack 4) | Windows NT 5.0 on Intel and Alpha Languages Supported | English Only | All | English Only | All Included in OS | No | Yes | No | Yes Updated by Service Pack | No | Yes | No | Yes Updated by client utility | Yes | No | Yes | No Call to Action If you develop accessibility aids, testing utilities, or any other software that can benefit from the information provided by Active Accessibility, please review the Active Accessibility Software Developers Kit 1.0 included on the MSDN Library CD. When you are ready to distribute your utility on Windows 95 and/or Windows NT 4.0, download the Active Accessibility Redistribution Kit (msaardk.exe) from the Accessibility and Disabilities Web site at http://www.microsoft.com/enable/ and include that in your installation package. If you develop mainstream applications, you should familiarize yourself with the Windows logo program, which contains new requirements for the user experience and accessibility. Implementing Active Accessibility can help you comply with these new requirements. Review your application's user interface and ask the hard questions, such as "Can I use this without a mouse?" and "Can people who are deaf or have low vision use my application?" The Accessibility and Disabilities Web site has a wealth of information on accessible design practices. Remember that everyone acquires disabilities throughout their life. Aging itself brings about many changes in our ability to use a computer. By making software accessible to people with disabilities, you are making software better for everyone. (c) 1998 Microsoft Corporation. All rights reserved. ---------- End of Document