diff --git a/lib/checks/tables/th-has-data-cells.js b/lib/checks/tables/th-has-data-cells.js
index 2bab2164c1..9b46be722f 100644
--- a/lib/checks/tables/th-has-data-cells.js
+++ b/lib/checks/tables/th-has-data-cells.js
@@ -40,25 +40,19 @@ headers.forEach(header => {
const pos = tableUtils.getCellPosition(header, tableGrid);
- // look for any column cell that has content and is not a column header
+ // ensure column header has at least 1 non-header cell
let hasCell = false;
if (tableUtils.isColumnHeader(header)) {
hasCell = tableUtils
.traverse('down', pos, tableGrid)
- .some(
- cell =>
- axe.commons.dom.hasContent(cell) && !tableUtils.isColumnHeader(cell)
- );
+ .find(cell => !tableUtils.isColumnHeader(cell));
}
- // look for any row cell that has content and is not a row header
+ // ensure row header has at least 1 non-header cell
if (!hasCell && tableUtils.isRowHeader(header)) {
hasCell = tableUtils
.traverse('right', pos, tableGrid)
- .some(
- cell =>
- axe.commons.dom.hasContent(cell) && !tableUtils.isRowHeader(cell)
- );
+ .find(cell => !tableUtils.isRowHeader(cell));
}
// report the node as having failed
diff --git a/test/checks/tables/th-has-data-cells.js b/test/checks/tables/th-has-data-cells.js
index 3507734a16..850705fed7 100644
--- a/test/checks/tables/th-has-data-cells.js
+++ b/test/checks/tables/th-has-data-cells.js
@@ -112,7 +112,7 @@ describe('th-has-data-cells', function() {
);
});
- it('should return undefined if all data cells are empty', function() {
+ it('should return true if all data cells are empty', function() {
fixture.innerHTML =
'
' +
' hi | |
' +
@@ -121,7 +121,7 @@ describe('th-has-data-cells', function() {
axe.testUtils.flatTreeSetup(fixture);
var node = fixture.querySelector('table');
- assert.isUndefined(
+ assert.isTrue(
checks['th-has-data-cells'].evaluate.call(checkContext, node)
);
});
diff --git a/test/integration/full/incomplete/th-has-data-cells.html b/test/integration/full/incomplete/th-has-data-cells.html
index 4aec27f427..187d4ad934 100644
--- a/test/integration/full/incomplete/th-has-data-cells.html
+++ b/test/integration/full/incomplete/th-has-data-cells.html
@@ -30,17 +30,6 @@
-
-
axe |
diff --git a/test/integration/full/incomplete/th-has-data-cells.js b/test/integration/full/incomplete/th-has-data-cells.js
index 82b165df24..5f26a53293 100644
--- a/test/integration/full/incomplete/th-has-data-cells.js
+++ b/test/integration/full/incomplete/th-has-data-cells.js
@@ -29,7 +29,7 @@ describe('th-has-data-cells cantTell test', function() {
describe('incomplete data', function() {
it('should be incomplete for missing or empty data cells', function() {
var resultNodes = results.incomplete[0].nodes;
- assert.lengthOf(resultNodes, 3);
+ assert.lengthOf(resultNodes, 2);
resultNodes[0].any.forEach(function(check) {
assert.match(check.message, 'Table data cells are missing or empty');
});
diff --git a/test/integration/rules/th-has-data-cells/th-has-data-cells.html b/test/integration/rules/th-has-data-cells/th-has-data-cells.html
index ba04856ee5..43a44421fd 100644
--- a/test/integration/rules/th-has-data-cells/th-has-data-cells.html
+++ b/test/integration/rules/th-has-data-cells/th-has-data-cells.html
@@ -61,6 +61,17 @@
+
+
axe |
diff --git a/test/integration/rules/th-has-data-cells/th-has-data-cells.json b/test/integration/rules/th-has-data-cells/th-has-data-cells.json
index 2fe908052f..6bec1f1b27 100644
--- a/test/integration/rules/th-has-data-cells/th-has-data-cells.json
+++ b/test/integration/rules/th-has-data-cells/th-has-data-cells.json
@@ -14,6 +14,7 @@
["#pass4"],
["#pass5"],
["#pass6"],
- ["#pass7"]
+ ["#pass7"],
+ ["#pass8"]
]
}