Java Application Accessibility Awareness Lawrence Najjar.

Post on 26-Dec-2015

225 views 0 download

Tags:

Transcript of Java Application Accessibility Awareness Lawrence Najjar.

Java Application Accessibility Awareness

Lawrence Najjar

2

Outline

• Purpose• Definitions• Section 508• Screen Readers• Some Accessibility Requirements• Some Accessibility Suggestions• For Best Results Use• Testing• Accessibility at BMC• Accessibility Resources• Summary

3

Purpose

• Improve Java application accessibility awareness

4

Definitions

• Disability -- Functional limitation in vision, hearing, movement, manipulation (for example, fine movements to use mouse), speech, and interpretation of information (for example, dyslexia and other cognitive impairments)

• Accessibility – Providing persons with disabilities comparable access to and use of information and data as persons without disabilities

5

Section 508

• Section 508 of the Rehabilitation Act amendments of 1998 (http://www.section508.gov/index.cfm?FuseAction=Content&ID=12#Web)

• For Federal purchases of information technology• Requires Federal employees and members of the public with disabilities have access to and use of information and data comparable to that of employees and members of the public without disabilities• Is spreading beyond Federal government (http://www.gcn.com/vol1_no1/daily-updates/26304-1.html)

6

Screen Readers

http://www.doit.wisc.edu/accessibility/video/intro_scrn_rdrs.mov

7

Some Accessibility Requirements

• Provide keyboard-only access to all functions (example)

› Provide keyboard mnemonics (ex. ALT-F for File menu) for menu bar menus, frequently-used components, and all dialog window components

› Duplicate toolbar buttons in menu or provide keyboard access to toolbar

› Use Swing keyboard bindings (ex. F6 to move between panes) (http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/doc-files/Key-Index.html)

› Provide functional keyboard equivalents for mouse functions

8

Example for “Provide keyboard-only access to all functions”

9

Some Java Accessibility Requirements (Continued)

• Don’t interfere with accessibility features (ex. inverse video, sticky keys) • Show focus visually and programmatically (example) • Make all user interface elements (ex. icons) available via text• Use operating system to display textual info (ex. text, text input carat, text attributes)• Do not override user-selected color, contrast, font size, keyboard repeat rate, etc. (example)• Allow users to turn off animated info, but still get the info• Don’t use color as only way to convey information (example)• Don’t blink between 2 Hz and 55 Hz• Make forms accessible (ex. place prompt left of entry field)

10

Example for “Show focus visually and programmatically”

11

Example for “Do not override user-selected color, contrast, font size, etc.”

12

Example of “Don’t use color as only way to convey information”

Before

After

13

Some Accessibility Suggestions

• Provide high contrast for text (example)• Use tab order that makes sense to users (example)• Don’t use unnecessary graphics (example)• Provide default focus on every window› Set a component to execute the java.awt.ComponentrequestFocus

method• Describe icons and other functional graphics› Call the setIcon( ) method

› Use the setDescription( ) class • Label all components› Implement the AccessibleName method on all objects› Implement the AccessibleDescription Method

• Allow users to see visual version of audio alert› Enable Windows sound accessibility flashed title bar, window, or

desktop; can also flash status indicator on taskbar, etc,• Don’t use timed responses; if you must, allow users to extend the time

14

Example for “Provide high contrast for text”

Before

After

*Date (mm/dd/yyyy):

*Date (mm/dd/yyyy):

15

Example for “Use tab order that makes sense to users”

16

Example of “Don’t use unnecessary graphics”

http://www.flamingtext.com/

17

For Best Results Use

• Java 2• Java Foundation Classes “Swing” User Interface Components• Java Accessibility Application Program Interface• Java Access Bridge for Windows 1.1 (http://java.sun.com/products/accessbridge/)

• Don’t use applets (some assistive technology browsers don’t support them); use Sun Web Start

18

Java Access Bridge

• Communicates between assistive technology (ex. JAWS) and native code of Java Access Bridge• Bridge for Java Accessibility API between Java virtual machine and Windows• Uses two Windows Dynamic Link Libraries and one Java language classfile

Note: Users need Java Access Bridge on their machines.

19

Testing

• Use Java Accessibility Helper (http://java.sun.com/developer/earlyAccess/jaccesshelper/)

• Use application with only keyboard (http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/doc-files/Key-Index.html)

• Use JAWS screen reader (http://www.freedomscientific.com/fs_products/software_jaws.asp)

• Print screens on black & white printer• Use BMC accessibility checklist (http://cww/internal/ResearchAndDevelopment/Usability/attachments/SmartNumber_section508_assessment.doc)

• Use IBM Java accessibility checklist (http://www-306.ibm.com/able/guidelines/java/accessjava.html)

20

Accessibility at BMC

• Accessibility program lead named (Chris Meier) • Accessibility consultant hired (The Paciello Group)

• Reviewed SmartDBA and Metropolis• Delivered 20-minute-long Webinars• Will provide half-day Java accessibility training

• Accessibility awareness program begun (CWW, Brown Bags)

• Accessibility section added to BMC R&D Usability portal (example)

• Over 500 products evaluated using BMC Section 508 Product Assessment Form

• Completed accessibility form now required for product’s release to market process

• Federal agencies now requiring information on when BMC products will conform to Section 508

21

Accessibility in R&D Usability Portal

http://cww/portal/site/CWW/index.jsp?chid=69da4c9a711eaf00VgnVCMServerd30611acRCRD

22

Accessibility Resources

• Andrews, M. Accessibility and the Swing Set [On-line]. Available: http://java.sun.com/products/jfc/tsc/articles/accessibility/• BMC Accessibility Intranet site: http://cww/portal/site/CWW/index.jsp?chid=bada4c9a711eaf00VgnVCMServerd30611acRCRD• Dunn, J. (2002, June 2). Developing accessible JFC applications [On-line]. Available: http://www.sun.com/access/developers/developing-accessible-apps/• Feigenbaum, B. A. (2002, October 1). Coding for accessibility – Use JFC/Swing to build accessibility into your Java applications [On-line]. Available: http://www-106.ibm.com/developerworks/java/library/j-access/• IBM (2002). IBM Java accessibility checklist [On-line]. Available: http://www-306.ibm.com/able/guidelines/java/accessjava.html • Schwerdtfeger, R. S. (2000, August 24). IBM’s guidelines for writing accessible applications using 100% pure Java [On-line]. Available: http://www-3.ibm.com/able/guidelines/java/snsjavag.html • Section 508 [On-line]. Available: http://www.section508.gov/index.cfm?FuseAction=Content&ID=12#Web• Sun Microsystems (2003). Accessibility quick reference [On-line]. Available: http://www.sun.com/access/ developers/access.quick.ref.html#apptips• Sun Microsystems. Swing component keystroke assignments [On-line]. Available: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/doc-files/Key-Index.html

23

Summary

For maximum accessibility:•Design in accessibility from the start

•Verify accessibility with checklists, tools, and accessibility tests

24

Thank You

To get a copy of this presentation:• E-mail Lawrence Najjar• Or, go to the R&D Portal, Programs and Services, Usability

and Interface Design, Accessibility/Section 508, White Paper and Presentations, Java Accessibility Awareness Brown Bag

To get accessibility services:• Contact Tony Haverda, manager, Interface Design and

Usability