@qualweb/util
Version:
Utilities module for qualweb
22 lines (21 loc) • 843 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function isElementFocusable(element) {
const disabled = element.getElementAttribute('disabled') !== null;
if (disabled || window.DomUtils.isElementHiddenByCSS(element)) {
return false;
}
else if (window.AccessibilityUtils.isElementFocusableByDefault(element)) {
return true;
}
else {
let tabIndexLessThanZero = false;
const tabindex = element.getElementAttribute('tabindex');
const tabIndexExistsAndIsNumber = tabindex !== null && !isNaN(parseInt(tabindex, 10));
if (tabindex && tabIndexExistsAndIsNumber) {
tabIndexLessThanZero = parseInt(tabindex, 10) < 0;
}
return tabIndexExistsAndIsNumber && !tabIndexLessThanZero;
}
}
exports.default = isElementFocusable;