Pressing both the left and right shift key on Windows and then releasing them results in shift getting stuck. This is an OS level bug where one release event goes missing. We have implemented a workaround in TigerVNC (see bug 5229), but not in Web Access.
Fixed upstream: https://github.com/novnc/noVNC/commit/ccb511a527a693d0de0ad58b430f73aa2fb74344
Fixed with vendordrop.
Verified that the problem existed in Chrome 78 on Windows 10 with build 6285: Shift L down -> Shift R down -> Shift L up -> Shift R up resulted in the session to: Shift L down -> Shift R down -> Shift R up After upgrading to a fixed webaccess package, I have verified that it's better now with Chrome, Firefox, and IE, I get: Shift L down -> Shift R down -> Shift L up -> Shift R up results in the session to: Shift L down -> Shift R down -> Shift R up -> Shift L up Note that the order of key releases is not perfect above, the reality is that we don't get the "Shift L up" until Shift R has been released. We don't get any events from windows at all, so this is the best we can do. At least it doesn't get stuck now. Edge, however, does seem to have proper detection for this at the moment and doesn't need the workaround. Our workaround makes things worse actually, we get: Shift L down -> Shift R down -> Shift L up -> Shift R up-> Shift R down -> Shift R up But, Edge is on it's way to the grave so we have decided to not care about this for now.