This was discovered as part of the ARIA 1.1 CR testing. The failures are due to the following not being exposed as a table: <table> <tr> <td aria-colspan="2">test cell</td> </tr> </table> This strikes me as yet another case of "Why on earth would anyone do that?" And admittedly, this is an artificial/quick-and-dirty test case. That said, if an author has taken the time to use an ARIA table cell property on a table cell, I think we have expose the cell as a cell and the containing table as a table.
<rdar://problem/31775750>
Created attachment 308909 [details] Patch
Comment on attachment 308909 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=308909&action=review > Source/WebCore/accessibility/AccessibilityTable.cpp:160 > + if (ariaColumnCount == -1 || ariaColumnCount > 0) is if (!ariaColumnCount) sufficient here? or do you care if the colcount was set to -2? > Source/WebCore/accessibility/AccessibilityTable.cpp:-169 > - if (numRows == 1 && numCols == 1) we may want to move this to the end. so if none of the rows or cols had the aria attributes, and we have only 1 cell...
Comment on attachment 308909 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=308909&action=review >> Source/WebCore/accessibility/AccessibilityTable.cpp:160 >> + if (ariaColumnCount == -1 || ariaColumnCount > 0) > > is if (!ariaColumnCount) sufficient here? or do you care if the colcount was set to -2? I do care. If the colcount is set to -2, the author has provided an invalid value. If we are going to respect the author's desire to expose their minimalist table as a data table, I think they should at least do us the courtesy of providing a valid value. ;) Do you think we should instead accept any non-zero value? >> Source/WebCore/accessibility/AccessibilityTable.cpp:-169 >> - if (numRows == 1 && numCols == 1) > > we may want to move this to the end. so if none of the rows or cols had the aria attributes, and we have only 1 cell... I am happy to make that change, but in that particular case the existing heuristic concludes it is not a data table. See the last table in the layout test. The td element with id of "cell8" is an AXGroup on your platform and an ATK_ROLE_SECTION on mine.
Comment on attachment 308909 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=308909&action=review >>> Source/WebCore/accessibility/AccessibilityTable.cpp:160 >>> + if (ariaColumnCount == -1 || ariaColumnCount > 0) >> >> is if (!ariaColumnCount) sufficient here? or do you care if the colcount was set to -2? > > I do care. If the colcount is set to -2, the author has provided an invalid value. If we are going to respect the author's desire to expose their minimalist table as a data table, I think they should at least do us the courtesy of providing a valid value. ;) > > Do you think we should instead accept any non-zero value? probably not >>> Source/WebCore/accessibility/AccessibilityTable.cpp:-169 >>> - if (numRows == 1 && numCols == 1) >> >> we may want to move this to the end. so if none of the rows or cols had the aria attributes, and we have only 1 cell... > > I am happy to make that change, but in that particular case the existing heuristic concludes it is not a data table. See the last table in the layout test. The td element with id of "cell8" is an AXGroup on your platform and an ATK_ROLE_SECTION on mine. ok
Comment on attachment 308909 [details] Patch Clearing flags on attachment: 308909 Committed r216123: <http://trac.webkit.org/changeset/216123>
All reviewed patches have been landed. Closing bug.