Changing the Runtime Tab Sequence

To change the tab sequence that the user experiences at run time

The tab indexes are then displayed in the top left of each control of your form, as shown in the following example.

By default, JADE assigns a tab order to controls as you define them on your form.

Each new control is placed last in the tab order. The valid range is any integer value.

Controls are pasted on the form in controlList order (that is, the order in which you add them to the form). The order in this list can change during editing, because parent controls must always precede their children. Controls are copied to the Painter clipboard in controlList order. When pasted, each control is added to the form and a new tabIndex property is assigned. If the tab index of a control has not been used in the new form (the form on which you paste the control), the pasted control retains its tab index value. A control pasted on to a form can therefore have a tab index order that differs from the one that it had on the original form, although in most cases, the tab order corresponds to that of the original form (particularly when pasting controls on to new forms).

To change tab indexes

  1. Click the tab index that you want to change.

  2. Enter the new tab index value (in the range 1 through 9999).

  3. Press the Enter key or the TAB key.

  4. Repeat steps 1 through 3 for each tab index that you want to change.

  5. To return to normal Painter mode, select the Tab Ordering command from the Controls menu once more. The tab indexes are then no longer displayed on your form.

When you change the tab order by using the Tab Ordering command, you change the value of the tabIndex property of the control. If the tabIndex already exists for an existing control, the tab index of that control (and all other controls also affected) is increased by one. You can also change the tabIndex property by using the Properties window, or at run time in logic.

JADE automatically renumbers the tabIndex value of other controls to reflect insertions, deletions, and changes that would result in a tab number conflict.

All controls except menus are included in the tab order. At run time, invisible or disabled controls and controls that cannot receive the focus (that is, frames and labels) remain in the tab order but are skipped during tabbing.

You can neither change the tab order of controls that belong to a superform nor use the tab number of a subform.

When changing the tab number to a number that already exists, JADE automatically increments the tabs of all other controls. Each control must have a unique tab number.

Control Order on Touchscreens

When a device is running with accessibility options enabled, JADE changes the z-order of controls within each parent to match the tabIndex property value order when the form is created so that screen‑reading software such as JAWS or Microsoft Narrator read the correct text associated with controls. These software utilities assume that the z‑order defines the control associations; for example, the label associated with a text box or combo box.

This means, however, that any arrangement of the z‑order of the controls within the JADE Painter could be lost unless the tabIndex property values match the required arrangement of the controls.

Changing the tab index of controls at run time does not have any impact on the z‑order of controls within the parent.

Calling the Window class zOrder method at run time also overrides the z‑order established when the form was created, regardless of whether accessibility is active or not.

When Accessibility is enabled, JADE cannot be sure whether screen‑reading software is active. Narrator, for example, does not set a system flag to indicate it is active, and other software can confusingly claim that screen reading is active. This problem has become more visible with the arrival of touchscreen PCs, where accessibility is usually active by default.

As a result, when defining forms where the zOrder of controls is established within the JADE Painter, ensure that the tabIndex ordering of the affected controls matches the required order, so that the same behavior occurs on PCs regardless of the accessibility state.

Alternatively, add calls to the Window class zOrder method to establish the z‑order requirements at run time.