The present application relates generally to the determination of virtual keyboard layouts.
Developments in information technology have increased the availability of many different mediums for communication. However, they have also driven a demand for textual content.
Not only have developments such as the World Wide Web and electronic books made it possible for amateur authors to publish their own written material, but levels of textual communication have exploded with the introduction of e-mail, Short Message Service (SMS) messaging, instant messaging, internet forums, and social network websites. The creation and consumption of textual content remains prolific, and is an integral part of modern life.
Computing devices and other apparatus commonly provide functionality for text-based interactions. Such interactions may involve the creation or consumption of textual content, or may simply provide an interface to functionality offered via the apparatus.
A great deal of research effort has been devoted to devising and improving ways of allowing users to enter text into such apparatus. One approach is to provide a virtual keyboard.
A virtual keyboard is a user interface component that includes one or more virtual keys that are mapped to character insertions or other functions. For example, a virtual keyboard might include one or more virtual keys that are mapped ambiguously or ambiguously to alphanumeric characters and/or other symbols, which are inserted into a text input field in response to the user interacting in some predetermined way with the virtual key (e.g. by touching it on a touchscreen). Additionally, or alternatively, a virtual keyboard may include one or more virtual keys that are mapped to text input functions other than character insertions—functions such as backspace, shift, carriage return, and so on. Virtual keyboards additionally, or alternatively, may include one or more virtual keys that are mapped to functions unrelated to text input, for example a virtual key to close an application, or a virtual key to open a system menu. A “virtual keyboard” therefore contains one or more virtual keys, but the functions to which such virtual keys are mapped may vary according to the use case.
The “virtual” nature of a virtual key (and therefore virtual keyboard) refers to the fact that the key is not a physical key as might be found in e.g. the hardware qwerty keyboards that are sold as computer peripherals and typically connect to a personal computer using a USB or PS/2 interface, or the hardware ITU-T keyboards that are manufactured as an integral part of some mobile telephones. Instead, a virtual key is represented on a display, and the user interacts with the representation. For example, some virtual keyboards are implemented using touch screens, where a representation of one or more keys is drawn on the touch screen, and the user activates a virtual key by touching the touchscreen at a location overlapping the representation of the key.
A first example embodiment provides a method comprising: receiving an indication of a size for a virtual keyboard; determining, based at least in part on the size, a layout for a virtual keyboard; and
causing the display of a virtual keyboard according to the layout.
A second example embodiment provides apparatus comprising: a processor; and memory including computer program code, the memory and the computer program code configured to, working with the processor, cause the apparatus to perform at least the following: receive an indication of a size for a virtual keyboard; determine, based at least in part on the size, a layout for a virtual keyboard; and
cause the display of a virtual keyboard according to the layout.
A third example embodiment provides a computer program product comprising a computer-readable medium bearing computer program code embodied therein for use with a computer, the computer program code comprising: code for receiving an indication of a size for a virtual keyboard; code for determining, based at least in part on the size, a layout for a virtual keyboard; and code for causing the display of a virtual keyboard according to the layout.
Also disclosed is apparatus configured to perform any of the methods described or claimed herein.
Also disclosed is a computer program product comprising a computer-readable medium bearing computer program code embodied therein for use with a computer, the computer program code comprising: code for performing any of the methods described or claimed herein.
Also disclosed is apparatus comprising: means for receiving an indication of a size for a virtual keyboard; means for determining, based at least in part on the size, a layout for a virtual keyboard; and means for causing the display of a virtual keyboard according to the layout.
The means for receiving an indication of a size for a virtual keyboard may comprise means for receiving a user input that indicates the size. For example, the means may comprise or be embodied in the form of a touchscreen, keyboard, mouse, or other user input hardware, and/or a controller that is configured to receive and interpret signals from such hardware. Such controllers may include dedicated logic, for example an application specific integrated circuit, or a processor and computer program code for instructing the processor to receive and interpret the inputs. Alternatively, the indication may not comprise a user input, but instead a message, command signal, or other communication. The indication may be generated in the same apparatus or device in which it is received, in which case the means for receiving may comprise an interface to the local component generating the indication. In the case where the component generating the indication is the same component that receives the indication the means may be entirely internal to that component—for example, the means may be a processor that is programmed both to generate the indication and to receive it (e.g. as a result returned by a software function that is performed by the processor).
The means for determining, based at least in part on the size, a layout for a virtual keyboard may be similarly embodied in the form of dedicated logic (for example an application specific integrated circuit), or a processor and computer program code for instructing the processor to perform the identification. The means may include information relating to predefined layouts that are stored e.g. in a memory, such as information on how to access these layouts, or the layouts themselves.
The means for causing the display of a virtual keyboard according to the layout may comprise a display, such as a touchscreen, and/or a controller for controlling such a display. Alternatively, the means may comprise logic for controlling such a display or display controller, for example by issuing an instruction to the display and/or controller to cause the keyboard to be displayed. Such logic may comprise a processor.
In some example embodiments, all three of the above-described means may be comprised by a single processor.
For a more complete understanding of example embodiments of the present invention, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:
Example embodiments of the present invention and their potential advantages are understood by referring to the drawings.
A computing device that controls the display of a virtual keyboard and the user interactions with it may be configured in such a way that more than one virtual keyboard can be implemented by the device. For example, a device may permit a user to select between two or more keyboards of differing sizes and/or layouts. Selection between the available virtual keyboards may also be performed automatically by the device, for example based on the orientation of a display between portrait and landscape positions. The ability to switch between keyboard implementations has the potential to improve user experience by allowing desirable choice of keyboards to me made available to a user.
The apparatus 100 may comprise one or more User Identity Modules (UIMs) 130. Each UIM 130 may comprise a memory device having a built-in processor. Each UIM 130 may comprise, for example, a subscriber identity module, a universal integrated circuit card, a universal subscriber identity module, a removable user identity module, and/or the like. Each UIM 130 may store information elements related to a subscriber, an operator, a user account, and/or the like. For example, a UIM 130 may store subscriber information, message information, contact information, security information, program information, and/or the like.
The apparatus 100 may comprise one or more user interface devices, for example, a microphone 135 and an audio output device such as a speaker 140. The apparatus 100 may comprise one or more hardware controls, for example a plurality of keys laid out in a keypad 145. Such a keypad 145 may comprise numeric (for example, 0-9) keys, symbol keys (for example, #, *), alphabetic keys, and/or the like for operating the apparatus 100. For example, the keypad 145 may comprise a QWERTY (or local equivalent) keypad arrangement. The keypad may instead comprise a different layout, such as E.161 standard mapping recommended by the Telecommunication Standardization Sector (ITU-T). The keypad 145 may also comprise one or more soft keys with associated functions that may change depending on the input of the device. In addition, or alternatively, the apparatus 100 may comprise an interface device such as a joystick, trackball, or other user input component.
The apparatus 100 may comprise one or more display devices such as a screen 150. The screen 150 may be a touchscreen, in which case it may be configured to receive input from a single point of contact, multiple points of contact, and/or the like. In such an example embodiment, the touchscreen may determine input based on position, motion, speed, contact area, and/or the like. Suitable touchscreens may involve those that employ resistive, capacitive, infrared, strain gauge, surface wave, optical imaging, dispersive signal technology, acoustic pulse recognition or other techniques, and to then provide signals indicative of the location and other parameters associated with the touch. A “touch” input may comprise any input that is detected by a touchscreen including touch events that involve actual physical contact and touch events that do not involve physical contact but that are otherwise detected by the touchscreen, such as a result of the proximity of the selection object to the touchscreen. The touchscreen may be controlled by the processor 125 to implement an on-screen keyboard.
In other examples, displays of other types may be used. For example, a projector may be used to project a display onto a surface such as a wall. In some further examples, the user may interact with the projected display, for example by touching projected user interface elements. Various technologies exist for implementing such an arrangement, for example by analysing video of the user interacting with the display in order to identify touches and related user inputs.
The apparatus 100 either comprises means for implementing a virtual keyboard, or can be used in conjunction with such means. For example, in the apparatus 100 of
For simplicity, the present invention will be described in relation to a touch screen interface, but it must be understood that the invention is not necessarily limited to touch screen embodiments, and may be embodied in relation to other types of virtual keyboard interface—both those types described herein, and other types that will be known or obvious to the skilled person. Furthermore, the presence of a hardware keyboard 145 does not preclude the use of a virtual keyboard in addition or instead of the hardware keyboard. For example, the virtual keyboard may include keys having functions that are not accessible (or are not easily accessible) using the hardware keyboard, or may repeat hardware keys in a more appropriate size, layout, and/or representation (e.g. using colour coding, or dynamically updated labels for the keys).
Non-exhaustive examples of other devices including apparatus, implementing methods, or running or storing computer program code according to example embodiments of the invention may include a mobile telephone or other mobile communication device, a personal digital assistant, a laptop computer, a tablet computer, a games console, a personal media player, an internet terminal, a jukebox, or any other computing device. Suitable apparatus may have all, some, or none of the features described above.
Example embodiments of the invention will be described with reference to the features presented in the context of apparatus 100 and device 200 shown in
Note that the area 330 represents a size of keyboard that is smaller than the keyboard 300 of
Note that although the new keyboard 340 of
At this point, the term “layout” will be defined in the context of a virtual keyboard. The “layout” of a keyboard defines the positioning of the keys relative to one another. If two keyboards differ only in terms of their scale then in at least some examples they can be said to represent the same “layout”—even if they differ according to different scales in different axes. Thus, if two keyboards can be made congruent by stretching them in one or more axes then they have the same “layout”. However, if the two keyboards cannot be made congruent by stretching then they necessarily have different layouts.
Keyboards that are made up of different sets of keys will necessarily always have different layouts. However, keyboards that are made up of the same set of keys may or may not have different layouts depending upon the locations of the keys within the keyboards.
Thus, two keyboards that have different sizes may or may not have different “layouts”.
Returning to the keyboards 300, 340 of
Keyboard 340 has been selected to replace keyboard 300 based on one or more heuristics. This selection may be performed by a processor, for example, executing suitable computer program instructions. There are many different heuristics that may be used, and the most suitable heuristics will vary according to use case. Examples of different possible heuristics will be discussed later, but in the current example it has been determined using such heuristics that a re-scaled version of the original keyboard 300 is the most suitable choice for the new size represented by area 300.
Again, heuristics (described later) may be applied to the new size represented by area 350, and a suitable keyboard is selected for the new size based on these heuristics.
Key 370 is mapped to the insertion of character “1” and also to the insertion of character “2”. There are various ways in which an activation of this key 370 can be associated with one or other of these functions, and the particular technique used will be determined by the nature of the keyboard 360. For example, if keyboard 360 is an unambiguous keyboard then different types of actuation of the key (e.g. single or double taps, short and long taps, swipes in different directions) may be mapped to the insertion of each of characters “1” and “2”. If the keyboard 360 is ambiguous then the same actuation (e.g. a tap) may be mapped to the insertion of either character “1” or character “2” with the appropriate character selected based upon the results of a predictive text algorithm or other suitable method of disambiguation.
Once again, heuristics (described later) may be applied to the new size represented by area 380, and a suitable keyboard is selected for the new size based on these heuristics.
As previously mentioned, the choice of keyboard for each new size is dependent upon one or more heuristics. Heuristics may be chosen to match an appropriate keyboard to the indicated size. The choice of heuristic(s) may vary, but some examples of potentially suitable heuristics will be described once the nature of the term “size” has been properly explained.
As used herein, “size” may refer to one or more of a number of different attributes. For example, a “size” may define an area, being either an absolute area (e.g. 10 cm2) or a relative area (e.g. 20%) of e.g. a total or partial area of a display. Alternatively, a “size” may be an extension in one of more axes (e.g. a 5 cm horizontal extension and a 2 cm vertical extension), and again this extension may again be absolute or relative to e.g. a total or partial area of a display. Alternatively, a “size” may be a description of a particular shape (e.g. a rectangle) described in absolute or relative terms (e.g. having horizontal and vertical sides of 4 cm and 3 cm respectively, or having a horizontal:vertical aspect ratio of 4:3). Alternatively, the “size” may be a combination of one or more of these or any other suitable attributes.
The heuristics used to map keyboards to sizes may include the mapping of particular keyboard layouts to particular ranges of sizes. For example, in the examples shown in
Within a given range, the mapped keyboard layout may or may not be scaled based on the size, depending on the choice of heuristic. In the example of
In one example, a set of keyboard layouts are assigned to predetermined ranges of keyboard size.
According to an alternative heuristic, the choice of layout is dependent upon the size of the virtual keys that will appear in a virtual keyboard and the number of keys that occur in that layout. For example, when a new size was indicated in
Rather than selecting from predefined layouts, the heuristics may perform a selection from dynamically-generated layouts, or from a combination of predefined layouts and dynamically generated layouts.
The keyboards described so far are all examples of predefined keyboards—the keys follow a pattern that has been specified at some prior point in time when the keyboard was designed (e.g. by a computer programmer). However, it is also possible to dynamically create a new keyboard layout when the need arises for it, for example by enabling the wrapping of keys between rows of an existing keyboard in order to allow the aspect ratio of that keyboard to be changed, or by automatically populating a given keyboard area and/or shape with keys according to suitable rules for governing their layout.
Various different rules can be employed to implement the dynamic generation of new keyboard layouts. In the example of
1. The left “Ctrl”, “Alt”, spacebar, and right “Ctrl” keys must be located in the bottom row, and in arranged that order from left to right;
2. The “Shift” key must be located in the rightmost column of the second to bottom row;
3. The “Enter” key must be located in the rightmost column of the third to bottom row; and
4. Every other key must appear in its original order, wrapped left-to-right and then top-to-bottom across a number rows and columns chosen to best fill an available area of the screen that is dictated by the new size.
Other sets of rules may be used to dynamically generate other keyboard layouts for selection by the heuristics.
The example illustrated in
In
In response to the indication of the size associated with shape 510, a new keyboard 520 may be selected, and this new keyboard 520 is shown in
In
Although the functionality described so far is equally applicable to both increases and decreases in size, the specific examples have demonstrated only reducing keyboard sizes.
The heuristics may impose limits on the maximum and/or minimum sizes. For example, any size below a minimum threshold may result in the selection of a particular keyboard being the smallest possible keyboard permitted. Similarly, any size above a maximum threshold may result in the selection of a particular keyboard being the largest keyboard permitted. This prevents, for example, the selection of keyboards that are too small for the user to accurately interact with, or too large to display within an available area of a display.
Another approach to handling indications of sizes that lie outside a permitted range may result in no change being made to the keyboard. In such cases, an indication of an error may be provided either to the user, or to a component of an apparatus—for example a processor that provided the indication of the non-permitted size.
The indication of a size can be made in many different possible ways, with the most appropriate chosen according to the use case. Some suitable approaches are illustrated in
In some embodiments the user is provided with a control that allows him either to progress through a set of discrete predefined sizes, or to similarly progress along an analogue scale of sizes. In either case, UI controls may be provided to increase and/or decrease the current size.
Keys are not the only UT component that can be used to increase and decrease the size.
In some other examples, increases and decreases in the size are mapped to touch gestures performed on or otherwise in relation to the virtual keyboard.
Instead of (or in addition to) providing a means for the user to progressively increase or decrease the current size, some examples allow the user to select a particular size without the need for such progression. Such an example is illustrated in
When the user wishes to define a size that incorporates a particular shape, other functionality may need to be provided. In some examples, the user is provided with UI controls that allow him to select between or modify predefined shapes. In other examples, the user is provided with a way to draw or otherwise define a custom shape. An example of this latter case is illustrated in
There are a number of different ways in which the path 896 can be used to define the size in examples such as that of
Finally, the method ends at 950. This method may be adapted, in various further examples, to include any of the functionality described previously.
Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is that when a keyboard is resized the most appropriate layout for the new size may be selected and used to display the keyboard. This can help to avoid the situation where the resized keyboard has keys that are too small for the user to accurately select, and provide a way to ensure that the shape of the keyboard is appropriate for the available area of the display. It may also assist in increasing the number of keys to improve the user experience when the size of the keyboard is increased and there is sufficient space available in the keyboard that the additional keys will not be too small for the user to accurately select.
Example embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside on a removable memory, within internal memory or on a communication server. In an example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a “computer-readable medium” may be any media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer, with examples of a computer described and depicted in
In some example embodiments, the invention may be implemented as an apparatus or device, for example a mobile communication device (e.g. a mobile telephone), a PDA, a computer or other computing device, or a video game console.
If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined.
Although various aspects of the invention are set out in the independent claims, other aspects of the invention comprise other combinations of features from the described example embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims.
It is also noted herein that while the above describes example embodiments of the invention, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope of the present invention as defined in the appended claims.