Bug 42219

Summary: AX: VoiceOver cannot navigate this page because Safari is taking too long
Product: WebKit Reporter: chris fleizach <cfleizach>
Component: AccessibilityAssignee: chris fleizach <cfleizach>
Status: RESOLVED FIXED    
Severity: Normal CC: bdakin, darin
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Attachments:
Description Flags
patch
none
patch darin: review+

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