<?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>122574</bug_id>
          
          <creation_ts>2013-10-09 14:32:33 -0700</creation_ts>
          <short_desc>AX: VoiceOver speaking too much when group elements with tabindex=-1 are used</short_desc>
          <delta_ts>2013-10-10 10:40:18 -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>All</rep_platform>
          <op_sys>All</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="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>938075</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-10-09 14:32:33 -0700</bug_when>
    <thetext>When a &lt;div&gt; has a tabindex=-1, it is having the affecting of causing it&apos;s AXTitle to be calculated by concatenating all the children.

This causes VO to double-speak lots of information.

We should not consider tabindex=-1 not meet this criteria we are using to determine whether to calculate the info

The problem can be seen by visiting
   http://webaim.org/techniques/forms/controls#checkbox 
with VoiceOver

&lt;rdar://problem/15190911&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938076</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-09 14:32:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/15191007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938124</commentid>
    <comment_count>2</comment_count>
      <attachid>213830</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-10-09 16:14:52 -0700</bug_when>
    <thetext>Created attachment 213830
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938271</commentid>
    <comment_count>3</comment_count>
      <attachid>213830</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-10 03:52:28 -0700</bug_when>
    <thetext>Comment on attachment 213830
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=213830&amp;action=review

Looks good to me. I&apos;ve just made a couple of minor comments for your consideration before landing.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1325
&gt; +        useTextUnderElement = true;
&gt; +        
&gt; +        // If a node uses a negative tabindex, do not expose it as a generic focusable element, because keyboard focus management
&gt; +        // will never land on this specific element.
&gt; +        Node* node = this-&gt;node();
&gt; +        if (node &amp;&amp; node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;tabIndex() &lt; 0)
&gt; +            useTextUnderElement = false;

Probably a pointless suggestion, but what about assigning useTextUnderElement once only? 

e.g: useTextUnderElement = !(node &amp;&amp; node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;tabIndex() &lt; 0);

&gt; LayoutTests/accessibility/negative-tabindex-does-not-expose-label.html:18
&gt; +    
&gt; +

One of these empty lines are not needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938416</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-10-10 10:40:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157231

with mario&apos;s suggestions</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213830</attachid>
            <date>2013-10-09 16:14:52 -0700</date>
            <delta_ts>2013-10-10 03:52:28 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5605</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTEwLTA5ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFZvaWNlT3ZlciBz
