in src/Browser/Avalonia.Browser/KeyInterop.cs [201:383]
public static PhysicalKey PhysicalKeyFromDomCode(string? domCode)
=> !string.IsNullOrEmpty(domCode) && s_physicalKeyFromDomCode.TryGetValue(domCode, out var physicalKey) ?
physicalKey :
PhysicalKey.None;
// https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values
private static readonly Dictionary<string, Key> s_keyFromDomKey = new()
{
// Alphabetic keys
{ "A", Key.A },
{ "B", Key.B },
{ "C", Key.C },
{ "D", Key.D },
{ "E", Key.E },
{ "F", Key.F },
{ "G", Key.G },
{ "H", Key.H },
{ "I", Key.I },
{ "J", Key.J },
{ "K", Key.K },
{ "L", Key.L },
{ "M", Key.M },
{ "N", Key.N },
{ "O", Key.O },
{ "P", Key.P },
{ "Q", Key.Q },
{ "R", Key.R },
{ "S", Key.S },
{ "T", Key.T },
{ "U", Key.U },
{ "V", Key.V },
{ "W", Key.W },
{ "X", Key.X },
{ "Y", Key.Y },
{ "Z", Key.Z },
{ "a", Key.A },
{ "b", Key.B },
{ "c", Key.C },
{ "d", Key.D },
{ "e", Key.E },
{ "f", Key.F },
{ "g", Key.G },
{ "h", Key.H },
{ "i", Key.I },
{ "j", Key.J },
{ "k", Key.K },
{ "l", Key.L },
{ "m", Key.M },
{ "n", Key.N },
{ "o", Key.O },
{ "p", Key.P },
{ "q", Key.Q },
{ "r", Key.R },
{ "s", Key.S },
{ "t", Key.T },
{ "u", Key.U },
{ "v", Key.V },
{ "w", Key.W },
{ "x", Key.X },
{ "y", Key.Y },
{ "z", Key.Z },
// Modifier keys (left/right keys are handled separately)
{ "AltGr", Key.RightAlt },
{ "CapsLock", Key.CapsLock },
{ "NumLock", Key.NumLock },
{ "ScrollLock", Key.Scroll },
// Whitespace keys
{ "Enter", Key.Enter },
{ "Tab", Key.Tab },
{ " ", Key.Space },
// Navigation keys
{ "ArrowDown", Key.Down },
{ "ArrowLeft", Key.Left },
{ "ArrowRight", Key.Right },
{ "ArrowUp", Key.Up },
{ "End", Key.End },
{ "Home", Key.Home },
{ "PageDown", Key.PageDown },
{ "PageUp", Key.PageUp },
// Editing keys
{ "Backspace", Key.Back },
{ "Clear", Key.Clear },
{ "CrSel", Key.CrSel },
{ "Delete", Key.Delete },
{ "EraseEof", Key.EraseEof },
{ "ExSel", Key.ExSel },
{ "Insert", Key.Insert },
// UI keys
{ "Accept", Key.ImeAccept },
{ "Attn", Key.OemAttn },
{ "Cancel", Key.Cancel },
{ "ContextMenu", Key.Apps },
{ "Escape", Key.Escape },
{ "Execute", Key.Execute },
{ "Finish", Key.OemFinish },
{ "Help", Key.Help },
{ "Pause", Key.Pause },
{ "Play", Key.Play },
{ "Select", Key.Select },
{ "ZoomIn", Key.Zoom },
// Device keys
{ "PrintScreen", Key.PrintScreen },
// IME keys
{ "Convert", Key.ImeConvert },
{ "FinalMode", Key.FinalMode },
{ "ModeChange", Key.ImeModeChange },
{ "NonConvert", Key.ImeNonConvert },
{ "Process", Key.ImeProcessed },
{ "HangulMode", Key.HangulMode },
{ "HanjaMode", Key.HanjaMode },
{ "JunjaMode", Key.JunjaMode },
{ "Hankaku", Key.OemAuto },
{ "Hiragana", Key.DbeHiragana },
{ "KanaMode", Key.KanaMode },
{ "KanjiMode", Key.KanjiMode },
{ "Katakana", Key.DbeKatakana },
{ "Romaji", Key.OemBackTab },
{ "Zenkaku", Key.OemEnlw },
// Function keys
{ "F1", Key.F1 },
{ "F2", Key.F2 },
{ "F3", Key.F3 },
{ "F4", Key.F4 },
{ "F5", Key.F5 },
{ "F6", Key.F6 },
{ "F7", Key.F7 },
{ "F8", Key.F8 },
{ "F9", Key.F9 },
{ "F10", Key.F10 },
{ "F11", Key.F11 },
{ "F12", Key.F12 },
{ "F13", Key.F13 },
{ "F14", Key.F14 },
{ "F15", Key.F15 },
{ "F16", Key.F16 },
{ "F17", Key.F17 },
{ "F18", Key.F18 },
{ "F19", Key.F19 },
{ "F20", Key.F20 },
// Multimedia keys
{ "MediaPlayPause", Key.MediaPlayPause },
{ "MediaStop", Key.MediaStop },
{ "MediaTrackNext", Key.MediaNextTrack },
{ "MediaTrackPrevious", Key.MediaPreviousTrack },
// Audio control keys
{ "AudioVolumeDown", Key.VolumeDown },
{ "AudioVolumeMute", Key.VolumeMute },
{ "AudioVolumeUp", Key.VolumeUp },
// Application selector keys
{ "LaunchCalculator", Key.LaunchApplication2 },
{ "LaunchMail", Key.LaunchMail },
{ "LaunchMyComputer", Key.LaunchApplication1 },
{ "LaunchApplication1", Key.LaunchApplication1 },
{ "LaunchApplication2", Key.LaunchApplication2 },
// Browser control keys
{ "BrowserBack", Key.BrowserBack },
{ "BrowserFavorites", Key.BrowserFavorites },
{ "BrowserForward", Key.BrowserForward },
{ "BrowserHome", Key.BrowserHome },
{ "BrowserRefresh", Key.BrowserRefresh },
{ "BrowserSearch", Key.BrowserSearch },
{ "BrowserStop", Key.BrowserStop },
// Numeric keypad keys
{ "Decimal", Key.Decimal },
{ "Multiply", Key.Multiply },
{ "Add", Key.Add },
{ "Divide", Key.Divide },
{ "Subtract", Key.Subtract },
{ "Separator", Key.Separator },
};