<?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>34612</bug_id>
          
          <creation_ts>2010-02-04 13:17:14 -0800</creation_ts>
          <short_desc>MSAA: accSelect returns error codes for most elements that arent listbox or menupopup related</short_desc>
          <delta_ts>2010-02-04 15:34:39 -0800</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>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alice Liu">alice.barraclough</reporter>
          <assigned_to name="Alice Liu">alice.barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>187910</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2010-02-04 13:17:14 -0800</bug_when>
    <thetext>Webkit on Windows implementation of IAccessible::accSelect() returns error codes for most elements that aren&apos;t listbox or menupopup related elements.  For example, using Microsoft&apos;s AccExplorer 2.0 tool on an anchor element in TOT returns E_INVALIDARG for all of the accSelect_* MSAA verification tests.  (In contrast, firefox returns S_OK for all the cases that make sense, most of which do.)

&lt;rdar://problem/7554699&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187914</commentid>
    <comment_count>1</comment_count>
      <attachid>48162</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2010-02-04 13:27:02 -0800</bug_when>
    <thetext>Created attachment 48162
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187919</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-04 13:32:05 -0800</bug_when>
    <thetext>Attachment 48162 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/win/AccessibleBase.cpp:393:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebKit/win/AccessibleBase.cpp:394:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebKit/win/AccessibleBase.cpp:422:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebKit/win/AccessibleBase.cpp:423:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebKit/win/AccessibleBase.cpp:424:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 5


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187946</commentid>
    <comment_count>3</comment_count>
      <attachid>48162</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-04 14:35:51 -0800</bug_when>
    <thetext>Comment on attachment 48162
patch

&gt; Index: WebKit/win/AccessibleBase.cpp
&gt; ===================================================================
&gt; --- WebKit/win/AccessibleBase.cpp	(revision 54295)
&gt; +++ WebKit/win/AccessibleBase.cpp	(working copy)
&gt; @@ -388,6 +388,13 @@ HRESULT STDMETHODCALLTYPE AccessibleBase
&gt;          ((selectionFlags &amp; (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION)))
&gt;          return E_INVALIDARG;
&gt;  
&gt; +    // Match Firefox by returning E_FAIL for these situations that don&apos;t make sense.
&gt; +    const long allSELFLAGs = SELFLAG_TAKEFOCUS | SELFLAG_TAKESELECTION | SELFLAG_EXTENDSELECTION | SELFLAG_ADDSELECTION | SELFLAG_REMOVESELECTION;
&gt; +    if (((selectionFlags &amp; allSELFLAGs) == SELFLAG_NONE) ||
&gt; +        ((selectionFlags &amp; allSELFLAGs) == SELFLAG_ADDSELECTION) ||
&gt; +        ((selectionFlags &amp; allSELFLAGs) == SELFLAG_EXTENDSELECTION))
&gt; +        return E_FAIL;
&gt; +

Firefox doesn&apos;t allow you to add an object to the selection or extend the selection without also passing TAKEFOCUS? MSDN seems to say that ADDSELECTION and EXTENDSELECTION are valid without any other flags.

&gt;      AccessibilityObject* childObject;
&gt;      HRESULT hr = getAccessibilityObjectForChild(vChild, childObject);
&gt;  
&gt; @@ -406,15 +413,16 @@ HRESULT STDMETHODCALLTYPE AccessibleBase
&gt;              Vector&lt;RefPtr&lt;AccessibilityObject&gt; &gt; selectedChildren(1);
&gt;              selectedChildren[0] = childObject;
&gt;              static_cast&lt;AccessibilityListBox*&gt;(parentObject)-&gt;setSelectedChildren(selectedChildren);
&gt; -        } else if (parentObject-&gt;isMenuListPopup())
&gt; +        } else // any element may be selectable by virtue of it having the aria-selected property
&gt;              childObject-&gt;setSelected(true);
&gt; -        else
&gt; -            return E_INVALIDARG;
&gt;      }

TAKESELECTION is meant to select that object and deselect any other objects, so it might be good to ASSERT(!parentObject-&gt;isMultiSelectable()) in the else condition to catch cases where TAKESELECTION could allow multiple items to be selected.

r=me! Thanks for fixing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187947</commentid>
    <comment_count>4</comment_count>
      <attachid>48162</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-04 14:42:57 -0800</bug_when>
    <thetext>Comment on attachment 48162
patch

&gt; Index: WebKit/win/AccessibleBase.cpp
&gt; ===================================================================
&gt; --- WebKit/win/AccessibleBase.cpp	(revision 54295)
&gt; +++ WebKit/win/AccessibleBase.cpp	(working copy)
&gt; @@ -388,6 +388,13 @@ HRESULT STDMETHODCALLTYPE AccessibleBase
&gt;          ((selectionFlags &amp; (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION)))

This is a copy/paste error. It should read:

           ((selectionFlags &amp; (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)))

Feel free to fix that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187955</commentid>
    <comment_count>5</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2010-02-04 15:11:49 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 48162 [details])
