overview part #2
In this two-part blog post i will cover the technical, as well as overall aspects of this endeavour. Go here for the first blog post on accessibility. This second part will cover all the technically nitty-gritty, blood and tears that went into implementing accessibility for this project. :)
Some resources first
Throughout my research and while developing the accessiblity implementation for EventManager i've collected useful resources on the web which i'm glad i can share with you via my delicious. There are notes for all the links available that will tell you what type of information you will find behind the click.
If you haven't worked with accessiblity in Flash or Flex yet, here's a short introduction on how it all works.
Flash has it's own package responsible for all the accessibility features. This package is situated under flash.accessibility.*
Within this package (as of this writing) you will find three classes:
The Accessibility class is a static class that allows you to do three important things. From that class you can check if the user is actually using a screenreader and if it is available or not (Accessibility.active). It also allows you to make sure that all accessibility properties are updated if you change any of their values (Accessibility.updateProperties()). The third and in my opinion most important bit of this class is the capability to manually submit an Event to the MSAA API (Accessibility.sendEvent()).
The AccessibilityProperties class is the place where you define the properties, such as name, description and shortcut that are being presented to accessibility aids. You can also set some properties that control the behaviour of your object towards screenreaders. AcessibilityProperties can be attached to any type of DisplayObject.
The AccessibilityImplementation class, is a bit of a special one. It is the base class in Flash that allows for the implementation of accessibility. This class you will never really use directly, since Adobe advices us not to instantiate it but instead extends AccImpl (which again extends from AccessibilityImplementation) in order to create our own implementation for any custom component we might create. The AccImpl class exists in two versions, one for flash and one for flex.
More than a million words
Instead of boring you any further with details and long paragraphs of information, i figured it's easier to understand how this all works by actually showing you. Enjoy the videos, if the quality is a bit low and you would like them to be sharper, make sure to head over to the vimeo site itself to download the original videos directly from there.