5. A non-transitory computer readable storage medium encoded with a plurality of instructions that, when executed on at least one processor, perform a method of running an application on an end device defining a host, the application being distributed from a server to the host, the method comprising: obtaining the application from the server; executing a multi-modal browser on the host to run the application, the application employing both text-to-speech (TTS) processing and automatic speech recognition (ASR) processing; analyzing, by the host, an instruction in the application that instructs the host to perform the TTS processing and/or ASR processing locally or remotely; determining, by the host, whether the host is capable of performing the TTS processing and/or ASR processing in accordance with the instruction, wherein: if the instruction instructs the host to perform the TTS processing and the ASR processing locally, determining, by the host, whether the host supports performing the TTS processing and the ASR processing locally, and if the instruction instructs the host to perform the TTS processing locally and the ASR processing remotely, determining, by the host, whether the host supports performing the TTS processing locally and the ASR processing remotely; if the host is capable of performing the TTS processing and/or ASR processing in accordance with the instruction, executing the application using the TTS processing and/or the ASR processing in accordance with the instruction; and generating an error indication if the host is not capable of performing the TTS processing and/or ASR processing in accordance with the instruction.
6. The non-transitory computer readable storage medium of claim 5 , wherein the application comprises a Web-based application and the server comprises a Web server.