Bug 42219 - AX: VoiceOver cannot navigate this page because Safari is taking too long
Summary: AX: VoiceOver cannot navigate this page because Safari is taking too long
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC OS X 10.5
: P2 Normal
Assignee: chris fleizach
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-13 17:48 PDT by chris fleizach
Modified: 2010-07-14 13:31 PDT (History)
2 users (show)

See Also:


Attachments
patch (1.49 KB, patch)
2010-07-13 17:50 PDT, chris fleizach
no flags Details | Formatted Diff | Diff
patch (1.49 KB, patch)
2010-07-13 17:51 PDT, chris fleizach
darin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description chris fleizach 2010-07-13 17:48:56 PDT
VoiceOver can't navigate this page because Safari is used absoluteFocusRingQuads() to calculate the size of the web area, which descends into every child element and sums up the rectangles.

http://www.siye.co.uk/siye/viewstory.php?action=printable&textsize=0&sid=12548&chapter=all#top

I think the web area should not use absoluteFocusRingQuads(), but absoluteQuads() instead
Comment 1 chris fleizach 2010-07-13 17:50:58 PDT
Created attachment 61441 [details]
patch
Comment 2 chris fleizach 2010-07-13 17:51:52 PDT
Created attachment 61442 [details]
patch
Comment 3 Darin Adler 2010-07-13 22:12:02 PDT
Comment on attachment 61442 [details]
patch

> +    // absoluteFocusRingQuads will query the hierarchy below this element, which for large webpages can be very slow.
> +    // For a web area, which will have the most elements of any element, absoluteQuads should be used.

Are there any other cases where absoluteQuads would be better? Should absoluteFocusRungQuads itself have an optimization for this case?

r=me
Comment 4 chris fleizach 2010-07-13 22:24:21 PDT
(In reply to comment #3)
> (From update of attachment 61442 [details])
> > +    // absoluteFocusRingQuads will query the hierarchy below this element, which for large webpages can be very slow.
> > +    // For a web area, which will have the most elements of any element, absoluteQuads should be used.
> 
> Are there any other cases where absoluteQuads would be better? Should absoluteFocusRungQuads itself have an optimization for this case?
> 

I was trying to think of other cases that might be pertinent (AXGroups being the best candidate), but it seemed more prudent to wait for evidence of those cases than make assumptions here.

I looked through absoluteFocusRingQuads and given that the nature of the function seems to iterate every child, it didn't look like there was much that could be done (since there are over 15000 children of this web area). If you have any ideas off the top of your head please let me know.

> r=me
Comment 5 chris fleizach 2010-07-14 13:31:17 PDT
http://trac.webkit.org/changeset/63350