Projects:FK Filter Keyboard Shortcuts
The aim of the project is be able to select one or several items in the Foreing Key filter dropdown list
The natural way of selecting one item in the dropdown list is by pressing 'Enter' key. That's how it worked in MP31 and before. The user press 'alt + cursor down' or writes something in the input to open the dropdown list, then with the cursor up or cursor down key focus on the list and with the Enter key select the focused item.
However this solution is not complete because you are not able to select several items of the list. This component is quite complex but powerful since it has an auto-suggest combo behavior (you can write directly in the input at the same time the dropdown list is refreshed with matched items) but at the same time you can select more than one item in the list.
From the UX point of view two facts should be taken into account:
- The less keyboard keys the user has to press to do the operation, the best performance and satisfaction he will get
- The assigned keys should be familiar to the user
The most common flow is the defined at the beginning: the dropdown list is opened, bacause of 'alt + cursor down' keys press or because of writting something in the input, and then the user wants just to select a SINGLE item. Here, although there are could be many combinations, like press the tab key and go to the next input or press the ESC key to close the dropdown list, the most typical shortcut is press 'Enter' key once the desired item is focused, and with this the user expects that this focused item now be written in the input and the dropdown list be closed.
In order to select/unselect more than one item, the standard keyboard shortcut to perform selections in checkboxes is the 'Space' key. The problem with this shortcut in this component is that a 'Space' key press can be interpreted as and space addition in the input text. Another shortcuts like 'Space' + 'Enter' or 'Ctrl' + 'Enter' could interfere with another OS or Openbravo ERP shortcuts at the same time they move away the user from the standard case.
For solving it and provide the best solution, the 'Space' key press shortcut have been applied but only when there is any dropdown list item focused to select/unselect it. In this case, the space won't be added to the input text.
The case when a user open the dropdown list and then press 'cursor down' or 'cursor up' keys to focus any item and then wants to continue writting directly something in the text input without making any selection and without collapsing the dropdown list is a corner case whose solution is not over the benefits of directly select/unselect items by using 'Space' key
This project can't be automated as selenium doesn't support keyboard shortcuts operations.