function trigger( event, force, context, callback ) {
	// an ignored element is focused and the hotkey is not forced
	if ( !force && ignoreElements.some( e => event.target instanceof e ) ) {
		return false;
	}

	let result;
	if ( typeof callback === "string" ) {
		context.send( callback );
	} else {
		// can't ignore else on an else if block with current istanbuljs version :(
		/* istanbul ignore else */
		if ( callback instanceof Function ) {
			result = callback.call( context, event );
		}
	}

	// don't bubble event if result is not true
	// neither on the HotkeyService, nor the native event system
	if ( result !== true ) {
		event.preventDefault();
		event.stopImmediatePropagation();
		return false;
	}

	return true;
}
@param {KeyboardEvent} event
@param {boolean} force
@param {HotkeyComponent} context
@param {(Function|string)} callback
@returns {boolean}