Java Application Accessibility Awareness Lawrence Najjar.

24
Java Application Accessibility Awareness Lawrence Najjar

Transcript of Java Application Accessibility Awareness Lawrence Najjar.

Page 1: Java Application Accessibility Awareness Lawrence Najjar.

Java Application Accessibility Awareness

Lawrence Najjar

Page 2: 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

Page 3: Java Application Accessibility Awareness Lawrence Najjar.

3

Purpose

• Improve Java application accessibility awareness

Page 4: Java Application Accessibility Awareness Lawrence Najjar.

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

Page 5: Java Application Accessibility Awareness Lawrence Najjar.

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)

Page 6: Java Application Accessibility Awareness Lawrence Najjar.

6

Screen Readers

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

Page 7: Java Application Accessibility Awareness Lawrence Najjar.

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

Page 8: Java Application Accessibility Awareness Lawrence Najjar.

8

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

Page 9: Java Application Accessibility Awareness Lawrence Najjar.

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)

Page 10: Java Application Accessibility Awareness Lawrence Najjar.

10

Example for “Show focus visually and programmatically”

Page 11: Java Application Accessibility Awareness Lawrence Najjar.

11

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

Page 12: Java Application Accessibility Awareness Lawrence Najjar.

12

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

Before

After

Page 13: Java Application Accessibility Awareness Lawrence Najjar.

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

Page 14: Java Application Accessibility Awareness Lawrence Najjar.

14

Example for “Provide high contrast for text”

Before

After

*Date (mm/dd/yyyy):

*Date (mm/dd/yyyy):

Page 15: Java Application Accessibility Awareness Lawrence Najjar.

15

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

Page 16: Java Application Accessibility Awareness Lawrence Najjar.

16

Example of “Don’t use unnecessary graphics”

http://www.flamingtext.com/

Page 17: Java Application Accessibility Awareness Lawrence Najjar.

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

Page 18: Java Application Accessibility Awareness Lawrence Najjar.

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.

Page 19: Java Application Accessibility Awareness Lawrence Najjar.

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)

Page 20: Java Application Accessibility Awareness Lawrence Najjar.

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

Page 21: Java Application Accessibility Awareness Lawrence Najjar.

21

Accessibility in R&D Usability Portal

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

Page 22: Java Application Accessibility Awareness Lawrence Najjar.

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

Page 23: Java Application Accessibility Awareness Lawrence Najjar.

23

Summary

For maximum accessibility:•Design in accessibility from the start

•Verify accessibility with checklists, tools, and accessibility tests

Page 24: Java Application Accessibility Awareness Lawrence Najjar.

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