An Overview of TransformAble
What is TransformAble?
TransformAble is a set of Web services which can be used by any suitable Web application to deliver a more accessible and customizable user experience. The TransformAble services modify a site's user interface and content resources in order to accommodate the individual needs and preferences of each user. These services enable Web sites to enhance and rearrange their appearance, layout, and structure. Such transformations provide customized accommodations including large type and high contrast colour schemes, simplified site navigation, accessible alternatives to audio or video content, and more.
TransformAble works with the ISO standard AccessForAll model, which provides a common representation for both user preferences and resource descriptions. AccessForAll is used by the services to match the user's needs with the most appropriate resources and presentation available. AccessForAll was designed for interoperability, and enables preferences to be used portably across compliant systems.
TransformAble is being developed by the Adaptive Technology Resource Centre at the University of Toronto. The project consists of three Java-based services which are available as open source under the MIT license: PreferAble, StyleAble, and SenseAble.
PreferAble
PreferAble provides an easy-to-use Web interface which enables the user to edit and store their preferences. PreferAble walks the user through a series of questions about how the application should appear and behave. This allows the user to configure preferences including screen enhancements such as larger type and higher contrast colour schemes, preferred language, control preferences, and required alternatives to multimedia content such as captions and audio descriptions.
StyleAble
StyleAble performs a range of display and structural transformations on any well-formed Web page. These transformations can be categorized into two types: 1) generation of custom style sheets, and 2) document transformations.
Style Sheet Generation
StyleAble's CSS generator can create customized style sheets based on a user's stated preferences, allowing them to control the overall appearance of the site, including the font size, face, foreground colour, background colour, highlight colour, and link appearance.
Document Transformation
Document transformations provide augmented views of a document which help users to navigate and understand the content more easily. This includes the on-the-fly creation of a table of contents or a list of links, as well as the ability to reduce the density of the content by hiding and showing specific levels of detail.
Unlike SenseAble, the StyleAble service doesn't require metadata or a content repository. It uses the structure of well-formed HTML documents to provide information about how to perform these transformations.
SenseAble
[Note: we've recently chosen to not integrate SenseAble into Sakai.]
The SenseAble service works alongside content repositories which contain multimedia resources and associated metadata in the AccessForAll format. This metadata helps to describe the characteristics and accessibility of a particular resource, including the potential alternatives which may be available for it.
Based on this information, SenseAble matches the available resources with the accessibility needs and preferences of the user. This process may involve substituting, augmenting, or re-aggregating portions of the content to make it more accessible to the user. For example, if a user is viewing a video resource and is deaf, hard of hearing, or is working in a noisy environment, SenseAble can match this need with any associated captions or sign language resources which may be available for the video. SenseAble's matching engine determines the availability and appropriateness of content alternatives, ranking them based on user preferences. The content aggregator in StyleAble can work with audio, video, textual and SMIL content to build alternative versions of the resource that are more accessible to the individual user.
AccessForAll
AccessForAll is a multi-part standard consisting of the Personal Needs and Perferences (PNP) which encapsulates user preferences, and the Digital Resource Description (DRD) which describes content resources. The DRD describes how a resource is perceived, understood, and interacted with. The TransformAble services depend on the AccessForAll to provide a standard means whereby resources are matched to the accessibility needs and preferences of a person.
The concepts behind the AccessForAll framework were originally developed by the IMS Accessibility Working Group and is now in the process of becoming an ISO standard. The ATRC has developed a Java-based implementation of the PNP and DRD models for use by PreferAble, StyleAble and SenseAble.
TransformAble and Sakai
I'm currently in the process of integrating the first two services, PreferAble and StyleAble, into the Sakai portal. PreferAble currently consists of a JSF-based Sakai tool and a PNPPreferences service available through the ComponentManager which will enable any tool to store and retrieve preferences in the PNP format. StyleAble has also been built as a Sakai component service, and I'm currently in the process of adding hooks into the Charon portal to enable the inclusion of custom, preferences-driven style sheets throughout Sakai. We're still investigating where SenseAble best fits into the Sakai architecture.
Our plan is to release PreferAble and StyleAble as contrib tools sometime after the Sakai 2.3 release in October. This will give the community time to try it out and provide us with feedback. As we refine the TransformAble services--and if the community finds them valuable--we will plan to include it as provisional in time for the 2.4 release.
We're still in the process of preparing the source code for public release and setting up a public Maven 1.0 repository for accessing the TransformAble jars. In the meantime, I've really been enjoying working with the well-factored, Spring-based Component API in Sakai. The community has been incredibly responsive to changes we needed to make--such as removing the tool title and navigation iFrames--and I'm very grateful to Chuck Severance and Gonzalo Silverio in particular for their feedback and hard work. It's my hope that TransformAble will help to augment the hard work already done to make Sakai more usable and accessible to a broad range of users, and will lay the groundwork for a more flexible, adaptable user interface in the future.