Flash and Java present accessibility challenges for the web programmer. Although both can be made accessible, there are only rare instances in the wild where you find accessible Flash or Java. In a recent WebAIM survey, fully 71% of screen reader users found it difficult to access Flash applets. The survey doesn’t even cover Java accessibility.
Flash is inherently difficult to make accessible, requiring thoughtful planning and implementation. And time. It is difficult enough to budget sufficient programming hours for a Flash project, let alone funding the additional hours needed to make it accessible. With the shift to mobile devices, it is questionable whether Flash is strategic. It is not accessible to many mobile devices and is a resource hog on those that are Flash-enabled. Therefore, it is probably most sensible to produce a non-Flash version (or skip Flash altogether) of the information for your assistive technology and mobile audiences.
That said, if you are up for a challenge, there are techniques for making your Flash applets accessible. The Adobe website contains a subsite dedicated to Flash accessibility. Also, the WebAIM website has a very good introductory section on Flash accessibility.
Making Java accessible to screen reader users and non-mouse users requires that the screen reader user install the Java Access Bridge from Oracle on their Windows machine. This is necessary in order for the screen reader to find and interact with the Java Accessibility API. You need to alert the user to this requirement. On the programming side, the Java Accessibility API is implemented in the Java Foundation Classes (JFC) Project (aka Swing) user interface components. Application developers should take advantage of the JFC as an easy way to incorporate accessibility into their designs. For more information about programming accessible Java, see the IBM Guidelines for Writing Accessible Applications Using 100% Pure Java.
Marco Zehe has written a very interesting article on his blog about the accessibility of applets.