Philosophy behind UI Element Destroyed notifications
Philosophy behind UI Element Destroyed notifications
- Subject: Philosophy behind UI Element Destroyed notifications
- From: Bill Cheeseman <email@hidden>
- Date: Mon, 21 Jun 2004 06:55:34 -0400
While revising PreFab UI Browser, I find myself struggling with what strikes
me as internal theoretical inconsistencies in the issuance of UI Element
Destroyed notifications. I wonder if I can get some guidance on how to deal
with this issue.
Destruction in the accessibility API generally means "no longer visible," as
I understand it, which is perfectly sensible for a screen reader. But the
accessibility API seems to implement this notion on a somewhat hit-or-miss
basis, because "visibility" is a very subtle concept.
In many cases, resolution of this issue is currently left to the judgment of
individual developers, which may not always be the same in hard cases. For
example, it makes sense to me for a window to be considered non-destroyed
even though it is hidden behind another window (of the same or another
application), while a drawer is considered destroyed when it is closed even
though as an implementation detail it still exists and is merely hidden
behind the parent window (at least in Cocoa). But some other developer might
see it differently, thinking that a drawer always exists in the user's mind
as long as the parent window exists in exactly the same sense that a window
hidden behind another window still exists. The accessibility API contributes
to the confusion by having a closed drawer issue a destruction notice while
its child elements do not. Worse, a newly-created AXUIElementRef object can
be created for a "destroyed" drawer and will be treated as CFEqual to it.
What is the heuristic that developers are expected to follow? Specifically,
should we generally "pretend" that a child element of a destroyed parent
element is destroyed, even though the child element does not issue a
destruction notice? If that is the rule of thumb, will there be some
documentation to keep us all on the same path? For example, I can easily
enough mark child elements of a "destroyed" drawer as destroyed, but should
I do this with sheets, too?
--
Bill Cheeseman - email@hidden
Quechee Software, Quechee, Vermont, USA
http://www.quecheesoftware.com
The AppleScript Sourcebook -
http://www.AppleScriptSourcebook.com
Vermont Recipes -
http://www.stepwise.com/Articles/VermontRecipes
_______________________________________________
accessibility-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/accessibility-dev
Do not post admin requests to the list. They will be ignored.