UNPKG

@inkline/inkline

Version:

Inkline is the Vue.js UI/UX Library built for creating your next design system

23 lines (20 loc) 612 B
export function isFocusable (element: HTMLElement): boolean { if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) { return true; } if ((element as any).disabled) { return false; } switch (element.nodeName) { case 'A': return !!(element as any).href && (element as any).rel !== 'ignore'; case 'INPUT': return (element as any).type !== 'hidden' && (element as any).type !== 'file'; case 'BUTTON': case 'SELECT': case 'TEXTAREA': return true; default: return false; } }