axe-core
Version:
Accessibility engine for automated Web UI testing
25 lines (22 loc) • 676 B
JavaScript
import isValidRole from '../aria/is-valid-role';
/**
* Determine if a `HTMLTableCellElement` is a data cell
* @method isDataCell
* @memberof axe.commons.table
* @instance
* @param {HTMLTableCellElement} node The table cell to test
* @return {Boolean}
*/
function isDataCell(cell) {
// @see http://www.whatwg.org/specs/web-apps/current-work/multipage/tables.html#empty-cell
if (!cell.children.length && !cell.textContent.trim()) {
return false;
}
const role = cell.getAttribute('role');
if (isValidRole(role)) {
return ['cell', 'gridcell'].includes(role);
} else {
return cell.nodeName.toUpperCase() === 'TD';
}
}
export default isDataCell;