¿Es posible anular el retraso de repetición de keydown, en JavaScript?

El objetivo es establecer manualmente la "tasa de repetición" de una tecla mantenida.

Por ejemplo, cuando en un cuadro de texto y presionando y manteniendo presionada la tecla X, entiendo que hayFormas específicas del navegador para repetir el carácter presionado.. En algunos, hace una pausa, luego activa continuamente la tecla presionada. En otros, no se repite en absoluto. Quiero mitigar esto forzando la tecla presionada para que se repita en un intervalo específico, independientemente del navegador.

A través de la investigación, se me ocurrió un intento basado en temporizador, pero en Safari, no se repite el personaje. Tengo un sistema de menú en el que al mantener presionada la flecha hacia abajo se desplaza por la lista, pero la animación de la traducción y la frecuencia de repetición no son similares.

var repeating = false;
var repeatRateTimer = null;

$( document ).bind( 'keyup', function( input ) {
    if( repeatRateTimer != null )
    {
        clearTimeout( repeatRateTimer );
        repeatRateTimer = null;
    }

    repeating = false;
} );

$( document ).bind( 'keydown', function( input ) {
    input.preventDefault( );

    if( repeating == true )
    {
        if( repeatRateTimer != null )
        {
            clearTimeout( repeatRateTimer );
            repeatRateTimer = null;
        }
        else
        {
            repeatRateTimer = setTimeout( function( ){ repeating = false; }, 1000 );
        }

        return;
    }
    repeating = true;

    // ...keyboard logic
} );

Puede que haya fallado todo esto ... Traté de recrear una versión simplificada deeste mensaje SO. Sin embargo, me siento allítiene Para ser una mejor manera de hacer esto. ¿Alguna idea?

Actualizar:

Podemos suponer que el usuario final no ha configurado la frecuencia de repetición del teclado del sistema operativo por encima de la velocidad que deseo utilizar (1000 ms). Si es así, debería volver a su velocidad de repetición, ya que no continuará activando el evento de pulsación de tecla. Si no es así (lo más probable es que ya que la mayoría de las personas no lo modifican), estaríamos anulando ese comportamiento para retrasar nuestro período específico.

Respuestas a la pregunta(3)

Su respuesta a la pregunta