A method, comprising: receiving a user input from a virtual keyboard displayed on a display; highlighting a key in the virtual keyboard which corresponds to the input character when the user input is a character that belongs to a current set of inputted characters which is incomplete; unhighlighting all highlighted keys in the virtual keyboard upon a determination that the user input completes the current set of characters; and upon a determination that the user input does not complete the current set of characters, adjusting the highlighting of the one or more of the highlighted keys in the virtual keyboard based on one or more predetermined criteria, wherein the predetermined criteria comprises at lease one of: (i) a duration of time since a last input was received from the virtual keyboard; (ii) occurrence of a predetermined number of subsequent character inputs since a last input was received from the virtual keyboard; and/or (iii) a duration of time since a last interaction with the particular keys in the virtual keyboard which correspond to the input characters in the current set of characters; and also adjusting the highlighting by generating one or more sets of predicted input characters based on the input character; and upon the determination of an erroneous character in the current set of input characters compared to the one or more sets of predicted input characters, adjusting the format of the highlighting of a highlighted key in the virtual keyboard which displays the determined erroneous character. receiving a user input from a virtual keyboard displayed on a display; highlighting a key in the virtual keyboard which corresponds to the input character when the user input is a character that belongs to a current set of inputted characters which is incomplete; unhighlighting all highlighted keys in the virtual keyboard upon a determination that the user input completes the current set of characters; and upon a determination that the user input does not complete the current set of characters, adjusting the highlighting of the one or more of the highlighted keys in the virtual keyboard based on one or more predetermined criteria, wherein the predetermined criteria comprises at lease one of: (i) a duration of time since a last input was received from the virtual keyboard; (ii) occurrence of a predetermined number of subsequent character inputs since a last input was received from the virtual keyboard; and/or (iii) a duration of time since a last interaction with the particular keys in the virtual keyboard which correspond to the input characters in the current set of characters; and also adjusting the highlighting by generating one or more sets of predicted input characters based on the input character; and adjusting the highlighting of the one or more of the highlighted keys in the virtual keyboard based on one or more predetermined criteria, wherein the predetermined criteria comprises at lease one of: (i) a duration of time since a last input was received from the virtual keyboard; (ii) occurrence of a predetermined number of subsequent character inputs since a last input was received from the virtual keyboard; and/or (iii) a duration of time since a last interaction with the particular keys in the virtual keyboard which correspond to the input characters in the current set of characters; and also adjusting the highlighting by generating one or more sets of predicted input characters based on the input character; and (i) a duration of time since a last input was received from the virtual keyboard; (ii) occurrence of a predetermined number of subsequent character inputs since a last input was received from the virtual keyboard; and/or (iii) a duration of time since a last interaction with the particular keys in the virtual keyboard which correspond to the input characters in the current set of characters; and also adjusting the highlighting by generating one or more sets of predicted input characters based on the input character; and