| Index: third_party/WebKit/Source/modules/accessibility/AXTableRow.cpp
|
| diff --git a/third_party/WebKit/Source/modules/accessibility/AXTableRow.cpp b/third_party/WebKit/Source/modules/accessibility/AXTableRow.cpp
|
| index 48a180ea9f5bf0ebf6b15414443ca24dc5598ba0..58fb6b107a106c52e3991ece36156833fe95deeb 100644
|
| --- a/third_party/WebKit/Source/modules/accessibility/AXTableRow.cpp
|
| +++ b/third_party/WebKit/Source/modules/accessibility/AXTableRow.cpp
|
| @@ -47,6 +47,23 @@ AXTableRow* AXTableRow::create(LayoutObject* layoutObject,
|
| return new AXTableRow(layoutObject, axObjectCache);
|
| }
|
|
|
| +void AXTableRow::addChildren() {
|
| + AXLayoutObject::addChildren();
|
| +
|
| + // A row is allowed to have a column index, indicating the index of the
|
| + // first cell in that row, and each subsequent cell gets the next index.
|
| + int colIndex = ariaColumnIndex();
|
| + if (!colIndex)
|
| + return;
|
| +
|
| + unsigned index = 0;
|
| + for (const auto& cell : children()) {
|
| + if (cell->isTableCell())
|
| + toAXTableCell(cell.get())->setARIAColIndexFromRow(colIndex + index);
|
| + index++;
|
| + }
|
| +}
|
| +
|
| AccessibilityRole AXTableRow::determineAccessibilityRole() {
|
| if (!isTableRow())
|
| return AXLayoutObject::determineAccessibilityRole();
|
| @@ -96,6 +113,22 @@ AXObject* AXTableRow::headerObject() {
|
| return headers[0].get();
|
| }
|
|
|
| +unsigned AXTableRow::ariaColumnIndex() const {
|
| + const AtomicString& colIndexValue = getAttribute(aria_colindexAttr);
|
| + if (colIndexValue.toInt() >= 1)
|
| + return colIndexValue.toInt();
|
| +
|
| + return 0;
|
| +}
|
| +
|
| +unsigned AXTableRow::ariaRowIndex() const {
|
| + const AtomicString& rowIndexValue = getAttribute(aria_rowindexAttr);
|
| + if (rowIndexValue.toInt() >= 1)
|
| + return rowIndexValue.toInt();
|
| +
|
| + return 0;
|
| +}
|
| +
|
| void AXTableRow::headerObjectsForRow(AXObjectVector& headers) {
|
| if (!m_layoutObject || !m_layoutObject->isTableRow())
|
| return;
|
|
|