Section 508 for Software Development Coding Examples
Oracle Forms
Provision A
§1194.21(a) “When software is designed to run on a system that has a keyboard, product functions shall be executable from a keyboard where the function itself or the result of performing a function can be discerned textually.”
Execute Functions Using Key Triggers
Use function key triggers to perform complex or multiple functions with a single key or key sequences. Function key triggers are associated with individual Runform function keys. A function key trigger fires only when the associated function key is pressed. The actions defined in a function key trigger replace the default action that the function key would normally perform. This table shows all function key triggers and corresponding Runform function keys.
Key Trigger | Associated Function Key |
| |
Key-CLRBLK | [Clear Block] |
Key-CLRFRM | [Clear Form] |
Key-CLRREC | [Clear Record] |
Key-COMMIT | [Accept] |
Key-CQUERY | [Count Query Hits] |
Key-CREREC | [Insert Record] |
Key-DELREC | [Delete Record] |
Key-DOWN | [Down] |
Key-DUP-ITEM | [Duplicate Item] |
Key-DUPREC | [Duplicate Record] |
Key-EDIT | [Edit] |
Key-ENTQRY | [Enter Query] |
Key-EXEQRY | [Execute Query] |
Key-EXIT | [Exit] |
Key-HELP | [Help] |
Key-LISTVAL | [List of Values] |
Key-MENU | [Block Menu] |
Key-NXTBLK | [Next Block] |
Key-NXT-ITEM | [Next Item] |
Key-NXTKEY | [Next Primary Key] |
Key-NXTREC | [Next Record] |
Key-NXTSET | [Next Set of Records] |
Key-PRINT | [Print] |
Key-PRVBLK | [Previous Block] |
Key-PRV-ITEM | [Previous Item] |
Key-PRVREC | [Previous Record] |
Key-SCRDOWN | [Scroll Down] |
Key-SCRUP | [Scroll Up] |
Key-UP | [Up] |
Key-UPREC | Equivalent to Record, Lock command on the default menu |
Keep in mind that you cannot redefine all Runform keys with function triggers. Here are some exceptions:
[Clear Item] | [End of Line] | [Refresh] | [Select] |
[Copy] | [First Line] | [Right] | [Show Key] |
[Cut] | [Insert Line] | [Scroll Left] | [Toggle Insert/Replace] |
[Delete Character] | [Last Line] | [Scroll Right] | [Transmit] |
[Delete Line] | [Left] | [Search] | |
[Display Error] | [Paste] | [Right] |
To create a function key trigger, you must first create the function key trigger in Forms Builder; then, bind it with the key or key combination of your choice using Oracle Terminal. Let's take a look at a few examples of key triggers.
// Trigger KEY-NXTBLK GO_BLOCK(‘NEXT_BLOCK_NAME’); //Trigger KEY_HELP SHOW_HELP;
In order to create a key binding for a key trigger, perform these actions:
//To create a KEY-F3 trigger, enter into Action Field in Key Bind //Definition window User Defined Key F3 //Specify a key binding for your trigger, and then select OK Action Binding User Defined Key F3 Control+F2 //Enter the following to Microsoft Windows Action Code Description User Defined Key F3 85 [Trigger description]
Use Accelerators For Commonly Used Functions
Accelerators are keyboard shortcuts for frequently performed actions (for example, Ctrl+P for print, Esc for escape or cancel). When possible, it is a good (but not mandatory) practice to provide keyboard accelerators. A good rule to use is to always set a keyboard accelerator for menu items that appear visually on a tool bar. 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.
Developer/2000 provides for five logical accelerator keys, [Accelerator 1] through [Accelerator 5] that are set up with Oracle Terminal. To assign a key, find the menu item in the Object Navigator and display its property sheet. In the Property Palette, under the Functional node, type the name of the logical accelerator key you want to assign to the item in the Keyboard Accelerator property field. For example, enter Accelerator 1.
In the Oracle Terminal, associate this logical accelerator key, for example, to a key sequence such as Ctrl+F to open the File 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. Now the user is able to activate a menu item without going through the menu.

