WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
134187
AX: improve list heuristics (presentational use versus actual lists)
https://bugs.webkit.org/show_bug.cgi?id=134187
Summary
AX: improve list heuristics (presentational use versus actual lists)
James Craig
Reported
2014-06-23 01:14:45 PDT
AX: improve list heuristics (presentational use versus actual lists) Attaching a layout test that should better clarify what WebKit should exposed as a "list" to the accessibility APIs. The expected rolename "generic" of the non-list examples may need to change, but the rest is solid I believe.
Attachments
layout test
(7.60 KB, text/html)
2014-06-23 01:15 PDT
,
James Craig
no flags
Details
patch
(16.38 KB, patch)
2015-05-20 16:07 PDT
,
chris fleizach
darin
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2014-06-23 01:15:00 PDT
<
rdar://problem/17415885
>
James Craig
Comment 2
2014-06-23 01:15:44 PDT
Created
attachment 233587
[details]
layout test
chris fleizach
Comment 3
2015-05-20 16:07:02 PDT
Created
attachment 253470
[details]
patch
Darin Adler
Comment 4
2015-05-20 16:13:01 PDT
Comment on
attachment 253470
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=253470&action=review
Test coverage is critical, because the accessibility code is complicated and much different from the normal DOM and rendering of these elements.
> Source/WebCore/accessibility/AccessibilityList.cpp:104 > + Element* listItemElement = is<Element>(listItem->node()) ? downcast<Element>(listItem->node()) : nullptr;
Not sure what the point of the is<Element> check here, because ...
> Source/WebCore/accessibility/AccessibilityList.cpp:105 > + if (!listItemElement->beforePseudoElement())
here we would dereference the null pointer. I think this needs an additional null check.
chris fleizach
Comment 5
2015-05-20 16:32:47 PDT
Comment on
attachment 253470
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=253470&action=review
>> Source/WebCore/accessibility/AccessibilityList.cpp:105 >> + if (!listItemElement->beforePseudoElement()) > > here we would dereference the null pointer. I think this needs an additional null check.
i didn't want to downcast to Element unless it was an Element. I guess that's taken care of by the downcast good catch. thanks
chris fleizach
Comment 6
2015-05-20 16:43:09 PDT
http://trac.webkit.org/changeset/184676
James Craig
Comment 7
2015-05-21 00:08:16 PDT
Comment on
attachment 253470
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=253470&action=review
> LayoutTests/accessibility/list-detection2-expected.txt:25 > +
Strange that the "TEST COMPLETE" line came out before the results. Was that an error in my layout test?
chris fleizach
Comment 8
2015-05-21 00:14:53 PDT
(In reply to
comment #7
)
> Comment on
attachment 253470
[details]
> patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=253470&action=review
> > > LayoutTests/accessibility/list-detection2-expected.txt:25 > > + > > Strange that the "TEST COMPLETE" line came out before the results. Was that > an error in my layout test?
The before:: content image stuff didn't load early enough for the script to run so i had to run the test after the body finished loading
James Craig
Comment 9
2015-05-21 00:28:40 PDT
(In reply to
comment #8
)
> The before:: content image stuff didn't load early enough for the script to > run so i had to run the test after the body finished loading
Makes sense. Thanks for the additional info.
Alexey Proskuryakov
Comment 10
2015-05-21 09:43:57 PDT
The new test fails on all non-Mac platforms: TEST COMPLETE -PASS: ul[role="list"] w/ explicit role and displayed inline -> list. -PASS: ul[role="list"] w/ explicit role but no markers -> list. -PASS: ul w/ default list markers -> list. -PASS: ol w/ default list counters -> list. -PASS: ul w/ list-style-image -> list. -PASS: ul w/ image content on ::before -> list. -PASS: ul w/ image content on inline ::before -> list. -PASS: ul w/ bullet content on ::before -> list. -PASS: ul w/ bullet content on inline ::before -> list. -PASS: ol w/ counter content on ::before -> list. -PASS: ol w/ counter content on inline ::before -> list. -PASS: ul w/ background image (NOT A LIST) -> group. -PASS: ul w/ background on ::before (NOT A LIST) -> group. -PASS: ul w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST) -> group. -PASS: ol w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST) -> group. -PASS: ul w/o explicit role and no markers (NOT A LIST) -> group. +FAIL: ul[role="list"] w/ explicit role and displayed inline -> . Expected: list. +FAIL: ul[role="list"] w/ explicit role but no markers -> . Expected: list. +FAIL: ul w/ default list markers -> . Expected: list. +FAIL: ol w/ default list counters -> . Expected: list. +FAIL: ul w/ list-style-image -> . Expected: list. +FAIL: ul w/ image content on ::before -> . Expected: list. +FAIL: ul w/ image content on inline ::before -> . Expected: list. +FAIL: ul w/ bullet content on ::before -> . Expected: list. +FAIL: ul w/ bullet content on inline ::before -> . Expected: list. +FAIL: ol w/ counter content on ::before -> . Expected: list. +FAIL: ol w/ counter content on inline ::before -> . Expected: list. +FAIL: ul w/ background image (NOT A LIST) -> . Expected: group. +FAIL: ul w/ background on ::before (NOT A LIST) -> . Expected: group. +FAIL: ul w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST) -> . Expected: group. +FAIL: ol w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST) -> . Expected: group. +FAIL: ul w/o explicit role and no markers (NOT A LIST) -> . Expected: group.
chris fleizach
Comment 11
2015-05-21 09:51:31 PDT
(In reply to
comment #10
)
> The new test fails on all non-Mac platforms: > > TEST COMPLETE > -PASS: ul[role="list"] w/ explicit role and displayed inline -> list. > -PASS: ul[role="list"] w/ explicit role but no markers -> list. > -PASS: ul w/ default list markers -> list. > -PASS: ol w/ default list counters -> list. > -PASS: ul w/ list-style-image -> list. > -PASS: ul w/ image content on ::before -> list. > -PASS: ul w/ image content on inline ::before -> list. > -PASS: ul w/ bullet content on ::before -> list. > -PASS: ul w/ bullet content on inline ::before -> list. > -PASS: ol w/ counter content on ::before -> list. > -PASS: ol w/ counter content on inline ::before -> list. > -PASS: ul w/ background image (NOT A LIST) -> group. > -PASS: ul w/ background on ::before (NOT A LIST) -> group. > -PASS: ul w/o explicit role and displayed inline, which defaults to no > markers (NOT A LIST) -> group. > -PASS: ol w/o explicit role and displayed inline, which defaults to no > markers (NOT A LIST) -> group. > -PASS: ul w/o explicit role and no markers (NOT A LIST) -> group. > +FAIL: ul[role="list"] w/ explicit role and displayed inline -> . Expected: > list. > +FAIL: ul[role="list"] w/ explicit role but no markers -> . Expected: list. > +FAIL: ul w/ default list markers -> . Expected: list. > +FAIL: ol w/ default list counters -> . Expected: list. > +FAIL: ul w/ list-style-image -> . Expected: list. > +FAIL: ul w/ image content on ::before -> . Expected: list. > +FAIL: ul w/ image content on inline ::before -> . Expected: list. > +FAIL: ul w/ bullet content on ::before -> . Expected: list. > +FAIL: ul w/ bullet content on inline ::before -> . Expected: list. > +FAIL: ol w/ counter content on ::before -> . Expected: list. > +FAIL: ol w/ counter content on inline ::before -> . Expected: list. > +FAIL: ul w/ background image (NOT A LIST) -> . Expected: group. > +FAIL: ul w/ background on ::before (NOT A LIST) -> . Expected: group. > +FAIL: ul w/o explicit role and displayed inline, which defaults to no > markers (NOT A LIST) -> . Expected: group. > +FAIL: ol w/o explicit role and displayed inline, which defaults to no > markers (NOT A LIST) -> . Expected: group. > +FAIL: ul w/o explicit role and no markers (NOT A LIST) -> . Expected: group.
Looking into it
chris fleizach
Comment 12
2015-05-21 10:46:12 PDT
http://trac.webkit.org/changeset/184721
James Craig
Comment 13
2018-05-16 02:51:09 PDT
***
Bug 170179
has been marked as a duplicate of this bug. ***
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug