Why do you use `ignore-errors` ?
I suppose `(and key (lookup-key keymap key))` is better than using `ignore-errors`.