View source | View content page | Page history | Printable version   

Projects:KeyboardOperation/FunctionalSpecifications

Contents

Keyboard Operation - Functional Specifications

Overview

Purpose

This project improves usability and productivity of Openbravo ERP by enabling users to operate the product without the mouse.

There are many benefits of mouse-less operation. Among them:

Scope

This specification covers the following major areas:

  1. Keyboard navigation: ability to move from field to field as well as to different part of the screen using the keyboard
  2. Keyboard shortcuts: ability to invoke common functions using the keyboard
  3. Focus management: ability to declaratively control the initial position of the focus following a specific user action (for example: where is the focus after initial navigation to a window).

References

Design Considerations

Assumptions

Dependencies

Constraints

Glossary

Functional Requirements

User roles & profiles

This specification applies to all roles.

Business process definition

User stories

Functional requirements based on business processes

Focus Management
Num Requirement Importance Status
1.1 Ability to declaratively specify the initial focus of a tab:
when defining a tab, a developer should be able to specify the field where the initial focus is when the tab first open.
Should have Complete
1.2 Ability to declaratively specify the focus after an action:
when defining a button, a developer should be able to specify where the focus is moved after the button is pressed and the corresponding action is completed.
Nice to have To be started
1.3 The initial focus in the login screen should be in the Username field Should have Complete
1.4 The default action in the login screen should be the OK button and the the user should be able to invoke it by pressing Enter. Should have Complete
1.5 The focus after a successful login should be on the first menu entry Should have Complete
Screen Navigation
Num Requirement Importance Status
2.1 CTRL+M to focus on the menu: from any position on the screen, you should be able to move the focus to the menu by pressing CTRL+M Should have Complete
2.2 CTRL+Shift+M to expand or collapse the menu: from any position on the screen, you should be able to expand or collapse the menu by pressing CTRL+Shift+M. After this action, the focus should be placed on the menu. Nice to have Complete
2.3 Enter to select a menu entry: with the focus on a menu entry, users should be able to select it by pressing Enter. If the entry is a collapsed menu, the menu should be opened and the focus should stay on the current entry. If the entry is an expanded menu, the menu should be collapsed and the focus should stay on the current entry. If the entry is a function, the function should be invoked. Should have Complete
2.4 Arrow keys to navigate through the menu: users should be able to navigate through the menu using the up and down arrow key. If the user press right arrow key and if the entry is a collapsed menu, the menu should be opened; if the user press right arrow key again, the focus should move to the first sub-menu entry. Also if the user press left arrow key if the entry is a collapsed menu, the focus should move to the parent; if this sub-menu is not collapsed/opened, the menu should close. Should have Complete
2.5 "Home" and "End" keys should move the focus to the first and the last visible menu entry respectively. Should have Complete
2.6 CTRL+U to focus on the user: from any position on the screen, you should be able to access the user window by pressing CTRL+U Should have Complete
2.7 CTRL+Q to logout: from any position on the screen, you should be able to logout by pressing CTRL+Q Should have Complete
2.8 F8 to focus on the alerts: from any position on the screen, you should be able to access alerts by pressing F8 Nice to have Complete
2.9 F9 to expand/collapse the left pane: from any position on the screen, you should be able to expand / collapse the left pane by pressing F9 Nice to have Complete
2.10 F10 to navigate to the tab section: when the focus is in a window, pressing F10 moves the focus to the tab region; from there the user can move through tabs using the TAB or Shif+TAB keys. Should have Complete
2.11 CTRL+I to invoke the About window: from any position on the screen, users should be able to open the About window by pressing CTRL+I Nice to have Complete
2.12 CTRL+H to invoke the Help window: from any position on the screen, users should be able to open the Help window by pressing CTRL+H Nice to have Complete
2.13 CTRL+R to refresh the current window: from any position on the screen, users should be able to refresh the current window by pressing CTRL+R Nice have Complete
2.14 CTRL+Shift+Backspace to go back: from any position on the screen, users should be able to invoke the Go Back function by pressing CTRL+Backspace Nice to have Complete
2.15 CTRL+G to toggle grid view: when the focus is in a window, pressing CTRL+G toggles to and from grid view. Nice to have Complete
Command Operation
Num Requirement Importance Status
3.1 CTRL+N to create new record: when the focus is in a window, pressing CTRL+N invokes the Create New Record command. Must have Complete
3.2 CTRL+S to save: when the focus is in a window, pressing CTRL+S invokes the Save command. Must have Complete
3.3 CTRL+Shift+S to save and new: when the focus is in a window, pressing CTRL+Shift+S invokes the Save and New command. Must have Complete
3.4 CTRL+D to delete: when the focus is in a window, pressing CTRL+D invokes the Delete Record command.
(NOTE: this already works in 2.35).
Must have Complete
3.5 CTRL+Z to undo: when the focus is in a window, pressing CTRL+Z invokes the Undo command. Nice to have Complete
3.6 CTRL+A to attach: when the focus is in a window, pressing CTRL+A invokes the Attach a File command. Should have Complete
3.7 CTRL+F to search: when the focus is in a window, pressing CTRL+F invokes the Search Records command. Must have Complete
3.8 CTRL+Home to navigate to the first record: when the focus is in a window, pressing CTRL+Home invokes the Navigate to the First Record command. Should have Complete
3.9 CTRL+End to navigate to the last record: when the focus is in a window, pressing CTRL+End invokes the Navigate to the Last Record command. Should have Complete
3.10 CTRL+ArrowLeft to navigate to the previous record: when the focus is in a window, pressing CTRL+ArrowLeft invokes the Navigate to the Previous Record command. Should have Complete
3.11 CTRL+ArrowRigth to navigate to the next record: when the focus is in a window, pressing CTRL+ArrowRight invokes the Navigate to the Next Record command. Should have Complete
3.12 CTRL+L to see linked items: when the focus is in a window, pressing CTRL+L invokes the Linked Items command. Should have Complete
3.13 Arrow keys to navigate tables: when the focus is in a table, users can navigate through records pressing ArrowUp and ArrowDown. Should have Complete
Button Operation
Num Requirement Importance Status
4.1 All pop-up window should have a default action that can be invoked by simply pressing Enter from any point of the screen. For example the User Role window should have OK as default action.

