explorers' club

explorations in dev, science, sci-fi, games, and other fun stuff!

Accessible Flex Component Development

4 Comments

Since most components make use of either the data or dataProvider, I recommend targeting these properties as a source for binding within the each accessibilityProperties object. Here is an example that you would find within an MXML component:

<accessibility:AccessibilityProperties id="symbolNumberXChange_acc" forceSimple="true"
description="The symbol {data.symbol}, at {data.number}, exchanges on {data.exchange}."/>

It should be noted that accessibilityProperties should be implemented based on data content not based on control context. Now children within the component can target the object. Take the following example:

<mx:label text="{data.symbol}"
accessibilityproperties="{symbolNumberXChange_acc}"/>

Since the label’s accessibilityProperties is tied to symbolNumberXChange_acc, the accessible content of the component is now implementor-agnostic (not talking interfaces here). It is not knowledgeable of its implementors. By doing it this way, accessibilities can be developed in a custom component, where different layout states (and subsequent children controls) can implement the same accessibilityProperties objects. Also since binding is in use, those subscribers to binding events will automatically update their accessibilityProperties.

If the component in question is developed is an actionScript class (rather than an mxml class) then this procedure becomes more involved. It is recommended to override the setter functions of the data or dataProvider or other customer data property. Updates to the accessibilityProperties objects will take place within the setter function. It may also require that implementors of the accessibilityProperties objects be updated as well.

Caution:
Because there have been no performance benchmark tests regarding JAWS and Flex applications. it is advised that individual components developed with accessibilities do not call the Accessibilities.updateProperties(). Multiple calls to Accessibilities.updateProperties() has caused JAWS to crash or become unstable. It is recommended that the views that contain accessible-friendly components make the call to that function to limit the number of calls.

Advertisements

4 thoughts on “Accessible Flex Component Development

  1. Nice tips, but which version of JAWS did you use?

  2. Nice tips, you can check the components and services we are offering at http://www.flexmonster.com

  3. Pingback: AniktoBlog » Blog Archive » Accessible RIA

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s