use focus and tabindex for better UX
fix JSLint warnings