The default action could be different depending on the status of the window. For example, in the Product Selector, the default action should be Search if no record has been found and it should be OK if records exist.
In some cases, the local behavior of the Enter key should take precedence over the default action. For example, in the Business Partner field Enter should continued to be interpreted as a request to search a business partner based on the search key.

The default action should be shown in the screen as a permanent focused button (unless any other button is focused).
The ESC key always should close the popup

Should have To be started
4.2 All buttons in windows should have a keyboard shortcut accessible using a combination ALT+<letter>.

In order to guarantee consistency and translatability, the letter should be automatically assigned by the system based on the first character in the button label that does not generate a conflict.
For example, the Purchase Invoice window contains the following buttons, from top to bottom and from left to right: 'Create Lines From', 'Generate Receipts from Invoice', 'Copy Lines', 'Reactivate', 'Not Posted'. The corresponding shortcuts should be:

  • ALT+C for Create Lines From
  • ALT+G for Generate Receipts from Invoice
  • ALT+O for Copy Lines (this is because C creates a conflict)
  • ALT+M for Complete (this is because both C and O create a conflict)
  • ALT+N for Not Posted

The shortcut key should be indicated to the user by underscoring the corresponding character. For example: Complete
To handle those rare situations where a letter that does not create conflict cannot be found, a number should be used instead and it should be indicated in bracket after the label in addition to the underscore. For example: if a screen contains the buttons ABA, AAB,and BAA, the shortcuts should be:

  • ABA
  • AAB
  • BAA(1)

If more than 10 buttons create a conflict, then it a shortcut should not be assigned for the conflicting buttons.

In generated windows there are two types of buttons:

  • Buttons which name is fixed so it doesn't change.
  • Buttons which name depends on a list so it changes depending on the status.

The first group of buttons are calculated in compilation time assigning the shortcut.

The second group is calculated in execution time. All the possible values for the list are reserved though just the current one is used, it is done in this manner in order to avoid changes in other buttons when one is changed.

Example:

In a window with the following buttons:

  • Copy Lines (fixed)
  • Process (list): possible values Complete, Avoid, Process
  • Copy Header (fixed)
  • Post (list): possible values Post, Not posted

The shortcuts would be:

  • C for the 1st button (reserved in compilation time)
  • O for the 3rd one (reserved in compilation time)
  • The 2nd one depending on its current value could be: M for complete (C and O are reserved in compilation), A for avoid and P for process.
  • The 3rd one would be: S for Post and N for not posted
Should have Only in WAD windows
Grid Operation
Num Requirement Importance Status
5.1 Grid that only shows data (relation grid)
  • The grid obtains the focus in a global way as any other window element
  • Up and down arrow keys to move from one row to other
  • Enter key to open the edition window of the selected row
  • Tab key doesn't do anything
Should have To be started
5.2 Grid that lets check several registers/rows
  • The grid obtains the focus in a global way as any other window element
  • Up and down arrow keys to move from one row to other
  • Enter key to check the selected row
  • Tab key to blur the grid
Should have To be started
5.3 Grid that lets check several registers/rows and edit values when it is checked
  • The grid obtains the focus in a global way as any other window element
  • Up and down arrow keys to move from one row to other
  • Enter key to check the selected row
  • Once positioned in an activated row, tab key lets focus in the elements inside the activated row, so the focus "moves" from the grid objet to the first editable element inside the row. Successive tab key press moves the focus across the different editable row elements. When the focus is in the last editable row element, the next tab key press, the focus returns to the grid objet in a global way and it is possible to follow operating as here is described
  • Tab key to blur the grid (only if the focus is not inside of an activated row as described)
Should have To be started
5.4

Grid that lets select only one register

  • The grid obtains the focus in a global way as any other window element and once obtained the first row is selected by default
  • Up and down arrow keys to select one or other row
  • Tab key to blur the grid
Should have To be started

User Interface Mockups

Technical Requirements

Non-Functional Requirements

Open Discussion Items

Closed Discussion Items

Retrieved from "http://wiki.openbravo.com/wiki/Projects:KeyboardOperation/FunctionalSpecifications"

This page has been accessed 9,301 times. This page was last modified on 8 June 2012, at 05:28. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.