The Hebrew and Arabic languages are written from right to left. The English language is written from left to right. Consequently, bidirectionality is a necessity in any system intended for Arabic or Hebrew users.
You can design for most right-to-left languages in the same way. This chapter uses "Arabic and Hebrew" as a generic designator for the national language that a bidirectional application uses. Whenever special considerations apply to either Arabic or Hebrew only, they are mentioned explicitly.
The basic rule for bidirectional applications is that you must display all pieces of data in the orientation that is correct for the user. Also, data input must be supported in the orientation that is natural for users.
Arabic and Hebrew applications generally must use the national language for titles, instructions, headings, prompts, and other window controls, with the following exceptions:
An application may allow dynamic language selection. When the user chooses a new language, the headings, messages, and commands should adhere to the new language. For right-to-left languages, the application interface should reflect these bidirectional language guidelines. When the application contains a mixture of right-to-left and left-to-right language elements, the left-to-right elements follow the unmodified guidelines provided in this book and the Style Guide Reference; the right-to-left elements follow the bidirectional language guidelines in this chapter.
If the application is multilingual, mention the language being used in the product information window. If the application allows dynamic language selection, mention the initial language in the product information window.
Use a right-to-left screen orientation for Arabic and Hebrew applications. Thus the right side of a window is the "begin" side, and the left side is the "end" side. Most references in the guidelines for left-to-right languages are true for Arabic and Hebrew, with the understanding that the meaning of "right" and "left" are interchanged. (Note that in some cases, the meaning "right" and "left" must not be changed for Arabic and Hebrew.)
While bidirectional language interfaces seem to have exchanged the meaning of the words "right" and "left," the physical right and left are still the same. Thus the following have the same effect for Arabic and Hebrew as for English:
Also, Ctrl PageUp must always scroll to the left and Ctrl PageDown to the right.
The appearance of an Arabic or Hebrew window is the mirror image of a corresponding English window, except that the position of the window menu button and the maximize and minimize buttons in the title bar does not change.
Orientation applies at multiple levels. An application has a general orientation for its windows. A window also has an orientation. If the window orientation is right to left, its elements are logically ordered from right to left and from top to bottom.
In a bidirectional environment, the user chooses the orientation of the screen and windows according to use, standards, or preferences.
Use the following guidelines for right-to-left screens and windows:
Note that an Arabic or Hebrew application can include some left-to-right windows.
You can also use a left-to-right window on a right-to-left screen and vice versa. This means that English left-to-right applications can be used on a right-to-left screen and Arabic and Hebrew (right-to-left) applications can be used on a left-to-right screen.
For more information, see "Right-to-Left Text-Entry Fields".
In a bidirectional application, each field has an orientation that is defined by the application. By default, text-entry fields assume the same orientation as the encompassing window. According to the expected contents of the field, the application must define text entry as right to left (Arabic or Hebrew textual data) or left to right (numeric data or English textual data).
Right-to-left text-entry fields differ from left-to-right text-entry fields in the following ways:
When the user must type text in an orientation opposite to the field orientation, such as typing numbers within a right-to-left field, use special bidirectional functions such as Push and End Push.
During a push operation, the cursor does not move (like a calculator interface). The cursor stands on the character at the boundary between the surrounding right-to-left text (for example, a street name) and the Push segment (for example, a house number).
When the user presses End Push to end the operation, the cursor skips beyond the Push segment. The user can then continue entering right-to-left text.
You must make it clear when the cursor is located at a Push boundary. The Push boundary is where the latest character typed in a push operation appears, assuming that arrow keys were not used to move the cursor. Typing text at the Push boundary does not always have the same calculator-interface effect as typing elsewhere, thus you should provide some visual feedback to help the user differentiate between the two.
In general, the text cursor has the same appearance in insert mode as described for left-to-right text. However, in insert mode you must place the vertical bar representing the cursor on the proper side of the cursor position.