Share via


Accessibility and Grids in Access: Tables, Queries, Designers and much more

Perhaps the major Accessibility investment we made in Access 2007 has been implementing a highly flexible MSAA tree for grids.

Most people don't realize how far and wide Access uses grids in the product. A quick way to figure that out is look out for windows with class name "OGrid". You will see that this includes: All datasheet modes (Tables/Queries), Macro and Table Designers, the bottom grid of the Query Designer, Property sheet, the window that contains all the data when you drop down a combo box, and much more.

In case you're wondering, we were very careful not to reinvent the wheel here. We implemented grids using the recommended MSAA pattern called "Exposing Data Tables through Microsoft Active Accessibility". Another grid control that also follows this implementation is the SharePoint Datasheet List Control.

Particularly in the implementation for Access, we have gone out of our way to have a very performant solution that scales to millions of rows. The way we have done this is through a very dynamic structure that will only create MSAA objects as you request for them. If you ask for row #30, for example, we will only create that object. As you navigate and do operations on the tree, we will create and destroy objects appropriately to keep a minimal set of data. Sounds simple, but not so much when it comes to making it bulletproof :).