1. A method, performed by a computer having a memory and a processor, for interpreting the contents of a user interface without requiring cooperation from the user interface, the method comprising: capturing pixel data of a source window associated with the user interface; with a processor, identifying areas of the captured pixel data that at least substantially match features associated with at least one widget prototype of a prototype library; and with a processor, identifying a user interface widget within the captured pixel data at least in part by determining whether a spatial relationship between at least two of the identified areas is consistent with at least one widget prototype of the prototype library.