Site Map



Non-HTML Dynamic Content (Flash, Silverlight, JavaFX)

This section of the best practices offers capsule advice that may help guide your choices when evaluating non-HTML dynamic content. Overall, we take a relatively conservative stance: Flash, Silverlight, and JavaFX are platforms for the development of Rich Internet Applications (RIAs). While there may be strong cases for developing web applications in Flash, Silverlight, or JavaFX, we feel at this point they are not appropriate platforms for the delivery of web-delivered textual content for educational purposes.

None of the platforms have structures for containing content analogous to what is available in HTML—there are no headings or paragraphs in Flash, Silverlight, or JavaFX, and tables and lists, so at this stage of screen reader development, they are not announced in ways that make them as easily navigable.

Though there are Flash-based online magazines and book readers, faithfulness of visual presentation is the concern, not document structure. There is even a content management system that creates web pages that are entirely Silverlight. However, its keyboard and screen reader accessibility is deeply problematic. In our opinion, Flash, Silverlight, and JavaFX are solely appropriate for application development. They should not be used for laying out long content because they do not provide the structure necessary for random navigation and reading.

Ultimately, the case for when to use these sophisticated application frameworks is up to the developer's domain of knowledge and skill. Developers should know, as well, that Flash, JavaFX, and Silverlight are not the only options. Developers should consider JavaScript application frameworks, such as Dojo and YUI, which are known to have solid and relatively unproblematic accessibility based on web standards when deciding on an application development framework.

The course designer or instructor does not need to bother himself/herself with the intricacies of web application development. His/Her domain is presentation of educational content. However, it is worthwhile to have a high-level understanding of some of the access issues involved in choosing web application technologies, since it is likely he/she will need to make recommendations on the inclusion of web applications within course content—book readers, media players and the like.

Already, in our section on video, we have recommended Flash for displaying multimedia. We feel this is an appropriate use for Flash. Microsoft Silverlight also has native support for video and audio. However, as of this writing, we have not encountered a Silverlight-based video and audio player that has sufficient JavaScript APIs to "work around" the fact that keyboard accessibility is problematic for Silverlight outside of its implementation within Internet Explorer. Like Silverlight and Flash, JavaFX supports video and audio natively.

Flash, Silverlight, and JavaFX all have issues with keyboard accessibility. As mentioned elsewhere, Flash accessibility to the keyboard is adequate only in Internet Explorer. This appears to be the same in Silverlight. In Internet Explorer, Flash and Silverlight applications embedded in web pages can get focus using the keyboard alone. In other browsers, the Flash and Silverlight applications cannot receive focus using the keyboard alone, and, if focus is given via hovering over and clicking the application, the student is then "trapped" in the application, incapable of using the keyboard alone to return focus to elements outside of the application. With JavaFX applications there appears to be no ability to give focus to an application via the keyboard, regardless of the browser used.

Flash

Discussion

Of the three development environments, Flash is currently in the lead with regard to accessibility. Many of its standard interface elements and controls have accessibility built in. When authoring Flash CS4 applications it takes only two lines of code to enable accessibility within most of its standard interface components, and the methods for naming elements to provide accessibility for screen readers are well documented. In addition, providing keyboard access and an appropriate tab order are easily achieved by Flash developers aware of accessibility issues.

Resources

Silverlight

Discussion

The first version of Silverlight had extremely poor accessibility. Version 2 of Silverlight is another matter. It communicates information on element names, roles, and states to the UI Automation framework, which it the primary accessibility layer in Windows going forward. UI Automation complements the venerable Microsoft Active Accessibility (MSAA) layer, which many assistive technologies, including screen readers in Windows, rely on to determine the state and role of currently focused controls. Silverlight 2 also provides the ability to manipulate tab focus and assign shortcut keys and has provisions for manipulating text size and text and control contrast.

Resources

JavaFX

Discussion

It is clear Silverlight 2 has promise vis-à-vis accessibility. Perhaps what argues most for it is that it is a Microsoft technology. It is being developed alongside improvements in the accessibility of the Microsoft operating systems—they can evolve hand-in-hand. Given that its most direct competitor is Flash and Adobe continues to improve Flash accessibility, it is highly unlikely Silverlight accessibility will stagnate. Though it is too early in the development of Silverlight to comment in depth on the accessibility of field-tested applications, there is at least one signal application that seems to indicate a bright future for Silverlight accessibility: the DAISY digital talking book reader Buttercup (http://buttercupreader.net). The Buttercup project was created in concert with the DAISY Consortium, whose primary concern is content access for blind people. Buttercup, at least in Internet Explorer, allows playback of books using the SAPI voices that are installed on a PC. So, at least for limited, domain-specific applications, Silverlight shows significant promise. It is just not appropriate (at this stage of development, at least) for general web content, if accessibility is a concern.

As of this writing, the accessibility of JavaFX is entirely unclear. At a minimum we know that Java Applets and interfaces that implement JavaFX require that Windows computers have the Java Access Bridge installed to achieve a decent level of accessibility. Java applications run in a virtual machine—a layer of software that sits between your operating system. The Java application communicates accessibility-related information to the virtual machine, and the virtual machine uses the Java Access Bridge to communicate that information to the native operating system's accessibility layer—MSAA or UI Automation in Windows, the Accessibility API in Apple, or ATK in Linux. While there are many accessible Java-based stand-alone applications, Java in the web browser, whether via an old-style Applet or though the new kid, JavaFX, we have not seen examples that demonstrate thorough accessibility. This is not to say such examples do not exist, merely that we have not encountered them.

Resources

Role of instructor and course designer

Discussion

So, what is should be the role of the instructor or course designer in helping select web applications or web application frameworks? Well, he/she can be an advocate for accessibility and inform himself/herself of the issues confronting Rich Internet Application access.

He/She can also advocate for user testing. At a minimum, an accessibility expert should thoroughly test the web application for accessibility. And, if possible, testing should be conducted with students with disabilities. Test the following areas:

  • Can all application functions be used solely with the keyboard?
  • Can the application be used and navigated intelligibly and effectively using a screen reader?
  • Is the default text/icon size great enough for easy readability or can it be enlarged effectively?
  • When the operating system is switched into a high-contrast mode of display, does the application adopt high-contrast, as well? Or can the student manually preference a high-contrast mode (if default contrast may be problematic)?
  • If the application uses sound to indicate crucial interface updates, is there a visual equivalent that is on by default or which can be activated?