Bug 193382 - AX: Update list heuristics to include linked lists inside navigation containers
Summary: AX: Update list heuristics to include linked lists inside navigation containers
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: chris fleizach
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-01-12 10:56 PST by James Craig
Modified: 2020-12-16 10:24 PST (History)
11 users (show)

See Also:


Attachments
patch (4.75 KB, patch)
2020-12-15 15:17 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (4.75 KB, patch)
2020-12-15 20:09 PST, chris fleizach
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description James Craig 2019-01-12 10:56:19 PST
AX: Update list heuristics to include linked lists inside navigation containers

There were a few Twitter threads recently about the WebKit behavior to distinguish unstyled layout lists from unstyled semantic lists. Generally, I still believe WebKit is correct to heuristically suppress list-itis from screen reader users, but we can make it better for authors by continuing to update these heuristics.

https://github.com/WebKit/webkit/blob/master/Source/WebCore/accessibility/AccessibilityList.cpp

The first actionable suggestion that came out of the discussion was to account for link lists that are descendants (not limited to direct children) of nav elements or role=navigation. Even single-item links seem fine to me.

Other suggestions were about styling (bg colors, etc.) like WebKit has for the data tables, but I didn't see anything actionable in that category yet. If I do, I'll file it as a separate bug tracker and try to link it here.
Comment 1 Radar WebKit Bug Importer 2019-01-12 10:56:36 PST
<rdar://problem/47233475>
Comment 2 chris fleizach 2019-01-12 13:37:32 PST
I agree that WebKit has correct behavior. If we were able to just create solutions knowing we had authors who used semantics and ARIA correctly then things would be easy. But in the real world, we need to focus on user needs, in this case it means doing something to make lists meaningful.
Comment 3 James Craig 2020-12-14 09:38:54 PST
The request to "allow list" ULs inside NAV has come up again recently. It seems like a reasonable change that would appease many web developers.
Comment 4 James Craig 2020-12-14 10:40:04 PST
Could be allowing all lists inside nav:

An unstyled list:
<ul style="list-style:none"><!-- Still a list -->

…that is inside any nav: 
<nav> or <el role="navigation">

…with or without other elements in between (e.g. descendant lists... not limited to direct children)

<nav>
  <div><!-- in-betweeners okay -->
    <ul style="list-style:none">


If that results in some false positives, it could be limited to link lists inside navs.

<nav>
  <div><!-- in-betweeners okay -->
    <ul style="list-style:none">
      <li><a href="https://www.apple.com/">Apple</a></li> <!-- only link lists? --> 
      <li><a href="https://www.webkit.org/">WebKit</a></li>
    </ul>
  </div>
</nav>
Comment 5 chris fleizach 2020-12-15 15:17:23 PST
Created attachment 416299 [details]
patch
Comment 6 chris fleizach 2020-12-15 20:09:46 PST
Created attachment 416313 [details]
patch
Comment 7 EWS 2020-12-16 10:24:00 PST
Committed r270896: <https://trac.webkit.org/changeset/270896>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416313 [details].