Created attachment 230420 [details] test case AX: WebKit could infer AXDisclosedByRow correctly on this invalidly nested tree example. This markup example leaves much to be desired, b/c are a bunch of extraneous groups in the tree. - non-presentational LIs in-between the tree and the first-level treeitems. - extraneous non-presentational DIVs in-between the first-level items and second-level items. - irrelevant/extraneous @aria-owns relationships pointing to descendant nodes. That said, WebKit does a pretty good job of cleaning it up for the AX tree. The AXOutlineRows and AXLevels are exposed correctly. I think the only bug I noticed is that AXDisclosedByRow is <nil> on the second-level rows, so VO speaks "0 items enclosed". The ancestor hierarchy is intact, so we may just need WebKit to walk higher up the DOM tree to find the correct disclosing row. WebKit should normalize this scenario if possible. Hearsay: ~"JAWS+FF works with this example." If so, one or both of those is normalizing the invalid markup.
<rdar://problem/16761069>