Index: Source/modules/accessibility/AXTableCell.cpp |
diff --git a/Source/modules/accessibility/AXTableCell.cpp b/Source/modules/accessibility/AXTableCell.cpp |
index 306215b4391ecc746a0e4d5c204d56c878902912..f5a678d957dbc1eec2d777e1ba441ddf8efa5c69 100644 |
--- a/Source/modules/accessibility/AXTableCell.cpp |
+++ b/Source/modules/accessibility/AXTableCell.cpp |
@@ -56,6 +56,18 @@ bool AXTableCell::isTableHeaderCell() const |
return node() && node()->hasTagName(thTag); |
} |
+bool AXTableCell::isRowHeaderCell() const |
+{ |
+ const AtomicString& scope = getAttribute(scopeAttr); |
+ return equalIgnoringCase(scope, "row") || equalIgnoringCase(scope, "rowgroup"); |
+} |
+ |
+bool AXTableCell::isColumnHeaderCell() const |
+{ |
+ const AtomicString& scope = getAttribute(scopeAttr); |
+ return equalIgnoringCase(scope, "col") || equalIgnoringCase(scope, "colgroup"); |
+} |
+ |
bool AXTableCell::computeAccessibilityIsIgnored() const |
{ |
AXObjectInclusion decision = defaultObjectInclusion(); |
@@ -113,10 +125,10 @@ AccessibilityRole AXTableCell::scanToDecideHeaderRole() |
return CellRole; |
// Check scope attribute first. |
- const AtomicString& scope = getAttribute(scopeAttr); |
- if (equalIgnoringCase(scope, "row")) |
+ if (isRowHeaderCell()) |
return RowHeaderRole; |
- if (equalIgnoringCase(scope, "col")) |
+ |
+ if (isColumnHeaderCell()) |
return ColumnHeaderRole; |
// Check the previous cell and the next cell |