&gt; &gt; Index: WebKit/win/AccessibleBase.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebKit/win/AccessibleBase.cpp	(revision 54295)
&gt; &gt; +++ WebKit/win/AccessibleBase.cpp	(working copy)
&gt; &gt; @@ -388,6 +388,13 @@ HRESULT STDMETHODCALLTYPE AccessibleBase
&gt; &gt;          ((selectionFlags &amp; (SELFLAG_EXTENDSELECTION | SELFLAG_TAKESELECTION)) == (SELFLAG_REMOVESELECTION | SELFLAG_TAKESELECTION)))
&gt; &gt;          return E_INVALIDARG;
&gt; &gt;  
&gt; &gt; +    // Match Firefox by returning E_FAIL for these situations that don&apos;t make sense.
&gt; &gt; +    const long allSELFLAGs = SELFLAG_TAKEFOCUS | SELFLAG_TAKESELECTION | SELFLAG_EXTENDSELECTION | SELFLAG_ADDSELECTION | SELFLAG_REMOVESELECTION;
&gt; &gt; +    if (((selectionFlags &amp; allSELFLAGs) == SELFLAG_NONE) ||
&gt; &gt; +        ((selectionFlags &amp; allSELFLAGs) == SELFLAG_ADDSELECTION) ||
&gt; &gt; +        ((selectionFlags &amp; allSELFLAGs) == SELFLAG_EXTENDSELECTION))
&gt; &gt; +        return E_FAIL;
&gt; &gt; +
&gt; 
&gt; Firefox doesn&apos;t allow you to add an object to the selection or extend the
&gt; selection without also passing TAKEFOCUS? MSDN seems to say that ADDSELECTION
&gt; and EXTENDSELECTION are valid without any other flags.

Ya, this is the way it is in Firefox.  However, after checking with IE8, i&apos;m deciding to remove this chunk of code because this isn&apos;t what IE8 does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187967</commentid>
    <comment_count>6</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2010-02-04 15:34:39 -0800</bug_when>
    <thetext>thanks Jon for reivew.  

I&apos;ve removed the firefox-specific section, as mentioned in a previous comment.  I also fixed what the style bot mentioned, added the assert that jon wanted, and fixed the copy-paste issue.  

committed r54376</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48162</attachid>
            <date>2010-02-04 13:27:02 -0800</date>
            <delta_ts>2010-02-04 14:42:57 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch-7554699-34612.txt</filename>
            <type>text/plain</type>
            <size>3226</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiA1NDM2NSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDItMDQgIEFsaWNlIExpdSAgPGFsaWNlLmxp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NjEyICIgTVNB
