27. A computer-implemented method, comprising: at a computer system including one or more processors and memory storing one or more programs including a control application and a second application, the one or more processors executing the one or more programs to perform the operations of: retaining contextual information for a second application; receiving a notification from the second application that the retained contextual information is outdated; receiving, by the control application, an indication that a text manipulation event has occurred based on a keyboard input that modifies text in a user interface of the second application, wherein the keyboard input is generated based on input with a keyboard that includes keys with corresponding hit zones; sending, by the control application, a query to the second application to obtain updated contextual information established by the second application prior to the event, wherein the updated contextual information is based on internal state information for the second application that is not directly accessible by the control application, and the updated contextual information provides context to the text manipulation event that occurred at the location in the user interface of the second application; receiving the updated contextual information from the second application; and adjusting a size of the hit zone of one or more keys on the keyboard based on the updated contextual information providing context to the text manipulation event.
27. A computer-implemented method, comprising: at a computer system including one or more processors and memory storing one or more programs including a control application and a second application, the one or more processors executing the one or more programs to perform the operations of: retaining contextual information for a second application; receiving a notification from the second application that the retained contextual information is outdated; receiving, by the control application, an indication that a text manipulation event has occurred based on a keyboard input that modifies text in a user interface of the second application, wherein the keyboard input is generated based on input with a keyboard that includes keys with corresponding hit zones; sending, by the control application, a query to the second application to obtain updated contextual information established by the second application prior to the event, wherein the updated contextual information is based on internal state information for the second application that is not directly accessible by the control application, and the updated contextual information provides context to the text manipulation event that occurred at the location in the user interface of the second application; receiving the updated contextual information from the second application; and adjusting a size of the hit zone of one or more keys on the keyboard based on the updated contextual information providing context to the text manipulation event. 41. The method of claim 27 , further comprising receiving, from the second application, notification at the control application that a selection of text in the second application has changed.