addEventListener para keydown en Canvas

Estoy tratando de hacer una aplicación de lienzo que responda a la entrada del teclado y el mouse. Tengo este codigo

canvas = document.getElementById('canvas');
canvas.addEventListener('mousedown', function(event) {
    alert('mousedown');
        }, false);
canvas.addEventListener('keydown', function(event) {
    alert('keydown');
        }, false);

La alerta 'mousedown' aparece cada vez que hago clic con el mouse, pero la alerta 'keydown' nunca aparece. El mismo código funciona bien en JS Bin:http://jsbin.com/uteha3/66/

¿Por qué no está funcionando en mi página? ¿El lienzo no reconoce la entrada del teclado?

Respuestas a la pregunta(2)

Su respuesta a la pregunta