Accessibility in Oracle Forms Applications
An Oracle White Paper
August 2007
Table of Contents
1. Introduction
2.
Running a form if you are a disabled user
3. Building forms for disabled users
4. Versions and known issues
5. Conclusion
1. Introduction
Oracle's goal is to ensure that products and services
are accessible to the disabled community with good usability and adhere to Section 508. Industry
standards will continue to evolve over time and Oracle is actively engaged
with other market leading technology vendors in addressing apparent technical
hurdles. Accessibility to the increasingly complex technology pervasive
in our lives is a factor for everyone. Accessibility solutions for the
disabled community have often become mainstreamed productivity enhancements
that benefit everyone.
This paper contains instructions for disabled users
how to configure their system and operate forms in the most efficient
manner. Also included is information how to use Oracle Forms 6i,
9i and 10g
to build applications that are accessible to the broadest
possible range of users and adhere to Section 508. Techniques are covered for Form development using
the Oracle Forms product by itself, or in conjunction with e-Business
Suite.
This paper addresses applications that are deployed
on the web, as opposed to client/server applications. Several techniques
discussed, especially those regarding colors, are only available in the
web-deployed mode. Examples of specific keystroke combinations are for
the Microsoft Windows operating systems; the sequences will vary slightly
on other platforms.
As with any standards or design recommendations, following
these rules does not guarantee that a product is accessible or usable.
Ultimately there is no substitute for testing a product with the intended
target audience.
2. Running a form if you
are a disabled user
This section assumes that the user is operating
screens that are running on the web which were developed with Oracle
Forms 6i, 9i or 10g according to all of the principles
outlined in this white paper under heading 'Building forms for disabled
users'.
Low vision users can:
- Run forms with any color scheme set on the operating
system by using the Generic look and feel or use one of several pre-defined
schemes with the Oracle look and feel
- Turn off hard coded colors
- Set operating system Font Size to either small fonts
or large fonts which affects the overall size of all items in a form
- Use a screen magnifier that supports java such as ZoomText, MAGic or SuperNova
Physically disabled users can:
- Run forms with just the keyboard
- Use access keys to activate menu items, push buttons,
radio buttons, checkboxes
- Invoke the "List Tab Pages" function (typically mapped as
F2) to switch tab pages
- Change forms keystroke mappings that are displayed in the
"Keyboard Help"
- Use operating system accessibility features such
as Sticky Keys and Toggle Keys
- Use a voice recognition program such as Dragon Naturally Speaking to give commands
and enter data
Blind users can:
- Run forms with just the keyboard
- Use access keys to activate menu items, push buttons,
radio buttons, checkboxes
- Invoke the "List Tab Pages" function (typically mapped as
F2) to switch tab pages
- Change forms keystroke mappings that are displayed in the
"Keyboard Help"
- Use operating system accessibility features such
as Sticky Keys and Toggle Keys
- Run forms with a screen reader that supports java such as JAWS or SuperNova
- Use E-Business Suite features that display all items
and push buttons in a window
Key-F9 function -- Prompt/Value LOV (typically mapped as Ctrl+Shift+F9)
Key-F8 function -- Actions LOV (Typically mapped as Ctrl+Shift+F8)
- Use new E-Business Suite feature in 11.5.10 called Forms Personalization to change "speakable prompts".
Hearing Impaired Users can:
- Turn on operating system accessibility feature SoundSentry
to generate a visual warning when the system makes a sound
All the above features are explained in detail in the
"Forms
Accessibility Features" viewlet available at http://www.oracle.com/accessibility.
Configuration steps for
blind users using a screen reader
Oracle Forms supports the Java Accessibility Bridge,
which allows integration with screen reader assistive technologies that also
support java. The following steps should be taken to install and configure the
bridge code on the client PC:
1. Install Jinitiator or Sun J2SE Native Plug-in. This will occur the first time
that an Oracle Forms application is run. The location of Jinitiator will
be specific to the machine; for example, it may be located at C:\ProgramFiles\Oracle\JInitiator
2. Download the appropriate version of the Java Access
Bridge available from Sun at http://java.sun.com/products/accessbridge/index.html
into a temp directory on the machine such as c:\temp\accessbridge-1_0_2.zip or c:\temp\accessbridge-2_0_1.exe.
Note:
AccessBridge 1.0.2 only works with JInitiator 1.1.8 and 1.3, not Sun J2SE Native Plug-in
AccessBridge 2.0.x (and older versions 1.2, 1.1, 1.0.3, 1.0.4) only works with JInitiator 1.3 and Sun J2SE Native Plug-in, not JInitiator 1.1.8
This is documented at Sun's compatibility matrix at
http://java.sun.com/products/accessbridge/docs/compatibility.html and at http://java.sun.com/products/accessbridge/index.html
where you can download AccessBridge 1.0.2 and 2.0.x.
Sun's Java Access Bridge 2.0.x is a self extracting executible file and needs to be installed. It will automatically find Oracle's JInitiator 1.3 and Sun's J2SE Native Plug-in and place the necessary files into the proper directories.
Java Access Bridge 1.02 on the other hand is a zip file and does not have to be installed
because it does not recognize Oracle's JInitiator. Manual configuration steps are necessary even if it is installed. Certain files have to be manually extracted from the zip file to different locations on the PC. Make sure that if you're
using Winzip, you uncheck 'Use folder names'. If you don't then subfolders
will be extracted to the System32 and JInitiator directories instead
of
just the necessary files. You may also drag and drop the files from Winzip
to the C:\WINDOWS\system32 and JInitiator directories.
3a. If you have JInitiator 1.1.8.x and Access Bridge 1.0.2 then follow these instructions:
(a) Extract or drag and drop JavaAccessBridge.dll and WindowsAccessBridge.dll
from accessbridge-1_0_2.zip to C:\WINDOWS\system32 directory
(b) Extract or drag and drop access-bridge.jar and jaccess-1_1.jar from
accessbridge-1_0_2.zip to the 'lib' directory of Jinitiator
(c) Edit the awt.properties file of Jinitiator in the 'lib' directory
so that it can locate the access bridge class files. Open this file in
any text editor and add these two lines:
AWT.EventQueueClass=com.sun.java.accessibility.util.EventQueueMonitor
AWT.assistive_technologies=com.sun.java.accessibility.AccessBridge
Make sure the above two lines are copied and pasted
from this whitepaper to the very end of the file without any extra carriage
returns or spaces. Sometimes there are special characters appended to
each of the two above lines that look like spaces so make sure you check
both lines and not just the very last one.
3b. If you have JInitiator 1.3.x or Sun J2SE Native Plug-in and Access Bridge 2.0.x then follow these instructions:
(a) Click on the self extracting executible file c:\temp\accessbridge-2_0_1.exe
(b) Then just follow the Java Access Bridge InstallShield Wizard prompts
Note: If you change or upgrade the JInitiator or Sun J2SE Native Plug-in version you are using then you will have to configure or run the Access Bridge again by following one of the three previous steps up above.
See 'Coding for
physically disabled users' for keyboard-only usage techniques.
E-Business Suite features
Actions and Values LOVs
E-Business Suite incorporates a feature that allows any user to see the current screen in a compressed, text-only popup window format called LOV (List of Values). Fields which cannot take focus because they are 'non-navigable' will not allow a screen reader to read their value and prompt. To account for this, E-Business Suite has special code that presents all fields in the current window, as well non-navigable fields in the window in special LOVs. Included in the LOVs are the values of display items or disabled items, which otherwise would not be easily discernible with a screen reader because they are not keyboard navigable. These special text-only popup windows allow a blind user to quickly identify all widgets in the current window (but just the current row for multi-row blocks).
The 'Actions' LOV is invoked through the 'KEY-F8' function and is a list of all push buttons in the current window. The 'Values' LOV is invoked through the 'KEY-F9' function and is a list of all other widgets in the current window like text items, radio buttons, checkboxes and poplists. Each row in the LOV will be spoken by a screen reader. The LOVs are in alphabetical order. Both LOVs also show access keys for radio buttons, checkboxes and push buttons. Choosing a value from either the Actions or Values LOV will not cause focus to move to those fields or buttons.
The access keys displayed in the LOVs are within braces for translations purposes. For example, access key c is displayed as {C} and a screen reader will speak the text as "brace C brace". Check with the screen reader manufacturer if there is a way to change it to speak "Alt C" instead of "brace C brace" if this is annoying.
Note that the 'KEY-Fn' function is not necessarily the 'Fn' button on the keyboard. The current key mapping for the function can be shown in the 'Keyboard help' window. Typically the 'KEY-Fn' function is mapped to Ctrl+Shift+Fn via the Oracle Terminal resource file.
Available at /technology/software/products/forms/index.html is Oracle Forms 6i generic code for Actions and Values LOV that can be used by non E-Business Suite developers to code similar functionality.
Forms Personalization
E-Business Suite users can take advantage of a powerful new feature in 11.5.10 called Forms Personalization if they don't like some of the "speakable prompts". Metalink Note 279034.1 is available that explains Forms Personalization.
Runtime options for
low vision users
Oracle Forms can be run with either the Oracle look
and feel or the Generic look and feel. The Oracle look and feel consists of
a new look and feel for each item, and a pre-defined set of color schemes. The
generic look and feel adheres to the native interface and color scheme of the
current operating system. The choice of look and feel has an impact on accessibility
features; in general, the oracle look and feel is the more accessible of the
modes. Only low vision users should find it necessary to use the generic look
and feel to control the overall colors of the application, either to increase
or decrease contrast.
Low vision users may set the desired colors using the operating
system's provided schemes, then specify lookAndFeel=generic in the URL so that
Oracle Forms will use these colors.
- To specify the look and feel, set the following parameter
when launching a form:
lookAndFeel= either generic or oracle
- If the oracle look and feel is used, the color scheme
can be specified as follows:
colorScheme= one of teal, titanium, red, khaki, blue, olive, or purple
- The colorScheme parameter has no effect if lookAndFeel
is set to generic.
An example of a form run with lookAndFeel=oracle and
colorScheme=blue:

