Orca must provide a set of options to allow the user to enable the automatic speaking of keys as they are typed, alphanumeric characters as they are entered/deleted, and words as they are entered. The speech must be interruptible at any time.
There are two main options for selecting key and word echo: key and word. These are not mutually exclusive.
Key echo applies to the entire keyboard and is for echoing keys as they are pressed. The keys are broken into the following groups that the user can optionally enable for echoing:
- Alphanumeric and punctuation keys: typing keys that print something on the display.
- Modifier keys: CTRL, ALT, Shift, Meta, Insert, and "Fn" on laptops.
- Locking keys: Caps Lock, Num Lock, and Scroll Lock,
- Function keys: F1 through F12
Action keys: Return, Escape, Tab, BackSpace, Delete, Page Up, Page Down, Home, and End
- Navigation keys: Left Arrow, Right Arrow, Up Arrow, and Down Arrow
When a key from any enabled group is pressed, the key will be spoken. In the case where a combination of keys is pressed, the entire combination should be spoken if the group any one of the combined keys has been enabled. For example, if you press Shift+f10 and modifiers are to be spoken but function keys are not the user should hear "Shift F Ten."
The echoing of alphanumeric and punctuation keys for editable text areas is specialized in that it works with the visible text being edited (e.g., one does not hear the physical keys being typed when a user is entering a password - instead one hears the characters being added or removed from the text area). When typing in editable text areas, characters inserted as the result of typing alphanumeric and punctuation keys will be spoken when they are inserted. IMPLEMENTATION DETAIL: this refers to the total visual change in the text area as the result of a single user action, which may or may not have a simple and direct mapping to the AT-SPI text events.
Word echo applies to editable text areas only, and behaves the following way: If word echo is enabled, words will be spoken when the user enters a visible change that depicts a word boundary (e.g., punctuation, new line, whitespace). Both the word and the boundary character will be sent to speech output, and a separate speech output setting (e.g., verbalized punctuation) will be used to determine whether to speak the boundary character or not.
Handling of Special Cases
- If word or alphanumeric key echo are enabled, any single character surrounded by whitespace (including punctuation) will be spoken. For example, if the user has typed "this .", "period" will be spoken when the user inserts a whitespace character.
- If word or alphanumeric key echo are enabled, any group of punctuation characters typed in a row will be spoken one at a time when the user inserts a whitespace character.
- OPTIONAL: if the user presses the "escape" key in a text area and the text area reverts the text back to what it was, the user should hear this.
- Regardless of any setting, if the user deletes a character using the Backspace or Delete keys, the next or previous visible character will be spoken, depending upon which key was used. If action key echo is enabled, the key causing the deletion should be spoken before the visible character is spoken.
By default, key echo will be enabled for all classes of keys with the exception of navigation keys, and word echo will be disabled.
The user will be able to customize key echo on the Key Echo page of the Orca Preferences and application-specific Preferences dialogs.