IBM®
Skip to main content
    Country/region [select]      Terms of use
 
 
      
     Home      Products      Services & solutions      Support & downloads      My account     

developerWorks > Sample IT projects >
developerWorks
Making AIX accessible
112KBe-mail it!
Contents:
Using X Keyboard Extensions to increase accessibility
Activating the X Keyboard Extensions
Using Style Manager in Common Desktop Environment (CDE)
Using Web-based System Manager with the IBM SVK
Using accessibility features in applications
Conclusion
Resources
About the authors
Rate this article
Subscriptions:
dW newsletters
dW Subscription
(CDs and downloads)

Hypatia Rojas (hrojas@us.ibm.com), Software Engineer, IBM
Sanaa Abdelhadi (sabdelha@us.ibm.com), Staff Software Engineer, IBM
Jack Alford (alfordja@us.ibm.com), Advisory Human Factors Engineer, IBM
Linda St.Clair (lstclair@us.ibm.com), Technical Editor, IBM

01 Nov 2001

Accessibility removes the barriers that prevent people with disabilities from participating in social, professional, and practical life activities. By combining new accessibility support in AIX 5L (the AIX operating system for POWER-based systems and Itanium-based systems, with an affinity for Linux) with built-in functionality in standard UNIX components, you can make AIX more accessible for your users.

According to estimates from the 1994 - 1995 Survey of Income and Program Participation, 54 million Americans have disabilities. The number of disabled people using computers has doubled in the past decade, and 8% of World Wide Web users have disabilities. Also, as computer users age, they develop such disabilities as vision or hearing loss. The bottom line? Computer users expect hardware, software, and product information to be accessible to everyone.

That expectation is backed by federal legislation and standards. The Federal Rehabilitation Act bars the federal government from purchasing information technology that is not fully accessible. The Americans with Disabilities Act requires that companies with 15 or more employees provide "reasonable accommodations" for individuals with disabilities. In addition, the FCC Telecommunication Act has issued final guidelines for accessibility of telecommunications equipment, ensuring that the equipment is designed, developed, and fabricated to be accessible to and usable by individuals with disabilities.

This article discusses how you can make your AIX system more accessible for your end users and how you can develop an accessible application for the AIX environment.

Using X Keyboard Extensions to increase accessibility
X Keyboard Extensions, when enabled, support standard keyboard accessibility functions for the X Window environment and applications. The following table describes these functions and how they are activated:

FunctionDescriptionHow to activate keyboard navigation features
StickyKeysFor users who cannot press multiple keys simultaneously. Interprets sequential presses of modifier keys as though they were pressed simultaneously. Examples: Ctrl+Alt+Delete, Shift+numeral = !Activated by pressing shift key 5 times. Deactivated by pressing shift key 5 times or pressing two modifier keys simultaneously. Auditory feedback is presented on activation and deactivation and when StickyKeys is used.
RepeatKeysEnables and disables core auto repeat controls. Affects auto repeat timeout and interval controls. Useful for mobility-impaired users.Support for Auto Repeat enabling and disabling is available from the Keyboard application in the CDE Style Manager. Click Volume also can be adjusted from this application.
SlowKeysFilters out accidental bumping of keys by mobility-impaired users.Activated by holding down right Shift key for 8 seconds (system gives warning beeps) + 4 more seconds (system gives confirmation sound). RepeatKeys is activated and deactivated simultaneously with SlowKeys and BounceKeys.
BounceKeysFilters out accidental multiple key presses by mobility-impaired users.Support is available programmatically.
ToggleKeysFor visually impaired users. Gives an audible tone when any of the toggle keys (for example, Caps Lock, Num Lock) are pressed.Enable with StickyKeys.
MouseKeysProvides keyboard control of the mouse pointer.Shift+NumLock (when keymap file has been modified - see below).

Activating the X Keyboard Extensions
To enable the X Keyboard Extensions on your AIX system, your system administrator must modify the /usr/lpp/X11/defaults/xserverrc file, which is the file that starts the X server

The following example xserverrc file entry invokes the following options:

+kbEnables keyboard extensions
+accessxEnables accessibility extensions

#---------------------------------------------------------------------
# Turn X11R6 keyboard extension on.
#---------------------------------------------------------------------

EXTENSIONS="$EXTENSIONS +kb +accessx"

Using Style Manager in Common Desktop Environment (CDE)
In CDE, use the CDE Style Manager to customize color, font, background, and auditory output. You also can customize the color and shape of the mouse pointer for CDE and X Windows.

Changing the shape and color of your mouse pointer
The following command allows you to change the shape and color of the mouse pointer. Run this command at the root window only:

xsetroot -cursor_name name -bg color

Use the /usr/include/X11/cursorfont.h file, which has the names of the cursor, to change the cursor into the following shapes:

X-cursorCursor converts to a large X
arrowArrow cursor points to the right
base_arrow_downCursor points downward
base_arrow_upCursor points upward
circleCursor converts to a circle

To change the cursor to a large red X, run the following command in the command window:

xsetroot -cursor_name X-cursor -bg red

