Now imagine you, every HTML page that you visit in internet would get full access to your local drives, local printers, local scanners or any other local hardware but fortunatelly this horror scenario is not possible (at least not without reusing browser vulnerabilities or third part plugins but not of our interests)
In short - there are no such official browser APIs existing that would allow unrestricted access to your local hardware such as local printers, local scanners, local logical devices or any other physical hardware like USB devices through HTML5 client. (local means the system where you run browser that starts HTML5 session)
If you want to get logical access to your hardware you need native clients such as RemoteApp or Generated clients that do not rely on browsers but have almost unrestricted access to local hardware.
Local Drive Access
Notice, even if local drive access is not possible with browsers, file upload is still possible but on indirect way, as example just drop files to browser HTML5 session tab for uploading files to rdp server session or use upload form. For sending files back to your browser for example drop files to network drive //tsclient/WebFile or use file upload tool, files will popup as regular file downloads.
More about you will find under the link: http://www.terminalserviceplus.com/docs/html5-client-using-file-transfer
If you still need direct drive access there is no option than to use native clients.
Local Printer Access
Since local printers can not be accessed directly the printer gets emulated so the print to such emulated printer gets converted to pdf file that finally gets uploaded to browser and may be then printed to your local printer, however that requires browser with native pdf support or support via pdf plugin. If you still need direct printer access there is no option than to use native clients.