cGVha2luZyB0b28gbXVjaCB3aGVuIGdyb3VwIGVsZW1lbnRzIHdpdGggdGFiaW5kZXg9LTEgYXJl
IHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBhY2Nlc3NpYmlsaXR5L25lZ2F0aXZlLXRhYmluZGV4LWRvZXMtbm90LWV4cG9zZS1sYWJl
bC5odG1sCisKKyAgICAgICAgRWxlbWVudHMgdGhhdCBleHBvc2UgdGFiaW5kZXg9LTEgYXJlIGJl
aW5nIGlkZW50aWZpZWQgYXMgZ2VuZXJpYyBmb2N1c2FibGUgZWxlbWVudHMgZm9yIGFjY2Vzc2li
aWxpdHkuCisgICAgICAgIFdoaWNoIGFtb25nIG90aGVyIHRoaW5ncywgZGV0ZXJtaW5lcyB3aGV0
aGVyIHRvIGNyZWF0ZSBhbiBhY2Nlc3NpYmxlIG5hbWUgZm9yIHRoZSBvYmplY3QuIAorICAgICAg
ICBUaGlzIGhhcyB0aGUgbmVnYXRpdmUgZWZmZWN0IG9mIGNhdXNpbmcgVm9pY2VPdmVyIHRvIHNw
ZWFrIHdheSB0b28gbXVjaCBpbmZvcm1hdGlvbiB3aGVuIG5hdmlnYXRpbmcgaW5zaWRlCisgICAg
ICAgIGEgPGRpdj4gd2l0aCB0aGlzIGF0dHJpYnV0ZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZSk6CisKIDIwMTMtMTAtMDkgIEJlbSBKb25lcy1CZXkg
IDxiam9uZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIExpbmVzIHRoYXQg
ZG9uJ3QgaW50ZXJzZWN0IHNoYXBlLW91dHNpZGUgc2hvdWxkIGlnbm9yZSBib3RoIGxlZnQgYW5k
IHJpZ2h0IG1hcmdpbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCShyZXZpc2lvbiAxNTcxODMpCisr
KyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTMxMiw5ICsxMzEyLDE5IEBACiAgICAgCiAgICAgLy8gSWYg
aXQncyBmb2N1c2FibGUgYnV0IGl0J3Mgbm90IGNvbnRlbnQgZWRpdGFibGUgb3IgYSBrbm93biBj
b250cm9sIHR5cGUsIHRoZW4gaXQgd2lsbCBhcHBlYXIgdG8KICAgICAvLyB0aGUgdXNlciBhcyBh
IHNpbmdsZSBhdG9taWMgb2JqZWN0LCBzbyB3ZSBzaG91bGQgdXNlIGl0cyB0ZXh0IGFzIHRoZSBk
ZWZhdWx0IHRpdGxlLgotICAgIGlmIChpc0hlYWRpbmcoKSB8fCBpc0xpbmsoKSB8fCBpc0dlbmVy
aWNGb2N1c2FibGVFbGVtZW50KCkpCisgICAgaWYgKGlzSGVhZGluZygpIHx8IGlzTGluaygpKQog
ICAgICAgICB1c2VUZXh0VW5kZXJFbGVtZW50ID0gdHJ1ZTsKICAgICAKKyAgICBpZiAoaXNHZW5l
cmljRm9jdXNhYmxlRWxlbWVudCgpKSB7CisgICAgICAgIHVzZVRleHRVbmRlckVsZW1lbnQgPSB0
cnVlOworICAgICAgICAKKyAgICAgICAgLy8gSWYgYSBub2RlIHVzZXMgYSBuZWdhdGl2ZSB0YWJp
bmRleCwgZG8gbm90IGV4cG9zZSBpdCBhcyBhIGdlbmVyaWMgZm9jdXNhYmxlIGVsZW1lbnQsIGJl
Y2F1c2Uga2V5Ym9hcmQgZm9jdXMgbWFuYWdlbWVudAorICAgICAgICAvLyB3aWxsIG5ldmVyIGxh
bmQgb24gdGhpcyBzcGVjaWZpYyBlbGVtZW50LgorICAgICAgICBOb2RlKiBub2RlID0gdGhpcy0+
bm9kZSgpOworICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9F
bGVtZW50KG5vZGUpLT50YWJJbmRleCgpIDwgMCkKKyAgICAgICAgICAgIHVzZVRleHRVbmRlckVs
ZW1lbnQgPSBmYWxzZTsKKyAgICB9CisgICAgCiAgICAgaWYgKHVzZVRleHRVbmRlckVsZW1lbnQp
IHsKICAgICAgICAgQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlIG1vZGU7CiAgICAg
ICAgIApAQCAtMTY5MSw4ICsxNzAxLDE1IEBACiAKICAgICAvLyBJZiBpdCdzIGZvY3VzYWJsZSBi
dXQgaXQncyBub3QgY29udGVudCBlZGl0YWJsZSBvciBhIGtub3duIGNvbnRyb2wgdHlwZSwgdGhl
biBpdCB3aWxsIGFwcGVhciB0bwogICAgIC8vIHRoZSB1c2VyIGFzIGEgc2luZ2xlIGF0b21pYyBv
YmplY3QsIHNvIHdlIHNob3VsZCB1c2UgaXRzIHRleHQgYXMgdGhlIGRlZmF1bHQgdGl0bGUuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgaWYgKGlzR2VuZXJpY0ZvY3VzYWJsZUVs
ZW1lbnQoKSkKKyAgICBpZiAoaXNHZW5lcmljRm9jdXNhYmxlRWxlbWVudCgpKSB7CisgICAgICAg
IC8vIElmIGEgbm9kZSB1c2VzIGEgbmVnYXRpdmUgdGFiaW5kZXgsIGRvIG5vdCBleHBvc2UgaXQg
YXMgYSBnZW5lcmljIGZvY3VzYWJsZSBlbGVtZW50LCBiZWNhdXNlIGtleWJvYXJkIGZvY3VzIG1h
bmFnZW1lbnQKKyAgICAgICAgLy8gd2lsbCBuZXZlciBsYW5kIG9uIHRoaXMgc3BlY2lmaWMgZWxl
bWVudC4KKyAgICAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICAgICAgaWYgKG5v
ZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+dGFiSW5kZXgo
KSA8IDApCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIAogICAgICAgICBy
ZXR1cm4gdGV4dFVuZGVyRWxlbWVudCgpOworICAgIH0KIAogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzE5NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEwLTA5ICBDaHJpcyBGbGVpemFj
aCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFZvaWNlT3ZlciBzcGVha2lu
ZyB0b28gbXVjaCB3aGVuIGdyb3VwIGVsZW1lbnRzIHdpdGggdGFiaW5kZXg9LTEgYXJlIHVzZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjU3NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9uZWdhdGl2ZS10YWJpbmRleC1kb2VzLW5vdC1leHBvc2UtbGFiZWwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L25lZ2F0aXZlLXRhYmluZGV4LWRv
ZXMtbm90LWV4cG9zZS1sYWJlbC5odG1sOiBBZGRlZC4KKwogMjAxMy0xMC0wOSAgQmVtIEpvbmVz
LUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFNoYXBlc10gTGluZXMg
dGhhdCBkb24ndCBpbnRlcnNlY3Qgc2hhcGUtb3V0c2lkZSBzaG91bGQgaWdub3JlIGJvdGggbGVm
dCBhbmQgcmlnaHQgbWFyZ2lucwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9uZWdh
dGl2ZS10YWJpbmRleC1kb2VzLW5vdC1leHBvc2UtbGFiZWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25lZ2F0aXZlLXRhYmluZGV4LWRvZXMtbm90LWV4cG9z
ZS1sYWJlbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9u
ZWdhdGl2ZS10YWJpbmRleC1kb2VzLW5vdC1leHBvc2UtbGFiZWwuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorCis8ZGl2IHRhYmluZGV4PS0xIGlkPSJncm91cCI+CitoZWxsbyB3b3JsZAorPC9k
aXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBhIGdyb3VwIGhh
cyBhIHRhYmluZGV4IDwgMCwgaXQgd2lsbCBub3QgaGF2ZSBhIGxhYmVsIGV4cG9zZWQgZm9yIHRp
dGxlIG9yIGRlc2NyaXB0aW9uLiIpOworICAgIAorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgeworICAgICAgIHZhciBncm91cCA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZ3JvdXAiKTsKKyAgICAgICBkZWJ1ZygiRGVzY3Jp
cHRpb246ICIgKyBncm91cC5kZXNjcmlwdGlvbik7CisgICAgICAgZGVidWcoIlRpdGxlOiAiICsg
Z3JvdXAudGl0bGUpOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9uZWdhdGl2ZS10YWJpbmRleC1k
b2VzLW5vdC1leHBvc2UtbGFiZWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L25lZ2F0aXZlLXRhYmluZGV4LWRvZXMtbm90
LWV4cG9zZS1sYWJlbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9uZWdhdGl2ZS10YWJpbmRleC1kb2VzLW5vdC1leHBv
c2UtbGFiZWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2hl
bGxvIHdvcmxkCitUaGlzIHRlc3RzIHRoYXQgYSBncm91cCBoYXMgYSB0YWJpbmRleCA8IDAsIGl0
IHdpbGwgbm90IGhhdmUgYSBsYWJlbCBleHBvc2VkIGZvciB0aXRsZSBvciBkZXNjcmlwdGlvbi4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0Rlc2NyaXB0aW9uOiBBWERlc2NyaXB0
aW9uOiAKK1RpdGxlOiBBWFRpdGxlOiAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCg==
</data>
<flag name="review"
          id="236254"
          type_id="1"
          status="+"
          setter="mario"
    />
          </attachment>
      

    </bug>

</bugzilla>