Use Access Keys to Select or Execute an Item
This technique applies to the buttons, radio buttons, menus and check boxes. It specifies the character that will be used as an access key, allowing the user to select or execute an item by pressing a key combination, such as Alt+C. In a Label Property on Property Palette place the name of the menu item with an ampersand after the first letter: for example “A&ction”. The access key is displayed with an underscore in the item label. Buttons with the iconic property set to “Yes” cannot have access keys.
Push buttons, checkboxes, tabs, menu items and radio buttons should have an access key unless:
Provision B
§1194.21(b) “Applications shall not disrupt or disable activated features of other products that are identified as accessibility features, where those features are developed and documented according to industry standards. Applications also shall not disrupt or disable activated features of any operating system that are identified as accessibility features where the application programming interface for those accessibility features has been documented by the manufacturer of the operating system and is available to the product developer.”
Preventing Disabling Activated Features of Any Operating System or Other Products
Preventing the disabling of activated features can be accomplished by utilizing these approaches:
To save user settings of the color scheme, you can leave the Visual Attributes Property in Property Palette as “DEFAULT”. Also, Oracle Forms provides a special color setting named “automatic”. 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 using the provision 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 originally set up. This flexibility allows each user to control colors so they can account for any visual disability they may have (such as color blindness). However, the “automatic” color is not fully recognized by Oracle Forms Layout Editor, so you may get unexpected color at design time.
Provision C
§1194.21(c) “A well-defined on-screen indication of the current focus shall be provided that moves among interactive interface elements as the input focus changes. The focus shall be programmatically exposed so that assistive technology can track focus and focus changes.”
Keeping Track of the Current Focus and Focus Changes
Every item in Oracle Form Builder has a Keyboard Navigable property on its Property Palette. When the property is set to “Yes”, the item is keyboard-navigable. Setting this property to “No” makes Form Builder skip this item and enter the next navigable item. The order of items in the Object Navigator is a default navigation sequence. You can also initiate the navigation programmatically by calling built-in procedures, such as GO_BLOCK and GO_ITEM from triggers and built-in subprograms.
For example, the navigation between blocks can be controlled by the Next Navigation Block and Previous Navigation Block properties and/or the KEY-NEXT-BLOCK and KEY-PREVIOUS-BLOCK triggers. It is possible to use the GO_ITEM built-in procedure to navigate to an item when its Keyboard Navigable property set is to “No” (PROPERTY_FALSE) for runtime. At form startup, Form Builder sets the input focus to the first item in the first block, as indicated by the sequence.
Keeping Track of Current Focus and Focus Changes
Using a screen reader, Oracle Forms can provide users with the ability to hear the name of the item that has “input focus” at the current moment of time. When the item on the screen (for example, a menu item or alert message) takes focus, Oracle Forms passes the attributes like current value or speakable prompt to the screen reader that will articulate the text information.
//Trigger KEY-NXT-ITM GO_ITEM (‘NEXT_ITEM’);
Provision D
§1194.21(d) “Sufficient information about a user interface element including the identity, operation and state of the element shall be available to assistive technology. When an image represents a program element, the information conveyed by the image must also be available in text.”
Associating Text Labels With User Interface Elements
A user interface element can be any feature of a program that allows the user to perform some action. These elements must have text labels that explain the action so that users of assistive technology are aware of and can utilize them.
To accomplish this, create a text label in a separate object on a canvas on the left side of the feature or populate a Label property in Property Palette.
Remember that you must never use abbreviations when creating a label. You can add your comments in the “Hint Text” on the Property Palette of the particular screen item. Also remember that the property “Display Hint Automatically” should be set to “No” if relying on Hint.
Take a look at this graphic. It illustrates the method by which you can add a text label.

Provision E
§1194.21(e) “When bitmap images are used to identify controls, status indicators, or other programmatic elements, the meaning assigned to those images shall be consistent throughout an application's performance.”
Images in Oracle Forms have to be consistent throughout the application. If the image changes its name during a program's execution, the assigned identifier is no longer valid and it confuses the user.
Compare these two forms.