Figure 1: the 'Users' form from E-Business Suite
running in the Oracle look and feel. The primary canvas color is blue, with
tab controls drawn in gray. All widgets have a rounded appearance.
The same form run with lookAndFeel=generic on the Microsoft
Windows operating system:

Figure 2: the 'Users' form from E-Business Suite running in the Generic
look and feel. All canvasses are rendered in gray. All widgets have the
standard Microsoft Windows appearance.
Oracle Forms supports a feature where fields that cannot
be entered (read-only fields) are automatically rendered dark gray. To
turn this feature off, specify readOnlyBackground=false in the URL.
Operating system settings such as Font Size (Small Fonts
or Large Fonts), will affect the overall size of all items in a form.
Often this is the only technique to adjust font sizes within a form, as
they typically are hard-coded.
E-Business Suite features
With E-Business Suite, Oracle Forms screens may be invoked
by actions taken on the E-Business Suite Professional User Interface or other
self-service screens. In order to run these screens, a URL is constructed using
information in profiles 'Java Look and Feel' and 'Java Color Scheme'.
- To specify the look and feel, set profile 'Java Look
and Feel' to either generic or oracle.
- If the oracle look and feel is used, the profile
'Java Color Scheme' can be specified as follows: teal, titanium, red,
khaki, blue, olive, or purple.
- The 'Java Color Scheme' profile has no effect if
'Java Look and Feel' is set to generic.
E-Business Suite by default renders:
- required fields in yellow
- queryable fields in a different color while in enter-query
mode
- fields that cannot be entered (read-only fields)
in gray
To turn off these features when running Oracle Forms
through the E-Business Suite Professional User Interface, set profile
'FND: Indicator Colors' to No.
Configuring Forms to integrate
with a screen magnifier
Oracle Forms supports the Java Accessibility Bridge,
which allows integration with screen magnifier technologies that also
support java, such as ZoomText from AiSquared. The following steps should
be taken to install the bridge code on the client PC:
- Install ZoomText 8.1 or greater
- Download Access Bridge 2.0.x from Sun at http://java.sun.com/products/accessbridge
Note: ZoomText does require at least JInitiator 1.3 or Sun J2SE Native Plug-in. It does not work
properly with JInitiator 1.1.8. This is documented at http://www.aisquared.com/support/KBdetail.cfm?ID=42.
- Install Access Bridge 2.0.x.
This version of the Access Bridge recognizes Oracle's JInitiator 1.3.x and above so manual configuration steps are not necessary. The access bridge installer copies the proper files into the various directories.
- Start up ZoomText and then run the form using Internet
Explorer browser.
If the Access Bridge is not properly installed then
you may experience problems such as the mouse behaving like an "eraser"
on the screen.
Note: If you change or upgrade the JInitiator or Sun J2SE Native Plug-in version you are using then you will have to run the Access Bridge installer again.
Configuring Forms to integrate with voice recognition
Dragon Naturally Speaking supports Java and nothing special needs to be done to configure the software.
Runtime
options for physically disabled users
All items used within Oracle Forms follow the standard
operating system conventions for keyboard use. For example, on the Microsoft
Windows operating systems use Alt+<letter> to activate items with
access keys, Alt+down to open a poplist, and Alt to move focus to the
menu. Oracle Forms should inherit operating system accessibility functions
such as Sticky Keys. Tabs can be switched by invoking the 'List Tab Pages'
function (typically F2), in addition to using access keys on each tab
label.
The 'Keyboard Help' window displays the keystrokes to
achieve normal Forms operations, such as 'Next Block' and 'Clear Record'.
This window can be viewed at any time by pressing Ctrl+K. The keyboard
mappings can be customized as follows:
- The System Administrator must locate the Oracle Forms
resource file on the middle tier, typically called fmrweb.res
- Make a copy of the file, naming it whatever you want,
and locate it in the same directory as the original.
- Open the new file in any text editor and make the
desired keystroke mapping changes. Comments at the top of the file clearly
explain how the mappings are performed.
- To run this new mapping file, include term=file in
the URL, where file specifies the complete path in addition to the filename.
A user running a screen reader will most likely need
a modified keyboard mapping file, or will have to change the Assistive
Technolody keystrokes, as some of the default function mappings may conflict.
| Table of common default Forms keystrokes on Microsoft Windows |
| Action |
Keystroke |
| List of Forms Keys |
Ctrl+K |
| Next Field |
Tab |
| Previous Field |
Shift+Tab |
| Next Block |
Shift+PageDown |
| Previous Block |
Shift+PageUp |
| Actions LOV |
Ctrl+Shift+F8 |
| Values LOV |
Ctrl+Shift+F9 |
| Activate default push button in a window if one
exists |
Enter
Pressing the Enter key with the focus on a button will activate that
button. If the focus is not on a button (or menu item), then Enter
should activate the default button if one exists. |
| Save Record (Commit) |
Ctrl+S |
| Clear Record |
F6 |
| Create Record |
Standard keystroke may be consumed by screen reader,
need to run with different terminal resource file to map Ctrl+Down
to something else or just use the pulldown menu. |
| Close Window |
Ctrl+F4 |
| List of Tab Pages |
F2 |
| Activate Menu |
Alt and then navigate with up/down and left/right
arrow keys |
| Activate push buttons, radio buttons, checkboxes
and topmost menu items |
Alt+access key |
| Toggle between open/close poplist |
Alt+Up/Down arrow keys |
| Activate current push button, Toggle checkbox yes/no |
Spacebar |
| Cycle through and select a radio button within
a radio group |
Left/Right arrow keys and then Spacebar |
| Move to beginning of line |
Home |
| Move to end of line |
End |
| Select to end of line (there is no keystroke for
"Select All") |
Shift+End / Shift+Insert+End |
| Cut |
Ctrl+x |
| Copy |
Ctrl+c |
| Paste |
Ctrl+v |
| Select the current tree node |
Spacebar |
| Activate the current tree node (this expands or
contracts the node if it is not a leaf node) |
Enter |
| Move up the tree |
Up arrow key |
| Move down the tree |
Down arrow key |
| Move up the tree branch one parent at a time collapsing
nodes |
Left arrow key |
| Move down the tree expanding parent nodes |
Right arrow key |
| Move focus within tree without selection |
Ctrl+Up/Down arrow keys |
| Move focus up/down the tree branch but not the
selection |
Ctrl+Left/Right arrow keys |
Hints for Voice Activation
You may be using the Dragon Naturally Speaking (DNS) "Tab Key" command and find yourself 'stuck' in a region of a form. If this happens, try using DNS mouse commands e.g. "mouse grid" or "move mouse + (direction)", to move to another region in the form. If the form has frames, you can use the DNS commands "Next Frame" or "Previous Frame".
Sometimes using the DNS "Press Key" command don't work. e.g. "Press Alt + C" or "Press Ctrl + O". If this happens try using the DNS mouse commands to move the cursor over the button or drop down list and then using the "Mouse Click" or "Press Enter" command to activate the button. The DNS command "Press Ctrl L" almost always works for drop down boxes (often designated by a box containing ellipsis).
There is no alt-text on the buttons. This is not HTML. They are labels. If there is an access key for the button, you can use command "Press Alt <letter>". If there is no access key then you can say "Tab" multiple times until focus is on the button and then use command "Press Enter".
If DNS stops taking voice commands, try using DNS mouse commands e.g."Move Up" and "Move Down" and also "Press Enter" to expand a tree branch. Command "tab" works too.
The DNS mouse commands "Move Mouse Up, Down, Left, Right, Drag Mouse Up, etc." are useful. The scroll bar can be controlled in a form using these commands.
E-Business Suite features
E-Business Suite provides profile 'Forms Keyboard Mapping
File'. To run a new mapping file, specify the complete path in addition to the
filename for the profile. When running Oracle Forms through the E-Business Suite
Professional User Interface, the new mapping file will be used.
E-Business Suite includes a feature that renders an
iconic button next to each field that has an LOV. The LOV can also be
invoked from the keyboard by pressing the 'List of Values' function (typically
Ctrl+L).
Tabs in E-Business Suite can only be changed from the
keyboard using the 'List Tab Pages' function. Individual tab labels do
not have access keys due to translation issues.
3. Building forms for disabled
users
The Oracle Forms 6i builder is
not accessible.Oracle Forms 9i and 10g builders are accessible. The Oracle Forms 6i, 9i and 10g runtime are accessible if coded to the standards
in this paper. By following the guidelines in this paper, developers can build runtime products that adhere to Section 508. Oracle has developed scripts to facilitate JAWS
Screen Reader usage with Form Developer 9i and 10g. Instructions for
proper installation are included
in the Forms Release notes.
In order to meet the needs of the disabled, all forms
should have the following capabilities:
- A screen reader should have access to the value and
`prompt' for each item, so that a blind or low vision user can hear
it. In this paper that is referred to as the 'speakable prompt'.
- All functionality should be accessible from the keyboard
only, so that a user does not have to manipulate a mouse or other pointer
device.
- All color usage should be under the control of the
user, so that a low vision or color blind user can see all of the content.
- There should be no reliance on timed functions, so
that a user does not need to respond in a set amount of time.
- Flashing or animations should be avoided, or if present
allow a mode that disables them.
Oracle Forms provides sufficient attributes to meet
these accessibility requirements, namely:
- When an item takes focus, Oracle Forms passes the
current value, the speakable prompt, and other attributes of the item
to a screen reader.
- Every item is operable from the keyboard, either
by allowing navigation to it or allowing invocation via access keys.
- Every item can specify 'automatic' as the color at
design time, so that at runtime, the right color is chosen from the
user's control panel settings.
For issues of timed responses and animations, this paper
assumes that they will simply be excluded from any screen design.
Using the bell builtin as an only indicator of an error
is allowed. The operating system typically has some kind of accessibility
option for sound such as SoundSentry that generates visual warnings when
the system makes a sound.
For any beanareas that are coded within a form, the
general principles outlined above need to be extended as appropriate to
the java code.
Coding for blind users
- Every item should have a Hint Text, Prompt, Label
or Tooltip Text in order for a screen reader to have a speakable prompt.
- Uniqueness of speakable prompts is important to the
blind user since other clues such as physical location on the screen
are lost.
A blind user also needs all of the features listed
in the 'Coding for physically disabled users'
section of this paper.
Prompts
Oracle Forms identifies speakable prompts in
the following order of precedence:
- Hint Text
- Prompt
- Label
- Tooltip Text
Starting with Hint Text, the first attribute
that is not null (after stripping any leading and trailing spaces) is
interpreted as the speakable prompt and sent to the screen reader. Not
every one of these attributes is available on each item, in which case
that attribute is simply skipped. Note that the property 'Display Hint
Automatically' should be set to 'No' if relying on Hint Text, otherwise
any Hint Text added will appear on the message line when any user operates
the product, and it will be spoken again by the screen reader. Display
items are not keyboard navigable but E-Business Suite uses them because
the prompts and values can be displayed in a popup window in a text-only
format.
The following table lists the attributes available
for each item (Available), the preferred attribute(s) to use for each
item (Preferred), and non-applicable attributes (N/A):
| Table of additional information spoken by screen reader after speakable prompt |
| Item |
Hint Text |
Prompt |
Label |
Tooltip Text |
| Text item |
Available |
Preferred |
N/A |
Available |
| Checkbox |
Available |
Preferred |
Preferred |
Available |
| Poplist |
Available |
Preferred |
N/A |
Available |
| Display item |
N/A |
Preferred |
N/A |
Available |
| Radio Group |
Preferred |
N/A |
N/A |
Available |
| Radio Button |
N/A |
Preferred |
Preferred |
N/A |
| Button (textual) |
Available |
Available |
Preferred |
Available |
| Button (iconic) |
Available |
Available |
Available |
Preferred |
| Tree |
Available |
Preferred |
N/A |
Available |
Special-case Prompts
'Obvious' Prompts
There are some fields that have no displayed Prompt
because the field's purpose is 'obvious', typically because of its physical
location on the screen.
Example:
- The 'high' field of a low/high range, such as:
Figure 3: a portion of a screen showing the prompt 'Ship Dates', followed
by a text item, a dash, then a second text item.
For this case, supply text such as 'Ship Dates:
High' for the Hint Text, or a hidden Prompt, on the unlabeled field to
serve as the speakable prompt.
Non-unique Prompts
Some fields have a prompt that is not unique
or meaningful by itself, such as:
- 'Associative' object names:
Figure 4: a portion of a screen showing the prompt 'Vendor Name', followed
by a text item, then the prompt 'Number' followed by another text item.

Figure 5: a portion of a screen showing two frames, one titled 'Bill To',
the other 'Ship To'. Within each frame are two text items, the first with
prompt 'Customer', the second with prompt 'Address'.
- Not meaningful without Title:

Figure 6: a portion of a screen showing the title 'Effective Dates' drawn
in front of a horizontal line. The line spans two columns of a multi-row
block with prompts 'From' and 'To'.
These fields should all use the Prompt attribute
for the on-screen prompt, and also have Hint Text for the speakable prompt.
For example, for the 'Customer' field in the 'Bill To' section, the Hint
Text could be 'Bill To: Customer'
Matrix Layouts
Another common construct is 'matrix' style fields:

Figure 7: a portion of a screen showing 6 Text Items arranged in a grid
format of two columns and three rows. The columns are labeled 'Count'
and 'Amount', and the rows have labels 'Control', 'Actual' and 'Difference'.
In this case, Boilerplate (Graphics text) and
Prompts should be used to label the fields on-screen. Each field should
have Hint Text that combines the 'row' and 'column' prompts, for example,
'Control: Count'. If this is a multi-row block then the Hint Text needs
to be changed dynamically in the WHEN-NEW-ITEM-INSTANCE trigger to reflect
the prompt of the current record.
Using Display Items to mimic Prompts
Avoid techniques that employ a display item to mimic
dynamic prompts except when absolutely necessary, such as:
- Prompts need to be shown with special characteristics,
such as a bevel (the real Prompt attribute has no such property)
- Desirable 'clipping' behavior of display items; that
is, the text can never render beyond the width of the display item (the
real Prompt attribute has no 'width' property).
- The prompt must be multi-line (although the Prompt
attribute does support multi-line text, it requires the developer to
place the carriage return character in the appropriate spot, which may
not remain intact after translation. In contrast, boilerplate or a display
item can automatically wrap the text).
If a display item must be used for an on-screen dynamic
prompt, add Hint Text to the associated field so that the screen reader
will still have access to a speakable prompt.
Note that if display items are used for this
purpose, there must be code in the KEY-CLRFRM trigger to repopulate the
fields otherwise their 'value' will disappear if the user does a Clear
Form.
Graphics Text
Graphics text, also called boilerplate text, should
be avoided. On-screen graphics text should be done with the Prompt and Label
attributes wherever possible. If graphics text must be used, then an associated
item must have Hint Text with similar text that can be communicated through
a screen reader when that item takes focus.
Additional Attributes
Oracle Forms thought it would be useful to have a screen reader speak additional attributes about certain items by appending the attribute after the speakable prompt.
| Table of additional information spoken by screen reader after speakable prompt |
| Item |
Attribute |
Text Appended to Prompt |
| Text item |
Required |
Required |
| Text item |
List of Values |
List of Values |
| Text item |
Required and List of Values |
Required, List of values |
| Radio button |
number of radio buttons in a group |
n of n |
| Menu item |
mnemonic key assigned |
mnemonic x |
Coding for physically disabled users
General Rules
- Radio buttons, check boxes and push buttons should
have access keys (mnemonics) defined.
- The keyboard tabbing sequence should follow a logical
order, typically left-to-right, top-to-bottom.
- The keyboard tabbing sequence should cycle through
most if not all items in a window.
- The user should be able to navigate between all of
the blocks and windows of an application with only the keyboard.
- Scrollbars should not be the only way to move between
records or to scroll canvasses.
Access Keys
Access keys allow operators to select or execute an
item by pressing a key combination, even when that item is not the currently
focused item. For example, a button labeled 'Open' with an access key of 'O'
can be activated at any time by pressing Alt+O. Access keys are applicable to
menu items, push buttons, checkboxes, radio buttons and tab pages. All access
keys within a window should be unique, including keys used in the top level
of the pull-down menu (typically F for File, E for Edit, etc.)
Accelerators are keyboard shortcuts for actions
that are frequently performed, for example, Ctrl+P for Print. Keyboard
shortcuts allow users to bypass opening the menu by using a specific combination
of keystrokes that perform the same function as a corresponding menu item.
Instead of pressing Alt+F, then S, to activate menu item File-Save, a
user can just press Ctrl+S to execute the same function. Accelerator keys
are desirable but not mandatory and are listed in Keyboard Help at runtime.
Push Buttons, Checkboxes, Tabs, Menu Items and
Radio Buttons should have an access key unless:
- They are keyboard navigable (an access key is still
desirable in this case)
- There is an excessive number of them such that deriving
a unique letter would be difficult (in which case the ones with no access
key must be Navigable)
- They are not absolutely critical to the functionality
of the product
- For Checkboxes and Radio Buttons: if they are
part of a multi-row block and use the Prompt, not the Label attribute,
they cannot render any access key
Not every item with a 'Label' property must have
an access key. If the item can be 'navigated to' (that is, it is part of
the keyboard tabbing sequence), then it does not need an access key, although
adding one is highly desirable as it benefits all users. Note that the Microsoft
Windows User Interface Guidelines state that 'OK' and 'Cancel' buttons should
not have access keys.
Menu items should have access keys for the top-level
entries at the very least, though they are not required. The menu can
always be invoked from the keyboard by pressing and releasing Alt. This
will move the focus to the menu, and the arrow keys can be used to navigate
through it.
Iconic buttons (Push Buttons with the Iconic
property set to Yes) cannot have an access key, therefore the functionality
they invoke should be replicated elsewhere in a manner that is accessible,
such as the pull-down menu.
Checkboxes and Radio Buttons
- In a single-row block, the speakable prompt of a
checkbox is almost always its Label attribute. In a multi-row block,
where only a single instance of the prompt is typical, the Prompt attribute
should serve as both the on-screen and speakable prompt for the item,
and the Label should be null.
- For radio buttons, use the Hint Text of the radio
group to hold the speakable prompt. In a single-row block, the Label
attribute of each button acts as its 'value'; in a multi-row block where
only a single instance of the prompt is typical, the Prompt attribute
should serve as both the on-screen prompt and 'value' for the item,
and the Label should be null.
- If the Label can be utilized, then it is very desirable
to provide an access key, though not required as long as the widget
is navigable. If the widget is not navigable, then using the mouse would
be the only activation means, thus the access key is required.
An example of a single-row radio group:
Figure 8: a portion of a screen showing a frame titled 'Gender'. Within
the frame are 3 radio buttons arranged vertically, with labels 'Male',
'Female' and 'Unknown'.
- The radio group that owns the 3 buttons has Hint
Text 'Gender'.
- The rectangle and displayed word 'Gender' are a frame
widget. The title of a frame is not spoken by a screen reader.
- 'Male', 'Female' and 'Unknown' are the Labels of
the buttons, with access keys 'm', 'l', and 'u' respectively. The value
of the radio group currently is 'Male'.
An example of a multi-row checkbox:
Figure 9: a portion of a screen showing 3 checkboxes in a multi-row block
oriented vertically. Above them is the prompt 'Enabled'.
- The word 'Enabled' is the Prompt of the checkbox.
- The Label and Hint Text are both null.
- There is no access key, so the checkbox must be navigable.
E-Business Suite features
- Radio groups, radio buttons, push buttons and checkboxes
need to be subclassed with the appropriate AOL property class. These
classes specify a Pluggable Java Component (PJC) to guarantee uniqueness
of access keys. At runtime, if the letter specified is already in use
within the window, including the pull-down menu, a different letter
will automatically be selected. This feature is most useful for applications
which will be translated, where the translators may have a difficult
time establishing unique access keys because they may not be operating
in an environment where they can see the effect of their changes at
runtime.
- Tabs, pop-up menu items, and dynamically labeled
pull-down menu items should not have access keys because they cannot
be guaranteed to be unique after translation. The PJC mechanism used
on other items is not possible on these.
- An access key should be specified within the label,
such as '&Print'. The separate Access Key property should not be
used.
- One default button per window should be provided, where
that function is the most likely for the user to perform. Always provide a
default button in a modal window (typically "OK"). All push buttons
should have an access key except "OK" and "Cancel" within
dialog windows. "OK" must have an access key if it is not the default
button, and "Cancel" must have an access key if it does not perform
the same function as "Close Window."
Blocks
Every block must be navigable with the keyboard. Typically
the navigation between blocks is controlled with the Next Navigation Block and
Previous Navigation Block properties, and/or the KEY-NEXT-BLOCK and KEY-PREVIOUS-BLOCK
triggers.
Menus Include the 'Window' menu entry when building a custom
menu; by default the Window menu entry is not included. This entry allows a
user to switch between currently open windows within the application from the
keyboard.
Coding for low vision users
General Rules:
- Color-coding should never be the only means of conveying
information or indicating an action.
- Colors should not be hard-coded.
- If fields need to be color-coded, either allow the
user to turn the feature off or allow them to select from a range of
colors.
The 'automatic' color
Oracle Forms provides a special color named 'automatic',
which is essentially a 'do-the-right-thing' attribute. For example, when applied
to the text and background colors of a Text Item, the text will be black and
the background color will be white, when running with the oracle look and feel.
That same item, running in the generic look and feel, may have different colors
depending on how the system colors are currently set up. This flexibility allows
each user to control colors so they can account for visual impairments they
may have.
Note that the Oracle Forms Layout Editor does not fully
recognize the 'automatic' color; it may render items with unexpected colors
at design time. Only the runtime java engine is able to completely interpret
and apply this color.
E-Business Suite features
E-Business Suite follows all of the guidelines mentioned
above in this paper, but has additional requirements and features. These arise
from the need to translate to multiple languages, and additional accessibility
support built into the Application Object Library (AOL) product. In order to
get all the new 11i features, customers should apply Patch 1718503:
AOL: Enhanced Accessibility Features Based on 508 Standards. If you are coding
extensions to E-Business Suite, you should follow these rules in addition to
the prior material. Many of the rules are also enforced with the flint60 tool
that comes with E-Business Suite. This material is covered in further depth
in the Oracle Applications Developers Guide (part number A75545).
Testing
To aid with testing, E-Business Suite includes a 'screen
reader simulation' mode. By setting environment variable ACCESS_READER_MODE
to the value 'ERROR_REPORTING' before starting the web listener, the system
will automatically raise an error message when focus moves to an item that does
not have a speakable prompt. This mode allows validation of each form without
actually having to run with a real screen reader installed, although it is not
intended to be a complete substitute for such testing. This feature relies on
the form-level WHEN-NEW-ITEM-INSTANCE trigger firing on each field, which is
part of the Oracle Applications Developers Guide standards.
Available at /technology/software/products/forms/index.html
is Oracle Forms 6i generic code for Actions and Values LOV and screen
reader simulation mode.
4. Versions and known issues
Recommendations:
- Oracle Forms Developer 6i (Patchset 5) and greater
- run
Forms with separateFrame=true
- JInitiator 1.3.x or Sun J2SE Native Plug-in
- Microsoft
Internet Explorer 5.5 and greater browser
- Windows XP, Windows NT 4 (with
Service Pack 5) or Windows 2000
- Sun's Access Bridge 2.0.x
Note:
- Do not use JAWS screen reader versions 4.0 and 4.01 as they do not work with the Java Access Bridge.
- Dolphin Oceanic's Supernova Professional 6.54 is minimum version needed
The following issues have been fixed in JAWS 8.00.1163 screen reader from Freedom Scientific:
- Bug 5865413: JAWS 7.10.500 REGRESSION WITH LIST OF VALUES (LOV)
- Bug 5675434: NO JAWS KEYSTROKES AVAILABLE TO READ WINDOW TITLES, FRAME TITLES OR POPUP MESSAGE
- Bug 5669320: JAWS IS ANNOUNCING RADIO GROUPS INCORRECTLY
- Bug 5675448: JAWS SPEAKS THE HINT TEXT EVEN THOUGH FOCUS IS NOT IN THAT FIELD
- Bug 5669412: JAWS IS ANNOUNCING CONTENTS OF EVERY READ-ONLY ITEM BEFORE CURRENT ITEM IS READ
- Bug 3842682: JAWS SPEAKS ALL VALUES TWICE
The following issues exist in JAWS 7.10 screen reader from Freedom Scientific:
- list of values (lovs) not always spoken
- messages spoken twice
- excessively verbose
This combination of products, when used with the ZoomText
8 screen magnifier from AiSquared, revealed several issues including:
- Focus moves to list items, radio buttons, checkboxes
and push buttons (and screen reader works for these item types) but
focus does not move very well to regular text items nor menu items.
- Focus does not move when pressing F2 key to switch
tab pages.
- Focus does not move when pressing the alt key to
activate the top level menu.
- If you change magnification (i.e. from 2x to 3x)
and automatic focus to all items stops working then exit out of your
application and restart it.
Oracle is working closely with assistive technology
vendors to resolve accessibility issues identified to date. Please consult
the Metalink site at http://metalink.oracle.com/
for updates to these issues.
5. Conclusion
Oracle Forms provides all of the attributes necessary
to build applications that are accessible to a wide variety of users. In most
cases, normal Forms coding techniques would already produce the proper result;
only in some exceptional cases are extra steps needed to code an accessible
product. And in almost all cases, any feature added specifically for accessibility
also benefits all other users.
Accessibility in Oracle Forms Applications
August 2007
Authors: Maxine Zasowski, Peter Wallack
Copyright © Oracle Corporation 2007
All Rights Reserved Printed in the U.S.A. This document is provided for
information purposes only and the contents hereof are subject to change
without notice. Oracle Corporation does not warrant that this document
is error free, nor does it provide any other warranties or conditions,
whether expressed orally or implied in law, including implied warranties
and conditions of merchantability or fitness for a particular purpose.
Oracle Corporation specifically disclaims any liability with respect to
this document and no contractual obligations are formed either directly
or indirectly by this document. This document may not be reproduced or
transmitted in any form or by any means, electronic or mechanical, for
any purpose, without the prior written permission of Oracle Corporation.
Oracle is a registered trademark of Oracle Corporation.
Other names may be trademarks of their respective owners. Copyright
(c)
2007, Oracle Corporation. All rights reserved.
Oracle Corporation World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: + 1.650.506.7000
Fax: +1.650.506.7200
E-Mail: accessible_ww@oracle.com
http://www.oracle.com/accessibility
Copyright © 2002-2007
Oracle. All rights reserved.
|