Using Web-based System Manager with the IBM SVK
The Web-based System Manager in AIX 5L is a suite of system management tools written in the Java_ language. Making the graphical user interface accessible to visually impaired users required some additional technology. The SVK, available from the IBM alphaWorks Web site, provides the link between the Java code and a speech synthesizer that translates the Web-based System Manager GUI to speech output. This section describes how the SVK, working with the Java Accessibility API, supports speech output for Java applications like the Web-based System Manager without requiring modification of the base code.

The SVK, based on Access Engine technology from IBM, is launched as an assistive technology by Sun's Java Accessibility utility class, EventQueueMonitor. The engine communicates with Web-based System Manager's accessible components and manages the information from Web-based System Manager. User interface presentation extensions to Web-based System Manager can quickly access the information from Web-based System Manager through the SVK Toolkit class library. The SVK class library contains many utility functions, which include speaking text, reading application text, and activating accessible components.

As shown in Figure 1, the SVK loads automatically into the Java virtual machine with the Web-based System Manager application. Optionally, an external keypad can be connected to the other serial port to provide functionality for a blind user to navigate Web-based System Manager. If the keypad is not installed, a key sequence puts the user into review mode. In this mode, keystrokes are directed to SVK to provide functionality similar to the external keypad.

Figure 1. SVK monitor window and Web-based System Manager console
SVK monitor window and Web-based System Manager console

In Figure 1, the monitor window launched by the SVK displays the connection status to input and output devices. The monitor window aids developers in verifying the accessibility of an application.

Software and device support
The SVK runs as an application in the Java virtual machine that the Web-based System Manager supports. The SVK supports DecExpress and Accent SA hardware text-to-speech synthesizers.

Using accessibility features in applications
The following code samples with the Java Foundation Classes / Swing 1.1 demonstrate how to make your application accessible with the SVK:

  • Define mnemonics and accelerator keys for tasks that are frequently performed. For mnemonics, set the mnemonic key on components that extend AbstractButton. For example:
    JButton buttonSample = new JButton("Sample");
    buttonSample.setMnemonic('S');
    
  • Make components that do not get focus (like JTextFields) accessible: Create a dummy JLabel and setLabelFor on non-accessible components. For example:
    JLabel dummyLabel = new JLabel();
    dummyLabel.setLabelFor(Non-accessible Component);
    

    Note: The dummyLabel component is not part of a dialog. To see the corresponding data for nonaccessible component data in the SVK tool, use the Shift + F4 key.

  • Associate JLabels with corresponding JTextFields. For example: JLabelComponent.setLabelFor(JTextFieldComponent).
  • Describe icons and graphics and set the descriptions on all components. For example, icons should have text description for fly-over or hover help.
    ImageIcon helpIcon = new ImageIcon("image.gif");
    helpIcon.setDescription(String description)
    
  • Add perks where application information is announced and where no focus is rendered.

    A perk is a programmable user interface extension. Perks that are part of the SVK are usually programmable voice output user interface extensions that announce application information to augment or replace your visual interface.

    The SVK includes a number of perks to provide the default user interface and to serve as examples or to aid with debugging. DefaultPerk defines the default user interface. The init() method registers the Keyboard command mapping and the Event listeners. Optionally, if the Screen Reader Keypad is identified and can be found attached to the system, the KeypadKeys Perk is loaded, as well.

Conclusion
Computer users with varying abilities need equal access to technology and information. You can configure your AIX system to be more accessible to your users, as well as enhance your code with accessibility features. The easiest way to build an accessible Java application is to use JFC/Swing 1.1 and follow IBM guidelines for making Java applications accessible. This article discussed some of the ways you can make AIX more accessible.

Resources

About the authors
Hypatia Rojas is a Software Engineer in AIX for Developers at IBM Austin. She received a MS in Computer Science from Pratt Institute in New York. Hypatia has worked in Fishkill, New York, as a Manufacturing Engineer and as a programmer in Austin, Texas. Currently, she is a software developer in Java for the Web-based System Manager development group in Austin. You can contact her at hrojas@us.ibm.com.


Sanaa Abdelhadi is a Staff Software Engineer who joined IBM in 1999. She received her MS in Computer Science from Texas A&M University. Sanaa has worked in system management software development and in embedded systems. Currently, she is a software developer in Java for the Web-based System Manager development group in Austin. You can contact her at sabdelha@us.ibm.com.


Jack Alford, an Advisory Human Factors Engineer, joined IBM in 1980, after receiving a PhD in Human Experimental Psychology from the University of Texas at Austin. Jack has worked in Endicott, Dallas, and Austin on user interfaces for office products, operating systems, and system management tools. He is currently a user interface designer and User-Centered Design practitioner in the Web-based System Manager development group in Austin. You can contact him at alfordja@us.ibm.com.


Linda St. Clair is a technical editor in the AIX & RS/6000 Information Design & Development area, editing software and hardware publications for that organization. She joined IBM in 1978 and has spent most of her IBM career in information development, both as a writer and an editor. You can contact her at lstclair@us.ibm.com.



112KBe-mail it!
Rate this article

This content was helpful to me:

Strongly disagree (1)Disagree (2)Neutral (3)Agree (4)Strongly agree (5)

Comments?



developerWorks > Sample IT projects >
developerWorks
  About IBM  |  Privacy  |  Terms of use  |  Contact