is-header.js 648 B

1234567891011121314151617181920212223242526
  1. import isColumnHeader from './is-column-header';
  2. import isRowHeader from './is-row-header';
  3. import { escapeSelector } from '../../core/utils';
  4. /**
  5. * Determine if a `HTMLTableCellElement` is a header
  6. * @method isHeader
  7. * @memberof axe.commons.table
  8. * @instance
  9. * @param {HTMLTableCellElement} cell The table cell to test
  10. * @return {Boolean}
  11. */
  12. function isHeader(cell) {
  13. if (isColumnHeader(cell) || isRowHeader(cell)) {
  14. return true;
  15. }
  16. if (cell.getAttribute('id')) {
  17. const id = escapeSelector(cell.getAttribute('id'));
  18. return !!document.querySelector(`[headers~="${id}"]`);
  19. }
  20. return false;
  21. }
  22. export default isHeader;