[Webkit-unassigned] [Bug 136415] AX: CSS table display styles can cause malformed, inaccessible AXTables to be exposed to the AX tree

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Aug 9 01:26:48 PDT 2015


https://bugs.webkit.org/show_bug.cgi?id=136415

chris fleizach <cfleizach at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #258521|review?                     |review-
              Flags|                            |

--- Comment #18 from chris fleizach <cfleizach at apple.com> ---
Comment on attachment 258521
  --> https://bugs.webkit.org/attachment.cgi?id=258521
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258521&action=review

> Source/WebCore/ChangeLog:9
> +        CSS table display styles sometime can change the hierarchy of a table, making child objects to be anonymous.

Apply CSS display styles to tables can end up inserting anonymous RenderTableRows, which is not handled well by the accessibility code, which treats these as the actual rows.
We can address this by diving deeper into anonymous nodes and finding the real rows and cells we want.
In addition, another thing also causing malformed tables is that "grid" roles are being exposed as AXGrid instead of AXTable.

> Source/WebCore/accessibility/AccessibilityTable.cpp:480
>              continue;

instead of having a continue here and then the other case below, i think it should be if/else
which should make it clearer to understand that we have two cases

> Source/WebCore/accessibility/AccessibilityTableCell.cpp:88
> +    // The RenderTableCell's table() object might be anonymous sometimes. We should handle it gracefully

This new code seems to ignore the perils of the comment above.

I think we should do a check for the renderTable if it's anonymous, then go up the render->parent() chain until we find a non anonymous RenderTable parent.
then do the original logic (and leave the original comment)

> Source/WebCore/accessibility/AccessibilityTableRow.cpp:107
> +            if (parentTable.node() != nullptr)

this should be
if (parentTable.node())
    break;

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150809/4ed432ef/attachment.html>


More information about the webkit-unassigned mailing list