Difference between revisions of "Standard"

From BidiEdit
(Copy over definitions)
(Caret, deprecated definitions removed)
Line 47: Line 47:
 
And so on for higher levels. Even levels always correspond to LTR text, odd levels always correspond to RTL text.
 
And so on for higher levels. Even levels always correspond to LTR text, odd levels always correspond to RTL text.
 
|-
 
|-
| Current Position || Position in the logical buffer where actions like text entry or Delete are going to take effect.
+
| Caret (aka Text Cursor)
 +
| Graphic representation of where actions like text entry or Delete are going to take effect. The caret is often displayed as a vertical bar.
 +
 
 +
The text cursor should not be confused with the mouse cursor.
 +
 
 +
Throughout this document, the term "caret" refers to the text cursor, and the term "cursor" refers to the mouse cursor.
 
|-
 
|-
| Cursor Direction || Expected direction of cursor progression when entering text. It is LTR when the cursor level is even, RTL when the cursor level is odd. Note that the actual progression can be different (for instance, when entering a digit within Hebrew text).
+
| Cursor Level      || For the needs of the UI, a Bidi level is assigned also to the cursor. This level reflects the Bidi level which is expected to be assigned to the next character entered (there are cases when the actual level of the entered character will be different). The level of the cursor is manipulated by UI functions, like changing the keyboard language. It may also be affected by all functions which change the position of the cursor.
 
|-
 
|-
| Cursor Level    || For the needs of the UI, a Bidi level is assigned also to the cursor. This level reflects the Bidi level which is expected to be assigned to the next character entered (there are cases when the actual level of the entered character will be different). The level of the cursor is manipulated by UI functions, like changing the keyboard language. It may also be affected by all functions which change the position of the cursor.
+
| Keyboard Language || Language of the next character that will be entered from the keyboard.
|-
 
| Keyboard Language || Language of the next character that will be entered from the keyboard. The keyboard language can be set manually by the user. It can also be changed by almost all functions except text entry.
 
 
|-
 
|-
 
| Logical Buffer    || Buffer containing the text data in logical sequence (as opposed to visual sequence).
 
| Logical Buffer    || Buffer containing the text data in logical sequence (as opposed to visual sequence).
Line 59: Line 62:
 
| Paragraph Embedding Level || Bidi level of text belonging to the main language used in a paragraph. This is 0 if the main language is LTR, 1 if the main language is RTL.
 
| Paragraph Embedding Level || Bidi level of text belonging to the main language used in a paragraph. This is 0 if the main language is LTR, 1 if the main language is RTL.
 
Note: this is also known as "Base Direction".
 
Note: this is also known as "Base Direction".
|-
 
| Text Cursor || Graphic representation of where actions like text entry or Delete are going to take effect. The text cursor is often displayed as a vertical bar preceding the position where a newly entered character is expected to appear.
 
|-
 
| Visual Position || Location on a display device where the text cursor is represented. The visual position can be manipulated directly by functions like arrow keys, or using a pointing device.
 
 
|}
 
|}

Revision as of 22:18, 20 March 2010

Rules for Editing This Page

  • Only registered users can edit. You can register here.
  • If you have a change you want to perform, simply perform it.
    • If you suspect the change requires explanation, place it in the discussion page.
  • This page is for the actual standard. Discussions about the standard, open questions, etc., go in the discussion page.

Introduction

This document intends to trace the guidelines of a User Interface (in short: UI) for editing bidirectional (in short: Bidi) text. It is assumed that the user enters text in logical sequence, and that the Unicode Bidi Algorithm (in short: UBA) is used to reorder the text for presentation. We assume that the readers of this document have a working knowledge of the UBA. The UBA is described in Unicode Technical Report 9 (see http://www.unicode.org/unicode/reports/tr9).

When designing these guidelines, the following objectives were set, in order of decreasing priority:

  1. Prevent actions unexpected by the user, particularly when the action is destructive (erases one or more characters).
  2. Make the interface efficient.
  3. Keep the interface easy to implement.

Terms and Definitions

Abbreviations
Acronym Meaning
Bidi bidirectional
LTR left-to-right
RTL right-to-left
UBA Unicode Bidi Algorithm
UI User Interface
Definitions
Bidi Embedding Levels The UBA assigns a level to each character in the logical buffer, including neutrals, which determines if it is part of LTR or RTL text, and eventually affects the presentation.

Level 0 corresponds to base LTR text.

Level 1 corresponds to base RTL text, or to RTL text embedded within level 0 LTR text.

Level 2 corresponds to LTR text embedded within level 1 RTL text, itself possibly embedded within level 0 LTR text.

And so on for higher levels. Even levels always correspond to LTR text, odd levels always correspond to RTL text.

Caret (aka Text Cursor) Graphic representation of where actions like text entry or Delete are going to take effect. The caret is often displayed as a vertical bar.

The text cursor should not be confused with the mouse cursor.

Throughout this document, the term "caret" refers to the text cursor, and the term "cursor" refers to the mouse cursor.

Cursor Level For the needs of the UI, a Bidi level is assigned also to the cursor. This level reflects the Bidi level which is expected to be assigned to the next character entered (there are cases when the actual level of the entered character will be different). The level of the cursor is manipulated by UI functions, like changing the keyboard language. It may also be affected by all functions which change the position of the cursor.
Keyboard Language Language of the next character that will be entered from the keyboard.
Logical Buffer Buffer containing the text data in logical sequence (as opposed to visual sequence).
Paragraph Embedding Level Bidi level of text belonging to the main language used in a paragraph. This is 0 if the main language is LTR, 1 if the main language is RTL.

Note: this is also known as "Base Direction".