The “Help” icon button with the question mark image and the text label “Help” are the same on both screens, which is correct according to the provision. However, note the inconsistency when comparing the “Avail Wk” icon button and the “Personal” icon. Both buttons use the same image but have different labels.
Not only is this in violation of the provision, but it is also not good design practice. Imagine that you are a user of these forms. How would you know if the two icons represent the same operation or two different ones? Conforming to the provision ensures that the user will have clear direction on the meanings and functions of any and all images.
Provision F
§1194.21(f) “Textual information shall be provided through operating system functions for displaying text. The minimum information that shall be made available is text content, text input caret location, and text attributes.”
Oracle Forms provides a variety of text items that allow the display of text on the screen. Every object should have hint, prompt, label or ToolTips text in order for a screen reader to have a speakable prompt.
Using a screen reader, Oracle Forms can provide users with the ability to hear the name of the item that has “input focus” at that current moment in time. When the item on the screen, for example, a menu item or alert message, takes focus, Oracle Forms passes the attributes, such as current value or speakable prompt, to the screen reader that will articulate the text information.
In some cases, such as when an alert or an error message is displayed, the speakable prompt can announce only the name of the message as “Alert Message”, but not the message itself. So, how can you enable the user to hear an error message? By using the Alert or Error message, which is invoked after the ON-ERROR trigger fires. This code is an example of such a trigger:
DECLARE My_error_text varchar2(80); BEGIN My_error_text:=ERROR_TEXT; MESSAGE (My_ERROR_TEXT); END;
Create a text item to display the text of the alert message. Make sure that next navigable item after the Error Message is this text item. Create a trigger KEY-NXT-ITEM as shown in this code:
//Trigger KEY-NXT-ITEM GO_ITEM (NEXT-TEXT-ITEM);
As a result, the screen reader will be able to pronounce the text of the error.
Provision G
§1194.21(g) “Applications shall not override user selected contrast and color selections and other individual display attributes.”
If you are working with a pre-existing application, set the object's Visual Attribute Group Property to the default. This action will allow the user to customize their own system-wide, display-specific settings.
If you are developing an application, provide the user with a menu, check box, or radio button so they have the option to select color and contrast settings for their own system.
Provision H
§1194.21(h) “When animation is displayed, the information shall be displayable in at least one non-animated presentation mode at the option of the user.”
If animation exists, your development (or remedial) action will be to create (and provide the user with access to) an animation disabling feature. To accomplish this, create a menu item or radio button designed to be used exclusively for this purpose.
Note that flashing, blinking, and animated text is not used by Oracle.
Provision I
§1194.21(i) “Color coding shall not be used as the only means of conveying information, indicating an action, prompting a response, or distinguishing a visual element.”
As previously discussed, it is important to institute an alternative method for identifying objects where a change in color is meant to convey information. Within Oracle, the most effective and widely used method to correct this problem is to create text labels for affected objects.
Let's take a look at an example.
The application shown in this screen capture has been programmed so that a visual change takes place once a user selects a Country of Origin.

Users without a visual disability see a background change color and a font style switch from normal to italic. Users with certain visual disabilities may only see the font style change to italic. In the case of our example, the developer has effectively conveyed the same information to users with, and without, a visual disability.
This is the coding used to change the style of the normal text to italic:
// WHEN-BUTTON-PRESSED trigger
IF name_in(selection_indicator) = 'N'
THEN
set_item_instance_property( cur_itm, cur_rec, visual_attribute,
VA_SELECTED_RECORD');
ELSIF Name_In(selection_indicator) = 'Y' THEN
set_item_instance_property( cur_itm, cur_rec, visual_attribute, 'VA_NORMAL');
END IF;
Provision J
§1194.21(j) “When a product permits a user to adjust color and contrast settings, a variety of color selections capable of producing a range of contrast levels shall be provided.”
Every interface object within Oracle Forms has a Visual Attribute Group property. This property determines how the object's individual visual attribute settings (font size, foreground color, etc.) are derived. The property can be set to Default, NULL, or the name of a named visual attribute defined in the same module.
There are several ways to set the visual attributes of objects:
Provision K
§1194.21(k) “Software shall not use flashing or blinking text, objects, or other elements having a flash or blink frequency greater than 2 Hz and lower than 55 Hz.”
Flashing or blinking objects or text should be avoided in Oracle Forms. If such functionality is present in an existing application, the developer must provide the user with the ability to disable the item. A menu item or radio button can be created and used for this purpose.
Provision L
§1194.21(l) “When electronic forms are used, the form shall allow people using assistive technology to access the information, field elements, and functionality required for completion and submission of the form, including all directions and cues.”
Due to the nature and format of Oracle Forms, this provision will have already been met if your electronic form conforms to all other provisions.
Approaches that may have been utilized include setting up your application so that it: