1. A method, comprising: generating, by a processor included on at least one device, a mapping of input devices to providers based on respective types of input data generated by the input devices, wherein the providers normalize the input data generated by the input devices, and wherein the input devices are at least one of actual input devices or virtual input devices; receiving, by the processor, a request to output an event at a virtual input device of the virtual input devices, wherein the virtual input device corresponds to a first input device type; identifying, by the processor, a provider corresponding to the virtual input device based upon the mapping; routing, by the processor to the provider, first input data directed to a computer program from the virtual input device in order for the provider to simulate the event being output from a second input device type supported by a device on which the computer program executes, wherein the device does not support the first input device type; normalizing, by the processor via the provider, the input data into a normalized event simulating the event being output from the second input device type, wherein the normalized event is receivable by a user interface element of the computer program that is configured to handle normalized events; and outputting, by the processor, the normalized event to the user interface element of the computer program.