The following keyboard is implemented in HTML5 canvas and listens for touch events (will not work with your mouse, no mouseevent tracking implemented). We're using it with PQ Labs overlays. Xoom / iPad kinda work, but we didn't optimize performance for those devices.
To make Chrome or Firefox on the desktop listen to touch events, you have install the npTuioClient NPAPI plugin and have an overlay that supports TUIO. Don't have an overlay? Boris Smus wrote a sweet article on the topic you should read: Multi-Touch for your Desktop Browser. We're using his Magictouch.js multi-touch polyfill with great success with our overlays.
More info: video of screen in action