4.2.18 Offer alternatives to function keys
Configuration of drivers should be accomplished via HII and via OS-present interfaces.
There are design considerations when interacting outside of configuration. First, consider using the setup interface as the user interface for a UEFI driver. The user already understands the interface and remote use is already enabled. If the existing high level interfaces cannot be used, then follow the design considerations for using console based services.
UEFI drivers should use the console input services (see Section 22.2 of this guide), and then be aware of alternatives to function keys. This is because the UEFI console may be connected through a serial port. In such cases, it is sensitive to the correct terminal emulator configuration. If the terminal emulator is not correctly configured to match the terminal settings in UEFI (PC ANSI, VT100, VT100+, or VT-UTF8), some of the keys (function keys, arrow keys (page up/down, insert/delete, and backspace), may not work correctly, display colors properly nor render the correct cursor positioning.
Note: To better support users, it is recommended that UEFI configuration protocols and UEFI applications create user interfaces that are not solely dependent on these keys but instead offer alternatives for these keys.
Note: It is important to be aware that the Simple Input Protocol does not support the CTRL or ALT keys because these keys are not available with remote terminals such as terminal emulators and telnet.
The following table shows one possible set of alternate key sequences for function keys, arrow keys, page up/down keys, and the insert/delete keys. Each configuration protocol and application decides if alternate key sequences are supported and which alternate mappings should be used. The table also lists the UEFI scan code from the Simple Input Protocol and the alternate key sequence to use to produce particular scan codes.
Most of these key sequences are directly supported in the EDK II_―_special handling is not required to support these key sequences on a remote terminal. Those labeled as "No" are not directly supported in the EDK II. They are parsed and interpreted by the configuration protocol or application.