>I made a keyboard once also based on container, but use label controls for the keys. That way the keys do not receive the focus when being clicked on and the cursor stays focused on the textbox that you like to enter the text in.
My favourite focus trick is to act from a commandbutton's .when() and return .f. from it - so it never gains focus. And yes, any pressed state changes, i.e. visual clues to the button click/press, then need to be handled via a timer. IIRC, the .onMouseEnter() doesn't react to finger coming close on a touchscreen, so the hover effect would be lost anyway.