Bug 197082

Summary: AX: Table becomes layout table if provided author accName or description
Product: WebKit Reporter: Scott <scottaohara>
Component: AccessibilityAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: cfleizach, mfairchild365, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 12   
Hardware: Mac   
OS: macOS 10.14   

Description Scott 2019-04-18 16:48:19 PDT
In an effort to provide a table with a "caption" by use of ARIA, I ran into unexpected behavior.

Using aria-labelledby on a table element to point to paragraph, the table semantics were removed.  No role is exposed in Safari's accessibility node inspector.  VoiceOver + Safari announced the table as a group.

Chrome exposes the table as a layoutTable in its inspector.

I then tried aria-describedby, and the title attribute.  With both of these attributes placed on the table element no role is exposed, VoiceOver doesn't announce it as a group.


Reduced test case:
https://codepen.io/scottohara/full/jRZLMy


Testing with Firefox and IE11, the above mentioned issues do not occur.  

Using JAWS with Firefox and IE11, the tables all announce as expected.


---

Expected Behavior

If a table is provided an aria-labelledby, it should be given an accessible name (like caption does).
If a table is provided an aria-describedby or title attribute, it should expose a description.

In neither situation should the table be converted to a layoutTable.
Comment 1 Radar WebKit Bug Importer 2019-04-18 16:48:34 PDT
<rdar://problem/50033934>
Comment 2 Scott 2019-09-18 08:01:30 PDT
Looking at this again, if a table has column headers defined, aria-label and aria-labelledby appear to work as expected and the table is not announced as a group: https://s.codepen.io/joe-watkins/debug/MWgPEYr

So seems that a table will only be exposed as a table in webkit if the table contains th elements, or a caption. If those are not present, even if the table is given an accessible name via aria-label/labelledby it will not be treated as a layout table.
Comment 3 chris fleizach 2019-09-18 09:44:54 PDT
(In reply to Scott from comment #2)
> Looking at this again, if a table has column headers defined, aria-label and
> aria-labelledby appear to work as expected and the table is not announced as
> a group: https://s.codepen.io/joe-watkins/debug/MWgPEYr
> 
> So seems that a table will only be exposed as a table in webkit if the table
> contains th elements, or a caption. If those are not present, even if the
> table is given an accessible name via aria-label/labelledby it will not be
> treated as a layout table.

I think if a table has a label, we should expose it as a data table. that sounds like the bug in this case