Thanks for implementing it.
Just something I notice.
First I have to explain one consequence of a browser (at least Firefox) implementing “resist fingerprinting”. When enabled, the Javascript APIs do not reveal the local keyboard layout to Javascript code. If Javascript code queries information about keyboard layout it get the same answer (maybe a common US keyboard layout) whatever the actual keyboard layout. You see where this is going now, right?
Now the issue.
An Amstrad CPC emulator in a browser is Javascript code that typically makes assumptions about the physical keyboard layout.
One result is that with a French layout and a browser profile that has “resist fingerprinting” enabled, visiting your example XMas-tro 2009 - CPCWiki, the keyboard layout is so botched that I cannot even type inside the emulator a quote ".
Strangely enough, all letters are okay. But pressing the letters 1 to 9 then 0 (which on a French keyboard produce symbols &é"'(-è_çà here produces 7;;9--. Some keys do nothing, the ones that do produce something (in order) are 134568. Confusing? Yeah, me too.
It’s one of the layers of mess which is less of a problem when creating prods that can fully work using only the keys that are the same in QWERTY AZERTY QWERTZ, see Why make such great games if most people can't play them properly? - #2 by cpcitor