QTogYWNjU2VsZWN0IHJldHVybnMgZXJyb3IgCisgICAgICAgIGNvZGVzIGZvciBtb3N0IGVsZW1l
bnRzIHRoYXQgYXJlbnQgbGlzdGJveCBvciBtZW51cG9wdXAgcmVsYXRlZCIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc1NTQ2OTk+CisKKyAgICAgICAgKiBBY2Nlc3NpYmxlQmFzZS5jcHA6Cisg
ICAgICAgIChBY2Nlc3NpYmxlQmFzZTo6YWNjU2VsZWN0KToKKyAgICAgICAgLSBTdG9wIHNlbmRp
bmcgRV9JTlZBTElEQVJHIGZvciBlbGVtZW50cyB0aGF0IHJlcXVlc3QgVEFLRV9TRUxFQ1RJT04g
dGhhdCAKKyAgICAgICAgICBhcmVuJ3QgYmVuZWF0aCBsaXN0Ym94ZXMgb3IgbWVudXBvcHVwcy4g
IFRoaXMgd2FzIHRvbyByZXN0cmljdGl2ZSBzaW5jZSAKKyAgICAgICAgICBhbnkgZWxlbWVudCBj
YW4gYmUgc2VsZWN0YWJsZS4KKyAgICAgICAgLSBSZXR1cm4gRV9GQUlMIGZvciBhIGZldyBjb21i
aW5hdGlvbiBvZiBmbGFncyB0aGF0IGRvbid0IG1ha2Ugc2Vuc2UsIG1hdGNoaW5nIGZpcmVmb3gK
KyAgICAgICAgLSBDb3JyZWN0IHRoZSBtaXNpbnRlcnByZXRhdGlvbiBvZiBNU0ROJ3Mgc3RpcHVs
YXRpb24gb2Ygc2l0dWF0aW9ucyBpbnZvbHZpbmcgCisgICAgICAgICAgYWRkaW5nLCByZW1vdmlu
ZywgYW5kIGV4dGVuZGluZyBzZWxlY3Rpb24gb24gc2luZ2xlLXNlbGVjdCBlbGVtZW50cworCiAy
MDEwLTAyLTA0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpJbmRleDogV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAJKHJldmlz
aW9uIDU0Mjk1KQorKysgV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM4OCw2ICszODgsMTMgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nlc3Np
YmxlQmFzZQogICAgICAgICAoKHNlbGVjdGlvbkZsYWdzICYgKFNFTEZMQUdfRVhURU5EU0VMRUNU
SU9OIHwgU0VMRkxBR19UQUtFU0VMRUNUSU9OKSkgPT0gKFNFTEZMQUdfUkVNT1ZFU0VMRUNUSU9O
IHwgU0VMRkxBR19UQUtFU0VMRUNUSU9OKSkpCiAgICAgICAgIHJldHVybiBFX0lOVkFMSURBUkc7
CiAKKyAgICAvLyBNYXRjaCBGaXJlZm94IGJ5IHJldHVybmluZyBFX0ZBSUwgZm9yIHRoZXNlIHNp
dHVhdGlvbnMgdGhhdCBkb24ndCBtYWtlIHNlbnNlLgorICAgIGNvbnN0IGxvbmcgYWxsU0VMRkxB
R3MgPSBTRUxGTEFHX1RBS0VGT0NVUyB8IFNFTEZMQUdfVEFLRVNFTEVDVElPTiB8IFNFTEZMQUdf
RVhURU5EU0VMRUNUSU9OIHwgU0VMRkxBR19BRERTRUxFQ1RJT04gfCBTRUxGTEFHX1JFTU9WRVNF
TEVDVElPTjsKKyAgICBpZiAoKChzZWxlY3Rpb25GbGFncyAmIGFsbFNFTEZMQUdzKSA9PSBTRUxG
TEFHX05PTkUpIHx8CisgICAgICAgICgoc2VsZWN0aW9uRmxhZ3MgJiBhbGxTRUxGTEFHcykgPT0g
U0VMRkxBR19BRERTRUxFQ1RJT04pIHx8CisgICAgICAgICgoc2VsZWN0aW9uRmxhZ3MgJiBhbGxT
RUxGTEFHcykgPT0gU0VMRkxBR19FWFRFTkRTRUxFQ1RJT04pKQorICAgICAgICByZXR1cm4gRV9G
QUlMOworCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY2hpbGRPYmplY3Q7CiAgICAgSFJFU1VM
VCBociA9IGdldEFjY2Vzc2liaWxpdHlPYmplY3RGb3JDaGlsZCh2Q2hpbGQsIGNoaWxkT2JqZWN0
KTsKIApAQCAtNDA2LDE1ICs0MTMsMTYgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nl
c3NpYmxlQmFzZQogICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0
PiA+IHNlbGVjdGVkQ2hpbGRyZW4oMSk7CiAgICAgICAgICAgICBzZWxlY3RlZENoaWxkcmVuWzBd
ID0gY2hpbGRPYmplY3Q7CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5TGlz
dEJveCo+KHBhcmVudE9iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRDaGlsZHJl
bik7Ci0gICAgICAgIH0gZWxzZSBpZiAocGFyZW50T2JqZWN0LT5pc01lbnVMaXN0UG9wdXAoKSkK
KyAgICAgICAgfSBlbHNlIC8vIGFueSBlbGVtZW50IG1heSBiZSBzZWxlY3RhYmxlIGJ5IHZpcnR1
ZSBvZiBpdCBoYXZpbmcgdGhlIGFyaWEtc2VsZWN0ZWQgcHJvcGVydHkKICAgICAgICAgICAgIGNo
aWxkT2JqZWN0LT5zZXRTZWxlY3RlZCh0cnVlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
cmV0dXJuIEVfSU5WQUxJREFSRzsKICAgICB9CiAKLSAgICAvLyBNU0ROIHNheXMgdGhhdCBBREQs
IFJFTU9WRSwgYW5kIEVYVEVORFNFTEVDVElPTiBhcmUgaW52YWxpZCBmb3IKKyAgICAvLyBNU0RO
IHNheXMgdGhhdCBBREQsIFJFTU9WRSwgYW5kIEVYVEVORFNFTEVDVElPTiB3aXRoIG5vIG90aGVy
IGZsYWdzIGFyZSBpbnZhbGlkIGZvcgogICAgIC8vIHNpbmdsZS1zZWxlY3QuCi0gICAgaWYgKCFw
YXJlbnRPYmplY3QtPmlzTXVsdGlTZWxlY3RhYmxlKCkpCisgICAgaWYgKCFwYXJlbnRPYmplY3Qt
PmlzTXVsdGlTZWxlY3RhYmxlKCkgJiYKKyAgICAgICAgKCgoc2VsZWN0aW9uRmxhZ3MgJiBhbGxT
RUxGTEFHcykgPT0gU0VMRkxBR19BRERTRUxFQ1RJT04pIHx8CisgICAgICAgICAoKHNlbGVjdGlv
bkZsYWdzICYgYWxsU0VMRkxBR3MpID09IFNFTEZMQUdfUkVNT1ZFU0VMRUNUSU9OKSB8fAorICAg
ICAgICAgKChzZWxlY3Rpb25GbGFncyAmIGFsbFNFTEZMQUdzKSA9PSBTRUxGTEFHX0VYVEVORFNF
TEVDVElPTikpKQogICAgICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwogCiAgICAgaWYgKHNlbGVj
dGlvbkZsYWdzICYgU0VMRkxBR19BRERTRUxFQ1RJT04pCg==
</data>
<flag name="review"
          id="30799"
          type_id="1"
          status="+"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>