Since our accessible objects are based on dom nodes, and the information we expose via platform API is gathered from the frames and styles of these nodes, we should make sure we actually have constructed frames, and up-to-date styles. A couple of months back Rob mentioned FlushPendingNotifications, which looks exactly like what we need and is proving to help with things like bug 444644. This bug is about taking a good look at our code design, figuring out the timing and life cycle of our various code paths, and placing some strategic flush calls. We might find that we can clean up code that has worked around the problems of not having a happy layout when we try to interrogate it.
we should avoid this since it's bad practice, on the another hand it shouldn't be necessary with current gecko a11y core.