The virtual machine may have a different caps lock state, depending on it's last user. This can lead to a user who doesn't have caps lock enabled having their caps lock active. Ideally, the browser would inform the virtual machine the state of caps lock using this function: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState This would ensure that caps lock is always in sync with the client machine's caps lock state, and not enter a weird state where caps lock enabled means caps lock disabled but only for the virtual machine.