Programmatically create a new KeyEvent (and KeyboardEvent).
Source
factory KeyEvent(String type, {Window view, bool canBubble: true, bool cancelable: true, int keyCode: 0, int charCode: 0, int keyLocation: 1, bool ctrlKey: false, bool altKey: false, bool shiftKey: false, bool metaKey: false, EventTarget currentTarget}) { var parent = new KeyboardEvent(type, view: view, canBubble: canBubble, cancelable: cancelable, keyLocation: keyLocation, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey, metaKey: metaKey); var keyEvent = new KeyEvent.wrap(parent); keyEvent._shadowAltKey = altKey; keyEvent._shadowCharCode = charCode; keyEvent._shadowKeyCode = keyCode; keyEvent._currentTarget = currentTarget == null ? window : currentTarget; return keyEvent; }