123456789101112131415161718192021222324252627282930313233 |
- import * as tableUtils from '../../commons/table';
- import { hasContent } from '../../commons/dom';
- import { label } from '../../commons/aria';
- function tdHasHeaderEvaluate(node) {
- const badCells = [];
- const cells = tableUtils.getAllCells(node);
- const tableGrid = tableUtils.toGrid(node);
- cells.forEach(cell => {
- // For each non-empty data cell that doesn't have an aria label
- if (hasContent(cell) && tableUtils.isDataCell(cell) && !label(cell)) {
- // Check if it has any headers
- const hasHeaders = tableUtils.getHeaders(cell, tableGrid).some(header => {
- return header !== null && !!hasContent(header);
- });
- // If no headers, put it on the naughty list
- if (!hasHeaders) {
- badCells.push(cell);
- }
- }
- });
- if (badCells.length) {
- this.relatedNodes(badCells);
- return false;
- }
- return true;
- }
- export default tdHasHeaderEvaluate;
|