Fix and improve keyboard navigation