<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>42219</bug_id>
          
          <creation_ts>2010-07-13 17:48:56 -0700</creation_ts>
          <short_desc>AX: VoiceOver cannot navigate this page because Safari is taking too long</short_desc>
          <delta_ts>2010-07-14 13:31:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>bdakin</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250860</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-13 17:48:56 -0700</bug_when>
    <thetext>VoiceOver can&apos;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&amp;textsize=0&amp;sid=12548&amp;chapter=all#top

I think the web area should not use absoluteFocusRingQuads(), but absoluteQuads() instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250862</commentid>
    <comment_count>1</comment_count>
      <attachid>61441</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-13 17:50:58 -0700</bug_when>
    <thetext>Created attachment 61441
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250863</commentid>
    <comment_count>2</comment_count>
      <attachid>61442</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-13 17:51:52 -0700</bug_when>
    <thetext>Created attachment 61442
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250954</commentid>
    <comment_count>3</comment_count>
      <attachid>61442</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-13 22:12:02 -0700</bug_when>
    <thetext>Comment on attachment 61442
patch

&gt; +    // absoluteFocusRingQuads will query the hierarchy below this element, which for large webpages can be very slow.
&gt; +    // 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250962</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-13 22:24:21 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 61442 [details])
&gt; &gt; +    // absoluteFocusRingQuads will query the hierarchy below this element, which for large webpages can be very slow.
&gt; &gt; +    // For a web area, which will have the most elements of any element, absoluteQuads should be used.
&gt; 
&gt; Are there any other cases where absoluteQuads would be better? Should absoluteFocusRungQuads itself have an optimization for this case?
&gt; 

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&apos;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.

&gt; r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251401</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-14 13:31:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/63350</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61441</attachid>
            <date>2010-07-13 17:50:58 -0700</date>
            <delta_ts>2010-07-13 17:51:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1522</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzI3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDctMTMgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogVm9pY2VPdmVyIGNhbm5vdCBuYXZpZ2F0ZSB0aGlzIHBhZ2UgYmVjYXVzZSBTYWZhcmkg
aXMgdGFraW5nIHRvbyBsb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MjIxOQorCisgICAgICAgIE5vIHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBjb3Zl
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
Ym91bmRpbmdCb3hSZWN0KToKKwogMjAxMC0wNy0xMyAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMu
a2xpbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRl
eDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAkocmV2aXNpb24gNjI5NjApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOTcsOCArMTM5Nywx
MCBAQAogICAgIGlmIChvYmotPm5vZGUoKSkgLy8gSWYgd2UgYXJlIGEgY29udGludWF0aW9uLCB3
ZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1c2UgdGhlIHByaW1hcnkgcmVuZGVyZXIuCiAgICAgICAg
IG9iaiA9IG9iai0+bm9kZSgpLT5yZW5kZXJlcigpOwogICAgIAorICAgIC8vIGFic29sdXRlRm9j
dXNSaW5nUXVhZHMgd2lsbCB0aGUgaGllcmFyY2h5IGJlbG93IHRoaXMgZWxlbWVudCwgd2hpY2gg
Zm9yIGxhcmdlIHdlYnBhZ2VzIGNhbiBiZSB2ZXJ5IHNsb3cuCisgICAgLy8gRm9yIGEgd2ViIGFy
ZWEsIHdoaWNoIHdpbGwgaGF2ZSB0aGUgbW9zdCBlbGVtZW50cyBvZiBhbnkgZWxlbWVudCwgYWJz
b2x1dGVRdWFkcyBzaG91bGQgYmUgdXNlZC4KICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsK
LSAgICBpZiAob2JqLT5pc1RleHQoKSkKKyAgICBpZiAob2JqLT5pc1RleHQoKSB8fCBpc1dlYkFy
ZWEoKSkKICAgICAgICAgb2JqLT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKICAgICBlbHNlCiAgICAg
ICAgIG9iai0+YWJzb2x1dGVGb2N1c1JpbmdRdWFkcyhxdWFkcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61442</attachid>
            <date>2010-07-13 17:51:52 -0700</date>
            <delta_ts>2010-07-13 22:12:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1528</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzI3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDctMTMgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogVm9pY2VPdmVyIGNhbm5vdCBuYXZpZ2F0ZSB0aGlzIHBhZ2UgYmVjYXVzZSBTYWZhcmkg
aXMgdGFraW5nIHRvbyBsb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MjIxOQorCisgICAgICAgIE5vIHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBjb3Zl
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
Ym91bmRpbmdCb3hSZWN0KToKKwogMjAxMC0wNy0xMyAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMu
a2xpbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRl
eDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAkocmV2aXNpb24gNjI5NjApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOTcsOCArMTM5Nywx
MCBAQAogICAgIGlmIChvYmotPm5vZGUoKSkgLy8gSWYgd2UgYXJlIGEgY29udGludWF0aW9uLCB3
ZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1c2UgdGhlIHByaW1hcnkgcmVuZGVyZXIuCiAgICAgICAg
IG9iaiA9IG9iai0+bm9kZSgpLT5yZW5kZXJlcigpOwogICAgIAorICAgIC8vIGFic29sdXRlRm9j
dXNSaW5nUXVhZHMgd2lsbCBxdWVyeSB0aGUgaGllcmFyY2h5IGJlbG93IHRoaXMgZWxlbWVudCwg
d2hpY2ggZm9yIGxhcmdlIHdlYnBhZ2VzIGNhbiBiZSB2ZXJ5IHNsb3cuCisgICAgLy8gRm9yIGEg
d2ViIGFyZWEsIHdoaWNoIHdpbGwgaGF2ZSB0aGUgbW9zdCBlbGVtZW50cyBvZiBhbnkgZWxlbWVu
dCwgYWJzb2x1dGVRdWFkcyBzaG91bGQgYmUgdXNlZC4KICAgICBWZWN0b3I8RmxvYXRRdWFkPiBx
dWFkczsKLSAgICBpZiAob2JqLT5pc1RleHQoKSkKKyAgICBpZiAob2JqLT5pc1RleHQoKSB8fCBp
c1dlYkFyZWEoKSkKICAgICAgICAgb2JqLT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKICAgICBlbHNl
CiAgICAgICAgIG9iai0+YWJzb2x1dGVGb2N1c1JpbmdRdWFkcyhxdWFkcyk7Cg==
</data>
<flag name="review"
          id="49474"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>