| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 { | 96 { |
| 97 AXObject* parent = parentObjectUnignored(); | 97 AXObject* parent = parentObjectUnignored(); |
| 98 if (!parent || !parent->isAXTable()) | 98 if (!parent || !parent->isAXTable()) |
| 99 return 0; | 99 return 0; |
| 100 | 100 |
| 101 return parent; | 101 return parent; |
| 102 } | 102 } |
| 103 | 103 |
| 104 AXObject* AXTableRow::headerObject() | 104 AXObject* AXTableRow::headerObject() |
| 105 { | 105 { |
| 106 if (!m_renderer || !m_renderer->isTableRow()) | 106 AccessibilityChildrenVector headers; |
| 107 headerObjectsForRow(headers); |
| 108 if (!headers.size()) |
| 107 return 0; | 109 return 0; |
| 108 | 110 |
| 109 AccessibilityChildrenVector rowChildren = children(); | 111 return headers[0].get(); |
| 110 if (!rowChildren.size()) | |
| 111 return 0; | |
| 112 | |
| 113 // check the first element in the row to see if it is a TH element | |
| 114 AXObject* cell = rowChildren[0].get(); | |
| 115 if (!cell->isTableCell()) | |
| 116 return 0; | |
| 117 | |
| 118 LayoutObject* cellRenderer = toAXTableCell(cell)->renderer(); | |
| 119 if (!cellRenderer) | |
| 120 return 0; | |
| 121 | |
| 122 Node* cellNode = cellRenderer->node(); | |
| 123 if (!cellNode || !cellNode->hasTagName(thTag)) | |
| 124 return 0; | |
| 125 | |
| 126 return cell; | |
| 127 } | 112 } |
| 128 | 113 |
| 129 void AXTableRow::headerObjectsForRow(AccessibilityChildrenVector& headers) | 114 void AXTableRow::headerObjectsForRow(AccessibilityChildrenVector& headers) |
| 130 { | 115 { |
| 131 if (!m_renderer || !m_renderer->isTableRow()) | 116 if (!m_renderer || !m_renderer->isTableRow()) |
| 132 return; | 117 return; |
| 133 | 118 |
| 134 AccessibilityChildrenVector rowChildren = children(); | 119 AccessibilityChildrenVector rowChildren = children(); |
| 135 unsigned childrenCount = rowChildren.size(); | 120 unsigned childrenCount = rowChildren.size(); |
| 136 for (unsigned i = 0; i < childrenCount; i++) { | 121 for (unsigned i = 0; i < childrenCount; i++) { |
| 137 AXObject* cell = rowChildren[i].get(); | 122 AXObject* cell = rowChildren[i].get(); |
| 138 if (!cell->isTableCell()) | 123 if (!cell->isTableCell()) |
| 139 continue; | 124 continue; |
| 140 | 125 |
| 141 if (toAXTableCell(cell)->scanToDecideHeaderRole() == RowHeaderRole) | 126 if (toAXTableCell(cell)->scanToDecideHeaderRole() == RowHeaderRole) |
| 142 headers.append(cell); | 127 headers.append(cell); |
| 143 } | 128 } |
| 144 } | 129 } |
| 145 | 130 |
| 146 } // namespace blink | 131 } // namespace blink |
| OLD | NEW |