Chromium Code Reviews| 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 29 matching lines...) Expand all Loading... | |
| 40 AXObjectCacheImpl& axObjectCache) | 40 AXObjectCacheImpl& axObjectCache) |
| 41 : AXLayoutObject(layoutObject, axObjectCache) {} | 41 : AXLayoutObject(layoutObject, axObjectCache) {} |
| 42 | 42 |
| 43 AXTableRow::~AXTableRow() {} | 43 AXTableRow::~AXTableRow() {} |
| 44 | 44 |
| 45 AXTableRow* AXTableRow::create(LayoutObject* layoutObject, | 45 AXTableRow* AXTableRow::create(LayoutObject* layoutObject, |
| 46 AXObjectCacheImpl& axObjectCache) { | 46 AXObjectCacheImpl& axObjectCache) { |
| 47 return new AXTableRow(layoutObject, axObjectCache); | 47 return new AXTableRow(layoutObject, axObjectCache); |
| 48 } | 48 } |
| 49 | 49 |
| 50 AccessibilityRole AXTableRow::determineAccessibilityRole() { | 50 void AXTableRow::addChildren() |
| 51 { | |
| 52 AXLayoutObject::addChildren(); | |
| 53 int colIndex = ariaColumnIndex(); | |
|
aboxhall
2016/11/29 17:36:54
An explanation of what is going on here would be h
dmazzoni
2016/11/30 22:48:17
I added a comment to clarify. It's so you don't ne
| |
| 54 if (!colIndex) | |
| 55 return; | |
| 56 | |
| 57 unsigned index = 0; | |
| 58 for (const auto& cell : children()) { | |
| 59 if (cell->isTableCell()) | |
| 60 toAXTableCell(cell.get())->setARIAColIndexFromRow(colIndex + index); | |
| 61 index++; | |
| 62 } | |
| 63 } | |
| 64 | |
| 65 AccessibilityRole AXTableRow::determineAccessibilityRole() | |
| 66 { | |
| 51 if (!isTableRow()) | 67 if (!isTableRow()) |
| 52 return AXLayoutObject::determineAccessibilityRole(); | 68 return AXLayoutObject::determineAccessibilityRole(); |
|
aboxhall
2016/11/29 17:36:54
Formatting weirdness?
dmazzoni
2016/11/30 22:48:17
Done.
| |
| 53 | 69 |
| 54 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) | 70 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) |
| 55 return m_ariaRole; | 71 return m_ariaRole; |
| 56 | 72 |
| 57 return RowRole; | 73 return RowRole; |
| 58 } | 74 } |
| 59 | 75 |
| 60 bool AXTableRow::isTableRow() const { | 76 bool AXTableRow::isTableRow() const { |
| 61 AXObject* table = parentTable(); | 77 AXObject* table = parentTable(); |
| 62 if (!table || !table->isAXTable()) | 78 if (!table || !table->isAXTable()) |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 89 | 105 |
| 90 AXObject* AXTableRow::headerObject() { | 106 AXObject* AXTableRow::headerObject() { |
| 91 AXObjectVector headers; | 107 AXObjectVector headers; |
| 92 headerObjectsForRow(headers); | 108 headerObjectsForRow(headers); |
| 93 if (!headers.size()) | 109 if (!headers.size()) |
| 94 return 0; | 110 return 0; |
| 95 | 111 |
| 96 return headers[0].get(); | 112 return headers[0].get(); |
| 97 } | 113 } |
| 98 | 114 |
| 115 unsigned AXTableRow::ariaColumnIndex() const | |
| 116 { | |
| 117 const AtomicString& colIndexValue = getAttribute(aria_colindexAttr); | |
| 118 if (colIndexValue.toInt() >= 1) | |
| 119 return colIndexValue.toInt(); | |
| 120 | |
| 121 return 0; | |
| 122 } | |
| 123 | |
| 124 unsigned AXTableRow::ariaRowIndex() const | |
| 125 { | |
| 126 const AtomicString& rowIndexValue = getAttribute(aria_rowindexAttr); | |
| 127 if (rowIndexValue.toInt() >= 1) | |
| 128 return rowIndexValue.toInt(); | |
| 129 | |
| 130 return 0; | |
| 131 } | |
| 132 | |
| 99 void AXTableRow::headerObjectsForRow(AXObjectVector& headers) { | 133 void AXTableRow::headerObjectsForRow(AXObjectVector& headers) { |
| 100 if (!m_layoutObject || !m_layoutObject->isTableRow()) | 134 if (!m_layoutObject || !m_layoutObject->isTableRow()) |
| 101 return; | 135 return; |
| 102 | 136 |
| 103 for (const auto& cell : children()) { | 137 for (const auto& cell : children()) { |
| 104 if (!cell->isTableCell()) | 138 if (!cell->isTableCell()) |
| 105 continue; | 139 continue; |
| 106 | 140 |
| 107 if (toAXTableCell(cell.get())->scanToDecideHeaderRole() == RowHeaderRole) | 141 if (toAXTableCell(cell.get())->scanToDecideHeaderRole() == RowHeaderRole) |
| 108 headers.append(cell); | 142 headers.append(cell); |
| 109 } | 143 } |
| 110 } | 144 } |
| 111 | 145 |
| 112 } // namespace blink | 146 } // namespace blink |
| OLD | NEW |