Objects, Children, and Simple Elements

[This is preliminary documentation and subject to change.]

Throughout this documentation, you'll see the terms "object," "parent," "container," "child," "simple element," and "element" used to refer to various parts of a user interface (UI). These terms seem fairly generic, and you've probably seen them before, used in a number of different ways. In this document, these terms are used to explain whether part of an application's UI supports Active Accessibility, contains other pieces of the UI, and whether or not these smaller pieces also support Active Accessibility. To simplify, in the context of this document, these terms can be defined as follows:

Object
A user interface element that supports Active Accessibility technology.
Parent or Container
A user interface element that supports Active Accessibility technology and contains other objects and/or simple elements.
Simple element or Element
A user interface element that does not support Active Accessibility. This might be because the object simply is "ignorant" of the technology, or that the element's parent assumes the responsibility of providing Active Accessibility features on its behalf.

For an example of using these terms, imagine a toolbar control that contains several buttons. The operating system supports toolbar controls and push buttons as accessible objects. In this case, the toolbar control is the parent object, or container, for the push buttons. The push buttons are also objects but have no children.

In some cases, an object might have children that don't inherently support Active Accessibility—also known as simple elements. To remain "accessible," the parent can create accessible objects with the properties of the child when a client asks for it. This way, the parent saves memory by not keeping extra interfaces around, without sacrificing accessibility. List box items are an example of this. The children (cells) are accessible objects, but the aren't kept around. When the user picks the control, the objects are generated, and then displayed to the user. When the user is done, they are all destroyed.