RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


How to Build Accessible Windows Forms Applications with .NET

Open your favorite .NET application, then close your eyes and try using the program. Tough, isn't it? But that's what using your applications may be like for disabled computer users. As a responsible developer, you can solve this problem by using these techniques to add Active Accessibility features to your application.


icrosoft Active Accessibility is a technology that improves the way programs and the operating system can interact with accessibility aids. Active Accessibility has to be invisible to the user and be recognized only by special client software designed to help people with disabilities.

Active Accessibility is available for Win98, WinNT 4.0 SP6, Windows 2000, Windows XP, or newer operating systems. A version for Windows 9x is also available, although with some limitations.

What You Need
To get the most benefit from this article, you need a good understanding of C# and object-oriented programming and a general knowledge of the .NET environment, including Windows Forms and Custom Controls. Although a deep understanding of the system internals isn't necessary, understanding its basics will be advantageous. The examples in this article should be used with the final release of Visual Studio.NET (2003) on Windows 2000 or XP machines. To be able to test the samples you will need to have accessibility clients installed. For more information check the documentation of your operating system.

Active Accessibility must provide several pieces of information about objects on the screen:

  • Name
  • Role (this describes the function of the object within the application)
  • Location
  • Current State
  • Parent
  • Child Count
If applicable the following properties must be supported as well:

  • Keyboard Shortcut
  • Default Action
  • Value
  • Child (if there are any accessible child objects)
  • Focus
  • Selection
The following properties are optional but should be supported to provide useful information about various visual elements, like bitmaps, charts, and others:

  • Description
  • Help Topic
  • Help
Active Accessibility also provides notifications of user interface changes via Windows Events and spatial and logical navigation for screen reader software. Spatial navigation is relevant only within the context of a single container, and therefore rarely meaningful to an end user. One rare case in which spatial navigation can be useful is within a data grid or a list view where elements are arranged in a navigable way—for example, where you can access data by moving left, right, up, or down within the view. Logical navigation is commonly used for hierarchically arranged objects with parents, children, and siblings—such as in a menu, tree view, or within control groups. Logical navigation uses terms such as parent, child, next, and previous for traversing object hierarchies. Because logical navigation is widely used by navigational aids, all programs supporting Active Accessibility must fully support this form of navigation.

Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date